Video:




Screenshots:






Download:



Game Info:
Objectives:
  1. Create an infinitely generated voxel-based world with an underlying sci-fi theme.
  2. Create a server/client network architecture with the ability to run a server in-game.
  3. Take as much advantage of DirectX 12 features as possible with regards to world generation.
General Info:
  • Title: Neo Aetheres
  • Platfrom: PC
  • Genre: Open World, Survival, Sandbox
  • Programming Language: C++
  • Graphical API(s): DirectX 12
  • Development Time: ~1 year
  • Engine: Proprietary
  • Textures: GIMP
  • UI: Inkscape
Description:

    Neo Aetheres is a multiplayer voxel world where you start with nothing but a computer terminal. The terminal you possess is linked directly to source. This is where you came from. If you lose signal with source, your systems slowly corrupt until you're destroyed. The farther you go out into the world the more challenges there are, but there is also greater reward. Therefore an objective is the build outwards and expand source's signal throughout the world. Your terminal and Source OS will play a big part in your expansion.


Post Mortem:
What Went Right:
  • Taking advantage of the thread safe features of DirectX 12 allowed me to make world generation run much smoother than would have been the case with legacy APIs.

  • During the initial several months of development my focus was on building the foundational elements of the project. This helped tremendously when extending the game through updates.

  • I built custom memory solutions in regards to most of the elements of world generation. This allowed for little to no dynamic allocation in realtime for these systems, which helped keep things running smooth throughout gameplay.
What Went Wrong:
  • A lack of proprietary tools for assets creation slowed the development of the project down significantly.

  • Testing multiplayer proved to be more difficult than anticipated due to me being the only one testing it.

  • Extending terminals to allow for interfacing with hidden "dimensions" of the world began to make the project far exceed its initial scope.
What I Learned:
  • Investing the time into assets creation tools is something better done sooner than later.

  • Automating as much network testing as I could, as well as developing a network simulation suite would have help significantly with multiplayer QA.

  • It would have been wise to focus on scaling back the scope of certain lower priority features so that if any unexpected issues arise, I would still have been on track to hit various deadlines.

  • There were several areas of graphics programming that were strengthened through this project's development. These include general DirectX 12 features, as well as post processing effects such as bloom and SSAO, along with shader and material development and management.

  • This project allowed me to take a deep dive into network programming with client/server architecture. I gained extensive experience with network optimizations, testing and various kinds of client/server based features.

  • This project had one of the largest code bases I worked in, and with that I gained a solid amount of additional experience with game engine architecture.