People have been saying things like, “Hey Shamus, what happened to those programming posts you were doing. Weren’t you in the middle of a project? Weren’t you wrapping up a project? What’s going on?”
Here’s the thing:
A friend of mine has been working on a Minecraft-style cube world where the front end is built on C++ and the backend runs on user-editable LUA scripts. Early in the project I was talking about some of the techniques I’d used to generate blockworld caves. Then I figured it was sort of lame to just describe the structures I was talking about, and it would make so much more sense to show him. And hey, why not kill two birds with one stone? I’ll make a blockworld to demo the caves, and I could turn the process into blog posts.
But then I just kept adding to it. I finally got over the initial hurdle of working with Unity and reached the point where I could write code without needing to stop after three minutes of coding to do thirty minutes of forum-diving to answer simple questions. It was fun, so I kept going.
“I’ll turn this into blog posts when I’m done,” I lied to myself.
By the end, I’d made a block world, several layers of underground caves, a primitive building “interface”, a day/night cycle, a lunar cycle, the surface world with different biomes, and a system for importing Blender models. Oh, and I’d made a few blender models.
But then I found out I’d lost all my GTA footage and needed to re-capture it. And then I started writing about Andromeda. And when that’s done I have a novel and a videogame waiting for me. And when all of that is over we’ll be near the end of 2018 and I won’t have any memory of this project.
So in an effort to make it count for something, here it is. You can download the non-game here.
F1 - Help screen F2 - Spectator / flycam F3 - Show a bunch of dev info. F5 - Reset position. ~ - Open the useless console window. I - Invert mouse. Mousewheel - Change the block in your hand. Left Mouse - Place block. Right Mouse - Destroy block. Middle Mouse - Select block / clear hands. Space - Jump. F12 - Exit. [ and ] - Forward / backward time lapse for daylight + lunar cycle.
Making this useless demo is probably not the best way I could have spent those hours, but what can you do?
I will say Unity is pretty amazing once you absorb enough of it to get work done. I don’t know if I’d actually use it for something resource-intensive like a full-blown blockworld, but for any project where you’re not pushing against challenges with memory usage and draw distance, this is my now my go-to tool.
Also, the default Unity workflow is not mod-friendly. When you’re working on the project, you’ve got all your files in a nice clear directory structure where you can modify individual bits of code, models, textures, sounds, and whatever else you’ve got. Then when you’re ready to deployFancy talk for “package up so non-developers can run it”. it stuffs all those files into obfuscated proprietary files. Like, I don’t even know where my texture data IS in this deployed version.
If I wanted to make it so users could modify game assets, I’d have to implement a lot of resource-loading stuff by hand. That’s annoying. The files are RIGHT THERE in the development version, but I can’t get Unity to NOT hide them.
Ah well. Hope it gives you two or three minutes of amusement.
 Fancy talk for “package up so non-developers can run it”.
The Brilliance of Mass Effect
What is "Domino Worldbuilding" and how did it help to make Mass Effect one of the most interesting settings in modern RPGs?
How to Forum
Dear people of the internet: Please stop doing these horrible idiotic things when you talk to each other.
Bethesda felt the need to jam a morality system into Fallout 3, and they blew it. Good and evil make no sense and the moral compass points sideways.
Silent Hill Origins
Here is a long look at a game that tries to live up to a big legacy and fails hilariously.
The story of me. If you're looking for a picture of what it was like growing up in the seventies, then this is for you.