The first milestone for Meonlawel almost reachedPrint page
2020-08-23
Summertime is not helping my ongoing projects - that's for sure. Additionaly, in mid-June, I came across a Reset64 4K 'Craptastic' Game Compo I simply couldn't resist... so now, while I am waiting for the results (will Bring back my bones 4k do well?), I can finally focus on my long term project, Meonlawel. It is high time for that too - September is around the corner, and this year I've decided to achieve the first milestone for the cRPG game project I started in 2007. It has already been 13 years in the making, but in 2011 the scope exploded dramatically as I was rewriting the game from BASIC to assembly. That's when I started learning assembly. In this post, I would love to share the progress with you, and ensure that no more scope explosions should happen in the future as it got much more stable.
You probably don't know that I've been skateboarding for the last 5 years, at least twice per week. But in the summer, of course, I do it almost every day. Balancing it (sic!) with my hobby game projects isn't an easy task when you want to keep the momentum going for both. But without a doubt, skateboarding helps me to balance my life and still have great fun writing the games.
As Meonlawel is a long term hobby project I've started rewriting from BASIC in 2011, I don't expect to finish it anytime soon. It's not a secret I really like to work on it only when I feel I have a good idea of what I want to code or to draw. Anyway, after so many years of thinking about this project, I finally wanted to capture the general idea behind the whole world. But before I start building the vast world that will give Meonlawel its identity, I need to provide it with strong technical/system foundations. This is how I've decided to define the first milestone for the game: a playable prototype and a visual hint of what it will become. I hope you'll get hooked.
The first milestone covers almost all different aspects of the game: discovering, fighting and interacting with the world, in different times of day and night. So far, it's compiled into 128K cartridge, but based on the result of this milestone, I expect it might even be too tight to fit in 512K cartridge. After 13 years spent on the development on and off, here is what I've managed to put together:
- ability to load world location environments like villages, cities, buildings and their interiors, all constructed from 16x16 hi-res bitmap tiles
- colour scheme of the world changes depending on daytime (dawn, day, dusk and night),
- experiments with the rain effect - and the first results look really great!
- a quite unique and efficient parser to interact with the world objects
- a few environment animations, e.g., opening door, water animation effect
- dialog boxes with a custom font used to display text messages with or without a character icon
- first, basic turn-based version of battles where you can fight against 2 types of enemies with their own stats
- a basic inventory array system used in battles
- a world location editor where tiles can be also defined, it's not ideal yet but serves the purpose so far, and it's written for C64 in assembly which helps making graphics on the real hardware
- simple balancing of the fighting system with simulating turn-based fights, as I would like to avoid the need for exhaustive grinding in the game, a good starting point for future game balancing
The only remaining thing before I reach this milestone, and what I am focused on right now, is the procedural seed level generation for forests, undergrounds, swamps, cemeteries, etc. After that, all the technical aspects will be covered for this very first iteration. The last step will be to prepare a demo version with a few small locations surrounded by a forest.
I'm planning to release this demo only on the cartridge not only because I am planning to create a vast world, but also because of the specs. The graphics alone will take a lot of space as it is all hi-res bitmap containing a lot of details. The enemies displayed in battles are also quite huge. For the unpacked data, it might take 72x48 or even more pixels each which corresponds to approx 430 bytes of bitmap data plus extra approx 50 bytes for screen colours, for a single character. Before entering the second milestone, I will need to see how much freedom I can have for the creation of different types of enemies and the whole world.
What is the second milestone going to be about, then? And how many milestones are there ahead?
In the second milestone, I am planning to start building the story and side quests. Also, this will be the best time for finding out patterns for further optimisation. I'm not sure about the scope yet, and how many milestones I will need, but I would definitely love to enter the vast world of Meonlawel itself. It might be good to start thinking about balancing the game, adding magic and some other vampyre-related features.
It really satisfies me to write this project in assembly. And the experience of running it on Commodore 64 is compelling. Works continue, and I am aiming to release the first milestone demonstration version this year. I hope to learn a lot from it in terms of feedback and the general reception. See you there.