Obviously I cant keep calling the Website gregtech.overminddl1.com, so that needs to be fixed (named after the Game).
I ofcourse wont tell the Name until I actually got the Domain in question.
The reason I did not get the Domain already is because I still dont know which Top Level Domain to choose, because I’m paranoid.
I probably need an own Server too, though I can do that later if needed, whenever the Forums need an Upgrade or so.
I will go with something that is either LGPL or GPL, with Creative Commons for Assets.
Everything has to be Open Source and Free at all times, but I also would not like to fully prevent people from using Libraries or Stuff that interfaces with proprietary Garbage.
Logos would be an exception to this, since they are used to identify the Game and each of its Mods. But those would be subject to what I would personally call Fair Use.
I definitely need to setup some better Build System than what I have with GT6. That thing breaks all the time…
As for Source Code, it will be hosted on multiple Sites: likely Github, Gitlab and some others, just to get easier Community Support.
Some Bot will handle Issue Management to make it easier for me to read them.
I don’t like forcing people to post Issues on a specific place, any place where I actually look at is enough, though Forums is best.
The first and probably most important thing is to have a way to Launch the Game on Linux and Windows at the very least.
Having Modding integrated from the beginning will make everything easier for everyone including myself, and also enables splitting up the Game into Modules.
There will be Serverside Only and Clientside Only Mods, which will be detected properly, as well as when joining a Server, the proper Modpack will automatically be assembled and selected.
Now the actual Game can be worked on, specifically the Octree Chunk System and Marching Cubes Rendering, as well as a movable Camera. (Configurable Keybinds follow later, see the Networking Step)
The first Blocks I will add to the Game will be the 4096 Colored Blocks. Yeah aint gonna be Dirt, Grass or Cobblestone.
Why the Color Blocks? Because those are "Mod-Neutral" and purely decorative, perfect for playing around in Creative in the beginning!
Glassy Transparent, Glow in the Dark, Shiny Metallic, Non-Solid, Admin-Indestructible and all the combined variants of the Color Blocks will be made right after.
The Main Reason for these Artsy things to be priority is because it will make things so much easier in the following Step.
Yes right away an ingame Model Editor, That way you can edit 3D Pixels directly in order to make your own Blocks.
Imagine building a Minecraft Skin as a giant Statue and then taking that Statue and plastering it onto your Skin, things can work so great like that!
Not to mention that when you have a custom Scenario you can easily just Model your Items and Blocks that way! No need for fancy external Software!
The Editor might get a capability to optimize Rendering of said Model, but that will be determined with performance tests.
And yeah the Game is supposed to have Blocky Models with a Slopes Option. Kinda like the Minecraft Art Style.
Obviously the Entities come after the Model Editor. That way I wont add some random custom Model for shit that cant be replicated with the Editor.
Then I just need to be able to attach the Camera to the Head of the Default Humanoid Player Entity and can start making more Stuff.
Ocourse Physics need to be done too otherwise you have no Gravity.
Lots of work on the Joints of the Model will have to be done, since the Entities should be able to be animated.
There by the way wont be a specific first person "Arm" like in Minecraft. Your actual Body Model has to be visible in first person (ofcourse not from the Inside unlike how Minecraft has it).
Once the Player and Camera are done, Multiplayer has to be worked on.
Until now only WASD-Shift-Space and ArrowKeys-Shift-Num0 along with Mouse worked for movement, but this will change in this Step.
First of all, the Controls have to be turned into actual Actions that can be transmitted over to the Network.
Said Controls can then be made configurable in the Options Menu of the Launcher for the selected Launcher Profile.
Then the entire Networking Setup needs to be done, so that those Actions can be transmitted.
And to make Multiplayer not "Local-Only" the closeby Octree Chunks will have to be sent over too.
Yeah Stuff has been silent until now, but hey, Sounds and Music will get a System.
Sound should also be damphened by Blocks depending on the Blocks Sound Isolation value.
Right now pretty much everything is lit af. So a Light Engine is needed for rendering Shadows and Light Sources.
A Sunlight Map will also be needed, but it will actually cast shadows for sideways cases, so it wont just have a Straight Down Light Map, but also Diagonal Light Maps.
This will also justify a reason to actually place a Sun in the Sky, see below,
Now for the "Fun" part, I need to do some Astronomical shit, at least placing the Sun and calculating the surface of the Planet in relation to the 2.5D World Map, along with Orbits.
This includes not only the Sun but also the Moon, and I need a Moon Light Map just like the Sun Light Map.
But the worst effort of all, the Planet is Donut/Torus Shaped, so I need to render the inside of the Donut in the Sky, if you are in that half of the Planet.
While Transparent Non-Solid Blocks already exist and make this easier to work with, there needs to be Fluid Physics, not only for swimming Entities but also for the Fluid itself moving around.
So in order to test this I will add Fluid Blocks for Oceanwater, Water, Clouds, Fog, Steam and Smoke. So essentially the H2O Series and the Byproduct of Fire. Those should be very "Mod-Neutral".
The 4096 Types of Paint will also get a Liquid right away, because painting Stuff is something every Mod should Support, and it’s easier to do if the Paint actually exists beforehand.
In case you did not notice yet, the Worldgen up until now was Big Giant Colorful Squares of Flatlands.
Why you may ask? Because for testing the Donut thing I mentioned above, it is the Ideal way to test if I render the thing properly.
But how will I improve that? Simple, I will add a Previewable Noise Generator Editor!
This way people can toy around with the Noise Generator to their liking, and I can better see the results of what I am doing.
Said Noise Generator Preview will also be able to lower the resolution of the placed Blocks, so you wont overwhelm your RAM by looking at an entire Island or even the entire Planet at once.
The Size of the Planet can be configured ofcourse. And you can split it in Regions, while preventing people from entering/generating some of them. Ideal for Servers that dont want to wipe on every major Update.
Things like "wrapping chunks" (if you reach world border, you will go to the opposite end of the map), "donut in skybox" and similar can be turned off on a per World basis.