In this long overdue blog post, I will talk about the current state of the C64 version and development of the PC version. I also talk about setting up the Steam page and some musings about staying true to the vision I got as 16-year old – especially when I found my old design documents from an old floppy disc!
Zooparty 2024 presentation
Undead had it’s first public playtest sessions at Zooparty 2024, where it was playable alongside the PC version – in a rough early state. It almost didn’t happen, since in c64 conversion there emerged some many last-minute bugs that caused lot of issues, and it had to be gaffer taped together to stay at least in a semi-presentable state. But, we have the game running on breadbin Commodore 64, now; first time since 1992.

Still, the reception was better than I expected (I was so frustrated that I was nearly going to pull out of it altogether). Biggest surprise was that the C64 version had an unexpected super-fan: a small boy, approximately 5-6 years old who became absolutely obsessed with the game, playing it for hours! His dad even asked him if he didn’t want to try any of the other games that were present ? (there were other C64 games and some coin op cabinets, like Commando, competing for attention). Kid’s response: “NO!!”.. and off he went, tapping the button like person possessed. He got over 20.000 points (I only got 1600). Good thing that I didn’t tell them that this game is supposed to have an age rating of 18!

I tried to analyze why this kid got so obsessed with the game, because I honestly was utterly dumbfounded; the demo had in my opinion maybe 2 minutes of enjoyable gameplay. But hours? When there were other games around? I could only come up with following explanations:
-Game starts immediately and is very easy to figure out – press single button to punch
-Zombies probably look quite funny when they wave their arms when they approach the player; perhaps quite like kids having a fight in a playground ?
-Game is hard, in a way that it is very easy to die very fast, but, you can try immediately again.
-Therefore, it creates a very quick loop of “fail fast and try again”, which actually can be addictive if done right. That is what I hope it would turn out to, but considering how frantically the demo was put together, this was not what I expected. Still, it proved to me how important it is to observe the game testing live, rather than just send a demo to somewhere and receiving written feedback.
It also reinforced my beliefs how many modern games are actually dragged down with “bloat”, which means; too many buttons, too many options, too many cutscenes, too many tutorials, which happen when the game tries to cater to largest possible audience, while trying please everyone who whines in the internet. Combine this with casual-level easiness and you have bloated piles of tiresome games that feel like a day job, and with served-on-a-plate “achievements” that mean nothing, since easiness takes away the feeling of any accomplishment. I believe personally that the sense of achievement must form inside the player’s head from his own actions, rather than game telling the player.
Still, the C64 2024 Zooparty demo was rough, so rough that there is no way I will let anyone play it again. Technically, it’s a convincing demonstration of clever coding from Pekka, but as strictly a game, it is too unfinished to be presentable for anything else than a tech demo – a proof that we can (or, Pekka can) do this game on Commodore 64. The rest is just hard work.
The PC version that was on display lacked the most fun element (imho), which was grab / throw / hurl, I had to disable them because they were so buggy at the time. I asked everyone present to try the PC version as well, to check how they did compared to the C64 version. The C64 version has not been developed since that time, but it will get there – Pekka will resume work on it once the PC version is far enough (which is about at this point, now).
Refactoring the PC version
The PC prototype, so far, was largely glued together from pieces of blueprint scripts that I copied and modified from the Udemy course I bought. The tutorials I went through were *great* for figuring out the basics, but not so great for scaling the game. Which means, they only supported one enemy and one weapon and the interaction was not that complex – which meant that anything more complex interaction such as grab was bound to create problems.
This mean that I had to start to go deeper on programming, and had to figure out things like inheritance, components and interfaces. Now, objects such as actors/pawns (ready made building blocks to have quickly a character set up) in Unreal are largely built from inheritance and components by default, because that’s how the Unreal Editor is configured, but I had to really understand what it meant. Interfaces I had to go and learn on my own as they were not discussed in the udemy course. I bought a book (Blueprints Visual Scripting for Unreal Engine 5), because one thing I learned when I watched “professional” programmers in game industry for few decades, was that if you want to have some actual in-depth information, you have to buy a book. “But wait!” you say. “This book will be outdated within a year!”.. yes, possibly. And so is every internet link you got on the subject (and try to search for a link that is relevant only to the version of the engine you got!) But there is also more. I have not seen a single (free) resource on internet that goes through the subject thoroughly, and reliably, unless it’s behind a paywall, and you still can’t be sure if it is going to stay there. But if I buy a book, a well written book, it’s mine forever. Even if the engine gets overhauled, you can still figure out many general programming concepts from it.
So, at this moment, I did not know yet if I was going to make Undead *a real game* on PC, or whether the PC prototype was going to be some gaffer-taped sad monstrosity only made to show Pekka how the gameplay and animations are supposed to work. I did not have any expectations, and frankly, I was not sure at all if I could be up to it..
But what happened was that I kept at it, quite persistently, and figured it out. I recreated all the game logic architecture in the game, replaced and refactored everything to my own design, since there were no examples anywhere on how to make a game mechanics quite like in Undead. Almost all the blueprint calls were replaced with interfaces, and other systems like health components were added. So, you can say: I really coded this.
Eventually I noticed something: I can do this. Me, the lowly artist, can actually learn how to code games. And if anyone ever thought I never can – they were wrong. Eventually, all the essential gameplay systems worked. There were some glitches, but they were stable enough. Then, I started to add widgets and score system and UI. All went more or less effortlessly, though Unreal’s Widget editor is a clandestine mess of options (like everything else in Unreal). Some trouble went to figure out how to animate widgets, since unreal does not really support animation for them. Then it was time to start planning enemy attack waves and game progression. I soon hit some interesting dilemmas that were oblivious to me at first glance, but only revealed themselves when I needed the game to behave in a certain way.


First, it was given that Unreal version has to work EXACTLY like the C64 version, or the design decisions made there would not carry over. The devil was in the details. One of the challenges was that the scrolling in C64 version is streamed from cartridge, like explained previously. Certain amount of data can be streamed in certain speed, which in turn results in v e r y slow push scrolling. In a beat’em up, it’s not a necessarily a problem, since this is not a run and gun game, you can always hold the background until player has cleared the screen. This could be preferable even.
But how to make UE version to repeat the behavior in C64, where scrolling stops? Because essentially, UE is not a 2D engine, and this is very important thing to understand – you can not expect it to show you a 2D screen which behaves like a 2D screen, not to mention a 2D scrolling that suffers from lag caused by data streaming. What you have instead is an illusion of a 2D screen – which means that you have a 2D plane, which is bolted to a camera, that points to the screen, and which is attached to the player character.
So, to stop the scrolling, you had to get the player to walk into a trigger, that will change the focus point of the camera to an invisible box, that is spawned and bolted onto the plane, when you don’t want the scrolling to continue. Then, you have to also spawn collision boxes to the edge of the screen, that will tell the player to NOT walk outside the screen limits. There were no tutorials explaining any of this – there was a tutorial for explaining how to hold the screen scrolling, but everything else I had to figure out myself.

And there is more! I wanted a GO! sign and a finger to point out to the player that you need to walk right now. But how does the game system really know when it has to appear? Reading from player coordinates, right, since the scrolling happens when player passes to right from the middle of the screen. But, they can’t be real coordinates since we are not in 2D engine, so we need to read them from screenspace coordinates, which are read from what the camera sees on the screen.

Then, I kept finding more and more details that needed to be implemented so that the game plays and looks good.
Melee weapons needed a health system – otherwise players would just hack their way to the end, and I didn’t want to “solve” it in the “professional” (snort) way, which would have been nerfing the weapon – favourite method of any modern game studio (bleurgh). This is about feeling the power when you wield it! Splatterhouse “solved” this by forcing the player to drop the weapon when they exist the level, which was just stupid. My solution is also ridiculous, but not quite as incomprehensible – at least you can always pretend that the weapon was poorly made. So, cleaver will now break after you land a hit with it 6 times. The health points of the cleaver have to show on the UI.
The Jatimatic needed ammo system that reflects on the UI. So, in the UI, if you see Jatimatic, you can see whether it has an ammo clip attached or not. You shoot the clip empty, and the ammo clip disappears. You have a full clip, and collect another, and you see a small clip approaching. I have always preferred this kind of “show, don’t tell”-kind of UI rather than just showing a text list of your variables. At this point, there were lot of blueprints communicating with each other. Player blueprint checks if player is shooting. Jatimatic blueprint generates the muzzle flash and checks for hits with the enemy. Ammo blueprint checks if the player has collected the clip. Ammo UI widget checks how many clips you have collected. And all of these had to communicate with each other.
One head-scratcher was issues that emerged with the enemy AI when player pawn dies. Issues appeared only after I made the enemies stop attacking when player died.
This was because it looks stupid when they bite on thin air. Which meant they had to removed from the player target. So when player was regenerated, they didn’t pick up on it any more.
And why this happens? Enemy AI checks out where the player is and then names player pawn as the target. If player dies, and is restarted in a checkpoint, the enemies lost their target. This means that at the checkpoint, if enemy had tracked you previously, they would now ignore you. There were ways to prevent it, but they would have changed the game flow and progression from what I intended. Splatterhouse solved this by restarting the whole level, except level one, but there they also cut off the enemy walking area where the checkpoint is, so it does not matter if all enemies are respawned – all those from the beginning of the level can’t walk back at you where the checkpoint is. I guess that works, but it’s a rather crude solution.
I solved it the Capcom way. It is kinda funny to see that japanese developers had this same issue when they were making belt scrollers. Yet you never think about it when you play the game – this is because if the game plays well enough, you never pay attention, you just take everything that happens for granted!
So anyway, solution I chose was that nothing will never be destroyed and respawned. When the player dies, new player will be dropped off the ceiling, and he will knock the enemies underneath him when he lands down, killing or damaging them by impact (this is FUN). And this was obligatory, since otherwise the enemies would have swamped you the second you got up.
Another visual issue was that zombies behaved too much like tin soldiers, not like animated beings, because they were too much in sync, and always flew in same arc when punched. So I had to add craploads of random float ranges everywhere to give careful amounts of variation for their movement to make them look little bit more organic.
And so on, the list of all those little things that need to be figured out to get the experience you want AND to make sure that it plays identical to the C64 version down to the last detail can be quite excessive. And it is quite fun and educating experience as well. Things that are very, very easy to do in C64 can be very difficult to do in Unreal Engine, and vice versa. In some aspects they almost seem like polar opposites. But as Pekka enjoys to figure out how to do things in C64, I enjoyed a lot figuring out how to make them in Unreal Engine. There was one limit where I did not want to replicate the C64 version, and that was the slow/janky vertical movement of the sprites. While I dont have problem with it on C64 version, I did not want to emulate that on the PC version. Obviously, tricky jump puzzles will be out of the question.
There was one thing I couldn’t figure out how to do, and that was score sprites. At one point when making the C64 version, Pekka suggested that we make the score display from sprites rather than fonts – probably because we were in hurry and it was faster for me to make numbers 0-9 from sprites than make the entire font set where all the fonts had to be as large as two sprites each. The C64 is built in a way that it makes having sprites as score fonts trivial. However, the asymmetry between Unreal and C64 was quite extreme on this one, as in Unreal they turned out to be a real pain. First, Unreal uses vector fonts. Our score sprites were multicolor bitmap fonts. Unreal USED to have bitmap fonts in earlier versions, but they were discontinued in later versions of the engine, when people just simply didn’t use them. And there aren’t really such a thing as multicolor vector fonts, at least I did not see any evidence of it on Unreal. Youtube videos were, unsurprisingly, not helpful. Some tools were there for custom multicolor fonts, and they were expensive. Eventually Jarno Elonen came for help (my friend from Housemarque days) and he figured it out. He had to do some hacking around it, since he said “Unreal mysteriously does not provide any function for figuring out the exact size of the sprite” -which is true, all my UI images were scaled by ‘fuck around and find out’-method since no one notices if the scale is right. But with the different sprites presenting numbers, this was bound to be little bit more important. So, now we have the UE version matching everything that is on C64, and it has a coherent style.
Adding new enemies
Eventually, the game system felt complete and stable enough, and player / enemy code clean and scale-ready, so I was able to move into a long awaited phase: Adding new enemies! This was big, since we have been staring at those same blue zombies since.. I don’t know, 2020 ?
I designed the new enemies by approaching simultaneously from two very different angles. Feel and Function. I need to have a clear idea on how I want the enemy to feel like, and how I want it to function within the game system, and how these things complement the game system. Ideally, once the foundation of your game is set, everything you add there will complement that exists there. This is how it should be done – I haven’t always witnessed that in “professional” (snort) game studios , but I sure as hell have seen people wasting time and money on by trying to do it in any other way.

I had already created a gallery of different enemies some years back, but now I wanted these new enemies to be based on existing enemy code so, that I pick and alter the existing features of the first prototyped zombie to create these new, let’s say “sub-class” zombies. By extensively playtesting the first prototype, I knew how the pacing and the tempo was with that enemy with the player interaction, and rather than try to squeeze the existing player-enemy interaction and game parameters to fit into the pace I want, I create new enemies for faster-paced gameplay, while keeping the existing zombie intact when I want some tougher enemies for additional challenge. The overlaying principle anyway is that this is a reaction-based gameplay where you have to quickly figure out your next maneuver is, or you will be outnumbered (I am not going to go into deep details this time because I don’t want AI bots to scrap me on how to make games, and I don’t want to encourage anyone to carbon copy this. Besides, you should figure out your own way of doing things based on what works for YOU and excites you!)
So, here is pixel tests for new zombie types. These would be then used as start frames or base frames for their animations. They are first drawn against background to make sure that they fit against the scenery.

Now, some of you may wonder why I didn’t start making new enemies and levels earlier. This is because I know from experience, that if you start by adding content, without a solid foundation, most of your work will be wasted. This is because you are not going to know if your ideas are going to work within the foundation, and if the foundation there is badly executed or glitchy, you run a risk of arriving at wrong conclusions on what is supposed to work or not. Doing a hobby project without funding gives me the luxury to work on the foundation as long as I need – as opposed in a scenario where you have to work -often for financial reasons- with external parties who do not understand game development and who just want to see more features to see that they have “their money’s worth”. (I could give some pretty extreme examples of what I have seen some producers at major publishers do, but that would be outside the scope of this blog.)
Implementing new enemies in was easy; I already knew what I wanted from them, and I was able to use existing code and recycle same animation systems, so I only needed to make matching animation sequences for new types (using whatever I needed), and then I only needed to modify the duplicated code a little bit, as everything was quite modular.
But did they work without problems? No, of course not, I found out some new bugs and glitches when I implemented them, and the few existing bugs that I knew about started to manifest themselves in a more aggressive manner. But all of this was expected and none of it was critical. What was critical however, was the realization that if you duplicate the code, you duplicate also the errors. I knew this, that’s why I didn’t start on any new enemies until the first one was working as well as I could possibly make them work. But now I had to polish them to work 100%, because I knew that if I don’t act now, any debugging work will be multiplied by the amount of enemies that would be in the game, making fixing even the most trivial bug into major pain (some of this could be diverted by using more inheritance, or more components, but these all come with their own caveats)
-WHO THE FUCK CARES, this is about having fun, not about pleasing some narrowminded fool who has a stick deep up their asses.
Eventually, I got them all polished enough to publish some debugging clips, which started to get quite a lot of attention (for a hobby project, that is). People seemed to like what they saw, which was nice. But I noticed an emerging pattern. As I have been pretty relaxed about this, I shared clips whenever I felt like sharing. But those who watch the clips do not know anything about the state the project is in. They don’t even know if they are watching Commodore 64 or PC. So, I started to get the comments about debugging lines being visible, to resolution “being too sharp for C64” to comments wondering why there is no music. So pretty much everyone was expecting to see some finished stuff, or just being simply oblivious to what was going on, as obviously no one commenting the youtube videos on my channel reads this blog. Sigh. So, this has forced me to reconsider a little bit what I should be putting out there. Especially since there is lot of persistent misunderstanding when people watch the Unreal-created PC demo and think they are watching C64 game. Well I am happy that it feels like real C64, but it is not..!
Preparing the Steam release
Finally, I also was getting to a stage where I had to seriously consider a possibility of an actual PC release. Where to put it? Steam? How? Luckily, I have contacts in the game industry who had extensive experience about this, and they taught me some basics about self-publishing on steam and marketing, and what to expect. This gave me the confidence on how to proceed. And eventually I made the call: this WILL be out for both Steam and Commodore 64.
I registered the Steam page, and started building it. Then I realized; I need a proper gameplay trailer NOW, not 10 months later. This is because in indie publishing, especially on Steam, you need to start collecting wishlists 6-9 months prior to launch. Having a good wishlist count means that you might have a chance to appear on Top 10 wishlisted games list on Steam Store. Which means; lot of free exposure. So, if I am going to start now, it means that I have to make the trailer that will make people interested about this game in serious way. That trailer has to sell this game to you in the first 10 seconds when you watch it. Which means that it’s finally time to put the enemy placement in, properly, so it plays exactly as I always imagined it to play.
Turns out, there were some specific nuances about enemy spawning I had not fully thought, that came as a result of the low push-scrolling, so I had to spend time developing it – also, the push scroll meant that screen had to stop when enemies arrive from the left – there is no walking back, since it is too hard to do on C64 due to streaming, and you don’t want the player to beat the game by simply walking away from the slow-lumbering enemies. And I didn’t want to “fix” it by throwing away what I already got. Which is what happens in “professional” (snort) game projects a lot – sometimes they get an idea, get a problem, throw away the idea, and try 10 other ideas so that they don’t have to solve the problem, and finally come back to the original idea when they wasted months on trying make the other 10 ideas work that were supposed to sidestep the original problem.
Then, I noticed that when I really started to throw the enemies around, all kinds of minor glitches started to show; sometimes when you hurled the enemy against others, they registered hits even when there was no contact. This turned out to be way bigger issue than I expected.

What I eventually found out was that; unreal makes characters as objects that contain certain hierarchy, which are built on inheritance. Any collison box is a child of a pawn. Any general reading for player detection uses a whole pawn as a reference. To make multiple different attacks and interactions work, I had to use interfaces and use separate collision channels so that they don’t leak to each other. But for AI player pawn detection and hurling to impact to work, I needed to call for collision channel directly, and that in turn always called the whole player pawn, which in turn included every collision box beneath it. This meant that the collisions were always leaking somewhere through inheritance, either the hurl impact always hit the player detection channel, OR if I disabled the pawn channel, it meant that communication was lost; you could not pick up items, OR the enemy could not see you. Perhaps there was something that I missed, but for all that I could see, it was clear to me that one of these had to be rebuilt.

I then finally did what I originally tried to avoid a year ago – use line tracing for enemies to detect the players. How silly was that for me to think it would be too hard. It took me one day to rebuild it, and it was super easy – well it wasn’t a year ago, but I had come a long way since then. I spent way more time on trying to make a system work that was wrongly constructed in the first place, just to avoid redoing it from the scratch. This was an example of “sunk cost fallacy”-thinking at it’s finest, which proves that I am not immune to the effects of “professionalism” (snort) sometimes.
But now, everything worked, game was 100% polished and bug-free, and I took great pride from that. You have no idea what bug-ridden messes games usually are in these days, when devs are just scrambling to put some miserable shit out to get their money. “Fix bugs later” became the motto to stay since internet updates enabled it. That kind of thinking is a cancer and I wish it could die but I may be alone with this. The stupidest thing is, fixing bugs afterwards after all the content is done will cost you 4-10x amount the time (depending on the scale of your product) than spending all the time upfront fixing every bug. That’s why I haven’t added new enemies or levels or other features – I keep fixing everything that’s in first. It will also give me much more reliable idea on how my design decisions are working. I don’t think that I would have had this luxury, if there had been an investor or publisher or a manager breathing down my neck the whole time.
After playing and recording the polished build for a day, I got 4 minutes of good-looking material. I edited them down to 45 seconds. Then I showed the result to my friend Mikko Huovinen, who gave me suggestions, and I trimmed it down further to 30 seconds- and here we are now, 35 years after the start of this project we finally have our FIRST OFFICIAL GAMEPLAY TRAILER! Took me only 35 years!
After I submitted the trailer to steam store page, I proceeded to fill out the rest of the details. There was a survey for age ratings. Yes, there is lot of violence. But in 120 x 100 resolution. Still, one of the player death sequences is so gruesome that I can’t post it on social media (I haven’t shown it anywhere in public). So better tick all the boxes with violence. Drugs? Yes, Jon is a cyborg and he can pick up drugs and consume them as he can metabolize pretty much everything in harmless way. Better put up warning to the players “CYBORGS CAN DO DRUGS. YOU CAN’T” – obviously it’s a joke. This is a game for middle-aged people who long for arcade games, not kids who play Fortnite. And it certainly is not something you should be taking seriously. In any case, the amount of pixels is so low that no one can make out any of it. Sex? Yes, I’m open to it, if I get an idea that makes me laugh, and it is not too out of place. No one is going to get aroused by breasts that are 5×10 pixels large. In the end this is still a zombie apocalypse, not a temptation island (now that I realized this, zombie apocalypse in temptation island is something I would DEFINITELY pay to witness, I have to think about it.. maybe a DLC?). So yeah, 18 is the age rating for Undead. Which means it will function like a honey pot to anyone UNDER 18, of course. That kid is going to be so happy when he gets his little paws to the finished game..(I am joking, of course). But worried parents should not lose sleep, this is simply too low-resolution, unrealistic and ridiculous to offend anyone (But if someone does get offended, then good. That’s better than no reaction at all) I often think that if Beavis and Butthead designed a game, it would be a bit like Undead. This is the vision that I am trying to preserve.
Finding the original storyline from floppy disk image

This turned my attention to plot. I went through all the old disk rips I did back in 2006 or so, to see if there were any old graphics left that I haven’t yet salvaged. Then I bumped into a previously unchecked disk image file that contained the first plot / story draft for the game I wrote when I was 16. I had no idea something like this even existed, so finding it now quite suddenly was quite a revelation. It was quite funny (in my opinion). I realized that you can only write toot like this when you are a teenager. When developers get older, they try to rationalize and analyze everything, take second guesses, and forget that things could be just for fun. It is too easy to fall into a trap where you spend all your effort in trying to prove yourself and find validation, rather than just enjoying yourself and having fun. The merciless ecosystem of the game industry also encourages this to a maximum, where everyone around you is extremely argumentative and tries to find a way to prove that your ideas are not any good (but their ideas are). While it is often good to be able to explain WHY your idea needs to be in; I also believe that too much of it is sometimes damaging to creativity.
So, I will do my best to preserve all that fun I had in my mind when I was 16, and keep my adult tendencies at bay as much as possible – I owe it to my 16-year old self. I also believe that the game will benefit for it. I believe in rather old-fashioned way that people still look games for distraction and entertainment, rather than be reminded by same issues or problems they see daily from news or social media. /end of rant
Then I had to create a discord channel, as this was advised to me as of being important. I am frankly bit suspicious whether this has enough audience to warrant such a thing, and I don’t know if I am necessarily the right type of person to host and maintain a discord channel. But I will give it a shot. I can always close it if it does not work for me.
Promotion art

Final thing I had to do for Steam was the capsule art / promotional art. I really did not want to, at least not right now I wasn’t really feeling it. Making good art takes time and energy, and while I still know how to draw, I just didn’t feel like I have the energy or time to do it – but I did it, because it had to be done and because I prefer making everything by hand and by myself.
However, the steam library hero and logo combination got rejected – not because of the shitty quality of my drawing, but because I forgot to make the logo transparent. Since this meant another 3-4 day delay for re-review, I figured that I could just as well re-draw it.

I have already figured that my drawings always end up better, if I do them on paper, so I did it on A4 and then inked it with brush pen. It did turn out better, though now I feel that the ink lines look too thick and clumsy. Sigh. I just can’t get the balance right if I rush it. But now I have to move on, I can’t get myself stuck on the promo artwork. I will have to rework it by the time the game gets closer to release. Still, it’s kinda fine as promo art, for now. I am happy with how the C64 colodore palette turned out – and I think this could be converted to C64. Would be fun to see this as an animated title screen !
Differences between C64 and PC version
Just when I had the trailer finished, Pekka pointed to me again that the play area was narrower in the PC version than in the C64 version, which would obviously cause discrepancies with the enemy attack wave design and gameplay in general. I fixed it by changing the ortographic camera width settings, and of course, I had to fix all the routines that concerned camera management and player screenspace checks. This, in turn, caused black bars above and below the game area, which I can forgive on C64 but not in the PC version. So the only solution is going to be that in the PC version, I will expand the play area vertically to fill the bars.

It’s not dramatic change so I can live with it. As a principle, I can accept minor cosmetic changes in the PC version to make it look bit more polished – this is because most of the players at Steam won’t understand why the screen has to have black bars. With the same logic, I can also replace the X-expanded sprites with full size sprites, and give each sprite character their own distinct palette. If I wanted, I could have drawn full-screen backgrounds and have massive boss characters or animated backgrounds, but I am not convinced they would have been worth the effort – the whole point of the thing is to have a game that looks almost identical on PC and C64, and pushing the PC version too much above the limits of C64 would diminish this claim. When I work on the eventual 16-bit version (be it new version of the game or DLC), I will make everything “properly” as good as possible.
Here is a link if you want to wishlist this on steam. Thank you very much!
https://store.steampowered.com/app/3848630/Undead/
To join my discord server for more frequent updates about development (hopefully), here is a discord invite link: https://discord.gg/8BGnmMkG8P














































