BLISTER - June Devblog - Total Refactoring

Bret

It has appeared somewhat quiet at BLISTER HQ the past year while we've been working on various things, but we have been busy under the hood of our little tactical shooter, carrying out some interesting and necessary changes to the way we have written the code to generate a cleaner and more stable experience. Regan will be talking more about that. 

    I will end my brief piece with some news regarding level design and destructible mechanics. I have recently gained some experience in archviz and its principles are informing BLISTER's environment art and level design, so expect some sweet looking environment art soon.

   As for destructible mechanics, some of you may have seen in the trailer and a little demo on my personal YouTube channel that we were beginning to explore levels that allowed you to destroy walls to create new access points. There's no better feeling than blowing a hole in a wall and unloading a clip into some surprised insurgents.

   Before this our lighting was almost dynamic and somewhat limited in this scene to account for the amount of physics objects in the level that were generated as a result of the high level of destruction. Ceiling tiles were simply moveable objects that responded to any physical force. Walls were just multi-layered destructible meshes and level clutter that responded to gunfire such as computers, monitors and desking were also just physics objects. It was fun but ultimately infeasible for a game that needs to run smooth.

   After this first iteration we are scaling back some of these fully physical objects to allow for both destruction mechanics and fully baked lighting. As an example, destructible walls will now be lit as if static, with internal layers such as insulation, wood beams and pipes exempt from the lighting bake pass. This lets me light the level with hardly any dynamic lights and just a few well placed directional lights (which are baked like static lights but also cast proper shadows). Not all walls will be destructible but a much greater amount certainly than Rainbow Six: Siege. 

   On top of this ceiling tiles will remain thoroughly destructible with some cheap tricks. The tiles will be statically lit objects until they receive some force, and at that point the static tile will be hidden and spawn a new dynamic/moveable broken tile in its place from a pool of predetermined broken tile assets. Further testing is required to make sure the physics of these spawned tiles behaves convincingly. 

I will now stop talking about all this until we have some pictures and videos because words are boring and destruction is just something that has to be seen.

Chris

I'm currently working on the UI in BLISTER. We're aiming to keep the UI minimal but functional, so that it helps you do what you want to do but other than that stays the fuck out of your way. Lots to do in the rework and should be something to show soon.

Regan

With this big refactor, there’s a lot of work to be done. We're not starting from scratch, a lot is already done being brought over from the "old" BLISTER, along with all the art. To aid the planning of this we split BLISTER into the many systems that combine to make the game. The biggest problem in the older versions of BLISTER was that too many systems were dependant on each-other, making it difficult and time-consuming to make any kind of drastic change to any base system. In this refactor, everything is being designed with maximum separation between each system.

   So far most of my work has been focused on the weapons and their handling. The feel of these weapons is extremely important in BLISTER. The aim is for chunky, imprecise handling of weapons that will reward players who fire with accuracy and quick reactions. Spraying in a moment of panic could be a commitment that ends your mission quite prematurely.

   This feeling was achieved well in older version of BLISTER, however it was fraught with bugs. The handling of weapons is now controlled by a custom component used by the Player class. This component is the parent of a child actor containing the weapon actor itself, and using variables from the player such as speed, direction and mouse input decides how the weapon should move and rotate relative to the player. The movement of the player’s weapon is not the only way BLISTER achieves that “chunky” feel, head bob when moving (which will be a toggle for those that hate it) and impacts when running into a wall make a lot of headway into the player feeling that they are part of the world, and not a floating camera with a gun. Below is a demonstration of the weapon handling and movement in a test level.