Alessandro Cuzzocrea Japanese (日本語)

Lands of Ambustio: A Retrospective

I just published another game, Lands of Ambustio, which is an 80’s 8-bit style role-playing game made using RPG Maker MV. You can play it for free on Itch.io.

The project took me about four months to complete, from May to August 2021. Making Lands of Ambustio was almost as much of an adventure as playing it.

The beginning of our heroes' journey
The beginning of our heroes’ journey

Motivation

I was almost done making Symbols iOS when I started thinking about my next project. One of the main challenges I faced while working on Symbols was that I’m not particularly passionate about puzzle games, so I didn’t feel very motivated.

One of my favorite game genres is role-playing games (RPGs), and I’m especially fond of Japanese RPGs (JRPGs). These are a subgenre of RPGs that are typically developed in Japan and feature themes and settings inspired by Japanese culture and folklore. The first JRPGs were created in the early 1980s when Japanese developers started experimenting with the genre, resulting in a new style of RPG that incorporated elements of traditional Japanese culture, such as anime and manga.

I have only good memories of playing JRPGs as a kid on my old Pentium 120 Mhz PC through emulation, since back then only a few of them were released in Europe.

A role-playing game is a type of game where players take on the roles of characters in a fictional setting. Players usually create characters at the start of the game and then control them throughout. Japanese RPGs (JRPGs) are a specific type of RPG that originated in Japan. They often feature turn-based combat, where players take turns attacking and defending, and often have a large cast of characters with unique abilities.

The most successful RPGs are characterized by complex systems, rules, art, and plot that work together to provide a unique experience and fully immerse the player in the game world.

Commercial RPGs usually have a lot of content and take a long time to beat, usually taking an average of 20 to 100 hours to complete.

I really liked the idea of making an RPG, but there was no way I could complete a project that big on my own in just four months. So, I decided to limit the scope of the project with some self-imposed restrictions:

  • Short (1-2 hours of playtime at most).

  • 80’s 8-bit graphics – they’re simpler to draw and I really love that art style.

  • Focus on the art, story, world-building, and battle system, while avoiding coding as much as possible. This will be a ‘practice’ game, so I wanted to avoid getting sidetracked by coding. The game engine I chose for this project, RPG Maker MV, fits this requirement.

What is RPG Maker MV?

RPG Maker is a series of low-code/no-code game engines that allows users to quickly and easily create 2D RPG-style games. The first RPG Maker was released in the 1990s, and the version I am using for this project is RPG Maker MV, which was released in 2015 for Windows and OS X.

RPG Maker MV includes graphics, sounds, and music, so users can start creating games immediately. It also allows for the import of other assets, either custom-made or downloaded from elsewhere, which is very practical. It’s possible to create a complete game with RPG Maker MV without writing a single line of code, but the engine also allows for the use of JavaScript to create new plugins and add additional features or default behaviors.

Once your game is complete, it can be exported as a standalone application or as an HTML5 game that can be played in a web browser without the need to download it to your machine.

I used to mess around with RPG Maker during high school, when I found a copy of RPG Maker 2000 online (courtesy of Don Miguel 😉). I have fond memories of creating silly games with it and my friends. I can’t believe how similar RPG Maker MV is to the old RPG Maker 2000 in terms of both appearance and functionality.

RPG Maker MV map editor window
RPG Maker MV map editor window

Setting up the project

I created a Trello board to keep the project organized and then started breaking down each task. When working on personal projects, I usually don’t write estimates or set task priorities. Instead, I divide the tasks into a “backlog” and an “icebox”. This helps me understand which tasks are most important and keeps the scope manageable. When I’m ready to work on a task, I move it to the “Doing” list and when it’s complete, I move it to the – yeah, you guessed it – “Done” list.

I usually track the time I spend on each task using Toggl Track. I don’t set a time limit or deadline for each task, but it’s helpful to have an idea of how much time it takes to complete each one. I continuously add, delete, and shuffle tasks around to better reflect the current state of the project. If I find that I don’t have enough time to finish the project on time, I may change the scope of some tasks or delete them altogether.

Ambustio's Trello board
Ambustio’s Trello board

The Plot

Lands of Ambustio is the story of four friends who suddenly lose their village and families. As they mourn their loved ones, the leader of the group remembers an ancient legend about four magical stones that, if collected, will fulfill every wish. Determined to bring their loved ones back to life, the four friends embark on a mystical journey in search of the four stones.

Yeah I know, it’s corny and super derivative. This kind of story has been done to death, but I couldn’t write anything better.

Meet the heroes! #screenshotsaturday #pixelart #gamedev

Prototyping & Grayboxing

I wanted to have a functional prototype that was playable from start to finish as soon as possible, so I could start iterating on the design right away. To do this, I started by grayboxing the world map. Grayboxing is the process of creating a quick prototype of a level using placeholder assets, which are often simple geometric shapes, such as gray boxes. Since everything else is connected to the world map, it made sense to focus on that first.

Grayboxing is a useful technique because it allows you to get an idea of how to evolve your design without having to create final assets right away. After the grayboxing phase, you’ll have a clearer idea of where you want to take your level design and what assets you’ll need to realize it.

Grayboxing the overworld
Grayboxing the overworld

Stats & Battles

In RPG games, one way to get stronger is by leveling up your characters by fighting monsters and gaining experience points. Another way is to collect more powerful equipment, such as upgrading from a wooden sword to an iron one.

Since Lands of Ambustio was going to be a relatively short game, I didn’t want to frustrate the player by requiring a lot of encounters to level up. Instead, I decided to give more weight to collecting and upgrading equipment. The player’s party would still need to level up to gain new skills, but the bulk of the increase in stats would come from upgrading to new equipment.

I faced a big design challenge in trying to balance all of the levels, stats, abilities, and equipment in a way that was easy to play while still providing a challenging experience for the player.

Battle screen
Battle screen

Balancing the game

Game balance is extremely difficult to achieve because even small changes to any of the variables can have a significant impact. For example, increasing an enemy’s elemental resistance statistics by a few points can significantly change the way an encounter plays out.

If the game is too easy, it can be boring for the player; if it is too difficult, it can be frustrating. That’s why balance is so important. Additionally, as the player progresses through the game, their skills will improve, so the ideal game balance curve should follow this change.

One way to check the balance of your game is to playtest it as much as possible after each change. RPG Maker MV has the option to playtest battles without running the entire game, which is a quick and easy way to test balance. However, manually testing all the combinations of a character’s level, current equipment, active buffs/debuffs, and skills used can be extremely time-consuming.

To streamline this process, I created a Python script that programmatically calculates the average damage for each combination. The script imports data from my RPG Maker MV project into an SQLite database and runs a simulation to calculate all possible combinations, outputting statistics like average damage dealt and received. Because these calculations are updated in real-time, it is easier and faster to tweak the data within the SQLite database rather than making changes directly in RPG Maker MV and then manually testing the battle encounters.

I also created a second Python script that exports the SQLite data back to RPG Maker MV, so I could continue testing the game. However, I stopped using this system halfway through my project because it was too much work to keep everything synchronized between RPG Maker MV and SQLite.

Instead, I started exporting the SQLite data to Google Sheets and creating line graphs to visualize the data. This step was done manually and was time-consuming and error-prone. Next time, I might try using more appropriate tools like pandas, Matplotlib, or similar to visualize and analyze the data.

Calculating damage values with SQLite
Calculating damage values with SQLite
Plotting character stats with Google Sheets
Plotting character stats with Google Sheets

Art

Creating art assets is one of my favorite parts of game development (well, maybe not my absolute favorite, but it’s definitely something I really enjoy). I’m not great at art, but I’m trying to get better by practicing whenever I can. In the past, I’ve created pixel art for small projects and game jams, but this was the first time I made art assets for an entire game.

At first, I was intimidated by the challenge of pixel art, especially in the 8-bit style. I tried to be as faithful as possible to the style, creating very small sprites with a limited color palette. It’s a challenge to convey shapes and textures on such a small canvas.

To help me get started, I collected references from classic RPGs from the 1980s and early 1990s. It was impressive to see how carefully and skillfully those sprites were created. Comparing the sprites to the corresponding concept art was particularly helpful in understanding how a detailed drawing can be transformed into pixel art while still retaining all its distinctive features.

Inspired by the “old pixel art masters,” I first drew my sprites on paper and then turned them into digital sprites. Of course, mine didn’t turn out as good as theirs, but I’m happy with how they turned out considering my skill level and the limited time I spent on them.

From sketch to pixel art sprite
From sketch to pixel art sprite

Looking back, I regret making the sprites for some enemies too simple. For example, the sprite for the “Ants” enemy is just two short black straight lines. I thought it would be funny, but it ended up looking lazy and confusing.

The party fighting a rock and a bunch of ants
The party fighting a rock and a bunch of ants

Jagged edges were a challenge in my pixel art. Anti-aliasing wasn’t an option because it didn’t exist in the 1980s-90s and would break the illusion of the 8-bit style. Back then, CRT televisions made it easier to create pixel art that looked good even if it had jagged edges because the jagged edges in the pixel art would be less noticeable due to the way the pixels blended together on the CRT screen.

Environments

In Lands of Ambustio, there are a variety of environments including overworld maps, cities, dungeons, and more. Each environment has a custom tileset, designed in the pixel art style of 80s-90s RPGs.

Castle entrance
Tilesets editor

The tilesets I made are alright, but the game environments they create are drab and lifeless.

For example, both cities consist of empty rooms with stationary NPCs waiting for the player to interact with them. To improve the game, it would have been helpful to create different layouts and add more decorations and furniture.

The throne room is pretty empty
The throne room is pretty empty

Release Day

I finished and exported my game to HTML5 by the end of August, and on September 4, I uploaded it to Itch.io and made it publicly available.

Lands of Ambustio Itch.io page
Lands of Ambustio Itch.io page

I was so exhausted from the work that I barely had any energy left to promote it. My only marketing efforts were posting on Reddit and Twitter – a big mistake, as I later realized the importance of marketing.

Lands of Ambustio: An 8-bit classic inspired RPG After working on it for the last four months, my new game is finally out! It's free so give it a try! (Available for Web, Mac, and Windows) #gamedev #indiedev #IndieGameDev

The Finished Product

The game was originally supposed to be more of a sandbox where the player could choose between multiple paths, and the story would branch out depending on how they interacted with the two factions. I also wanted to add an “independent route” for players who betrayed or ignored the factions. Although the finished game is linear, players can still influence certain aspects of the story through dialogue choices and the ending.

I’m still happy with the amount of content in Lands of Ambustio. The gameplay is about 40 minutes long, which isn’t very long for an RPG, but is still decent for a game made by one person in just four months. Unfortunately, I underestimated how long it would take to build such a game, and in the end, I had to cut some content to finish on time. Optional content like an extra secret dungeon was also cut.

What Went Well

I’m glad I was able to finish this project in just four months. I managed to stay motivated throughout, which is a contrast to my previous project when I lost motivation halfway through. I think this difference is related to the genre of the game. I absolutely adore role-playing games, but puzzle games don’t hold my interest as much.

Speaking of role-playing games, I had a lot of fun designing classes, items, skills, and encounters. These were all new topics for me that I encountered while creating this game, and I’m excited to learn more about them in the future.

What Could Have Been Better

In hindsight, I think there are a few things I could have done differently or better.

Spending Too Much Time on Battle System Balance

I tried to create a system to help me balance the game and it ended up taking way too much time without actually being useful. It was counterproductive because it took my focus away from actually building and improving the game, which slowed my progress. In hindsight, I should have spent more time making sure the game was fun to play instead of trying to achieve what I thought was “perfect game balance.” In fact, I’m not even sure that “perfect game balance” is a real thing.

Struggling with Story and Dialogues

The story of Lands of Ambustio is disjointed and confusing. This was my first time writing a story for a game, and unfortunately, it didn’t go very well. The result was – shockingly – terrible. The tone of the story is all over the place. It starts off fairly seriously, but then takes a sudden extravagant turn when the protagonists reach the first town in the game. After that, the tone becomes unbalanced. I had intended to write a serious story, but as I was writing it, it became very silly very quickly.

I don’t mind stories that shift tone drastically, as long as it’s done intentionally. However, I think I might be naturally inclined to write whimsical stories rather than serious ones, which is probably why the tone changed without me realizing it.

The dialogues in the game are uninspired and full of filler, like chatter, because I had no idea what to write. Instead, I should have focused on writing meaningful interactions between the characters and advancing the plot. I totally underestimated how difficult it is to write interesting dialogue.

An example of horrible dialogue

Confusing Environmental Design

Although the world map (overworld) in Lands of Ambustio is not very large, there are still many possibilities for the player to get lost. I designed the world when the game needed to be even more open, so it made sense for the player to be able to explore the various areas in no particular order.

However, the game turned out to be quite linear. Usually, linear games have a clear path for the player to follow, but in Lands of Ambustio, the player is told exactly where to go next during cutscene dialogues. It’s always good to consider the possibility of players skipping these dialogues, though. One possible solution is to make sure that the level/environment design is intuitive enough to guide the player to their destination even without having read the dialogues.

The King explaining how to reach the Serf Village
The King explaining how to reach the Serf Village

Marketing & Player Feedback

Marketing is a huge weakness of mine. I never feel like promoting my games enough because I always think they’re not good enough. This means I subconsciously avoid promoting them to avoid embarrassment. But this isn’t good, because promoting my games would lead to more players, and more players means more feedback.

I have been regularly posting on Twitter (#screenshotsaturday) about my progress. Tweeting and getting a few likes and retweets is a great motivator, but most of the people who follow this hashtag are other game developers, so I’m not sure it really counts as marketing.

I also made a release announcement on /r/RPGmaker, but it didn’t get much traction. Posting your own stuff on Reddit can be tricky because there’s a risk of being treated as spam and getting your account banned.

I probably should have also posted on dedicated internet forums, such as rpgmaker.net and itch.io, asking directly for feedback.

Hey! Don't worry, I greatly appreciated your feedback. I replied to your comment on Itch.

Project Management

I meticulously separated the work to be done into various Trello cards and I really like using Kanban as a system for organizing my work and understanding the status of a project at a glance. However, I hadn’t established any dependencies or priorities for my tasks and that turned out to be a problem. When it was time to start working, I would just instinctively choose the next task that seemed the most fun, without considering the order in which it should be completed.

This caused some problems because I realized too late that some tasks or features were related and had to be done in a specific order. For example, character walking animations may depend on the ability of the game to display a character on the screen. It would be really difficult and suboptimal to test some animations without them.

In software development, it’s common to assess estimates, priorities, and dependencies (called blockers) for each task. This allows the team to have an overview of the project and detect problems early, saving valuable time and resources.

Even though this was a personal project that I did in my spare time, working alone is no excuse for doing sloppy work in managing the project.

Lessons Learned

Less is more! I added too many character levels, equipment, and items for a game that’s so short. I should have maintained a more focused experience. For example, in Final Fantasy IX – a 40-hour game – the main protagonist can obtain a total of 15 unique weapons. In contrast, Lands of Ambustio offers 6 different weapons for its protagonist – and the game can be beaten in less than 40 minutes. The imbalance between content and playtime is striking.

Keep the numbers as low as possible. Balancing huge numbers for stats, exp, damage, etc. is a pain to manage and human beings have a hard time keeping track of huge numbers. Smaller numbers are much more reasonable and don’t confuse the player as much.

Automate your asset pipeline as much as possible. This will save you a lot of time in the long run. I wasted a lot of time manually exporting my graphics assets from Aseprite after every change. Speaking of Aseprite, it looks like you can call it from the command line, so it should be easy to automate.

Before starting a task, write down an estimate of how long it will take to complete. Once the task is done, compare the estimate to the actual time used. If they are different, try to figure out why and use that information to make better estimates in the future. It’s important to be able to estimate how long each task will take so that the project stays on track.

Prioritize impactful work. Remember, your time is limited, so don’t waste it on something that your players might not notice or need.

Watch out for placeholders. They can easily make their way into the final product if you’re not careful. It’s easy to get used to seeing them, and then when it’s time to finalize the game, you might forget to replace them with the final versions.

Try to test your game with music and sound effects as soon as you can. Trust me, it makes a huge difference. I added music to my game pretty late in development, and when I did, the atmosphere changed dramatically! It really made my world come alive.

Don’t hide basic information from the player. It just gets confusing. I made the mistake of hiding the first set of equipment upgrades behind some easy-to-miss mechanics, and as a result, players went straight to the first dungeon, which is pretty difficult without upgrading your equipment. It was kind of a crappy move on my part. On the other hand, it can be nice to conceal more advanced mechanics – they’re a treat for hardcore players who like to discover and talk about them (theorycrafting).

Once your game is in a playable state, find some volunteers and ask them to play it as soon as you can. Watch them carefully as they play and ask for feedback afterward. What’s fun for you may not be fun for your players. If you create your game in a vacuum, without any external feedback, you’re only relying on your own instinct/taste.

Obtaining the Fire Sword

Random Thoughts for Future Plans

I want to try a giveaway to attract players for my next game - something simple like a Retweet campaign or perhaps even creating a special challenge demo version and asking players to try it out and post screenshots and/or videos on social media if they want to participate in the giveaway. I could try both. I think this can be a way for a no-name independent developer like me to get some exposure.

I want to try a giveaway to attract players for my next game – something simple like a Follow & Retweet campaign or maybe even creating a special challenge demo version and asking players to try it out and post screenshots and/or videos on social media if they want to participate. I could try both. I think this could be a good way for an unknown independent developer like me to get some exposure.

I want to keep a fresh perspective when playtesting. I’m wondering if I can achieve this by completely separating the time I spend on game development from the time I spend on playtesting/QA. Maybe I should set aside one day of the week just for playtesting.

I’ve noticed that many great role-playing games use battle encounters as a way to enhance world-building – some unique mechanics, or even something as simple as an enemy dropping a particular item when defeated, can spice up encounters and make the game world and its inhabitants feel more alive. I guess you could consider this using game mechanics as storytelling.

I should really practice designing characters and game environments (concept, painting, etc.). I’m not going to get very far if I don’t improve a lot.

I also need to practice drawing/painting convincing textures. Games need elements like water, grass, wood, stones, rocks, and stuff like that, so I should at least learn to draw the most common ones. If I don’t, my games are going to always look ugly.

For the next project, I’d like to start with some concept art first. Gathering references, creating mood boards, sketching, figuring out what works and what doesn’t - I can’t wait to get my hands dirty.

And speaking of art, for my next project I want to add character portraits. I think they add a ton of personality to otherwise pretty sterile dialog boxes.

Balancing a game feels a lot like the scientific method: you have to tackle the problem with a logical and scientific mindset. Formulate a hypothesis about your design and test it as soon as you can.

The problem is that during playtesting I can only trust my instincts and taste to decide if the game is fun/balanced. What’s fun for me may not be fun for the next person – this is why it’s necessary to involve external testers as soon as you can.

I wrote the story and dialogue for the game quickly, without much planning. It would have been better if I had taken the time to brainstorm and use writing techniques like the Hero’s Journey or the Three Act Structure to help me create a better draft before finishing the final version. Even though many players might not pay attention to the story in a short game like this, I still wish I had put more effort into it. Next time, I’ll make sure to plan and organize my writing more carefully.

Fighting Buff Knight

Conclusions

I really enjoyed working on Lands of Ambustio. My love of role-playing games kept me from getting bored and wanting to give up during production, which was a big contrast to my previous game (a puzzle game, a genre I’m not really into) that I almost abandoned halfway through.

Even though Lands of Ambustio didn’t get much attention, I still got valuable feedback that made me rethink some of my design choices.

Role-playing games are some of the hardest genres to make, and if I tried to make a commercially successful one right now, I’d probably fail miserably. I don’t have the skills and experience yet. That’s why I’m working on smaller projects to gain as much experience as possible before tackling a bigger one.

Lands of Ambustio was the first of several smaller projects I’m working on to gain experience and improve my skills in game development. I hope it was a step in the right direction toward eventually creating a full-fledged, commercially successful role-playing game.

Clocked Hours Breakdown

CategoryDuration%
Art66:19:3230.28
Battle System46:09:5921.08
Uncategorized31:38:4014.45
Mapping21:24:519.78
Writing17:03:577.79
Eventing12:24:155.66
Misc10:07:254.62
Marketing4:22:222.00
Audio3:50:041.75
Playtesting3:48:231.74
Managing Trello1:10:500.54
Release0:40:010.30
TOTAL219:00:19