Diablo Simulator Preview

Progress on the new game project is going well. After a long time working on C++ game engines, getting to work in C# has been a nice breath of fresh air so far. There’s already a number of things I’m used to doing in C++ (mostly involving templates / generics) that I have to find different ways of approaching in C#, but beyond that (and XAML) it’s been a pleasant experience.

Before I get into the nitty gritty, here’s a preview GIF of the current state of the game:

Things that took much longer than anticipated:

  • Architecting (and re-architecting) all of the various classes required for the RPG systems. While the basic structure of the systems I outlined in my previous post remained mostly the same, there were a lot of things I didn’t anticipate needing, or that ended up getting moved around between different places before they made sense.
  • Getting used to binding and events in WPF. Splitting my UI into a number of separate controls was largely beneficial, but introduced a few roadblocks, mostly due to property changes not propagating correctly to all of the appropriate UI elements.

Things that got done much more quickly than anticipated:

  • Saving and loading game state. I’m sure it actually took longer, but it certainly felt like this was implemented in all of 30 minutes. The only major hitch was figuring out that the serialization library I’m using (Newtonsoft) doesn’t tell me if it finds something in the JSON that it can’t deserialize, which lead to a fair bit of unintended behavior.
  • Player/monster/item stats and stat changes. This could have easily gone horribly wrong (and there were a few moments where it did, particularly when serialization came into the picture), but the initial implementation came together rapidly. While I don’t have anything to handle temporary buffs just yet, I’m confident that will fit nicely into the current system.

I’m not going to hazard a guess on when I’ll be releasing a demo, as I want to make sure it’s at a point where I could get useful feedback. Right now, there are still too many things I want to fix or add, namely:

  • Town actions, such as selling items, as well as gambling.
  • Monsters that fit the first zone, and additional world events.
  • Attack speed.
  • Additional monster and player abilities.

The last of these will require additional UI, which I don’t have completely worked out yet.

If you’re interested in taking a look at the code or, better yet, in contributing to this project, you can find it on GitHub! If you’re interested in helping me make the game better, I’d love to chat with you. On the non-coding front, I already have plans to add sound effects and music, and am open to getting assistance with art and UI as well.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s