Hello!
I saw another post on here about adding the ability to edit textures. (This isn’t exaaaactly what this is about. It’s more about a suggestion on how to do it right, as I was very dissatisfied with the approach that was suggested in that post):
I know the devs have already said that they are going to finish the core game first, and make sure that the textures they made are done, feel great and most users wouldn’t want to change them, which I completely agree with! Great job devs!
First off, I don’t know exactly how your textures are done right now, but having messed with some voxel engines in the past, I’m assuming your using a texturemap or something of the like, to reduce drawcalls.
I would never suggest going away from that system. But there’s a problem with that, in regards to custom texture packs. It’s very limited. E.g. if you have 256 available spaces for textures. You’re limited to 256 custom textures. This might be enough to texture every single thing in the game. But if you want e.g several different rock types, more tree types, or more importantly create connected textures. This becomes a huge issue.
This is luckily easily fixed but splitting this texturemap into individual images. And then “baking” those images back into a texturemap. At this point, the game would allow for an unlimited amount of textures, and a lot more oppertunities opens up for creating amazing art for the game.
But a lot more can be done. Say for example Oort has 1 transparent block that you can walk through. That could be cobweb for instance. Now all your competitors does the same thing and it’s quite frustrating. They hardcode the name of this block into their game. So if someone wanted to create a texturepack, they would only have that 1 block available as a transparent block you could walk through. The artist might have a bunch of great ideas to add to the game, e.g. a basket, icicles, spears, flies, rope, hanging meat, hanging clothes etc. etc.
All those things would require a transparent background. But if only one spot for that is available, it greatly limits creativity.
So here is probably the biggest suggestion in the thread. Please, please, please don’t make this hardcoded.
Make a default folder setup and just iterate through all the images in this folder. And instead of looking for specific names, find each image, get their name. This allows us to have an unlimited amount of creativity, without the frustration of trying to find e.g. Cobweb:19 when you’re looking for icicles. Instead you can just place “icicles”.
This however poses a problem, that has a great solution.
How will the game know what type of block an icicle is?
Alright, so bear with me. Each image has a name of course. e.g. icicle.png.
Each texture should be accompanied by a setup file. Could be icicle.oort or icicle.txt or whatever makes it easiest for you.
This file would contain relevant information about the block.
It could look something like this:
core-block: false (If it’s a core block in the game (one that’s procedurally generated e.g. grass)
textures: icicle.png (the texture accompanied by this file)
transparant: true (this is needed for the engine to know, wether to render blocks next to it)
liquid: false (doesn’t act like water)
gravity: false (doesn’t fall down)
light: 0 (produces no light)
soft: 0 (reduces fall damage)
wrap: cross (goes from corner to corner, instead of wrapping around the block)
model: block (Choose model type, possibly faaar in the future allow custom 3d models)
This will give artists an unlimited amount of creativity, to create some truly amazing worlds. I spent about half an hour on this concept, so it’s not exactly perfected. But I hope you will allow in some way, shape or form, artists to change Oort into a truly personalized experience. And not just limit us to what textures and blocks the devs create. (While they are doing an amazing job, it’s impossible to code & create at the speed of an entire community)
Thanks for reading the wall of text, and I hope you will consider taking a more unconventional approach to allow for the most customisable experience in any voxel game today.