Since I’ve been mired in curriculum development and designing APIs for the past few years, I haven’t had much of a chance to actually make games. I did a brief venture into PICO-8 last year, which taught me a few things about Lua and making pixel art, but also taught me that PICO-8 is very rudimentary and not the kind of tool I want to use for making games on a regular basis.
Anyone who knows me well knows I’m an RPG nut, and have put more hours into the Diablo games than is probably reasonable, so this new project was more or less a foregone conclusion.
I have two major goals for this project:
- Implement gameplay systems typically found in RPGs such as inventory, character stats, damage calculations, and random encounters
- Learn my way around C# / WPF so that, if I end up wanting to transition into tools development, I know enough to start getting my feet wet with C# / C++ interop layers.
To avoid getting bogged down in things not immediately relevant to gameplay systems, I’ve decided to make this a text-based affair. Here’s a quick mockup of the type of thing I’m going for:
Items in red are interact-able, everything else is just text that changes depending on the player’s actions. The gameplay should be somewhere between actual Diablo and ProgressQuest. ProgressQuest literally plays itself, which is funny for a while, but not terribly interesting or realistic, so while it’s a good inspiration, I knew I wanted something with actual player choice involved.
Obviously this is going to be a lot of work even for a text-based game, but I’m confident I can make progress on this as long as I plug away at it multiple times a week. I’ve got the project set up already and am learning my way around WPF. I can already tell I’m going to dislike XAML, but sacrifices always have to be made.
Some big questions that still need to be answered:
- What sort of architecture should be used for game objects? For individual objects, there are less moving parts here than in the sorts of games I usually work on, but I’m still leaning towards having components of some sort.
- How should items and monsters be stored? In a database? If so, what’s going to play nicely with C#?
- Art is not my strong suit, but adding music and/or sound is a possibility. What’s a good solution for audio in C#?
In the interest of keeping the project properly scoped and focused, some of these questions (with regards to art and audio, in particular) will probably need to wait until after I have some kind of working prototype. Once I have something resembling gameplay, I’ll post a link to the github for the project, or maybe an executable for a tech demo.