Demiurge is a video game project based on a voxel engine made from scratch in C++, with SDL 2 and OpenGL. My goal is to build a game mainly inspired by Minecraft, with its own aesthetic and its own universe. Demiurge does not have the ambition to become a commercial product intended for the public, but can still be downloaded for people who would like to play it. This project is in response to a desire to emancipate my modded Minecraft private server from Mojang's game and be able to have full control over the features, bugs, performance and the universe itself of what a friend and I are doing there.
Demiurge is a project that started in 2011, when I wanted to create my own game inspired by Minecraft. Originally, I wanted to offer a different universe, and add features that I had trouble finding with Minecraft mods. I created the first prototype of the game in C++, with SFML and OpenGL. The engine was therefore totally designed by me from scratch. At the time, I still needed to improve my way of programming, and so the project quickly became a gas plant. I found it increasingly difficult to advance in the game due to a lack of methodology, and health problems. I kept jotting down features that I dreamed of including in the project, then I finally stopped working on it. In addition to Minecraft, the game was also inspired by Diablo, or even Starmade. The prototype worked very well and only suffered from a buggy home-made physics engine that sometimes crashed the game.
A few years later, I tried to revive the project. I added some features like a shader that can warp the flat, cubed world into a round planet shape, and tools to help me visually spot bugs, and use commands. Faced with my difficulties in recreating an engine from scratch, with the rule of better structuring the project and avoiding reproducing the errors of the first prototype, I decided in 2017 to divide the project into three parts. First, develop many elements of the game in a simplified version, in 2D and in top view, in Demiurge Mini. The depth of the world was limited to 5 levels to dig and build, in a game similar to games such as RimWorld. Then, Demiurge 2D which was to offer more depth of the world, using the isometric view, in the style of games like Rollercoaster Tycoon. Finally, on the strength of the experience acquired and the proven code, develop Demiurge 3D in the best conditions. This process finally appeared to me not very motivating, and it therefore did not solve my problems.
After playing a lot, for years, on my modded Minecraft private server, and having fun imagining all kinds of constructions, interest in Demiurge gradually returned. Having as a project to create a metaverse with MetaWorlds, I asked myself the question of whether I should start from scratch, or if I could not do otherwise. I looked at Minetest, which isn't a game I'm very happy with, but which has the merit of being open-source and in C++. In this year 2022, I first decided to start from Minetest's code to create Demiurge. I recently compiled the game code and did a quick test. And I started studying the Minetest code, which you can find on this website. I quickly tried to modify this source code to create Demiurge. But, at the beginning of July, when I wanted to change the hand of the first person view, I realized that in Minetest, the latter is in extruded 2D. Hmm...
Finally, fork Minetest seemed inefficient to me. I'm still not totally sure that redoing Demiurge from scratch with my own code is the best decision, knowing that I've never been a fan of ready-to-use engines like Unity or Unreal Engine for example. It was while talking about the source codes of open-source projects on Mastodon, that I wanted to share old Demiurge videos published on my Youtube channel. By reviewing them, some made me feel this passion and this satisfaction that the development from scratch of Demiurge gave me, despite my anxiety and depression at the time. Memories came back to my mind and it was really at that moment that I felt sure of myself on my decision to relaunch this project from scratch.
You can follow me on Neocities to read more later :D