Welcome to the updates page.
Here you will find updates from me from newest to oldest.
The most recent update is 0.0.1-20260705-R.
Changes:
- The Brain
- Added "No AI" text to debug labels when monsters spawn with no Neurons in their brain.
Re-Implementations:
- Some code related to the inventory has been readded.
- The Inventory logic or visuals have not yet been reimplemented.
Additions:
- Entities
- Added "No AI Monster"
- Another test monster.
- Is black.
- 25% chance to spawn instead of a Test_Monster, Wanderer or Sentry.
- Does not do anything.
- Used to test what happens when a monster has no AI.
- Also used to test how monsters rotate with the world.
Fixes:
- Fixed a bug where monsters rotated around the camera's central point instead of its direction.
Other News:
Hello all,
You may be disappointed to see that this update is small, despite my promise to try and add the TileGrid.
I am still chipping away at things, and also trying to learn 3D modelling too, beyond just blocks.
Life also got in the way this week, it always happens when you least want it to. We are getting there, bear with me.
Many Thanks.
Changes:
- The Brain
- Removed some dependent code that was tied to the chase neuron.
- The dependent code has been moved to the chase neuron as every neuron should manage its own state.
- The brain should only manage which neuron is active, not directly prod at them.
- This has one exception: upon instantiation, to set the active neuron to idle or the first neuron in the list.
- This is to prevent Null Pointer Errors when some neurons check what neuron is active.
- This is immediately overwritten by the score values within the neurons.
- The "test_monster" script is now kown as "entity"
Additions:
- Neurons
- Sleep Neuron
- Makes the entity sleep.
- The entity will sleep for 30 - 60 seconds.
- Sleeping entities will not wake up until they are attacked or otherwise provoked.
- This is still being worked on.
- Stepping into their player detector does not count as provocation.
- Currently the highest priority node.
- 1/32 as common as Idle or Wander, and when time is added, will be more common for certain creatures at certain times.
- With how it is calculated if an entity can Idle, Wander and Sleep, there is roughly a 21.7% chance of it happening per 20 minutes.
- The entity will not be able to sleep if the last thing they did was flee.
- If the entity has slept, the chance of sleep temporarily decreases below normal levels to activate neurons that may have had a lower score.
- Flee Neuron
- Makes the entity flee from the player it has detected.
- Will run in the opposite direction of the player.
- Uses the Sprint animations if the entity has them.
- The entity will continue to run even if it can't see a player.
- This period lasts between 3 and 6 seconds.
- If they spot a player in that time, they will run from the player again.
- Shoot Neuron
- Currently makes the entity stand still and face the targeted entity.
- This neuron is still being worked on, it will instantiate a projectile that will be fired toward the target.
- Entities
- Added "Wanderer"
- Another test monster.
- Is yellow.
- 33% chance to spawn instead of a Test_Monster or Sentry.
- Can only wander and chase.
- Faster base speed than test_monster (5.0 m/s).
- Added "Sentry"
- A third test monster.
- Is red.
- 33% chance to spawn instead of a Test_Monster or Wanderer.
- Can only shoot and idle
- Cannot move (0 m/s)
- Debug
- Added debug text to show neuron scores below entites.
- This is togglable with a new input on F7.
- By default, this is disabled.
- Added a Keypress label to the top left of the debug text.
- Currently only displays keyboard input.
Fixes:
- Fixed a bug where monsters don't rotate with the camera.
- Fixed a bug where the Chase Neuron wouldn't play the sprint animation.
Other News:
Hello all,
You may have noticed the new changelogs since the "3D-ening" the changelogs have been more readble.
They are more clearly defined in what has been added, removed and so on with better indentation levels.
I'm also somewhat extending this paradigm to builds. I will mainly be releasing builds on Sundays from now on.
This is a flexible rule, it isn't strict, but will be how I release updates for the time being until the Alpha MVP.
The second most likely day for updates is Wednesday.
Coming up is me learning the 3D equivalent to tilemaps, known as gridmaps.
This requires 3D modelling, something I'm not great at, so please bear with me.
Many Thanks.
Changes:
- The Player
- The Player's sprite now hovers one unit above the ground.
- This is not noticeable during gameplay but helps the player line up for falling off blocks.
- Also helps normalise sprites somewhat.
- The Player now has a "LocationNode" that sets the player's XYZ coordinate to the block below them.
- Test_Monster
- Test_Monster has a Brain.
- Test_Monster also moves at a base speed of 2.5 m/s.
- The base speed has a variation of 15% per monster either way (Minimum 2.125 m/s, Maximum 2.875 m/s).
- The game is capped to 60FPS while in editor.
Re-Implementations:
- Camera Zoom has been readded
- Triggered with +, - and backspace to reset zoom.
- Zoom level is displayed in the bottom right corner in metres (or "DEFAULT" at 33.75m).
- Minimum zoom is 101.25 metres.
- Maximum zoom is 8.44 metres.
- Fullscreen Toggling has been readded.
- Triggered by pressing F11.
Additions:
- The Brain
- The Brain is a node held by Non-Player creatures.
- It helps decide what they should do.
- This is done through Neurons.
- Entities are rewards based.
- The Neurons provide rewards and the brain takes the highest.
- Neurons
- Neurons are nodes held in the brain.
- They dynamically can be added or removed from a creature.
- Neurons hold the behaviours that a creature will do.
- Current Neurons are:
- Idle
- This Neuron brings the entity to a halt for a period of time between 0.2 and 10 seconds.
- Wander
- This Neuron makes the entity walk at half their speed for a period of time between 0.2 and 10 seconds.
- Chase
- This Neuron makes the entity move towards a player that enters their detection area (If they have one).
- Planned Neurons are:
- Flee
- This Neuron will make the entity move away from a player that enters their detection area (If they have one).
- Sleep
- This Neuron will make entities unable to detect other entities unless provoked for 30 to 60 seconds.
- Explode
- This Neuron will cause the entity to explode.
- Codebase is transitioning from Godot's 2D offering to 3D.
- This was due to a multitude of issues caused by trying to do 3D maths in 2D.
- Fighting against the engine is not the way I want to do things.
- The camera is orthogonal, casting down at ~63.4° for a roughly 2:1 top-to-side projection.
Removals:
- Temporary removal of the following:
- Inventory
- Mining
- Blocks
- Camera Zoom
- Build Grid
- Touch System
- Workstations
- Dropped Items
- Player Data
- Saving and Loading
- Removed the AO engine due to it being unnecessary.
Re-Implementations:
- Player:
- Movement:
- Speed and multipliers have been faithfully re-created to perfectly match the 2D codebase.
- Jumping has also been properly reimplemented with some new additions.
- Mouse:
- All old animated cursor code successfully ported with no changes to it.
- Can cast a ray to probe what it touched. Will spawn a test_monster at the end of the ray.
- Debug Menu
- Currently always on.
- Shows the following data:
- Version (Now has an "R" suffix)
- FPS
- Player Speed (m/s)
- Player Position (X,Y,Z)
- Camera Direction
- Mouse Cursor state
Additions:
- Camera Rotation:
- Added due to port to true 3D.
- Triggered by holding middle-mouse and moving left or right with the mouse.
- Will only turn in the 4 cardinal directions.
- True Gravity:
- The player can now fall and will raise properly with jumping.
- There is a terminal velocity of 200 m/s up and down for the player.
- Jumping Standing Still:
- Moves the player up and down at the same rate as a moving jump.
- Test World:
- CSG Boxes designed to mimic the old 2D world.
- 65x65 "Grass" square with test cubes blocks apart to get the camera correct.
- No Killplane after falling off the edge. Restarting is the only way to save yourself.
- AO
- Proper ambient occlusion has been added, hence the removal of the old AO engine.
- Lighting
- Plans for realtime lighting and shadows, but currently emulates the old lighting system (none)
- The player can now be saved
- Currently activated by pressing f6
- Saves a .backup of the old save and then a .hsp of the current player
- The player now has an area attached for detection of certain entities
- It is the same size as the build grid
- It announces if the player should start "suckin'" items
- The player can now mine
- Very buggy, instant
- does not drop an item
- The build grid can be toggled off with f1
- The world's wall layer now is offset 8 pixels north
- This is to account for depth and the "sides" of a tile
- Ambient Occlusion is being worked on
- This is to help differentiate between the floor and walls
- Walls are still hard to tell from the floors, this is being worked on
- The game now renders at 960x540 for pixel perfection on 16x9 displays @ 1080p or 4K
- The game can have fullscreen or windowed toggled with f11
- Items now internally havs stack amounts
- This is because they are treated as a resource in Godot (InventorySlot)
- This opens the gate for other modifiers for items
- Dropped items and workstations now exist as entities
- Dropped Items
- Have a single InventorySlot
- Bob up and down with a aqua glow
- Will gravitate towards the player
- Currently shout that they can detect a player nearby
- Will queue_free themselves upon touching the player
- Do not currently give the player an item
- Workstations
- Note what player is nearby and announce it.
- Major backend changes to decouple for multiplayer support.
- Debug screen decoupled from the player
- Inventory decoupled from the player, hotbar and UI
- Multiplayer is now high priority, along with:
- True building and mining beyond simple calls.
- Blocks and workstations
- Strata generation
- Player saving and loading (in a json-like format)
- World saving and loading (in an RLE-like format)
- Code Refactoring
- Added the Hotbar and Inventory, as well as the "Cursor Floater" item
- Items can be freely moved between the Hotbar and Inventory and are updated in real-time
- The Hotbar shows the active item through the yellow background
- Inactive ones stay white
- The Cursor Floater can keep hold of your item even outside the Inventory, but is not marked as the active item (still the Hotbar's yellow item)
- Changed the Build Grid rendering slightly
- Now deactivates if not holding something considered a building item (Pickaxes and Axes are)
- Changed the Touch System logic slightly
- Now does not say if something is interactable
- Swords are not limited by the Touch System's range, Pickaxes and Axes however, are
- Preparations are made for data serialisation for Player and World Saves
- Structure of these files have not been decided, but player saves are high priority.
- Code Refactoring, mainly focused on the character controller
- Added Chebyshev Distance, used for "Touch" system and Dynamic Cursor Changing
- Added "Touch" system
- Currently only works with interact (Right Click)
- Does not validate what has been interacted with
- Announces in chat if something is interactable or not (in range of the player)
- Added Dynamic Cursor Changing
- Changes to the "INTERACT" cursor type within interactable distance of the player.
- Otherwise displays as the "DEFAULT" cursor type
- Added fade to the build grid when the player is moving faster than 10 m/s
- The speed of jumping is now based on whether the player is sprinting or not
- Walking jump speed is now 12.5 m/s (The same speed as sprinting)
- Sprinting jump speed is now 16 m/s (both down from 18.8 m/s)
-Fixed some issues with how character sprites were calculated for rendering.
- Players now correctly use eight directions when on a controller instead of four
- Fixed some missing sprites and refactored the back-end for redundancy
- Controllers now use eight-directional movement instead of analog 360 degree movement
- Makes movement more predictable and less irritating
- Does affect analog movement speed, not just direction (TBD if analog speed will be readded)
- Added the Player
- The Player can walk, run and jump
- Walking is 6.3 m/s
- Running is 12.5 m/s
- Jumping is 18.8 m/s
- Jumping locks the player into going into a certain direction
- The Player has a build grid layer
- This shows the location of tiles beneath the Player
- Cursor
- Added "Masterhand"
- A basic cursor designed to mimic the Win95 pick cursor icon
- World
- The world is a 236x175 layer of grass with random flowers on a separate layer
- The world abruptly cuts off after this into a grey void that can still be traversed
- World size assumed to be traversible to the floating point limit
- This is not intentional, as worlds are intended to be big, but not "infinite"
- Debug Layer
- Always on
- Shows the following data:
- FPS
- Position (X, Y) in pixels
- Speed (m/s)