Skip to content
Published May 2, 2019

While I enjoy developing a variety of games, including a platformer, an Atari 2600 game, monochrome Arduino based games and some retro style clones, it is Ballad of Thuriana that occupies most of my development time. For my first post on this blog, I thought I would share how it became my favorite project.

Growing Up in the 80’s and 90’s

Yes, this actually plays a part in the story.

I grew up in two marvelous decades, the 80’s and the 90’s. I started out playing the hallowed Atari 2600 and legendary games like Space Invaders, Pitfall & Pitfall 2, Combat, Solaris, Atlantis, Demon Attack and many, many others. It was at this time that I got my first idea for a game. It wasn’t much, but my sister and I actually drew maps for a Pitfall 3!

In the 90’s I got to be a first-hand witness of the Great 16-bit Console Wars between Sega and Nintendo. What a time to be alive! The best part was that I got to play both systems. One of my best friends owned a Sega Genesis and I owned a Super Nintendo. By far one of my best memories was when we (there were three of us) all played Shining Force and Shining Force 2. We played them when they were new and we each got to have a game save, since there were three on each cartridge.

Shining Force would be the game that stuck with me perhaps more than any other.

College Years – Becoming a Programmer…

…but not a game developer.

I started college in 1997. As much as I loved video games, the idea of becoming a game developer seemed completely unattainable to me. In fact, it was so far out of my radar that I never seriously considered it. After all, all of my favorite games were made in Japan (which at the time were Street Fighter, Final Fantasy and other Japanese RPGs and Gran Turismo). I had no interest in moving to Japan and I didn’t expect I would have much of a chance making it as a game developer there.

But every so often, I did like to write just a little bit of code that I thought could be used in a game. I would write little text-based toy programs where my hero battled a goblin. While I didn’t take this very seriously I did know one thing:

If I ever could make a game, it would be one like Shining Force.

Atari 2600 Homebrew

Would you believe that my first real attempt at developing a game was to create an Atari 2600 homebrew game? It started off as just idle curiosity. I knew there was an Atari 2600 homebrew scene, but I wondered how people were able to write games for such an old system. So of course, I researched it.

When I discovered that all you needed was the ‘dasm’ assembler, a text editor and an emulator, I immediately got curious and started reading articles on how to do it. I had minimal assembly language experience, but even that sounded like a fun technical adventure, so off I went, learning about TIA chips, sprite registers and “racing the beam”.

Make no mistake, programming the Atari 2600 is hard. Assembly isn’t easy and 5 sprites and 128 bytes of RAM isn’t much to work with. There is no framebuffer, since there isn’t enough memory for one. You have to draw every frame one scanline at a time. That’s right, you actually have to loop 192 times and draw every single line of pixels using the TIA sprite registers. There are all sorts of crazy little problems too, like crossing memory page boundaries and counting CPU cycles so you can create asymmetric playfield graphics. I’m telling you, the programmers from those days were no joke.

Getting my Feet Wet with pyGame

In summer of 2012 I started teaching computer courses at West Virginia Northern Community College. Within a few years I started teaching Python to the Intro to Programming students. Maybe it was because I was surrounded by a lot of young techies who loved video games, but it brought me back into gaming. I suppose the environment of teaching gamers how to program, often using game concepts as examples, finally inspired me to give it an honest try.

It was at this time that I returned to fiddling around with that old Strategy RPG idea, and this time I actually added some graphics! I began to research pyGame, as well as game development techniques in general.

I decided that I could maybe write a Shining Force fan game. You know, one of those well done games that gets released and two days later gets a cease and desist from the intellectual property owners. I have almost no artistic ability, so I just used sprite rips from Shining Force games and even planned on continuing that way. I even recently found the project folder for this old version of my SRPG.

The precursor to Ballad of Thuriana

Finding some Real Guidance

In early 2017 I was researching online for RPG game development techniques, and I found this excellent article, written by Dan Schuller. In this article I followed a link to Schuller’s site for his book, How to Make an RPG.

This book changed everything.

The pitch on the website had me sold within minutes and I bought it, and what a difference it made. I no longer felt like I was wandering the landscape of the internet, foraging for bits and pieces of information on how to develop an RPG. I had a roadmap. It starts from absolutely nothing, to most of the elements required for a complete Final Fantasy style JRPG. It covers sprite sheets, animation and movement, rendering maps, State Machines and State Stacks, user interface, treasure chests, cut-scenes, stats and leveling and much more. It is a gold-mine for anybody who is new to 2D game development, particularly RPGs.

I began to apply the concepts in the book to my Python game, porting the Lua code in the book. However I eventually became fascinated with the Lua language itself and began searching for a game engine that uses Lua and found LÖVE, also known as Love2D.

Finding Artwork

I was now building a bit of momentum. How to Make an RPG was giving me a solid education in game development and programming and I was making use of the Shining Force graphics I had found at The Shining Source (the same as those in the above GIF). While I was okay with the idea of building a Shining Force fan game with these graphics, I still had a desire to build something more original. I was definitely open to using different graphics, so I began searching.

At first I simply started searching the internet for free RPG assets. I found a good many in the RPG Maker community, but the licenses were very questionable and I didn’t want to get into any sort of legal mess. I then discovered Open Game Art. This is a truly excellent site with freely available art for both personal and commercial projects. This includes character sprites, tilesets, item icons, spells and effects, backgrounds, fonts and even sounds and music. Some artists share some of their work freely there, while having larger, more comprehensive asset packs available on itch.io or their own vendor sites.

I still can’t quite remember how it happened, but one day I just searched for something like “RPG game assets” and discovered the artist who goes by the name “Final Boss Blues”, who sells an RPG asset pack called “Time Fantasy“.

The artist also offers some free assets that I used to test and prototype. It didn’t take long before I not only bought all of his Time Fantasy assets, but also became a Patreon patron.

Development Got Real

It was at this point that I decided to make a real effort to produce my own Shining Force inspired Tactical RPG, and maybe make it commercial. It was slow going at first, and I even took a summer off of programming to simply focus on designing, planning and documenting the project. I started using Trello and moved to Hack N Plan (future article).

It took a long time, but I’m not comfortable calling myself an indie game developer. I have surprised myself every time I’ve gotten a new major feature done in Ballad of Thuriana, like shops or inventory. The battle system and enemy AI are all under way. Things are going well! I’ve learned a great deal in the last few years, and I’ve also gotten to know a lot of other really talented people in the indie gamedev community.

Thanks for reading, and I hope you enjoy reading about my progress and projects.