TenderGotchi – js13k22

Js13kGames is a JavaScript coding competition for JavaScript Game Developers. The fun part of the compo is the file size limit set to 13 kilobytes. The competition started on 13th August and ended on 13th September 2022. The theme for 2022 was DEATH.

I managed to participate in the competition for the sixth time in a row, this year I went mostly on my own, as my fellow game-jammers friends were busier than me.

However mapedorr participated in spirit as his graphics ended up being used, and Ryan Malm contributed with awesome music and SFXs.

We ended up creating a cute dying virtual pet arcade game. You can play online here. Source code is here. There’s a gameplay video here.

Remembrance of the first day, August 13

The theme for this year’s js13k is DEATH. I talked briefly with my pal QuietGecko, but we didn’t have an idea of what to do. Throughout the day I was thinking about possible ideas, trying to avoid the endless loop of “Must think of a cool idea that is not too pretentious” -> “somebody surely thought of this already”. In the end, I thought I had something that clicked with the theme and also tied back to my original ideas.

Remember how the original Tamagotchi could DIE if you didn’t take good care of them? My idea was to take the format of the classic virtual pets, but transform it into a fast-paced arcade game where you must prevent its death; imagine time is running at 30x, and you have to respond to the needs of the pet quickly or risk him getting sick and dying.

The main interaction I planned to include was to pick what to feed the pet with, based on four available and shifting options where some of these may increase its happiness but reduce health, and some others may stuff the pet a lot so you should only use them when the pet’s hunger is empty or it will lose health. The food, happiness, and health bars would decrease steadily, and faster as the pet aged.

I also thought I would add some minigames you had to play with your pet when it reached certain life thresholds.

Following up with last year’s Distant Friends, the idea was to keep the visual style: cute characters using vector graphics. However, I would add a bit more in the shape of some nice-looking animations (with a super low, jumpy frame rate).

2021’s Distant Friends

Day 2 – August 22

Many days passed since that first day, I was super busy getting stuff done to travel to Cologne to Gamescom. So no work was done all along.

But then I decided to revive the yearly tradition of working in my js13k while flying, so there we go! this time it was a longer flight so that meant more dev time.

In this first coding session, I managed to create a complete game with a simple gameplay cycle. I reused my entry from last year, chopping everything I didn’t need, and created a simple game where you had to keep your pet alive by feeding it when it was hungry, with the caveat that they were doomed to die since it was impossible to hit the precise millisecond of time to prevent its health to degrade slightly due to hunger.

Also, the pet would poop, and if you don’t clean quick enough? DEATH. Death was to be so common that I added a ranking keeping track of your best effort to avoid it, but it’s inevitable.

However, you would also get to see LIFE, as the pets evolved from an egg to a full-grown creatures. It’s the balance of life and death.

When I went hands-on to remove stuff from my 2021 entry, I figured out that, in the end, I only reused some rendering code because the game was extremely different.

The plan was to focus on polishing from day 3, adding animations and cute art.

Days 3-4 – Around September 1

Gamescom was super busy and of course, I had to make the best of my time there, so I only managed to go back to developing the game during my flights back home. Due to timezones stuff and general trip craziness let’s count this as two “days” of dev.

At this point, I decided to regroup my ideas and draft them again in paper now that I had done a first dive into the code. I discarded the initial ideas of having multiple types of food and playing minigames with the pet, and instead focused on the frantic rhythm mechanic. I planned to add some additional distractions in the shape of items you had to pick, which would also give some variety to the gameplay.

I also considered changing the representation of the pet from vectorial to LCD-like, but ditched that in the end since it would have been a LOT of work and in general I think it was not needed, as the idea behind the Tamagotchi was that the virtual pet was inside the screen; the LCD matrix was just a charming byproduct of the technical limitations. (Actually, I was just lazy to remake that part and I wanted to reuse the art I already had from Mateo Robayo).

The paper drafts were also useful to get an idea of how I wanted the game to look like; since I wanted to make this for Gaby (well, at least a variant of it with much less DEATH), I searched the Internet for Pink Fong toys and found this one.

I toyed around with GIMP a little bit and came up with a mockup of how I wanted the game to look like. I wanted it to _feel_ like a plastic toy, with some feeling for physical buttons you would virtually press on the toy. Sadly, since I did this all on my own it ended up completely flat, so that one part was missed.

I went ahead into hardcore coding mode with these two things in mind, and managed to advance a lot into what looked very close to a finished entry now.

Day 5 – September 8

Ryan Malm, a fellow js13k comrade, popped up in slack offering to contribute to some entries with music, how could I refuse such an offer? he’s already created awesome stuff for 2 of my entries in the past! (ArcherFire Duet of Aces and Backpack Monsters).

However, there was a problem: Ryan uses soundbox, while the engine I had working used zzfxm. So I had to migrate all the sound support which was a bit fiddly.

I managed to do this, incorporate Ryan’s initial tracks, and program the “soft” buttons that would be used for the mobile version (at least that was the plan…)

Day 6 – September 9

This was kind of the last big push day; some of the things I did included:

  • Updated the “conversations” that would serve as an onboarding for the players
  • Added animations for the pet (low framerate, bopping up and down, blinking with its eyes)
  • Added unicode “hats” worn by the pet as it grows, to make it more visually appealing and make the players feel curious as to what the next evolution step would look like.
  • Also added the “animation” of the food flying toward the pet (very important for the player experience) since initially it just displayed the latest food given to the pet but it was very abstract.

I also put up and announced a public version for people to help me test. That was useful to discover a bug on Safari with the audio which was solved by not reusing audio objects (unneeded, harmful optimization), thanks to Ryan for pointing this out too! I also got some accessibility feedback leading to increasing the size of the “LEDs”, improving the mobile UI, and balancing the game to make the difficulty increase as you progress.

Since Ryan had some spare bandwidth, I asked him to produce an extended version of the main track, which he did ❤

Finally, I implemented web monetization features in the shape of a “hard” mode where you had a completely different pet (a gecko, also reusing graphics from last year).

The game was completed, and I felt happy about it.

Day 7 – September 10

Oh, one last thing before we call it a day…

Gaby caught me playtesting the game and went super sad when the pets died, what a shame! this is not what I wanted for a birthday gift for her!

So I went ahead and complemented the web monetization bonuses with a “chill” mode where the pet didn’t die. You just play for fun seeing it grow (at a slower pace to at least add some padding to get the rewards). That worked both to increase the value of the webmon bonus, and to make the client happy!

The Voting – What did the players think?

This year js13k had a brand new voting platform with a more traditional format (just pick a game from the list, play and rate it, compared to previous year’s 1 vs 1 “deathmatch” mode)

Here’s a summary of the feedback we received:

The GoodThe Bad
– The Music
– The Art
– The web monetization implementation
– Lack of keyboard commands
– The game is too hard
– The “pause” breaks the game flow.

The music and art were cool, of course 🙂 I think you’ll always need this for a successful entry. Competition is more fierce every year. It also helped that my game was SUPER SIMPLE; that allowed having good visuals without a lot of work, you got to be realistic about what you can achieve based on how much time you want to devote.

For the music make sure to partner with someone good like Ryan Malm or QuietGecko. These bytes will be extra worth it!

I was also happy to get some good comments about web monetization, since I really worked towards checking all the boxes, and it seems I succeeded in that. Keep these tips in mind!

[…] Let’s talk about the Coil bonus – the implementation in my opinion is just perfect. You’ve taken care about both – Subscribers and Non-Subscribers. You’re showing the bonuses in a visible way, you’re informing what they are, how they’re impacting the game, what to do to get them – perfect. I also like the idea of the bonuses – I can decide either I want to play easy or hard mode. Although the game wasn’t easy for me to understand right away (maybe you can think about some kind of a tutorial mode?), the Coil bonus is somethin I would call as a perfect implementation. Good job.

Ewa Mazur, expert.

Now let’s talk about the BAD.

And the biggest issue was the lack of keyboard commands, and again I think my biggest mistake: Increasing the difficulty of the game via inaccessibility. I think that’s in general a bad idea unless you are targeting a very specific group. Support for keyboard commands is actually included in the game, I just disabled it because I thought the game would be more challenging in desktop using the mouse and *I* could perfectly play it.

This issue, of course, is non-existing in mobile (the platform for which the touchable buttons were initially conceived). Keeping a different way to interact based on the available input would have been a much better choice, and finding a different way to balance difficulty in case it was needed (or just leaving it like that, with the desktop version being _easier_ than mobile, but still enjoyable!)

October 5 – The Awards Ceremony

We didn’t win, of course.

There are a lot of talented people putting a lot of passion into the js13k every year, and also putting down a lot of raw WORK.

Since the jam is 30 days long, there’s a very broad spectrum of entries with a different quantity of work invested. In my case it was 7 days; this could perfectly have been a 7DRL or similar. With many other things going on it’s impossible to devote a full month to this, but that doesn’t mean you shouldn’t participate.

There is a lot of fun to be had in the challenge, and as long as YOU are happy with the results, and you learned something or made some new dev friends or managed to extend your portfolio with a finished playable game, I believe that should be your main metric of success.

I also warn about this because the scoring system is not perfect, and you may end up disappointed that the game you put so much work on wasn’t “fairly” assessed. In the end, the main point of it is giving you feedback to improve.

This year we were placed #68 overall, #35 and mobile, and #19 in web monetization. I hope the TShirt isn’t stuck in customs this time! 🙂

The Kramora Times # 7, Ananias 2.4.5 released for Android!

It has been almost 5 years since the last release of Ananias.

Well, prompted by a critical situation where the Android version was completely broken due to Crosswalk no longer working in Android 10+, I decided to release a new minor version, fixing that as well as including some minor fixes that had been in the repo for years, see below for the full changelog.

  • Standard Edition
  • Fellowship Edition

In addition to removing Crosswalk and doing some tweaks around to modernize the deployment to 2022 standards, I uncovered a couple of interesting things that will be seeing the light of the day soon enough; the HD layout and the support for localization.

Also, I’ve started the work required to reestablish the iOS version, which had been down for some months. The store listing is available again but the game is crashing on start on the latest iOS versions.

v2.4.5 changelog

Technical

  • Remove crosswalk dependency from Android build.
  • Update to cordova-android 10 including updating build scripts for signing automatically.
  • Update the build process to accommodate with 2022 Google Play deployment process.

Fixes

  • Prevent issue with window.prompt not available
  • Prevent playing SFX before initialization
  • Prevent bug when sorting monsters or player without sprite (dead)
  • Prevent issue with using alchemy with a single reagent using keyboard
  • Prevent issues when using items from an old version save whose Spell no longer exists.
  • Prevent friendlies from using skills outside of combat
  • Hand gifts directly if no available room space
  • Disable pet command button as soon as pet is killed to avoid invalid commands

Known issues

  • The manual is currently pointing to an online version due to an issue with the InAppBrowser loading of local pages.
  • Since the HTTPS setup for the game server is still pending, some tweaks were done to be able to connect to it via HTTP which is no longer the default or acceptable in 2022.

SPID13 – roguelike with Moria maps that look like Moria

I will be posting SPIDs (Slashie’s Project Idea Drafts) in the blog, they will be short ideas for games or other projects I may or may not develop into full projects. Maybe they exist already, or someone will be inspired by them and save me the trouble of developing them.

A roguelike (or maybe an exploration RPG without procgen) with Moria-like maps featuring a lot of chasms; gigantic open sections of underground hollow with bridges connecting them in addition to the tunnels and room dug into the rock.

September 15, 2022 -Misc update

Here’s some things I did the month since the last update:

I completed my entry for the js13k2022, TenderGotchi, with great contributions by Ryan Malm on the audio side, and reusing illustrations from last year made by Mateo Robayo. A complete post-mortem post about it will be out soon.

We had a mentoring talk for Colombia’s Women Game Jam 2022 sharing our experience with Muyscamuy. (Spanish)

I did a random update for ZeldaRL to address some accessibility issues.

I created a video for the House of the Dragon series for Slashbits Retro Cinema, in the same style as the previous Game of Thrones videos.

It was actually two videos because I decided to create another higher-res intro for less super retro people (90s instead of 80s)

I flew to gamescom, where I had good prospects for NovaMundi and our upcoming project, and also met the dev team of Blasphemous and got to drive around Germany with Thomas Biskup.

My talk for the roguelike celebration 2022, “Celebrating Moria – a roguelike before the roguelikes”, got accepted. I started gathering community info for it.

After a long hiatus, I ran the FormulaProc Monza 2022 Grand Prix, no commentary this time, but it was good.

No Survivors – Improved

Out of nowhere, I decided to update “No Survivors”, our original TriJam entry (worked with Quiet Gecko, make a full game in THREE HOURS), pushing the progress we made the weeks after. You can play at https://slash.itch.io/no-survivors. Here’s a gameplay video too.

After we finished jam entry, I thought we could improve upon it a little bit…

This conceptual build features better graphics from Oryx Design Lab but also some iterations I worked with Stoltverd on how the core gameplay could work best providing more tactical challenges.

It doesn’t look like I’ll be able to push this one forward in the near future, so I prefer it to be out there instead of accumulating dust in my git repo. I see some potential here but it’ll need a lot of work in the content part which I just cannot do right now.

As always, I challenge you to beat my score!

js13k 2022 – dev journal – day 1

August 13 – Day 1

Last week I talked with pal QuietGecko about the challenge and told him this year I’d follow his directions (similar to 2020 where I tried to delegate the design of the game and just do the tech). Gecko had some ideas about genetic algorithms applied to bacteria pools so you would see their evolution based on a limited control (adding ingredients, etc). It’s not very clear how this can be fun, honestly. I also let him know about my idea of doing some kind of virtual pet because I want Gaby to play around with it (and I also want to have something to take care of in the dead times at work). I think maybe I could have two entries, a smaller one with myself leading design and code, and another one just coding.

Today, early in the morning, I discovered that this year’s theme is DEATH. Talked briefly with Gecko and he doesn’t seem to have any clear idea right now.

Today was also kind of a busy “parent” morning, or was it? I did manage to work a bit on NovaMundi and even do some live coding streaming efforts (which ended up somewhat depressing rage-quitting after seeing the “1 viewer” count (myself, I guess) for far too long).

Back to js13k, that means I missed the kick-off streaming where they (I think) shared some mini-frameworks that we could use for the challenge, it might be worth looking into them although one of the ideas I have for this year is not to focus on squeezing the last possible byte (maybe even aiming for uncompressed 13KB!). We shall see.

Throughout the day I was thinking about possible ideas, trying to avoid the endless loop of “Must think of a cool idea that is not too pretentious” -> “somebody surely thought of this already”. In the end, I think I have something that clicks with the theme and also ties back to my original ideas. I don’t care much how original it will be (and you probably shouldn’t that can drive you crazy).

RIP (source)

So, remember how the original Tamagotchi could DIE if you didn’t take good care of them? My idea is to take a lot of the format of the classic virtual pets, but transform it into a fast-paced arcade game where you must prevent its death; imagine time is running at 30x, and you have to respond to the needs of the pet quickly or risk him getting sick and dying.

The main interaction will be picking what to feed the pet based on four available and shifting options; some of these may increase happiness but reduce health, and some others may stuff the pet a lot so you should only use them when the pet is empty or it will lose health. The food, happiness, and health bars will decrease steadily, and faster as the pet ages.

There will also be potential minigames you have to play with your pet when you reach certain life thresholds.

Following up with last year’s Distant Friends, the idea would be to keep the visual style in some way; cute characters using vector graphics, following the line all the way to 2019’s Backpack Monsters. The next steps will be taking a look at these libraries to decide if I should instead circle back to mine, organize it a bit and work using it. I think one of the main challenges is going to be providing some nice-looking animations (with a super low, jumpy frame rate).

Since Gaby loves foxes, I guess I’ll focus on having a single fox pet. At least initially. And of course, there will be a “normal” pet mode without the hectic action. 🙂

NovaMundi v0.37 – Destiny of the Muisca

NovaMundi is still available on Steam Early Access! GET IT NOW (or wishlist it) if you like what you see!

Development has resumed in full! The biggest addition for this version is the Perks system; you can now customize your runs by selecting different bonuses, penalties, or just variations of the universe.

The perks window, including some of the future planned perks

This version ships with the following 4 perks

  • Combat Blessing: +2 Bonus to attack for all units
  • Vagabond Defect: -10 HP for all units
  • Destiny traits
    • Peaceful Lands: You’ll be attacked much less often by raiding parties
    • Militia Only: Only “Guardian” units will be available (no Guecha Warriors or Archers)
    • Known Lands: The location of the main towns will be known in advance.
Even knowing the location of the Muisca towns, traversing the rugged Andes geography will be challenging!

Talking about combat, another important thing that is changing is a chance of its pace, taking some steps towards more “active” gameplay. For now, that means the battles start unpaused, in the future, we are going to add more visual feedback on the battle as we extend the combat rules to give it a little more depth (but not a lot! exploration will remain the focus of the game)

In more combat-related things, we fixed some issues with unit selection to allow combat between large parties

That’s it for today’s version! for next week we are planning to release important changes in the “cave exploration” system, providing some procedural Muisca dungeon crawling for your pleasure. It’s going to be big so don’t miss it!

NovaMundi 0.36.2 – Picking back pace

NovaMundi is still available on Steam Early Access! GET IT NOW (or wishlist it) if you like what you see!

This version contains two critical fixes:

  • Cannot load games at all (root cause issues with the MuiscaNameGenerator state)
  • Exploit: Raiding parties not saved
    • This was just missing from the implementation of save/load.
    • Quite a bit of work, however put some things in place that will be helpful when we extend the overworld population.

We renewed our commitment to take the game out of Early Access, this includes a person from Slashware working full time on playtesting the game and coming out with ideas for improvement within the constraints of its development. This version includes some cheat options to ease that work too (You can’t touch them tho).

I’m also in the middle of developing some important improvements in the setup of the runs, being able to customize them and set up the initial party, I hope this will be available next week!

In other news: New coverage! I was interviewed (in Spanish) for ColombiaVisible.com. This one was pretty in-depth containing some details of the story of NovaMundi that are not commonly shared. Also took the chance to highlight the work done by some other members of the team.

Muyscamuy – June 2022

I am happy to announce we have been selected as recipients of the Global Game Jam X Endless Computers microgrant for Educational & Learning games, to further develop Muyscamuy, our Muisca community life and farming sim!

It’s the XVI Century in the Andes. It has been some years since the strangers from beyond the sea arrived in the lands of the Muisca. Slowly but firmly, the Europeans have risen into power, and the traditions and beliefs of the Muisca fade away as their cultures blend together.

The heritage of the Muisca is at risk of being lost… you must lead a Muisca community, farming maize, making offers to the gods, and crafting sacred gold works in preparation for a great celebration that might serve to keep their traditions alive.

We have already started working on adding more “life” to the game; you will be able to see the villagers moving around performing their duties in the community, we also plan to improve the game visually and add cutscenes for the events!

The new animations will reflect some of what is known about the farming techniques used by the Muisca. The goal for July is to have the complete farming cycle implemented.

For now, you can play the current version at https://slash.itch.io/muyscamuy. Make sure to subscribe so you don’t miss the upcoming updates!

NovaMundi 0.36 – Achiote

NovaMundi is still available on Steam Early Access! GET IT NOW (or wishlist it) if you like what you see!

The last development update was from January! It’s not that there was zero development in these months, but I certainly took some time to work on other projects to take a bit of fresh air. Now we are back to your schedule!

A new version is out, 0.36 – Achiote, here are the major changes but as always there were smaller bugs fixed along the way.

Let’s start with exploration: based on player’s feedback I doubled the movement speed in the overworld since players didn’t seem to really like to take their time to look at the scenery 🙂 this of course makes moving between locations much quicker (but the time scale was adjusted accordingly so it all takes the same amount of game time.). Additionally, the time doesn’t completely freeze when you are not moving, but instead slows down to 10% of the normal speed, since it felt a bit glitchy with the full stop.

The random dialogs that expedition members used to say while traveling were removed since they were not really adding a lot to the experience and actually were confusing players who thought they might be real hints to the game mission or things to do.

However, the main reason I decided to push this version to the public was the addition of the hints in the minimap; players will no longer need to refer to the journal and textual directions for the nearby towns; instead, they are added as blotches of paint in the map, put in an approximate location.

As the first step on a sequence of improvements for the towns; the game now zooms into them when you “enter” them. This is just the beginning of an arc of development for the towns, and I am going to incorporate recent research on the Muisca towns as well as usability improvements and tweaks to make them feel bigger and more alive.

The Mac version was finally updated from v0.32.4 (August 16, 2021), so if you are on Mac make sure to update and get a LOT of improvements 🙂

We continue working on a list of improvements for the game; it’s not clear how much longer it will be on Early Access, but I want to make sure of its quality, accessibility, and variety of content while keeping the current base scope. So make sure to keep an eye out for future releases!