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).
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 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! 🙂
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.
Any Device via the Official web version, just point your browser there and you’ll always get the latest version.
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.
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.
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
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.
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.
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)
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.
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).
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. 🙂