• Register

Game design extraordinaire. I make free assets, and lead a team called Cairo Creative Studios. Together, we make awesome experiences!

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
RSS My Blogs

Hey guys!

It's been a while since I last posted. A lot has happened in my game developing days. I've worked on a few minor projects, and a few bigons. I'm going to start blogging more. It might not make a whole lot of sense, considering the continuing trend toward AI generated content, and dummifying every possible media platform. I'm a tad concerned about the whole AI trend. But, obviously, if you're reading this, it's not all for not. Today, I'm introducing you to a project I've been contracted to develop.

CardMancer

CardMancer is a Real Time Trading Card Battler game. Inspired heavily by Yu-Gi-Oh! Duelists of the Roses and MegaMan Battle Network.
The gameplay focuses on a small field full of Tiles with different elemental attributes. Each match consists of two players, with a Heart Stone starting on either side of the board in the middle vertically. Each player has a Deck and Discard pile, on their respective side of the Field.
Players draw 5 cards at the start, and continually draw cards after one minute, and each minute players acquire Crystals. All Crystals are reacquired at this point, plus one, and a card is drawn. A brief timeout is given for using cards from the Player's hand, and after the time runs out, the game enters a semi-realtime battle system where a pendulum ticks, incrementing the move/attack timers of each Monster on the Field. When each Monster's timer is full, you can attack, move, or use one of their effects to move across the Field and attack the opponent's Heart Stone.
When a Player's Heart Stone is destroyed, they lose.

All is well, except Effects

I've developed video games for a while now, and I've run into quite a few obstacles I've had to hurdle over. If all the obstacles that I've faced, I would have never expected that the Card Effects in this game would be the hardest thing of all the game's features to implement. So far I've begun implementing the Effects using three different methods, and a the simplest seeming implementations have, surprisingly, been the most complicated.

The Uber-Inspector

The first method I tried was adding all the features of the Effect system into one Inspector Editor in Unity. Honestly, I didn't think this would be very complex. This was implemented in a such a way that for every option that was selected/ticked, the script would rewrite the Effect Description based on these values. I found that, as I added parameters and features to the Effect system, it became more and more complicated to construct descriptions in a way that made sense. So, it quickly became obvious that this was not a good option.

The Scriptable Parameter Method

Another method that I'd attempted was using Scriptable Object Events/Parameters with their own Descriptions. I had implemented a small code parser which behaves very similarly to Twine, which allowed me to create conditional strings and string interpolation on the descriptions based on their parameters. This method ended up being pretty darn good, honestly. The main issue was the fact that I was using Scriptable Objects for everything, and it ended up creating quite a lot of bloat for even simple effects.

The Code Interpreter

Something I've considered doing from the very beginning, a code interpreter which simply parses and reconstructs the Effects as a set of actual code commands. I was avoiding this method the whole time, because I knew it'd be complex to implement, but after all my struggles, I've concluded that this is actually the simplest and cleanest method. Effects are now legitimate code. Of course, they don't read that way. They read nearly the same as an Yu-Gi-Oh! card effect. Technically, it's a programming language. It's just a written language programming language.

Get ready to feel the Effects of CardMancer

The effects in CardMancer are in their infancy at the moment, and I'm excited to experiment with them show them off as development continues. Please, feel welcome to come back to my blog, as I will be sharing more in the near future on my development progress. There is so much more to share, not just about CardMancer, but also a few other projects that I've yet to share with the public eye.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

X