October Updates! Creatures! Borders! And More!


Update 0.4 is here!

These logs are getting bigger because I am spinning my wheels faster. I’m moving the dev logs to Itch so that people can get notifications of them. If you follow an itch account you get emails :)


--New Features!!! Chickens! NPCs! Oh my!

  So this update I put in the Navigation Mesh, which is pretty straight forward with this setup. Updating the NavMesh during runtime introduces little to no performance impact because all of our mesh data is already pre-parsed during the procedural Mesh generator step. Our chunks are already mathematically aligned so we have a navMesh node on each chunk to update, and Godot handles the rest. Good Jorb Godot!

So, chickens! Starting with a simple little creature. Look at them go. First I built a finite state machine, and then I thought, Wow, I’ve got to make a bajillion NPCs and only one of them is a chicken. 


So then I sat down and got lost in behavior tree hell for like a week. But I’m happy to announce behavior trees are now setup and working. The trees also can get input from an overall manager. So this is like a dual layered system where the chicken only knows its immediate information, but the manager is omnipotent and can influence the chicken to go in certain directions. Right now, the chicken manager slowly pushes the chickens together so they stay in a flock. We’re channeling Alien: Isolation in our chickens.

So after making the world’s most over-engineered chicken, I moved on to re-using the scripts for the NPC, and now have an NPC that wanders around like a chicken.  I haven't included it in this update because the animations are terrible, and I want them to have their own non-chickeny behaviors. But NPCs are coming along as a big step towards getting the main game loop running. Have a janky preview!


The last Godot update also included some handy bits necessary to make your own Inverse Kinematic nodes, so off I went and did that.  The chickens will point their heads at things, and the NPCs can track objects by moving their heads and eyes independently.  Credit to the WiggleBones add-on for the chicken's wiggly butts. These models and textures will change.

Performance improvements:

  • Fixed lag when placing many decor items quickly. Item scenes are now cached the first time they are created and so don’t have to reload from disk every time they are placed.
  • Fixed lag when first time editing each chunk.
  • Rearranged the threading on the load screen, so the game should not stutter during or immediately after loading.
  • Temporarily turned flower breeding off because it was causing a lag spike when all the flowers tried to breed at once. Also temporarily turned off grass because it was laggy and ugly.

BUSHES!


Wow

BORDER CHANGES

Previously, the border was a static object made in blender. This was very laborious, and didn’t match the procedural meshes very well. While I was redoing the lighting , I had also noticed a glaring issue in that the normals between the non-procedural meshes and the procedural ones never quite matched correctly, causing weird lighting problems.  Some sort of blender export nightmare was afoot. Instead of letting blender continue to choke me to death, the border has been totally re-made with procedural chunks. This involved re-tooling the procedural code into a second border generation script, with its own save data, and its own edit tools. So now I’ll be able to build the border in game as if it was part of the playable area, and then toggle the editing off for normal gameplay. This doubled the load time, but once I’m done building this border as a procedural object, I can export its mesh data out to a resource and convert it back to a static object. So to the player there is no change in load time, and the static area is now indistinguishable from the play area.

Or at least it would be if I finished making it look mountainy in time for this release, instead of just blocking in the general shapes. C'est la vie

You might also notice that the play area has gotten half a chunk smaller, but what has actually happened is the player movement has been restricted by half a chunk. If the edge of the play area exactly aligned with the edge of the static border object, you would notice that the static object does not update the same way that the procedural area does. Here is an image to explain.

CAMERA CONTROLLER 

Oh boy howdy is this a changePreviously the terrible orbital camera was a result of a couple different scripts patched together haphazardly on top of a spring-arm. In this update I’ve gone in and completely rewritten them into one C# script. It no longer uses a spring-arm, so it no longer launches your skull into walls. There’s certainly new bugs here,  but none of them are as brain-meltingly bad as randomly firing your noggin into the sky at 1000 units per second and getting stuck there forever. I think you'll find the actual playing the game part of the game to be significantly more fun now that you don't get stuck every 6 seconds.

LIGHTING IMPROVEMENTS

The lighting is still pretty wack. But I sat down and corrected the way that the shaders handle the point in time where the light loops, so the lights no longer "pop"  at the beginning and end of the day. It'll get more fiddling, as there is now a sunrise and sunset period that has its own colors, and I'd like those colors to be more fun.


--WHEELBARROW TOOL

More tools! This was in the game before but not available outside dev tools. Use the wheelbarrow to fill large areas of voxels at once. It uses the same two click selection mode as the trowel. It also doesn’t remove items from your inventory because honestly it’s still just a dev tool that I needed better access to. So now you have access to it too. It only places dirt with grass on top to a set height, but hey, proof of concept.

--THE BUG FIX PILE - September is my birthday month so I worked mostly on visual fixes. I like visual fixes :)

  • Plants now sway together in a global wind.
  • Plant watered sparkles now billboard properly
  • World colors no longer become washed out on the second day
  • The inventory now displays the shape of blocks rather than all cubes, so you don’t have to solely rely on tooltips.
  • Plantable plants in your inventory have their own inventory display as a bag of seeds, so they don’t get confused with decorative plants.
  • All the UI stylings have been updated to be prettier.
  • Load screen style matches other menu styles, and no longer locks your mouse during loading.
  • Flowers load their states 100% of the time instead of most of the time.
  • Chunk edge culling being incorrect on the initial load has been fixed. This removes many holes in the meshes.

--Controller/Joypad fixes

  • Controller works in main startup menu
  • Camera controls working again (oops sorry broke it last release)
  • Tool menu focus mode fixed so that holding the primary button in gameplay no longer wigs out and changes tools
  • Joypad A/B buttons work as primary in inventory
  • Zoom no longer goes nuts in inventory

Thank you for following along!

Files

WasteYourLove0.4.zip 120 MB
45 days ago

Get Waste Your Love Demo

Leave a comment

Log in with itch.io to leave a comment.