Hello everyone! Welcome to the official Princess Castle Quest development blog. My name is Taylor, I am the lead programmer/designer on the game. I would like to use this space to share some of the experiences that we have had building the game over the last 2 years. Being a programmer, I plan on covering a lot of the interesting programming and technical decisions that were made. So if you are an programmer or game designer I hope that I might be able to get into some of the specifics of this game and it’s underlying technology and present a sort of case study that you might be able to compare your own experience with. If you are an aspiring programmer, or new to game development, this might also give you a good idea of what it’s like to make a game. However, I hope that many of these posts are also understandable and interesting to general audience as well so don’t be too discouraged if you are just looking for something nice to read with some screenshots and gameplay videos along the way.
As you might expect, this game hasn’t always been what it looks like today. I’d like to take some time over the next few weeks to recollect and record various points in the game’s history and share some stories about the process and game design choices we made along the way.
The first commit was made on December 4th, 2017 and it contained a single text box (some code that I pulled from another project).
This is our beginning. The backbone of Princess Castle Quest. Actually, until very recently, it has been called Princess Dungeon Smasher. And December 4th was not actually the first version that was created. This game actually started when I was in High School. I was taking a Computer Science class with my brother Colby. I had skipped the intro programming class by testing out of some simple C++ questions which meant that I, a Freshman, was in the same class as my brother who was a Senior. The upper level class was quite simple in design. The only thing we really had to do was make a game by the end of the semester. We got to choose what language/engine to use. We got to choose any game genre to make. Our only goal was to have something to present by the end of the semester to the class. So me and my brother started working on a puzzle game. I’m not entirely sure who’s idea it was but the initial concept was to have a princess be the main character. She would have a pink dress and we gave her a sword just for the heck of it (it would be a long time before she actually started using that sword). So we got to work in C# with Microsoft’s XNA and we built a “game” of sorts with some of the most basic stuff. I will be going over this version of the game more thoroughly in the next post but to give you an idea here’s a screenshot from the beginning of the game:
Anyways, my brother graduated High School that year and I moved on to working on other projects. If you are interested in some of the things I’ve made over the years you can check out my projects page at https://www.siltutorials.com/projects/
At some point later down the road there was actually another, less finished version of Princess Dungeon Smasher that I made in Monogame. This version was much less finished in many ways but it did contain a bit more of an editor. Unfortunately I don’t have a working version of this game and I never created any footage or screenshots from it so I won’t be able to show you what it looked like.
However, a short while later I worked on a version made in Game Maker. I had actually started my programming experience long before high school in Game Maker and though I had moved on to other more involved languages I decided to see what I could do with this old engine. This version didn’t include an editor and the exit button didn’t even work but it is a simple example of some of what I call the “basic” mechanics of the game. It’s actually the version you can find on my projects page that I linked above and you can install and play it if you would like.
After this, the game idea wouldn’t be touched for another five years. However, it always held a place in my heart as that quirky little puzzle game I made with my brother in High School.
So now back to the end of 2017. I had been working on a project called Const Port for use at my day job and decided to start another game project in C with OpenGL+GLFW as a backbone. After some other experiments I finally started working on a new version of Princess Dungeon Smasher. That first build I mentioned above is essentially a stripped version of Const Port. The platform layer I had built for windows and the general code for handling things like vectors, matrices, rectangles, and other general purpose classes had already been built. In fact I had been programming in C for a long while making various other projects before I started working on Princess Dungeon Smasher again. I wouldn’t call this a game “engine” like Godot or SDL, but it does serve as a backbone and starting point for our project. To a reasonable degree everything in this game has been programmed from scratch by me over a process of a little less than 2 years. There are various reasons for doing it this way, but I will cover that in a later post. Also the inspiration and design of this platform layer comes largely from Handmade Hero which I highly recommend checking out if you haven’t heard of it before.
To get an idea about how much work was being done on the game at various points in the past we will use a simple metric that was built into this code from the beginning. Every time the game was built (successfully or not) I had a python script increment a “build” number. The build number acts as a crude estimate of how many different versions the code went through over a period. The first commit I showed above started at build number 29. And today the build number sits at 13,596. It’s hard to articulate how many builds that is but hopefully we will come to understand it as we walk through various versions along that path. Obviously we don’t have time to go over all 13,000 builds, nor do we have all of them saved in separate commits. We also can’t cover all of the 741 commits that have been made to the game. So I have spent some time and compiled a list of 33 different commits to look at. Each one represents a different time in the game’s development and we will be covering 1 or more of them in each post.
Hopefully this give you a rough idea of where this blog will be going. I’m sure how long it will take to go over all of these commits since I am still actively working on the game and preparing for early access on Steam and I still work full-time as a firmware engineer. However, I am excited to catalogue this journey and share it with all of you along the way.
If you have any questions about a particular topic along the way or would like some more information about something in one of the builds feel free to leave a comment or send me an email at PrincessCastleQuest@gmail.com
If you like the game and are interested in buying it please stay tuned to this blog. We will be revealing our Steam store page soon and announcing an official release date. You can also follow us on Twitter, Instagram, Facebook, or Youtube. Thanks for taking the time to read all of this and I look forward to posting more updates in the near future