Warscale 45 - Teaching new tricks to an old dog
by Guimo · 07/17/2009 (6:20 am) · 5 comments
Hi everybody!
Last week blog was about my utter failure to integrate some special effects into Warscale. I was so frustrated I forgot to mention so many accomplishments. Fortunately this week has been different so no I will enumerate what has been done.
New grid
As I mentioned the last week, I have been working closely with Michael from Sleepingpaint to make the graphics for one of the most critical components of the game. Without any further ado I present you the new grid!!!!
This element is so important as basically you will see it at all times in the game. Michael was really patient and was able to put down all my suggestions until we got something I (and most important, my wife) liked. Obviously he has also won a mention in the game credits.
New equipment list
I have been working a lot with the equipment system. Not on the programming side but on the logical side. I wont hide the fact that I copied lots of lists of equipments from different games like D&D and Diablo and then somehow managed to create an appropiate price list. I also created an improved version of my materials table and wrote some lists of abilities for the equipment including the armor levels for the armor items and the damage tables for the weapons. Now that everything is in place I can take a weapon and spply its appropiate material plus magic effects and compute an appropiate level and price for it. I do it by hand so I can get the chance to adjust and tweak the items.
Particle systems on the model viewer!
I wanted to leave the best for the end.
They say you cant teach new tricks to an old dog but fortunately TGE is an very flexible old dog. This week has been all about making the particle system work within the object viewer. Here is it!!!
The reason I talk about this in so many blogs is that the object view control is a critical element in Warscale as it needs to be able to how the creatures as they are going to appear in the game. I just cant show a hell hound in the object view if I cant show the fire around it. It would look just like an ugly dog. Just compare this two images of a Fire Wolf and tell me which one you prefer.
In order to make this work I was forced to make a real extreme makeover to the object view control and changed the internals so much that it no longer resembles the original object view... maybe just 5% of the original code remains, the rest is a complete rewrite.
I didnt want to rewrite all the particle system. Torque already has a very powerful particle system so one of the requirement I had was to be able to use the original Torque particle datablocks within the object viewer and in the game. Unfortunately this is easier to say than to do.
The datablocks worked fine. If you just create a particle or particle emitter datablock on the client side and then force a reload, then all the required resources are loaded. The problem is that the other crucial component, the particle emitter, is a game object and it requires to be mounted in a scene or it just wont work.
So, I'm not ashamed to say I basically ripped off all the particle emmiter code and created some interfaces to the global particle engine to allow me to fetch and return particles to the global allocation lists. I adjusted the code to work completely using a class which does not depends on the scene at all and its able to create particles, destroy them, animate and render the particles.
But this wasnt all. The previous object view control works using a linear array of objects. I changed this to use std lists and organize the objects in parent-child structures so everything resembles more a classical scene structure. On the rendering side I also changed the way the matrices are chained using the matrix stack and applied some matrix operations to allow the particles to ignore any rotations.
The result is not perfect. The particles are always linked (constrained as defined by AFX even when the flag is off) to it original emitters but its ok for now as this is just a window and I dont pretend to have a fast moving object on sight.
Maybe in the future I can improve the code but for now its enough. I just wonder why the particles looks more transparent on the lower side than in the upper side. Strange.
Work for this week
I will try to go easy this time. Previously I thought it was enough to be positive. Now i know I wont be able to start with the equipment until I have all the basics set.
So, my curent objective is to make this Steel Double Axe of Flame to work.
Steel Double Axe of Flame
Equipment Weapon Axe Level 9
Damage Fire 12 - 50
When Steel Double Axe of Flame hits, it keeps dealing 1-6 fire damage for 3 turns.
So, the next step is to make the particles work in the game. I have already implemented the mounted particle emmiters resource for game objects but I need some way to mount multiple emmiters in an object.
Also, I need a way to start the fire damage effect on the target (mounting more particles maybe) and stop the emitters when the effect is finished.
Another pending thing is to make those animated textures work. Michael is working on the textures right now and hopefully we can get them working soon. That technique can replace a lot of particle emitters.
Nothing else.
I dont know if I posted this previously but I love these photos. They are certainly eerie... scary... you can almost feel the cold wind blowing through the abandoned buildings... the echo sounding everywhere... the smell to decay... invaluable for anybody building some post apocaliptic game.
http://www.dirjournal.com/info/abandoned-places-in-the-world/
Luck!
Guimo
#2
Regardless, always a pleasure to see your updates. Nice solution to the particle system limitation. sniff sniff, do I smell resource?
07/17/2009 (8:49 am)
I like the new grid a lot but the 4 outside corners look a little 'flat'. Perhaps a dts would look nice.Regardless, always a pleasure to see your updates. Nice solution to the particle system limitation. sniff sniff, do I smell resource?
#3
07/17/2009 (9:24 am)
Nice! And great work on the object viewer!
#4
I too have been working a lot on the GuiObjectView, though I still don't have many many things in there that I'd eventually like to see. Great job on that too!
07/17/2009 (12:28 pm)
I love that logo. I definitely vote for the second dog. Looks vicious.I too have been working a lot on the GuiObjectView, though I still don't have many many things in there that I'd eventually like to see. Great job on that too!
#5
In Blog #31 you showed the "Improved GuiObjectView for TGE 1.5.2" and you mentioned about selling it, if so I would like to purchase a copy asap.
Btw, VERY nice work on Warscale, very professional looking.
08/05/2009 (4:29 am)
I have been reading your Warscale blogs and was interested in some of the technology you've developed.In Blog #31 you showed the "Improved GuiObjectView for TGE 1.5.2" and you mentioned about selling it, if so I would like to purchase a copy asap.
Btw, VERY nice work on Warscale, very professional looking.

Associate Steve Acaster
[YorkshireRifles.com]
*pats firewolf*
Youch! ... firewolf is ... hot ...
New grid looks good. The rotating weapons and updating player viewer pane is awesome.