Index
Sunday, Jan 12, 2025 | 3 minutes read | Update at Sunday, Jan 12, 2025
CMany changes
Progress has been made in nearly all parts of the game.
- Dynamic World Environment
- Lighting System
- Updated Weapon System
- Bullet Penetration System
Other small changes
- Camera Clipping Bug workaround
- FPS counter
- Game scene tree layout
Dynamic World Environment
Previously, the sky for the WorldEnvironment used a panoramic skybox. This has now been changed to use a dynamic sky shader by krzmig. The shader makes the sky change colour depending on the rotation of the sun. A time system will be implemented later.
The world environment has also been tweaked to use SDFGI lighting and volumetric fog. The volumetric fog allows volumetric light, ‘god-rays’, to be seen in-game.
Updated Weapon System
The formatting for storing weapon data has been changed to allow better customisation of weapon properties. Ranged weapon now have individual settings for recoil, automatic firing, fire rate, damage, etc. The weapon selection system has been changed to make it easier to change/swap out weapons on the go.
Guns and bullets now have certain grades of material they can penetrate, Light | Medium | Heavy. Light bullets are shot by pistols and SMGs, medium by rifles and marksman rifles and Heavy by hevay machine guns and sniper rifles. To accomodate these changes, 4 new collision layers have been added. Light Materials, Medium Materials, Heavy Materials and Impenetrable Materials. Bullets can pass through materials equal to or lower then their weight class. The Impenetrable Material does not allow any bullet to pass through.
Other Changes
Camera Clipping
The shoulder view camera would often clip through a wall, blocking the player’s view or unintentionally showing areas that are hidden. This problem occurred because the camera and it’s SpringArm was offset a metre from the center of the body. Another SpringArm was attached to the player body to act as a buffer when pressed up against a wall. This prevented the Camera SpringArm from being forced into a wall and clipping.
Scene layout
A minor change that would hopefully make organisation, and loading and saving easier.
Main
Settings data, loading, saving
+-Game
Game state (mostly ui data)
+- World (multiple worlds, but only one can exist at a time)
Contains game-time data, enemies, entities and terrain data
+- Player
Stores player data (inventory, player state)
Player Data is compiled and stored by the player, which is then fed to the Game State file along with all the different World states.
The game state file stores all the data and other things like current world, statistics, etc.
THe main scene stores player settings and acts as the main saving and loading scene, although the Game scene is responsible for smaller saves (quick saves, autosaves)
Plans
- Add an inventory system
- Add working save system
- Start planning storyline