Show HN: I made a 3D networked open world automation game with no game engine

store.steampowered.com

19 points by weatherfused 2 days ago

Over the last 4 years I've been developing Skyformer, including making all the art. Technical features include:

- OpenGL for graphics, OpenAL for sound, GLFW for input

- Terrain rendered using techniques inspired by REDengine 3 with a custom terrain/world editor.

- Networking framework for co-op with TCP + custom binary protocol

- Immediate mode UI framework, SDF text rendering

- Cascaded shadow mapping with soft shadows.

- Weather simulation (with my own fake physics)

- Dynamic skydome

- Water based on Gerstner waves

- Swept-sphere collision detection and response

- Soft-particles / transparency

- God rays

- Grass rendering

- FXAA, SSAO, Bloom

- etc.

You can ask me anything and let me know if you have any feedback. Thanks!

jmiskovic 10 hours ago

The art style looks really great! It is cohesive and makes the most of the low poly art. I would definitely play this (in single player).

Your stack seems very reasonable and stable. I've also worked on similar things (Gerstner waves, god rays, grass, dynamic skyboxes) from comfort of Lua and nice API over Vulkan. Implementing each of those visual components was very satisfying work. Alas, I never managed to weave more than ~3 together into the same project.

How does the AI work? There must be a lot of it for a factory builder?

mlhpdx 2 days ago

Do you use TCP for everything, and if so why not UDP?

  • weatherfused 2 days ago

    TCP for everything for now with Nagle's algorithm disabled. Since the online aspect of this game is player-hosted servers for co-op with your friends (e.g. no PVP), it should be fine. I've heard even some MMOs like WoW used just TCP. In the future if I run into any problems, I can also easily replace it with a TCP-like UDP layer!

atmanactive a day ago

I must say that recently, playing similar games always resulted in disappointment and frustration due to bugs. From Astroneer, No Man's Sky, Elite Dangerous, Conan ... they all start nice, but as the player choices branch out, and the save state swells, after a while it turns into an unplayable bug fest, each and every time. In last few years, the only games I could really enjoy thoroughly turned out to be single-player. It's almost as creating persistent, open-world, multiplayer creative games bug-free seems like an impossible task. What's your approach to this problem?

  • weatherfused a day ago

    Being a solo dev could possibly give me an advantage here because I've been able to design the game with engineering feasibility in mind - compared to larger studios which can have a disconnect between product and engineering. In addition, a big source of bugs can be having a larger engineering team where each team member has a fragmented knowledge of the entire codebase - making a change to one part of the code and causing a bug in a different part.

    I designed the game to hopefully be within my abilities to comprehensively test and ship - there are few players on 1 single-threaded server for a world, there's a limited way that they can interact with the world, and the planets are handmade with specific bounds. Nothing is infinite and I can easily test the limits of the game. I'm also not going to launch multiplayer until I'm certain that it's stable and I've hopefully solved every known bug.

    With many of the bigger games, it's almost impossible to test all the different ways you can hit their limits, and they have tighter timelines where they launch with many known bugs. They may also apply a business mindset to it e.g. if it's a bug that only affects 0.1% of players, it won't affect revenue much regardless of how gamebreaking the bug is, and they may be willing to just let it be.

    • atmanactive a day ago

      Yes, I agree. If only I could get my money back...

      So now we believe that corporatitis can only make bug-infested games, and that the only way to make a super-complex simulation bug-free is to have a single brain god-mode overview and understanding of the whole codebase. Could be.

      Keeping my fingers crossed for your success and looking forward to playing your game. Good luck.

mensetmanusman a day ago

Now that you have made your own game engines-esque framework, do you plan on trying to deploy/sell that as well?

  • weatherfused a day ago

    One of the advantages of making your own engine is making it specific to the game rather than general purpose - makes development easier and performance better. So it's not really sellable in its current state - that would require a ton of extra work, but another advantage is I can continue to reuse all the code and tools I've made for future games!