Declan Hopkins

software & game developer

[19] World Engine Improvements And Props

06/30/2020, 07:28pm

Antorum is a small island right now, but I've been planning on making it larger for a while now. I didn't spend time optimizing the terrain for this in the early days of the project, so I had to do a bunch of work to get the code in order. Terrain data should be easier to stream on the client now, and objects such as trees and entities will no longer be processed if they aren't in sight.

As usual when messing with the world engine, I had to update the Editor. Mostly it was boring refactors, but I did end up adding some goodies like entity scaling, rotating, and randomizers for those to help make more "natural" looking arrangements. Additionally, I used to store trees as their own type of data to save some minimal amount of space, but decided to stop doing that because it was needlessly complex. Antorum now just has the concept of "props", which can be any 3d model. I've already taken advantage of this by adding props for a new type of tree (palm tree) and a boulder. I'll get around to adding more interesting stuff soon.

Changelog

  • Removed Tree tool and replaced "Trees" with more generalized "Props"
  • Refactored props and entities to be more closely associated with regions
  • Refactored world file serialization/deserialization
  • Implemented Prop Placement Tool
  • Implemented Prop Edit tool
  • Updated Entity Placement and Edit tools to support rotation and scale
  • Made a new test world that is much larger
  • Removed support for variable tile sizes
  • Fixed bug causing all regions to be reconstructed for any small terrain change
  • Fixed bug with map serialization that prevented map files from being larger than 1 mb
  • Fixed walkmap overlay rendering on large terrains
  • Added Tree (Palm) prop
  • Added Boulder (Small) prop