EMUUROM Status Update 2024


Oh look — I managed to write the 2024 devlog actually in 2024! Did you expect hearing answers to your burning EMUUROM questions already? You know… The likes of “When is it done?”, “Do you regret upping the scope?”, or “Are the yellow bouncy things mushrooms or what?”

Well, there will be a time for answers… but let’s talk about some actual finished and published games first!

What I played in 2024

Like most gamedevs on Bluesky dot com, I’ve been playing the stupidly large 50-game bundle UFO 50 lately. I’m not a fan of the unrealistic standards it sets for us mortal devs here, but that aside, it’s a masterpiece. I especially like how the devs created essentially a retro pseudo-fantasy console system for UFO 50. Wouldn’t it be cool to release bundles of games made with actual fantasy consoles like TIC-80 or Pico-8 like that? Welp, that’s another one for the ever-growing idea drawer…

Also, Leap Year by Managore was ingenious. It’s a game with knowledge-based progression, a.k.a. a metroidbrainia, a perfectly condensed example of the genre’s captivating core. (Btw, the game I’m anticipating the most right now is of the same genre — Nonolith byJustcamh!)

Thanks to the likes of Outer Wilds (10/10), Animal Well (still unplayed) and Void Stranger (my last year’s GOTY), metroidbrainia has been a rather trendy genre lately! Even though EMUUROM isn’t a “pure” example of knowledge-based games, it has many metroidbrainia elements baked in, so it would make sense to ride that wave. Uh oh, I have to get the game released ASAP, don’t I?!

Events I attended in 2024

NGC

Last spring I showcased the game at the Nordic Game Conference in Malmö (thanks, Business Oulu!). When I got there, things didn’t start out smoothly (see image on the left). Luckily, the graphic was changed in time to the correct one (see right), and I could showcase the game as intended. However, the spirit of Bobware still lives on…!

Assyt

This year I participated in the Assembly demoparty/video games extravaganza for the first time, and gave there a workshop on TIC-80 development. It was nice to have the workshop right next to a fantasy console demo showcase, to really see what the platforms are capable of… maybe I should make a TIC-80 demo sometime? Idea drawer, we meet again.

Pictured: Not the quietest of environments to give a workshop in

Spel

During the last summer days of 2024, I spent a month at Spelkollektivet, a gamedev community in Väckelsång, Sweden, housing solo and team developers from around the world. It was a cozy experience — not only did I make new friends, but also a ton of progress with late-game content. If you have the opportunity, and are interested in communal living, I wholeheartedly recommend going there! (A documentary about Spel is out as well, check it out.)

Top left: Stanley. Bottom right: The famous frog stone of Väckelsång

NGS

Back in Finland, I gave a talk about TIC-80 game development at the Northern Game Summit in Kajaani. What a lovely event it was: they gave all speakers a unique painting, and even arranged a get-together as a thanks! This is now my standard for what to expect from conferences. Anything less won’t do!

The place of the get-together, not the conference site. Kajaani isn’t this urbanized

Oh yeah, I guess I should record the talk some day. Uh oh, the idea drawer is already overflowing… NEW IDEA. Maybe next year, instead of focusing on events and other tangential activity, I should focus more on actually finishing the game!?

Cool cool, but how’s the status update

Okay, enough with the vacation photo slideshow. If you’re only interested in the status update, you can skip the previous chapters and start reading from here onwards. Because…

“Konsepti”

A year ago, I spoke about the thing seasoned devs warn you not to do — upping the scope during production. Alas, I did it anyway. I wasn’t unaware of the consequences, though; I was sure this would add at least half a year to dev time, most likely a full year.

A year later, it seems that one year was… almost enough! I’ve now implemented about 80% of the so-called “Konsepti” feature I introduced in the last devlog. And you know what? Zero regrets! It did make the game a lot better. I don’t even know how many gameplay hours it added, but I do know it did make EMUUROM’s world a whole lot more interesting, more cohesive and more complete.

The boss not rushed

After having most of Konsepti done already during the summer, I entered Spelkollektivet with one goal in mind — to implement the feature I had dreaded the most, the final boss. Fittingly, it felt like the final boss of EMUUROM development for me. Something I had procrastinated on for months. So of course…

…oh, it’s done already. It’s beatable, somewhat balanced, and despite being a shaky house of cards (like the whole game tbh), it seems to hold up for its duration. More playtesting is surely needed, but I’m happy with it — finally, the game can be beaten!

Hm, what?

No, of course you won’t get to see it. Instead, here’s, uhh, a picture of some real-life EMUUROM from Spel.

What, you want a real screenshot? Okay, here’s the fancy new title screen I added recently.

See, NOW it’s a real game! It has an options menu and all!

A byte-sized bump in the road

After beating this final boss of development, I still wasn’t nearly done. For starters, I had to implement the cutscene that happens after beating the boss, and unfortunately (as I had meticulously documented), the code space was starting to run out!

You see, in a fantasy console like TIC-80, everything is limited - even the characters of code. The free version is limited to 64kB, and even the paid pro version has a limit of eight times that, or 524288 bytes. After adding the final boss, I had a mere 1521 bytes left… So what gives? Do I have to leave something out?

To save space, I was prepared to remove some features, like the demo mode screen (6404 bytes). I wasn’t sure if those savings were enough, but fortunately, I found a better solution: in the TIC-80 Telegram group, I heard about a TIC-80 minifier tool called Pakettic written by a Finnish TIC-80 demoscene developer Pestis! With Pakettic, I could not only compress the code into a smaller package, but also start using good (but space-using) programming practices that used up my precious code space, like comments or descriptive variable names (gasp!).

It wasn’t all beer and skittles, however: Pakettic didn’t work with EMUUROM out of the box. After all, it was mainly used for much smaller demoscene projects, not for epic megagames like mine. So naturally, it just crashed when I tried to use it for the first time.

Luckily, Pestis was quick to help and made the necessary changes to Pakettic to successfully minify EMUUROM! Suddenly, the size was shrunken by 80 kilobytes. Yay! Also, as a happy side effect, Pakettic was improved in the process, taking more edge cases into account now! Open source development rules.

Guess where the compression happened.

There was one downside with compression, though: the fact that I had to compress the game before building, which meant the build process took now 20 minutes instead of the previous 5 seconds or so. Something to remember when having to push acute bugfix builds to Steam and Itch…

What’s next

So, that’s what happened in 2024. But we’re not done yet! Plans for the next year are already in place, so…

To do: the rest

So, choosing to add “Konsepti” turned out to be the right decision. As a result, the remaining pieces fell neatly into place, and I have a crystal-clear roadmap for the rest of the game. I already made the final cutscene, so my todo list only has 19 critical items left. At this point, even taking a glimpse at the issue tracker spoils the game massively, so you’ll have to make do with this paraphrased version:

  • fix bugs
  • make [REDACTED]
  • add [REDACTED]
  • fix text entries to be lore-accurate
  • final [REDACTED] puzzle & [REDACTED [REDACTED]]
  • do playtests
  • fix the bugs from playtesting
  • make a release date trailer
  • [redacted Redacted] and route there
  • [REDACTED] sidequest
  • some more bugfixing, just to be sure.

It’s not that much, I think! Or maybe it is? I dunno. I’ve already learned that it’s dangerous to think you’re close to the finish line: there’s always a bug or unimplemented crucial feature lurking behind the corner. So the “no promises on release dates” strategy continues. Also, compression with Pakettic gave me a devilish opportunity to up the scope even more, and I really! need! to! resist! the! urge!!

Shrimps is bugs

Btw, my Discord server has been quite active lately, very much thanks to MH_25, who claimed the world record for both the EMUUROM demo and beta versions (link in my Discord!). It has been fascinating to see how the optimal route has evolved in a short time. I did deliberately leave room for sequence breaking, so this was planned — hoo hah! Less fascinating was to witness new game-breaking bugs being discovered. I just wanted to create a new end-of-the-year playtest build for new playtesters… can’t send them a buggy build, eh?

This is my life now.

So…. back to work. I mean, right after I’ve written some witty closing wordsm. AND done with the proofreadign

Files

emuurom-0.8.7-demo.file 3.1 MB
Version 37 81 days ago
emuurom-demo-mac.zip 1,010 kB
Version 38 81 days ago
emuurom-0.8.7-demo.exe 2.4 MB
Version 41 81 days ago

Get EMUUROM

Download NowName your own price

Comments

Log in with itch.io to leave a comment.

i'd say your game is a pure metroidvania.

where you don't need upgrades to progress, and it's more through solving a puzzle.

you need one upgrade - the scanner! :D

(+2)

cannae believe this is being done in tic-80. one of my biggest anticipated games!! i LOVE that you're taking your time!! great read!

(+2)

thanks for your support! ^^

(+1)

Out of curiosity, how many emulator bugs have you run into with TIC-80? I tried learning it, but ended up with a nasty memory corruption bug that was dependent on the exact C linker used, that could cause a wide variety of effects, and I'm worried that the entire TIC-80 codebase is that bad (as a friend I roped in to help triage evaluated)!


It's hard to try to make or learn it when the "hardware" is so very badly bugged >.<

Uh oh! I hope that bug you found doesn’t bite EMUUROM at any point.

I’ve encountered a few bugs in TIC-80, but nothing game-breaking, really. Mostly they’ve been behaviour of some editor or an API function changing in a newer version of the engine. I’ve reported the issues, and most have been accounted for.

A core problem in the development process seems to be that changes to the codebase are applied without rigorous testing. E.g., right now, a recently applied update to Lua version 5.4 has broken compatibility with some carts, and many hope it will be reverted soon… Oops!

(Naturally, this is only a problem in the master branch version. I’m perfectly content with the version of TIC-80 I’m using, 1.1!)

(+1)

This one was pretty nasty, as it crashed TIC-80 itself, and took some major debugging as the effects were "random" based on the C linker and compiler! It was ultimately some really sloppy memory management (or rather, not bothering to check at all), and makes me concerned that doing 'safe' and 'sandboxed' things will still result in nasty undefined behavior!

But yeah, hopefully they either revert the lua version or come up with a way to switch lua versions on a per-cart metadata or something!


If you're curious, here's the issue report:

https://github.com/nesbox/TIC-80/issues/2611