Magic Stones Postmortem

Published December 05, 2007 by Celso Riva, posted by Myopic Rhino
Do you see issues with this article? Let us know.
Advertisement

Overview

After writing many sports simulation in the past, I wanted a change. One of the problems many shareware authors face is the so called "burning" - that is, after a lot of time (months or years) spent on a single game or single genre, they desperately need to do something different. I always liked the idea of making a fantasy game, since I am a fan of that genre. I think I can say I've played almost all fantasy turn-based games, starting from Master of Magic to the recent Age of Wonders 2, and so on. An important thing not many people understand is that to make a good game you need a very strong knowledge of that particular genre. This is true for complex roleplay or simulation but also for simple casual games.

So I had to choose what to make - initially I thought about a real game with a map, moving units, and so on. But then I realized it was very complex, and one of the most common mistakes is to start a game that is bigger than what you can really do. So after a bit of research I thought that the "easiest" path would have been the one of a card game, a bit like Magic: the Gathering but also with RPG elements and other stuff.

The Good

Setting

I decided to base everything on Celtic mythology, so I first started to do some research both in local library and also on the net. I found the shapes of the Celtic runes and thought to assign to each one of them a spell or a summoned avatar in the game. I divided the runes into 4 elements (the classic air, water, fire and earth) even if their original meaning varies and is a bit different (but hey is just a game!). The initial research was a very good thing, because I found my "niche" market (Celtic mythology) within the bigger one of the generic "fantasy settings". I'm not sure the game would have been so successful with a generic fantasy setting.

Then I put all the numbers of the game in an Open Office spreadsheet, and by that I mean really all the possible numbers: hit points, attack / defense values, spell cost, etc. Everything that would have been in the game was first planned in the spreadsheet. Later during the testing phase and the subsequent updates I had to change many of those numbers, but it was in any case a very good thing to do, because I think I would have had even more problems later if I didn't do that.

Artwork

Ok so all the statistics were done and I was facing another big problem: how make the graphics of such a game? I had planned a lot of avatars (creatures) in the game even in its initial version (1.0 release), and I had limited funds available so hiring an artist wasn't possible at that time. Luckily I found in Poser a very good solution. I bought several ready-made royalty-free 3d models, and after several weeks spent on various renderings, I had the basic 48 avatars ready (20 avatars for the 4 elements plus many neutral/evil ones) and many parts of the game interface (main menu, tournament screen, and so on). Using Poser was surely a winning move. With a few hundred dollars and a bit of time spent learning the program, I was able to create the avatars efficiently, even if they were just static images.

Coding

In total, coding the game up to release 1.0 took me 8 months part-time. Hard to say the exact number of hours, but I can say on average I was working on it 4-5h a day minimum. The initial release had several problems that I fixed in the next month, so I think it is more honest to say that it took me 9 months :)

Luckily I kept the main gameplay of the fight quite simple. I stored the avatars, spells, runes and variables as external .ini files, so I could easily modify them. I then added a hotkey in the game to "reload all data" instantly, so for example if I changed avatar attack or hitpoints, I could see the changes immediately and test if was a good change or not. This helped the gameplay balancing immensely, and shortened the development time of this part by a lot!

So I first programmed all the parts related to the character druid, like the artifact generator, the character creation process (with the choice of starting school of magic, gender, background). Then I had to program the character screen and the inventory (with item swapping, a list of avatars/spells known, the skill values, etc). This was one of the longest part of the game, even if not really hard to code "per se", but very long because I had to add lots of buttons on the interface, add lots of checks for invalid item placement (rings would fit only in the fingers slot for example). But I think this added a lot more value to the game, since it was no longer just a "fantasy card game", but I had also added an RPG component with skills, inventory, spells, etc.

The best part was surely the fight itself. To add more strategy, I planned to have in the "battlefield" made up of two lines of avatars: a 1st line with 3 avatar slots, and a 2nd line with only 2. Then I added the concept of "melee attack" and "long range attack". Some avatars could attack only targets nearby. So you can put long range avatar in the 2nd line and not get hit by those. It was a small change that was quite easy to implement in the code, but that added lot of variety to the gameplay, as confirmed by the users' comments!

Another funny part was the artifact system: I had to code a "random artifact generator", in the same style as the one you find in Diablo games, with funny/stupid names like "Fragile Rings of The Storm", and so on. The name was built from the artifact statistics. So in this case, Fragile because had low durability, Ring because was a ring, and Storm because had a bonus to water based avatars and spells. This was a really fun part, to see what item would have been generated calling the function with values like: durability, element, power.

Computer AI, Difficulty

The computer AI surprisingly wasn't really hard to make. Surely it isn't as challenging as a real human, but it isn't too easy either. A big help was from the fact that there aren't many variables in play (no pathfinding or too many resource allocations) but it still makes the game quite varied and you can win using a lot of different strategies (depending on which avatars you have available).

Initially there were only 2 playing modes:

  • Gather Artifact, in which you would explore 4 regions (one associated to each element) to explore and conquer abandoned temples, dungeons, etc to find new avatars/artifacts/spells.
  • Challenge Druid, in which you would take part in a sort of direct elimination tournament fighting against the most powerful druids of the kingdom
Later I added a third mode, called Quest Mode.

Quest Mode

The users reacted very well to this new quest mode because it was using fixed values of mana, so even the veteran players had a hard time finishing the quests. I added at same time 2 extra schools of magic, Life and Spirit, with new avatars to keep player's interest: not only new enemies to fight, but also new avatars to collect. The quests also had a general small plot, and each one had a final "boss" enemy, and I think this was a brilliant gameplay move (even if not very original) to keep players waiting for the next one.

The Bad

Artwork

If I could have afforded a real artist, it probably would have been better. When making the avatars I didn't have complete freedom: I had to check first if that particular model was available. I wanted to make a Death Knight for example, riding a skeleton horse: I couldn't do that because the 3D model wasn't available. With a good artist, I wouldn't have had any restrictions.

Coding

I had lot of problems in the early version with many bugs, because of all the various combinations between spells and special attacks possible. The main reason for those bugs was not testing enough. As I said I put a hotkey to reload the variables, but I should really have also added some cheats to be able to test almost all possible combinations of spells quickly, instead of just testing the game as a normal player (and I couldn't surely play 100h to test it all!).

I had also many problems with the inventory system: mainly because I added this part without really first planning it on paper: later I had many problems with inventory bugs (duplicate items, items not showing up anymore, etc) and in general even today have the feeling that this part of the game isn't implemented as it should be (looks unfinished).

Another big problem is the save game file system. I didn't think to add more variables (the expansions extra avatars/perks) later on so I had just saved everything as binary files. Big mistake! If I had saved the data as text file (like a .ini for example) I could have easily added more variables later. Instead I had plenty of save game compatibility problems, especially on the Mac version because I had also the transition from PPC Mac to Intel Based Mac (they store binary data differently).

Computer AI, Difficulty

After I released the game, I had two kind of complaints: game was too easy and game was too hard! So after some time wasted trying to "balance the game difficulty", I did what I should have done from the beginning: added a difficulty level in options. That parameter was influencing everything in the game. It was just a small modifier value (from 1 to 10) that I added through all the game code. For example mana regeneration during the fights before was determined only by the druid skills: now I added that multiplier, and after a few test fights I could already feel a very high difference if you played at easiest level or at hardest one! I wish I thought about this before - I would have saved several hours trying to balance a thing that, honestly, is really subjective: many users didn't want to really have hard fights at all, while other were complaining that the game was too short (of course if you're a veteran player and play in normal difficulty level...).

Quest Mode

Shortly after I released the game and saw that I had much more potential than I thought, I decided to make a hard move: plan the release of a "Quest Mode" with added avatars before Christmas 2005. I had in practice only 3 months to make it, since I released version 1 on the 8th of October 2005. I managed to release the beta version by 15th of November, and the final release by the end of November! My honor was saved, but I think I never worked so hard as in that period...! Also the initial quest release had several extra bugs, because of all the new content I put in the game...so I suggest to avoid this experience for yourself. Never announce a deadline in public, because as Murphy says, "anything that can go wrong, will"!

Conclusion

The Expansion Packs

Today, after 2 years since the first release, I've released 5 expansions which were free only for registered players (the unregistered ones could only play the first battle of each quest). I think from the business point of view this was both a good and a bad move: good because it kept people's interest in the game high, and was constantly increasing the game value (each new quest was adding extra content for the same base price) but at same time, making a new quest each time was requiring from 20 to 40 days of work, which I am not sure paid off in the long run (I could have made another game for sure if I sum all the time spent to write the 5 expansions).

The only paid add-on I released is the "Magic Shop" that in practice can help your druid with extra "perks",more power for your avatars, and extra artifacts. I released it for the very low price of $5 which was also a good business move (many people bought it).

Tools used

I used Visual C 6 and a very simple but really powerful 2d programming API called PTK that I had already used in all my previous games with great success. It was good to be able to port the game with very little effort to the Mac platform, and release it at once on both PC and Mac. As I already said, for graphics I used mostly Poser 5-6 for the monsters, characters, etc and Photoshop 6 to design the interface of the game. For the music I just bought royalty-free music from one of the many online stores.

Cancel Save
0 Likes 0 Comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement