Potentia Update -- Rise of the Editors
by Matthew "Ashteth" Kee · 04/09/2011 (7:53 pm) · 5 comments
I have been meaning to blog more, but I can either spend my time blogging or developing, so I will limit my blogs to no more than once every couple of months.
I have been using wxWidgets for a lot of miscellaneous tasks. In combination with wxDev-C++, wxWidgets is an awesome platform for rapid cross platform GUI tool creation. While I could have written editors for Potentia in game, it seemed natural to apply my knowledge of wxWidgets to the task of tool creation. In any event, it feels good when your desktop is littered with applications that you have written to help you write your game:

So I now have a spell deck editor:

If you have my previous blog, you'd know that Potentia is a little like Magic: the Gathering in that you construct your own spell decks. This is the spell deck editor. The spell deck editor is for the purpose of the developer (me) but will probably ship with the game too in case anyone wants to edit the in game enemies.
I have decided that Potentia will be solely a single player versus the CPU experience. I no longer intend to support player versus player and feel that supporting this complicates and distracts my development. Players will wander the game world and collect spells similar to the world of Shandalar in the old game Magic: Duels of the Planeswalkers. Unlike recent incarnations of Magic, I intend to give the players all the spells when they buy the game and not nickle and dime them to death with blind purchases.
In this editor, the first column displays all the spell decks. The second column displays all the cards in the current spell deck. The third, fourth and fifth column displays all the cards from a given element. The choice control at the top changes the element. The final column displays the current card. The current card description is just a text based general overview.
I am admittedly impressed with this tool. If nothing else, it has vastly increased my motivation. The spell editor also allows me to see that I currently have 95 spells in various stages of completion. (If you're counting, you can't see them all because some elements are not currently displayed). 95 spells is a fairly good number. What I really want, however is more like 500 spells, but we'll get there someday.
So after creating the spell deck editor, I rapidly developed the battle editor:

The battle editor uses the same XML data as the spell editor and simply places the spells on a hexagonal grid. When the game loads a battle, the spells on the hex grid executes before the battle begins. The idea is: the AI will always be at a disadvantage to the human player because its basically stupid and so to counerbalance a little bit, it cheats and starts with some cards already in play. The editor also helps me debug problems with the AI by rapidly establishing scenarios.
The battle editor isn't pretty, but it works. This tool is also intended for me, but will also most likely ship with the game. Another advantage of the single player experience is: edit whatever you want, you're only cheating yourself.
So lets get onto the core engine changes.
Old Screen:
New Screen:

I have changed the primary colors of the friendly side to blue and the enemy to red. I originally didn't want to do this because the elements of water and fire respectively are represented by these colors. If you watch my previous video, you will see that I was using black and white. These colors however didn't show up well. Red and blue show a little more contrast.
I also have redesigned the value icons so that they are in a holder and that the associated value is displayed directly below the icon. I did this because the gameboard was becoming cluttered and difficult to discern what was going in. Keep in mind that if you move the mouse over something, the scrye (bottom center) tells you something more about the icon and value.
The final and most important change that I have made is: the AI is now permanetly in charge of player 2. I probably won't post any additional videos untill it stops behaving like a total moron. Some spells it doesn't understand at all and some it simply uses badly. I have decided to redesign the AI so that each spell has a specific AI function and this is going to take some time.
I am currently burned out on programming for a little bit though, so I'm switching to artwork and animation for the next few weeks. The spell deck editor has prompted me to make some theme decks and I'm currently fixated on making a reptile / snake deck. Sometimes its good to switch gears for a while in order to stay motivated. Artwork is as important as programming, so I need to devote more time to this anyways.
Keep blogging all, I will send another update in a few months...
I have been using wxWidgets for a lot of miscellaneous tasks. In combination with wxDev-C++, wxWidgets is an awesome platform for rapid cross platform GUI tool creation. While I could have written editors for Potentia in game, it seemed natural to apply my knowledge of wxWidgets to the task of tool creation. In any event, it feels good when your desktop is littered with applications that you have written to help you write your game:

So I now have a spell deck editor:

If you have my previous blog, you'd know that Potentia is a little like Magic: the Gathering in that you construct your own spell decks. This is the spell deck editor. The spell deck editor is for the purpose of the developer (me) but will probably ship with the game too in case anyone wants to edit the in game enemies.
I have decided that Potentia will be solely a single player versus the CPU experience. I no longer intend to support player versus player and feel that supporting this complicates and distracts my development. Players will wander the game world and collect spells similar to the world of Shandalar in the old game Magic: Duels of the Planeswalkers. Unlike recent incarnations of Magic, I intend to give the players all the spells when they buy the game and not nickle and dime them to death with blind purchases.
In this editor, the first column displays all the spell decks. The second column displays all the cards in the current spell deck. The third, fourth and fifth column displays all the cards from a given element. The choice control at the top changes the element. The final column displays the current card. The current card description is just a text based general overview.
I am admittedly impressed with this tool. If nothing else, it has vastly increased my motivation. The spell editor also allows me to see that I currently have 95 spells in various stages of completion. (If you're counting, you can't see them all because some elements are not currently displayed). 95 spells is a fairly good number. What I really want, however is more like 500 spells, but we'll get there someday.
So after creating the spell deck editor, I rapidly developed the battle editor:

The battle editor uses the same XML data as the spell editor and simply places the spells on a hexagonal grid. When the game loads a battle, the spells on the hex grid executes before the battle begins. The idea is: the AI will always be at a disadvantage to the human player because its basically stupid and so to counerbalance a little bit, it cheats and starts with some cards already in play. The editor also helps me debug problems with the AI by rapidly establishing scenarios.
The battle editor isn't pretty, but it works. This tool is also intended for me, but will also most likely ship with the game. Another advantage of the single player experience is: edit whatever you want, you're only cheating yourself.
So lets get onto the core engine changes.
Old Screen:
New Screen:
I have changed the primary colors of the friendly side to blue and the enemy to red. I originally didn't want to do this because the elements of water and fire respectively are represented by these colors. If you watch my previous video, you will see that I was using black and white. These colors however didn't show up well. Red and blue show a little more contrast.
I also have redesigned the value icons so that they are in a holder and that the associated value is displayed directly below the icon. I did this because the gameboard was becoming cluttered and difficult to discern what was going in. Keep in mind that if you move the mouse over something, the scrye (bottom center) tells you something more about the icon and value.
The final and most important change that I have made is: the AI is now permanetly in charge of player 2. I probably won't post any additional videos untill it stops behaving like a total moron. Some spells it doesn't understand at all and some it simply uses badly. I have decided to redesign the AI so that each spell has a specific AI function and this is going to take some time.
I am currently burned out on programming for a little bit though, so I'm switching to artwork and animation for the next few weeks. The spell deck editor has prompted me to make some theme decks and I'm currently fixated on making a reptile / snake deck. Sometimes its good to switch gears for a while in order to stay motivated. Artwork is as important as programming, so I need to devote more time to this anyways.
Keep blogging all, I will send another update in a few months...
About the author
#2
04/10/2011 (7:40 am)
Looking good - keep it up!
#3
Excelent work Matthew! Those tools will be great also for let your player to mod the game! Congrats.
04/11/2011 (6:26 am)
Wow, looks like wxDev-C++ got some love lately! I may check it out again soon.Excelent work Matthew! Those tools will be great also for let your player to mod the game! Congrats.
#4
@All: Thanks for reading and the comments.
04/11/2011 (5:06 pm)
@Novack: I really like wxDev-C++. Dev-C++ itself is a little wonky, but the form editors and precompiled Dev-paks more than makes up for it. I wanted to like Code::Blocks because it is actually created with wxWidgets, but it just isn't there yet. wxDev-C++ is to the point that its like MS Visual Basic but with a better language (C++) and an option to be multi-platform. If you need to write GUI apps, I highly recommend it.@All: Thanks for reading and the comments.
#5
04/13/2011 (7:15 am)
Mmmm mmmm hex grid turn based goodness! I enjoy seeing your updates Matt, I look forward to seeing more soon. 
Torque Owner TheGasMan
G.A.S. [+others]