Hello sorry about the list format first post here.
1. About Me & Project Goals
1A. I primarily work with C for embedded systems but want to expand my knowledge into more languages and learn about game development with this project.
1B. This is my first time developing a game engine, and I’m doing it for fun while learning various aspects of game development.
1C. Existing game engines don’t meet my needs, so I’m building my own voxel-based engine with built-in modding support, multiplayer, and efficient world storage/tick rate handling.
Also, it would be nice if the core had tools for visualizing changes in the code. IE changing the world algorithm I could have it render x amount of chunks after saving the file to see how it changes things without loading up a whole world. But not needing that to ship. Modular basically.
1D. I want to learn more about Rust, Lua, and Elixir.
1E. I plan on using Rust because I think it will help me avoid issues around memory vulnerabilities and similar problems related to multiplayer and networking. I want to use Elixir for networking to allow for a higher player count, lower hardware load, and for graceful error# handling.
1F. I want to support multiple dimension streaming with up to 12 main ones and infinite possible if enabled.
1G. How to code NPCs and mobs in the world how to handle the efficiency of hundreds to thousands of natural spawns. I also would be allowing ussers to use a zip of a mod to drop in a mods folder zip containing a manifest of what changes and where the resources are for them.
2. What I Need Help With
2A. Cross-Platform Development
Best practices for writing a game engine that runs on Windows, Linux, macOS, PlayStation, Xbox, switch, and possibly mobile with minimal platform-specific code.
How to structure my project so the core engine remains platform-agnostic, while platform-specific launchers or APIs handle system integration with minimal rewrite preferably none
2B. Graphics API Choice
Is Vulkan the best choice for a cross-platform voxel engine, or should I consider OpenGL, DirectX, or something else?
How to properly implement Vulkan for multiple platforms without rewriting large sections of the renderer?
2C. Modding & Scripting Support
How to design a modding API that allows external scripts/plugins to override specific engine behaviors in C++. While keeping the game integrity so mods don't get you achievements or make it easier.
Would Lua be the best scripting choice for modding, or should I consider Rust, Elixir, or another language for safe, efficient plugin execution?
2D. Optimized World Storage & Tick Rates
Best approaches for storing voxel worlds that uses greedy meshing and structures both natural and player made; how to make a structure in full or tiles to allow multiple dynamic changes to a structures layout. All the while doing so efficiently while ensuring fast access and minimal memory overhead.
How to maintain a stable 60 ticks per second engine loop and later optimize it for 20 TPS.( Idea is if it can maintain a high tick rate the real rate should be fine with some wiggle room)
2E. Cross-Platform Game Launcher
How to structure my engine so that it runs a launcher on PC,windows, linux while deploying directly on consoles with minimal extra code.
If I have too use apis for other platforms, best practices for handling platform-specific APIs (Xbox/PlayStation SDKs) while keeping the core engine unified.
2F. Multiplayer & Networking
How to build a high-performance multiplayer server using Rust and Elixir.
How to use Elixir for networking to allow for high player counts and efficient server scaling.
How to implement multiple dimension streaming with up to 12 main ones and infinite dynamically generated ones if enabled.
3. Resources & Guidance Wanted
3A. I prefer watching videos, then websites, paperback books, and digital books in that order.
3B. Are there any good videos, websites, or books that can help with learning Vulkan, game engine architecture, or cross-platform deployment?
3C. What frameworks/tools can assist with handling input, networking, and rendering across multiple platforms?
3D. Any advice from experienced developers who have tackled similar projects?
3E. any issues I missed let me know :-)
I am working with vcpkg in virtual studio 2022 community. Having trouble getting even a blank window with vulkan and GLFW. Have some rough ideas of monsters and stuff would like to use voxel art style to make 3d models and possibly have ray and pathtracing for available systems.
Edit here to say typo in the title supposed to say Making not King