TACStrike: weeks of August 24th - September 13th

Published on Monday, 14 September 2015 08:28
Written by snake5

Ragdolls, AI and refactoring were the main points of interest during these 3 weeks but there were other things that I played with as well.


Most importantly, my LD33 game was finished at the beginning of the week and it looks rather serious.



There were also some attempts to make fog (volumetric) lighting.


It looks somewhat OK but needs some renderer improvements to help me make these effects faster in some easier way. Those, as well as other improvements, are scheduled to happen very soon. I'm also paving the way for cross-platform rendering, both GLES2 and D3D11.


As for refactoring, it can be easily described as moving all scripting and systems out of the game level. This consisted of two very obvious parts:

  • Extract systems (like level mesh data container, scripted sequence runner) from the level and make it possible to optionally attach them.
  • Implement scripting for systems and entities, so that they can provide a C++/BC (binding compiler) -based API for scripts.

I found these necessary when I wanted to implement a cutscene involving a character walking into a room from an elevator, and opening/closing the elevator doors. Didn't have cool scriptable stuff like this so I had to cut the idea and implement basic camera movements and subtitles instead. Well, I still don't quite have it but I'm much closer to it now.



...'cause death animations are so 90s.


Seriously though, it's just another case of overwhelming asset creation costs being solved by technology. I intend to combine the previously created deformer and these ragdolls to produce something that looks as authentic as I can get it to be.

There are some things that had to be done to implement ragdolls:

  • implement visual transform (position, rotation) editing in character editor
  • implement body and joint editing and visualizations
  • covert old and half-done ragdoll animator code to new and fully working code

Some pictures and gifs from the process:



Cover system

There's nothing quite like a thick wall to protect you from gunfire.


The goal of this system is to provide AI with information as to where could they go to avoid gunfire. Inputs: location of attacker and a simplified version of surroundings. Output: lines (and later points) where the character could be protected from gunfire.

For every somewhat advanced behavior, there has to be lots of data to support it. This is my solution for movement with cover areas in mind. After that, I don't think there's anything as data-heavy as covers. Teamwork, fact processing, psychological factors, dialogs - all can be done from within the enemy script. When I'm all done with covers, all these things should appear shortly after.

Things left to be done:

  • picking a random point from the generated lines
  • removing occupied positions from the generated lines (by convex intersection)
  • detecting if cover is low (crouch to hide, stand to shoot) or high (step inside to hide, step outside to shoot)
  • finding positions from which the attacker could be seen, with the option to find flanking paths

Some work-in-progress pictures of cover queries:



As for future plans:

  • implement renderer upgrades
  • finish enemy reasoning helper systems
  • implement AI
  • implement one fighting level with arena-type scripting (respawns and score counter)
  • finish all this in a month or so, making the last folders with a round number (this week it's "wk18", last should be "wk20")

As for that last point, I'd like to move my publishing activities to a game developer forum when I'll have gameplay to show and subsequently downgrade this website to a bunch of plain HTML pages (or minimal PHP at most). I want to make content, not administer websites, so I don't need this complex interactive machine of things called CMS that's just slow and interactive and unsafe for no reason.

There's currently no plans to reboot Steam Greenlight, I'll have to see how fast will content development go, as I'd like to do it when I'm halfway there.


Latest images