February 14, 2012

GRA Dev Update

The development has resumed, so do the (more or less) regular development posts on this website. I am going to detail in this post the incoming changes and additions regarding in the next versions of GRA, which can mainly be summed up with "destructible terrain", "user interface update" and "combat". 

This is going to be a fairly long post, so before delving into it and probably loosing 99% of the reader-base, I would love to have some comments regarding the current user interface, hotkeys and so on. Basically how the GUI should behave according to you. My current goal is to have something very similar to ToME 4 (great rogue-like, try it, seriously). I am not interested in "bind this action to this key instead of this one" posts as those will be configurable in a near future anyway.  Most menus (shopping, inventory) will stay mouse driven, but original ideas to add and/or errors to avoid are more than welcome.

Destructible Terrain

I am more or less done with it, at least the critical part. Technically, that is, because I still have to create a crapload of tiles for damaged and destroyed terrains (sigh). A peek at the new terrain editor will probably give you a better idea than a thousand words:

Damaged terrain (less than 50% health) will override the Block Line of Sight setting and destroyed terrain (0%) will override the Block Movement one. You can also notice the new Can Burn toggle, but at the moment it's a place-holder, and it's irrelevant to the subject at hand. However one thing is still missing: breaking a stone wall using a knife (or even a SMG) is unrealistic. That's why I am going to add to objects, terrains (and bodies) another setting defining how damage-proof they are. Weapons will also get the same variable to define what they can destroy or not.
The following values are not yet set in stone, but let's imagine that this variable contains only something like that: very fragile, fragile, medium, hard, very hard. If a hard wall is attacked by a weapon only dealing damage to something between fragile and medium it will receive no damage at all. Before you ask, no, there won't be half or double damage against harder or weaker surfaces, it's not very realistic I know, but code-wise and balance-wise it could easily become a nightmare to implement that correctly. Also, it won't be possible to destroy external walls in the second+ level of a building as it would cause a tons of issues (player/npc walking into the void). In the same spirit, breaking every single wall of a building with several floor won't (and will never) make it collapse as I am not trying to build a 2D version of the PhysX engine ;).

Of course to damage the terrain, I have to add an attack command able to target a specific tile instead of a NPC. This is also kinda required because of the recently introduced Area of Effect weapons (smoke grenades, RPG, flamethrower and more to come). It's not really a big deal, but the obvious next batch of weapons, explosives, will probably be trickier to implement. To be honest, when I started this project, I did not think everything through (no one does). And as a result, in the current state of the game, explosives can't be added as weapons. However (and now I am basically speaking to those who have dabbled a hell lot with the editors, followed the blog from the beginning and who know about coding in general, hopefully there's one or two of you around here ^^), Explosives could still be implemented without too much hassle as standard items with a special effect (boom). Modifying the Effect Editor (and the code behind it) will be required to add delay, AoE and such things of course. It's not that big of a deal, but it will require time and some thoughts on the matter. I'll post a more code oriented article about it later.

Combat System

The whole combat system should be more or less finished not in the next version but in the one after. The cover system will be implemented: If you are right behind a box (or another obstacle) you'll gain a dodge bonus and a reduced damage if hit. The ability to target tiles with AoE weapons (well, any weapon, but in this case only AoE is relevant) should also add to the tactical aspect of any encounter. Moreover, like I said in a earlier post you'll have 3 stances instead of 2. Currently we have walking (standard) and running (faster movement, reduced accuracy). I am going to add stealth/crouch which give you an increased accuracy at the cost of a slower movement. Those stances will also have an impact when a real stealth system is implemented (read further).

However, I am not going to lie, the NPC will most probably ignore most of those features for a relatively long while. Don't get me wrong, I do know how it implement this so NPC understand how to get to cover and find the best position/weapon for a given situation as AI development is my hobby. But, it's a CPU unfriendly and time consuming process which is not critical to the development in general. 


Like explained in the part about the destructible terrain, weapons will go through a few changes in the next versions. First, a "strength" variable will be added to them. If an object or NPC (like a steel robot) is made of a strong enough matter, damage done by a weak weapon like a knife may be ignored. Also, currently, weapons can only target a specific NPC (or, soon, tile) and may or not have an Area of Effect in top of that. I will add some diversity to this system to get more realistic behaviors:

- Shotgun/spread effect : 1//3/5/7 tiles large according to distance.  like this: 

(you) ***

Obviously, in this case, the spray is too large. I should find a way to have something more diffuse by giving only 50% of damage on the outer tiles (i am pretty sure it doesn't translate well / make sense right now for you, but schematics and articles will be posted about it at a later stage):

- Standard gun behavior:
(you) ----> (someone may get hit) ----> (real target may not)

- Grenade type:

(you) ----> (don't get hit) ----> (ouch)

In general weaponry related code is going to be rewritten and rewritten again until I get something I am satisfied with.

User Interface

I am not going to make friends in the RL community. But let's face it honestly, there is a reason (well several, but it's another subject) why this type of game died. They refused to evolve. Being unable to "bump" into a door, and having to use the "Open" key -and oh god forbid, not the "Use" one- to open it, is not old-school, it is bad design and/or (probably both) poor coding, plain and simple. The less keyboard shortcuts the better. Anyone who say otherwise is wrong. Removing redundancies is a good thing as long as it doesn't reduce your options. Having a mouse driven UI is also a good thing. Being able to use only one hand to do most if not all the commands is something great (yeah i'm a smoker). You can argue otherwise, and I will respond as it's an interesting subject.

This said, the GUI will become more and more graphical in order to get something that's more or less "diablo-like" and which looks like a real game instead of a windows 95 app. Graphical effects will be added  "in between turns" so the player can easily know who shot who. The quick access toolbar will be extended, and so on.

AI and City Simulator

That will be integrated slowly but surely. Repair men will be added, to fix the walls you've destroyed, weapon shops will be more diverse to accommodate with 'self defense', 'tool like', 'hunting' and so on weapons. Cops will get an upgrade. NPC in factions will also be able to move/act as a group (party). All of this making the next chapter easier:

Missions and storyline

Yeah it has been delayed, a lot. There is a few reasons behind it, and I have dropped hints there and there to explain why. First and foremost, the game engine isn't ready for it. Yes, I could add in a few hours "kill X to gain Y" missions. But it's boring and insufficient. For those who know me a bit either through my plugin development regarding X3 or my other projects, you should know that I am a big believer in emergent systems. GRA is getting close to that point but I still have to add a lot of (boring to the player, interesting to the AI coder) features beforehand. I am NOT going to add "hardcoded" missions, like click on the accept the quest button so a building, enemies and a target object will spawn for you to complete the mission. So, until the city simulator reaches a level of complexity sufficient, missions are delayed. Secondly, GRA is mainly a tech demo. And thanks to it, I know that the game engine I have written can handle, on modern computer, 10k+ NPC simultaneously with relatively complex behaviors on very large maps (and with some game dependent tweaks we can double those figures easily). Such engine could be put to better use in other games (*hint* ZCOM *hint*). I am not saying that GRA will be discontinued, but soon will come the time where a choice will have to be made regarding where we are going.
Anyway, yes, dialogs and a mission system will be put in because I need them anyway, It probably won't be very moddable, though. Yet again, I will post about it when I fell it's necessary.

Later Changes

Handling light sources, a day/night cycle and fire spread/handling are the most probable follow ups. Also the city generator would benefit from unique sectors (a large park, museums, rivers, and such) to make more believable cities.


Sorry for the relatively weak english here, it has been a long post, and I am kinda tired now. I have not written publicly in a long time and that's the result. The next version of GRA, with destructible terain should come in a week or two.



  1. Sounds like things are heading in a good direction indeed. Funny that you should mention ToME 4 as a thing to aspire to in terms of UI and whatnot, considering the eventually forthcoming Beta 38 is supposed to overhaul quite a bit of it, so you should definitely see what that brings.

    In terms of stylistic stumblings relative to it though, I would like to see you be able to avoid the "MMO Clutter" aspect that it has in terms of how insanely gigantic/distracting the skill bar can become with the sheer volume of cooldowns and general information overload that tends to distract from the gamefield proper. While a wealth of options is a good thing, there has got to be a more intuitive way of handling the constant presentation thereof.

  2. Thanks for your comment.

    Don't worry too much, I am very far from being fond of MMO'like systems. Like you said yourself, it's too cluttered, and make things hard to follow. The game being in a modern / near future setting, magic related spells and cool-downs are unlikely to become a major annoyance here anyway. Of course, players still have to take the environment into account, cover, smoke, fatigue, line of sight and so on. But that's something that should be easy to process as you'll see obstacle/smoke between you and your target and be able to look at your chance to hit anyway. In other words, what you see on screen should make your situation blatantly obvious.
    This said, some sustained, and cooldowns effects may appear, but all things considered, we'll be *very* far away from any craziness we can see in MMO.

    Writing a relatively solid user interface for a game is something weird. Despite being relatively gifted and experienced with software / website UI development and despite being a gamer for more than 20 years, marrying those two things together isn't as easy as I thought it would. I can spot any UI related issue in a 3rd party program/game. But, in my game, it's way more difficult. The only explanation I can come by, beside laziness, is that I get so used to the controls while testing those that I get "immune" to the flaws. There's also purely technical setbacks, like the inability to add weapons to the action bar (at least right now), those are purely code dependent and will be overcome later.

    Anyway, I will look forward to the .38 version of ToME4 even if I don't really see what they could do apart from fixing the more or less critical bugs (like pressing I instead of clicking the inventory icon giving, sometimes, a corrupted inventory) and the very few redundancies.

  3. Seen the beta .38 of ToME4 it's more a graphical update than an UI overhaul tbh. It's nice and all but it doesn't change much regarding the subject at hand.