Warscale 28 - Lots of improvements
by Guimo · 11/27/2008 (2:12 am) · 5 comments
Hi Everybody!
This post is extremely large due to not being able to post for 2 weeks. This will be a real test even for those who have encouraged me.
My boss is back so I think I can resume with my normal development. These last days have been crazy in many levels. My son has been extremely healthy this weeks and is extremely active and in such a good mood and has started saying some words in english and spanish and goes everywhere babbling. At my job they have assigned me to a new project using Java and lots of unit testing. I guess I will need to dust off my java skills.
I really thought I wouldnt have time for Warscale but my wife has been extremely supportive and allowed me to have the full Saturday for two weeks to develop Warscale and that is a luxury I was not going to waste.
What was planned
Improved chat
One of the things required in Warscale was to be able for the chat to respond to commands, be able to show bitmaps (for emoticons) and recognize mouseover events on certain tags and of course, complete font color control.
So, after reading the code for a while I decided the guiMessageVectorCtrl is really superfluous and may be replaced by a TorqueML Text control. The change is now trivial but is not complex at all. In fact, this has been selected to be the snippet for this week. The result looks great and allows for a great flexibility. It still uses a messageVector object as the line storage but instead of storing a simple text line stores a TorqueML line which is still a text line so no big deal there. The main work was to create a function which allowed to link the MLText control and the messageVector object and the scroll of course. If you are observant, you may see the chat control in use in the screenshots.
Aside of the improved visual quality, one of the benefits of having a MLText control is to be able to use dynamic links. The Warscale chat not only holds the chat messages but also a list of the game events so that if you move a unit or attack other unit those actions will show at the chat. In this case I create dynamic links to the game units so that when the mouse rolls over the tag (a small modification to the ML control) the current unit information is displayed.
I also included the usual chat system meaning that the chat text input will be displayed when you press ENTER and will dissapear after you enter your message. I had some problems handling the ENTER key duw to some controls trying to be first responders but at the end everything worked fine.
Graveyard
I killed the graveyard. The undeads tried to eat my brain but I managed to escape. As I explained before, my idea was to have an area showing graves and dead units showing as ghosts. It was a good idea but completely impractical in many levels so I applied the KISS rule and discarded all the idea. Instead I created a Window control with a grid control inside. The stock window provided me with the 99% of thigs I needed so I just had to make some adjustments. I had to fix the usual border stretching problem and replace it for a border tiling. Also, I wanted this window to work as a toolbox or rollover window (like photoshop toolboxes) so that they can be closed and minimized only but not maximized. Also, when minimized, the title area shouldnt relocate to the lower left position but just stay at the same position.
With the toolbox window, I added a Warscale grid control, handled some resizing events and added a button so that any graveyard may be opened at an time from the player bars at the top of the screen and that was all. The good part is that I can use the same trick to show groups of cards like for example, a Future Sight spell which allows me to see the next three units on the opponent army. You can see the graveyard screen in the shots.
What wasnt planned
Options dialog button
This is a case of something simple which turns into something terrible... maybe it was bitten by a graveyars zombie. I added a button to the top right position allowing me to open the Options dialog instead of pressing a combinations of keys (keys will still work). I really had some problems with this. I dont know why after the first game, the Options Dialog crashed the game. I was forced to debug the whole thing and found some lists were beig destroyed (I really dont know why). Anyway this was fixed but... as a worthy zombie... I had to chop it down to pieces.
Fixed shard disconnection bugs
As Im still debugging, there were times when the server just disconnected me (sometimes due to a server crash). In those cases, the clients received a disconnect message and returned to the master server. The problem was that if the players were already connected to a running game, they werent disconnected from that game and it was never deleted which translate into horrible things the next time you try to start a game. The moral: ALWAYS disconnect and cleanup after a game.
Fixed game restart procedure
I also noticed that when the battle finished and the players returned to the Game Lobby, the server wasnt regenerating the AI players. I solved this problem so the game cycle is complete. I think I have covered all the game start/end problems so I dont expect anything new... except for special game conditions but everything should work fine now.
Added spell casting and effects
ArcaneFX is a woderful add on. It provides with a lot of new tools which makes your life easier. If you dont have it... get it... or wait for AFX 1.2 which I can say... looks awesome.
Warscale is about spell casting and AFX provides it. Of course I needed a special choreographer but that was easilly created using TorqueScript so you can see some initial effects in the screenshots. Effects are just being created but at least the basic structure is working.
Monster AI
I managed to implement some basic monster AI system. This is working fine for monsters without any special ability. The monsters attack and try to close or flee from the opponent avatar depending on the relative power level. Not bad for now. I still need to implement the special ability AI control at least for the current units. That requires to create the visual spells first so Im pushing this for later.
Strikes
Up now, I was able to use a dummy strike system meaning all the server functions can detect a hack and strike the offending player but the strike was never sent to the client or managed in the client side. I didnt want this in the middle just to avoid development problems but I have reached a version stable enough to allow me to activate the strike system. I did so and everything is working fine but I have disabled it for now anyway.
Team selectrons
One of the problems with the game is that, as more units enter the game, you really dont know which unit belongs to whom. So, I decided to go for a quick fix and add some selectrons. Im still unsure if I will end using this solution or a second texture layer with team colors (like an RTS). I guess the second texture layer will work fine if I go for TGEA, otherwise I will need to add a lot of textures and I really dont want that. A single texture and a shader should be enough. We will see once version 1.8 get out with all the wrinkles mostly ironed up. Looks promising. I think I will keep working with TGE until TGEA 1.8 is more stable and AFX has been ported over to 1.8. At that time I will move all the game in a single effort.
Mouse scroll option
I have included a couple of controls in the options dialog to handle the map scroll. One is a slider which allows you to set the scroll speed. The other is a dropdown for the scroll preferences. Automatic will scroll the map whenever you move the mouse to the border. Manual will scroll only if you move to the border and press the button.
Unit Tooltip
Sometimes you will need some additional information about a unit and it wont fit on the screen. A tooltip has been included to show some info about the unit current status. Is working but will be improved in the future to include some additional status information like the effects currently affecting the unit.
Screenshots!
Here you can see the chat system using some links and coloured fonts. You may also see a closed graveyard toolbox and the team selectrons.

Here you can see the summon effect. Just a ripoff of the Reaper Madness effect.

And in this last shot you can see the tooltip text and an open graveyard with some dead units.

The plan for this week
Sound and background music
I have never done this. This might take some time for me to understand how to play sounds and search a suitable sound library for creatures and spells. The 404 library loogs great and Im exploring some music websites... great music but relatively expensive. Geeez... now I know what Im getting for christmas...
Game GUI fixes
I have identified many small bugs which I want to get rid of in my PlayGUI. I want to get the GUI working fine for the Alpha version so that I can start the public testing.
Start Green Ear integration
Not sure if I will ge into the contest yet... but in case I do I want to be prepared.
Snippet
Ok, this week I will show you how to substitute the guiMessageVector with a MLText control.
a. Change your GUI to use a guiMLTextControl instead of a guiMessageVectorControl. the guiMLTextcontrol should be inside a scroll control, same as the guiMessageVectorControl so you will have a hierarchy like:
In this example the ML control is called BattleChat and the scroll is called scrBattleChat.
b. Create your MessageVector object as usual. This is usually done during the initialization of your GUI screens.
e.g. $BattleChatVector = new MessageVector(mvBattleChat);
c. Add this function to the C++ code of your guiScrollCtrl.cc (like in the end of the file) and recompile. This will expose a function which tells if the scroll is in the last line. The function is already implemented, you just need to expose it.
d. Put this script function somewhere... i.e. in /yourproject/client/init.cs
This function will refresh the MLControl from the lines in the MessageVector and reposition the scroll to an appropiate position. Its a good idea too invoke it in the onWake method of your GUI in order to synchronize the controls.
e. Create a function to add messages to the MessageVector:
Thats all... you should be set and ready to go. You may add a new line to the chat by doing:
BattleChat.addLine("[Player1] Hi");
BattleChat.addLine("[Player2] How are you");
BattleChat.addLine("[Player1] Fine");
You can support any tag available in the ML definition including images and links.
Luck to all with your projects!
Guimo
This post is extremely large due to not being able to post for 2 weeks. This will be a real test even for those who have encouraged me.
My boss is back so I think I can resume with my normal development. These last days have been crazy in many levels. My son has been extremely healthy this weeks and is extremely active and in such a good mood and has started saying some words in english and spanish and goes everywhere babbling. At my job they have assigned me to a new project using Java and lots of unit testing. I guess I will need to dust off my java skills.
I really thought I wouldnt have time for Warscale but my wife has been extremely supportive and allowed me to have the full Saturday for two weeks to develop Warscale and that is a luxury I was not going to waste.
What was planned
Improved chat
One of the things required in Warscale was to be able for the chat to respond to commands, be able to show bitmaps (for emoticons) and recognize mouseover events on certain tags and of course, complete font color control.
So, after reading the code for a while I decided the guiMessageVectorCtrl is really superfluous and may be replaced by a TorqueML Text control. The change is now trivial but is not complex at all. In fact, this has been selected to be the snippet for this week. The result looks great and allows for a great flexibility. It still uses a messageVector object as the line storage but instead of storing a simple text line stores a TorqueML line which is still a text line so no big deal there. The main work was to create a function which allowed to link the MLText control and the messageVector object and the scroll of course. If you are observant, you may see the chat control in use in the screenshots.
Aside of the improved visual quality, one of the benefits of having a MLText control is to be able to use dynamic links. The Warscale chat not only holds the chat messages but also a list of the game events so that if you move a unit or attack other unit those actions will show at the chat. In this case I create dynamic links to the game units so that when the mouse rolls over the tag (a small modification to the ML control) the current unit information is displayed.
I also included the usual chat system meaning that the chat text input will be displayed when you press ENTER and will dissapear after you enter your message. I had some problems handling the ENTER key duw to some controls trying to be first responders but at the end everything worked fine.
Graveyard
I killed the graveyard. The undeads tried to eat my brain but I managed to escape. As I explained before, my idea was to have an area showing graves and dead units showing as ghosts. It was a good idea but completely impractical in many levels so I applied the KISS rule and discarded all the idea. Instead I created a Window control with a grid control inside. The stock window provided me with the 99% of thigs I needed so I just had to make some adjustments. I had to fix the usual border stretching problem and replace it for a border tiling. Also, I wanted this window to work as a toolbox or rollover window (like photoshop toolboxes) so that they can be closed and minimized only but not maximized. Also, when minimized, the title area shouldnt relocate to the lower left position but just stay at the same position.
With the toolbox window, I added a Warscale grid control, handled some resizing events and added a button so that any graveyard may be opened at an time from the player bars at the top of the screen and that was all. The good part is that I can use the same trick to show groups of cards like for example, a Future Sight spell which allows me to see the next three units on the opponent army. You can see the graveyard screen in the shots.
What wasnt planned
Options dialog button
This is a case of something simple which turns into something terrible... maybe it was bitten by a graveyars zombie. I added a button to the top right position allowing me to open the Options dialog instead of pressing a combinations of keys (keys will still work). I really had some problems with this. I dont know why after the first game, the Options Dialog crashed the game. I was forced to debug the whole thing and found some lists were beig destroyed (I really dont know why). Anyway this was fixed but... as a worthy zombie... I had to chop it down to pieces.
Fixed shard disconnection bugs
As Im still debugging, there were times when the server just disconnected me (sometimes due to a server crash). In those cases, the clients received a disconnect message and returned to the master server. The problem was that if the players were already connected to a running game, they werent disconnected from that game and it was never deleted which translate into horrible things the next time you try to start a game. The moral: ALWAYS disconnect and cleanup after a game.
Fixed game restart procedure
I also noticed that when the battle finished and the players returned to the Game Lobby, the server wasnt regenerating the AI players. I solved this problem so the game cycle is complete. I think I have covered all the game start/end problems so I dont expect anything new... except for special game conditions but everything should work fine now.
Added spell casting and effects
ArcaneFX is a woderful add on. It provides with a lot of new tools which makes your life easier. If you dont have it... get it... or wait for AFX 1.2 which I can say... looks awesome.
Warscale is about spell casting and AFX provides it. Of course I needed a special choreographer but that was easilly created using TorqueScript so you can see some initial effects in the screenshots. Effects are just being created but at least the basic structure is working.
Monster AI
I managed to implement some basic monster AI system. This is working fine for monsters without any special ability. The monsters attack and try to close or flee from the opponent avatar depending on the relative power level. Not bad for now. I still need to implement the special ability AI control at least for the current units. That requires to create the visual spells first so Im pushing this for later.
Strikes
Up now, I was able to use a dummy strike system meaning all the server functions can detect a hack and strike the offending player but the strike was never sent to the client or managed in the client side. I didnt want this in the middle just to avoid development problems but I have reached a version stable enough to allow me to activate the strike system. I did so and everything is working fine but I have disabled it for now anyway.
Team selectrons
One of the problems with the game is that, as more units enter the game, you really dont know which unit belongs to whom. So, I decided to go for a quick fix and add some selectrons. Im still unsure if I will end using this solution or a second texture layer with team colors (like an RTS). I guess the second texture layer will work fine if I go for TGEA, otherwise I will need to add a lot of textures and I really dont want that. A single texture and a shader should be enough. We will see once version 1.8 get out with all the wrinkles mostly ironed up. Looks promising. I think I will keep working with TGE until TGEA 1.8 is more stable and AFX has been ported over to 1.8. At that time I will move all the game in a single effort.
Mouse scroll option
I have included a couple of controls in the options dialog to handle the map scroll. One is a slider which allows you to set the scroll speed. The other is a dropdown for the scroll preferences. Automatic will scroll the map whenever you move the mouse to the border. Manual will scroll only if you move to the border and press the button.
Unit Tooltip
Sometimes you will need some additional information about a unit and it wont fit on the screen. A tooltip has been included to show some info about the unit current status. Is working but will be improved in the future to include some additional status information like the effects currently affecting the unit.
Screenshots!
Here you can see the chat system using some links and coloured fonts. You may also see a closed graveyard toolbox and the team selectrons.
Here you can see the summon effect. Just a ripoff of the Reaper Madness effect.
And in this last shot you can see the tooltip text and an open graveyard with some dead units.
The plan for this week
Sound and background music
I have never done this. This might take some time for me to understand how to play sounds and search a suitable sound library for creatures and spells. The 404 library loogs great and Im exploring some music websites... great music but relatively expensive. Geeez... now I know what Im getting for christmas...
Game GUI fixes
I have identified many small bugs which I want to get rid of in my PlayGUI. I want to get the GUI working fine for the Alpha version so that I can start the public testing.
Start Green Ear integration
Not sure if I will ge into the contest yet... but in case I do I want to be prepared.
Snippet
Ok, this week I will show you how to substitute the guiMessageVector with a MLText control.
a. Change your GUI to use a guiMLTextControl instead of a guiMessageVectorControl. the guiMLTextcontrol should be inside a scroll control, same as the guiMessageVectorControl so you will have a hierarchy like:
new GuiScrollCtrl(scrBattleChat) {
canSaveDynamicFields = "0";
Profile = "ScrollProfile";
HorizSizing = "width";
VertSizing = "height";
Position = "5 5";
Extent = "524 100";
MinExtent = "8 2";
canSave = "1";
Visible = "1";
hovertime = "1000";
willFirstRespond = "0";
hScrollBar = "alwaysOff";
vScrollBar = "dynamic";
constantThumbHeight = "1";
childMargin = "4 4";
new GuiMLTextCtrl(BattleChat) {
canSaveDynamicFields = "0";
Profile = "GuiWSMLTextProfile";
HorizSizing = "width";
VertSizing = "height";
Position = "4 4";
Extent = "514 100";
MinExtent = "8 2";
canSave = "1";
Visible = "1";
hovertime = "1000";
lineSpacing = "2";
allowColorChars = "0";
maxChars = "-1";
text = "";
};
};In this example the ML control is called BattleChat and the scroll is called scrBattleChat.
b. Create your MessageVector object as usual. This is usually done during the initialization of your GUI screens.
e.g. $BattleChatVector = new MessageVector(mvBattleChat);
c. Add this function to the C++ code of your guiScrollCtrl.cc (like in the end of the file) and recompile. This will expose a function which tells if the scroll is in the last line. The function is already implemented, you just need to expose it.
ConsoleMethod(GuiWSScrollCtrl, isScrolledToBottom, bool, 2, 2, "() - Returns if the scroll is in the last possible position.")
{
return object->isScrolledToBottom();
}d. Put this script function somewhere... i.e. in /yourproject/client/init.cs
function RefreshChat(%messageVector, %mlControl, %scroll) {
//Is the scroll in the last line?
%inBottom = %scroll.isScrolledToBottom();
//Rebuild the text from the messagevector. The text in the messagevector already have the appropiate ML tags
%text = "";
%textlength = 0;
%numLines = %messageVector.getNumLines();
for(%i = 0; %i<%numLines; %i++) {
%line = %messageVector.getLineText(%i);
if(%textlength > 0)
%text = %text @ "\n";
else
%textlength = strlen(%line);
%text = %text @ %line;
}
//Set the text in the ML control
%mlControl.setText(%text);
if(%mlControl.isAwake())
%mlControl.forceReflow(); //Reflow the text. THis will adjust the MLControl height
//If the scroll was in the last position, reposition it in the last position
if(%inBottom)
%scroll.scrollToBottom();
}This function will refresh the MLControl from the lines in the MessageVector and reposition the scroll to an appropiate position. Its a good idea too invoke it in the onWake method of your GUI in order to synchronize the controls.
e. Create a function to add messages to the MessageVector:
$BattleChatLogSize = 50;
function BattleChat::addLine(%this, %text)
{
//add the message...
while( mvBattleChat.getNumLines() && (mvBattleChat.getNumLines() >= $BattleChatLogSize))
{
%tag = mvBattleChat.getLineTag(0);
if(%tag != 0)
%tag.delete();
mvBattleChat.popFrontLine();
}
mvBattleChat.pushBackLine(%text, 0);
//Refresh after adding a line
RefreshChat(mvBattleChat, BattleChat, scrBattleChat);
}Thats all... you should be set and ready to go. You may add a new line to the chat by doing:
BattleChat.addLine("
BattleChat.addLine("
BattleChat.addLine("
You can support any tag available in the ML definition including images and links.
Luck to all with your projects!
Guimo
#2
Re: Emoticons:
Yeah you are right... I will need some special symbols tough... I can drop the smilies but need to keep mana symbols or unit types. Something Magic The Gathering in style. Thank you for the advice.
Re: Graveyard:
The camera is RTS style but with a direction which depends on the player position. Think of a RTS camera but you will always be on the bottom and will look up like in the screenshots.
Re: Options Button:
Hehe... to be honest I really dont like GUI programming and programming the options dialog is the most boring part for me. But its a required evil so... just do it...
Re: AFX:
At first I didnt understand AFX at first but after playing with it for a while I am really impressed. It really helps a lot and after doing a little beta testing of AFX 1.2 I know its a toolbox you really dont want to miss.
Re: AI:
The AI in this game is a little more difficult than realtime AI (be it RTS or RPG). In those cases I always used some kind of tick based AI meaning... analize the situation, pick your action, do that thing and keep doing it until next tick. Being a turn based game Warscale wont allow that. The script thing is a good idea that I may use for the missing (and hardest) part which is to allow the units to use special attacks. Anyway that will come in the next stage.
Re: Team Colors:
I also thought about banners or even adding a billboard to each unit but the screen just gets too cluttered. The selectron rings work fine as you see in the screenshots and it was a quick solotion but in fact I would like to use that space for other things like showing the unit life and mana or some unit conditions. If I use dual skind I may remove the floating bars in order to simplify the GUI. This is the only reason I want to switch to TGEA right now but I wont until Jeff launches AFX 1.2 for TGEA.
Re: Sound/Music:
Nice site... I made a quick search for epic music and got some results. At an average of US$80 for each TRACK (not even each CD) I will spend $800 just for music... ouch... there goes my PS3 again...
Re: Green Ear:
I will only enter the competition if Warscale is stable enough. Otherwise I really dont need to rush. $1000 is a nice ammount but Im trying to do my best work here and I just dont want to ruin it and risk the future of Warscale for a contest. Lets see what happens next month.
Thanks for your comments!
11/27/2008 (4:37 am)
Hi Brian!Re: Emoticons:
Yeah you are right... I will need some special symbols tough... I can drop the smilies but need to keep mana symbols or unit types. Something Magic The Gathering in style. Thank you for the advice.
Re: Graveyard:
The camera is RTS style but with a direction which depends on the player position. Think of a RTS camera but you will always be on the bottom and will look up like in the screenshots.
Re: Options Button:
Hehe... to be honest I really dont like GUI programming and programming the options dialog is the most boring part for me. But its a required evil so... just do it...
Re: AFX:
At first I didnt understand AFX at first but after playing with it for a while I am really impressed. It really helps a lot and after doing a little beta testing of AFX 1.2 I know its a toolbox you really dont want to miss.
Re: AI:
The AI in this game is a little more difficult than realtime AI (be it RTS or RPG). In those cases I always used some kind of tick based AI meaning... analize the situation, pick your action, do that thing and keep doing it until next tick. Being a turn based game Warscale wont allow that. The script thing is a good idea that I may use for the missing (and hardest) part which is to allow the units to use special attacks. Anyway that will come in the next stage.
Re: Team Colors:
I also thought about banners or even adding a billboard to each unit but the screen just gets too cluttered. The selectron rings work fine as you see in the screenshots and it was a quick solotion but in fact I would like to use that space for other things like showing the unit life and mana or some unit conditions. If I use dual skind I may remove the floating bars in order to simplify the GUI. This is the only reason I want to switch to TGEA right now but I wont until Jeff launches AFX 1.2 for TGEA.
Re: Sound/Music:
Nice site... I made a quick search for epic music and got some results. At an average of US$80 for each TRACK (not even each CD) I will spend $800 just for music... ouch... there goes my PS3 again...
Re: Green Ear:
I will only enter the competition if Warscale is stable enough. Otherwise I really dont need to rush. $1000 is a nice ammount but Im trying to do my best work here and I just dont want to ruin it and risk the future of Warscale for a contest. Lets see what happens next month.
Thanks for your comments!
#3
I've been trying to get him interested in freelance composing for money (he's a programmer by day and music instructor by night) so any data points will help!
The emoticons bothers me a bit too. I feel like they don't cross the culture gap very well (ie, US favors the mouth and Asians favor the eyes) so you might need multiple bitmaps. As a very late nice-to-have addition you might consider a drop down menu for emotes that trigger your player to perform a simple animation accompanies by a sound effect. (laugh, bow, wave, taunt, scream). Those always go over well and add to the personal nature of the game.
Amazing work though. I'm always in awe of how much you are getting done whilst I sit here spinning my wheels learning to model decently :P
11/27/2008 (12:22 pm)
I have a composer friend who is working to make music for my game. We've kind of worked out a pizza per song deal ;) Out of curiosity what are you looking for in terms of music (style, instruments, run time, number of tracks, looping) and how much would you expect to spend per track? I've been trying to get him interested in freelance composing for money (he's a programmer by day and music instructor by night) so any data points will help!
The emoticons bothers me a bit too. I feel like they don't cross the culture gap very well (ie, US favors the mouth and Asians favor the eyes) so you might need multiple bitmaps. As a very late nice-to-have addition you might consider a drop down menu for emotes that trigger your player to perform a simple animation accompanies by a sound effect. (laugh, bow, wave, taunt, scream). Those always go over well and add to the personal nature of the game.
Amazing work though. I'm always in awe of how much you are getting done whilst I sit here spinning my wheels learning to model decently :P
#4
11/27/2008 (2:11 pm)
Man this game is really coming along. Keep it up, I am looking forward to playing it!
#5
@Jason
Thanks for your words. You made many good points. I think emoticons will just be pushed for a future update when I have some spare time. Meanwhile i will keep it as it is.
About the music... I' m looking for something epic which raises the morale. As forces are gathering and preparing to battle. I would favor something in the line of the Conan:The Barbarian movie soundtrack. Some strong scores and mixed with soft and peaceful ones. Ideally I would like to have something in the mood of:
Battle preparation (for menues, long looping score)
Gathering forces (frenzy, rush, everybody busy preparing weapons and armor, marching to battle, horns calling the troops)
Forces aligned and waiting for battle. Tension, two armies one in front of the other, soldiers knowing this may be their last day.
Battle!!! Strong, chaos everywhere, rage, death, no mercy, only one army will prevail.
Lines break. Soldiers at one side get demoralized, chaos follows, everybody runs for their lives. Victorious troops try to chase and terminate any troops.
Calm after the storm... soldiers rest, the battlefield is silent. Death everywhere.
Song for the heroes. Heroes are praised, joyful, dance, beer, love. Comfort for the warriors.
Song for the dead. Dead warriors are mourned but they are now lucky to be at the side of their god and served by valkiries.
Evil gathering. Somewhere a large army is amassing again and will come, its just a matter of time.
That way the music may form a line. Now, this may be just my overall mood so I guess other ideas may be welcome. I have been hearing some sound tracks and found these. They mix these ideas and others I like.
Menues
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Action-Music/Day-Of-War/318357
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Epic-Music/Lords-Of-War/318364
Battle
https://www.audiosparx.com/stockmusic/archive/Dramatic/Production-|-Dark-Music/Tantra-Magic/313662http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Epic-Music/Forces-United/318361
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-War-Preparations-Music/A-Warriors-Resolve/318356
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Dark-Music/Spirit-Dance/313438
http://www.stockmusicsite.com/stockmusic/archive/Middle-Eastern/Middle-Eastern-Music/The-Desert-Kingdom---Filmscore/316470
http://www.stockmusicsite.com/stockmusic/archive/Middle-Eastern/Middle-Eastern-Music/Sahara---Ethnic-Filmscore/315579
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Action-Pending-Music/Infinitus-Sanctus-Numen/315552
http://www.stockmusicsite.com/stockmusic/archive/New-Age/Ethnic-Fusion/Gathering-Of-Souls/313519
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Magical-Music/Hidden-World/313121
http://www.stockmusicsite.com/stockmusic/archive/New-Age/Meditation/Return-to-me/313061
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Magical-Music/Fantasy-Forest/312750
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Danger-Music/Locked-Up/312661
http://www.stockmusicsite.com/stockmusic/play/port_lofi.cfm/sound_iid.277677
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Epic-Music/Skies-Of-Fire/312584
http://www.stockmusicsite.com/stockmusic/archive/Asian/Asian-Music/Fortress-filling/312577
http://www.stockmusicsite.com/stockmusic/play/port_lofi.cfm/sound_iid.318197
http://www.stockmusicsite.com/stockmusic/play/port_lofi.cfm/sound_iid.318193
http://www.stockmusicsite.com/stockmusic/play/port_lofi.cfm/sound_iid.318159
My wife doesnt like some of them, she says they have too many horns which may be distractig in the long run. May be true. I'm no good for sound anyway. Maybe something strong but less intrusive like the Lord of The Rings soundtrack would be perfectly ok.
About the price, Im looking for quality and I know that may be pricey. But I think I can raise the money if I need to. If your friend can take on this then tell him to send me a quote so I may have a reference.
Luck!
Guimo
11/27/2008 (4:08 pm)
@fireVein: Thank you! You will have a place with the first testers if you wish.@Jason
Thanks for your words. You made many good points. I think emoticons will just be pushed for a future update when I have some spare time. Meanwhile i will keep it as it is.
About the music... I' m looking for something epic which raises the morale. As forces are gathering and preparing to battle. I would favor something in the line of the Conan:The Barbarian movie soundtrack. Some strong scores and mixed with soft and peaceful ones. Ideally I would like to have something in the mood of:
Battle preparation (for menues, long looping score)
Gathering forces (frenzy, rush, everybody busy preparing weapons and armor, marching to battle, horns calling the troops)
Forces aligned and waiting for battle. Tension, two armies one in front of the other, soldiers knowing this may be their last day.
Battle!!! Strong, chaos everywhere, rage, death, no mercy, only one army will prevail.
Lines break. Soldiers at one side get demoralized, chaos follows, everybody runs for their lives. Victorious troops try to chase and terminate any troops.
Calm after the storm... soldiers rest, the battlefield is silent. Death everywhere.
Song for the heroes. Heroes are praised, joyful, dance, beer, love. Comfort for the warriors.
Song for the dead. Dead warriors are mourned but they are now lucky to be at the side of their god and served by valkiries.
Evil gathering. Somewhere a large army is amassing again and will come, its just a matter of time.
That way the music may form a line. Now, this may be just my overall mood so I guess other ideas may be welcome. I have been hearing some sound tracks and found these. They mix these ideas and others I like.
Menues
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Action-Music/Day-Of-War/318357
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Epic-Music/Lords-Of-War/318364
Battle
https://www.audiosparx.com/stockmusic/archive/Dramatic/Production-|-Dark-Music/Tantra-Magic/313662http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Epic-Music/Forces-United/318361
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-War-Preparations-Music/A-Warriors-Resolve/318356
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Dark-Music/Spirit-Dance/313438
http://www.stockmusicsite.com/stockmusic/archive/Middle-Eastern/Middle-Eastern-Music/The-Desert-Kingdom---Filmscore/316470
http://www.stockmusicsite.com/stockmusic/archive/Middle-Eastern/Middle-Eastern-Music/Sahara---Ethnic-Filmscore/315579
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Action-Pending-Music/Infinitus-Sanctus-Numen/315552
http://www.stockmusicsite.com/stockmusic/archive/New-Age/Ethnic-Fusion/Gathering-Of-Souls/313519
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Magical-Music/Hidden-World/313121
http://www.stockmusicsite.com/stockmusic/archive/New-Age/Meditation/Return-to-me/313061
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Magical-Music/Fantasy-Forest/312750
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Danger-Music/Locked-Up/312661
http://www.stockmusicsite.com/stockmusic/play/port_lofi.cfm/sound_iid.277677
http://www.stockmusicsite.com/stockmusic/archive/Dramatic/Production-|-Epic-Music/Skies-Of-Fire/312584
http://www.stockmusicsite.com/stockmusic/archive/Asian/Asian-Music/Fortress-filling/312577
http://www.stockmusicsite.com/stockmusic/play/port_lofi.cfm/sound_iid.318197
http://www.stockmusicsite.com/stockmusic/play/port_lofi.cfm/sound_iid.318193
http://www.stockmusicsite.com/stockmusic/play/port_lofi.cfm/sound_iid.318159
My wife doesnt like some of them, she says they have too many horns which may be distractig in the long run. May be true. I'm no good for sound anyway. Maybe something strong but less intrusive like the Lord of The Rings soundtrack would be perfectly ok.
About the price, Im looking for quality and I know that may be pricey. But I think I can raise the money if I need to. If your friend can take on this then tell him to send me a quote so I may have a reference.
Luck!
Guimo

Torque Owner Brian Wilson
Re: Emoticons:
Personally, they have no direct meaning for me and I would classify that as a scope creep feature. But if it's something you wanted from the onset, or it's a feature that means something to you, or if it's simply an area you wanted to flex your brain in a bit, then by all means, keep at it. Personally I'd put it in the "nice to have" section and at the top of the list of the first features to toss in the bin when resources run low (time, money, patience, etc.)
Re: Graveyard:
I think this could be a great feature, but only conditionally... I'm not sure if you've mentioned how you are handling the camera, if it snaps or defaults to a view from a players perspective, basically giving the player a sense of which side of the game field belongs to each. If it is set up similar to a chess match, where there are distinct sides of the board for each player, I think having your pieces/units staring back at your from a graveyard behind the other player's side of the board would be a nice touch. But only if you have that element of visual ownership of either end of the play field.
Re: Options Button:
It never fails for me, if I try to add a simple component outside of the scope of the ultimate GUI controls that will handle full menus and such, it's usually buggy. I don't know, it's probably coincidence, but I'm sure it could be because GUI's aren't the focus of my development at the time. I've gotten to the point that I don't bother with options buttons and stick with keymapping until I get in the mindset of developing the full control system for options/menus.
Re: AFX:
I've specifically avoided getting AFX so far simply because I haven't directly needed it on any of my projects yet. Not because I have anything against AFX, from what I've read it is fabulous. But I'm a toy junky and I know as soon as I get AFX, my productivity will drop to zero for an extended period of time while I play with AFX. And right now I don't need those distractions. But I do look forward to when I have time to give AFX a good go.
Re: AI:
I've got a few AI books, and right now I'm reading through Programming Game AI by Example by Buckland, and I'm really getting a kick out of it. Without putting super extensive AI in, I can highly recommend a solid but not over-complicated AI with a slew of scripts it can fire. While scripting adds a lot of predictability, it also allows you to simulate a lot of AI-like responses that are really fun.
Re: Team Colors:
I agree, don't bother with exporting colors vars of each texture for TGE. Wait for shader support in TGEA, or the other option is to put a color decal/ring at the feet of each unit designating team, or there's always mounting team banners of some type to each unit. But I'd hold off until you decide for sure if you are going to TGEA or not before putting any work into this.
Re: Sound/Music:
take a look at:
www.stockmusic.com
Not all-inclusive, but might be a good start. ~100USD per CD though, so yeah, it can add up.
Re: Green Ear:
You've got a good product in the works. Look at all you've accomplished in ~9 months. You may want to talk to them out-of-band for a special option/agreement. But then again, a no-strings-attached $1000 budget increase isn't a bad gamble ;p
Thanks again for the transparent development. It's inspiring.