TACStrike: weeks of August 10th - 23rd

Published on Monday, 24 August 2015 07:29
Written by snake5

Even though my LD33 game is still unfinished, it's time to talk about progress. And, well, there's been quite a lot of it.


Incremental lightmap rendering

...it's all about not doing too much of it, all the time.


The goal here was to make it possible to skip the lightmapping step as often as possible (especially while doing minor edits to level, configuring path points and things like that). As I've already tested it while making the level for my LD33 game, the goal has been reached already.

It took about 30h to implement, which was 3x more than my initial estimate, 10h. The system consists of a "level graphics container" that handles all the meshes, surfaces, lights, lightmaps, sample tree and some other things. Entities, patches, and blocks were updated to manage their graphical representations through LGC. This all seems very simple but it required quite a lot of new code so bugs appeared, as expected.

This also didn't include the time spent on multithreading the lightmapper, which was required to run it in parallel to editing. I don't generally edit the level while my lightmaps are being compiled but I've made sure it's very much possible.

Another minor thing to mention - mesh lightmap size is not mesh size-based anymore. This seemed like a good idea in the beginning but usually just leads to lightmaps incompatible with the texture coordinates made for them.


The loading screen

...because plain freezing up is no longer in fashion!


I wish I had more to show here but, looking on the bright side, this image is small enough to download and can be understood quickly. :)

Not sure what to put here yet, currently it just fades in, slightly animates the text and fades out in the end. A progress bar would be welcome, as would some description of expected adventures but all that can come later.


Scripted item physics constraints

Connecting all things scripted...

08-19--0922-scritemphy sr08-19--1005-scritemphy2

Two types of them are currently implemented - hinge and cone/twist constraints. No limits yet but there are 4 constraint slots that can connect any of the (up to 4) bodies with each other or the world.

This was mostly done as research towards ragdolls but who knows where else I could apply it someday. Swinging dynamic lights are quite cool on their own as well.


Character deformation

Not quite ragdolls but of similar importance.

08-18--1012-dyndeform fx

As some could probably guess, this is made to simulate deformation created by applying external forces (gunshots, punches, explosions etc.). In the animation above, the force is applied approximately in the same orientation that the camera has.

This was created to avoid the explosion of animation variations regarding response to external forces. Hopefully it will make gunfights more visually interesting as well.

As for ragdolls, I've actually gotten quite close to having them, the character editor already supports joint editing, the file format contains all the necessary structures. I just have to apply final modifications to the editor, implement a basic generator, add the constraint limits and implement ragdoll behavior in the character system. All goals very reasonable and within reach, though I'm not sure when will I be able to get to them.


LD33 game

...is still in development, though I do have something to show:



In conclusion...

Since I've discovered lots of issues that should be addressed, such as...

  • insufficient entity script bindings
  • strong coupling between things requires me to #ifdef hacks in code for every new project
  • missing editor transformation and grouping capabilities

...I'm probably going to address these first. Maybe I'll try to poke around embedded devices (Android perhaps, this time?) as well, try to make something work for them.

I've got so many games to rate as well so the next update might be delayed due to there not being much to slow after two weeks.


Latest images