Jan - New Year, New Me
This month I talk about getting back into development for the 3D game engine, including creating website-like flash software.
Jan 1st - New Year, New Content
New Year, New Content - that’s my motto for this year, I want to create and produce usable content this year - not just develop the framework for the technology.
I’ll be creating a lot more applications, games, and videos this year. I have a bunch of loose plans for things I’ll be creating, I’ll make sure to note them here when I make them. Don’t forget to check back monthly!
Jan 2nd - Painting In The Dark
Continuing the experimental thought process from last month, I’ve thought about creating a simple painting app. In my mind, most modders will continue to use the tools they are familiar with. I don’t actually expect anyone to edit code with the Notepad app, or to create assets with the Paint app. So I figured I could instead focus on it being more fun than practical.
This thought experiment made me realize, I should apply that thought to the entire OS - in a tasteful way, where users can control how much whimsicality they are exposed to.
I’m going into it pretty blind, as I use computers as a tool, so I’ve created this OS, and purposefully designed it so I mimic all of the usefulness my computer has. This results in a great tool, but I don’t think I need to create another operating system that should be used like a tool. I want to create an experience.

Jan 5th - Websites & Flash Re-Imagined
I’ve been experimenting with a website concept, that basically merges a paint app and an interactive flash game editor. The end result is a concept that simulates dynamic websites, it’s not perfect and I’m not sure if I even want to include it into the game. But I’ve had a blast just playing around with it.
Jan 9th - Websites Continued
I’ve decided to extend the website concept, so I’ve been working on that for the past few days. Most of my time has been taken up by experimenting, creating small websites, thinking what would be cool, and then trying it out.
I’ve extended it to have it’s own version of dynamic scripting - instead of the website being built using html, css, and js - I use drag and drop editing, paired with Lua for dynamic scripting. This allows for complex actions, a simple trigger for onClick or onHover can be paired with movement, rotation and scale controls, making whatever you clicked to come to life.
My favorite part has been pushing the websites to their limit, seeing what exactly causes the renderer to bog down - it’s really shown me what changes I need to make long term to help stabilize everything.
This whole process has made me think a bit more, and I’ve ended up coming to the conclusion that having a sandbox - where you can do essentially everything you’d want to do inside a virtual operating system - is the end goal.
Not just a strict simulation, but think more of a flexible framework - you can run your own programs, use websites others have created. Essentially, once I’ve published my game, an entire series of games could be built on top of it.
This same framework applies to the game directly as well, I can create standalone applications for one-off content, and those can be used anywhere on the OS, as it’d just be a file, or a pre-installed program.
As a writer, for stories this would mean it pairs up nicely with my idea for creating Twilight-Zone like loosely connected stories.
Jan 13th - 3DGE
I’ve been using the 3D game engine and this entire time there have been a handful of pretty nasty bugs. I’ve worked around them but I decided enough is enough - I’ve been meaning to fix them for a while, but I couldn’t take it any longer.
2D User Interfaces
One of the bugs I had to fix on the 13th was a UI rendering bug - the UI wasn’t showing when it should have. I had broken it at some point, I’m not entirely sure when, as I was using demo scenes without any UI visible for a while.
The way I handle UI - is I just drag a Text Game Object into the 3D scene, and I drag a Camera into the scene. I mark this CAMERA as a 2D UI Camera - this means it will work in a very specific way, rendering on the screen like a 2D interface would.
Then, I mark the Text Game Object so it’s Assigned Camera is the 2D UI Camera I just added. This means the Text Game Object is now visible to that Camera. I can then preview the camera, or load in-game, and it will overlay whatever that 2D camera sees, onto my screen.
You need to position the Text Game Object so it’s properly within the 2D UI Camera’s fulcrum, but that’s all you need. Now my existing drag and drop / 3D editing tools, and the entire stack I’ve created to manage Game Objects in 3D work with the 2D scene exactly the same. The only difference is during rendering.
Jan 18th - 3DGE - Lua Integration
For a while now, I’ve been planning on introducing Lua scripting to the Game Engine. Originally I had decided that having some kind of dynamic language was a bit too over scoped for the game engine, I felt I needed to get the foundation ready before anything else.
Now that the foundation is ready, I’m at the point where I think recompiling the entire project, just to test the result of changing a single variable - is a complete waste of time.
I figured writing in Lua would be a pretty clean solution, I’ve done my best to unify everything behind Lua so modders only have to learn one language, and a handful of APIs.
The one unifying API between all Lua systems, is the os.execute function - paired with IPC, you can access almost every part of the operating system, including reading / writing persistent game save data. This means the 3DGE scripts can talk to the ChatApp scripts, and the wallpaper scripts.
Jan 21st - 3DGE - Terrain Creation
My original idea for Terrain Game Objects was to just use 2D height maps - a simple 512x512 image, where the gradient of color is the height level. I made mine simple and just used grey, but you can make a height map with multiple colors for greater precision.
Simple Height Map

Terrain 3D Model

Then you can throw a simple texture onto it, and call it a day.
Part of that idea, was I could just photoshop the height map, and create sections and zones. I played with this for a few hours with a handful of small demo maps, but the pitfalls for it are pretty obvious:
Problem: Simple Height Map Pitfalls
- No UV Mapping beyond the entire thing being UV mapped with subdivision support for tiling.
- This means you can’t have a
Terrain Game Objectthat contains a path on top of it, the path would have to be created inside of the 3D game engine. So I couldn’t just add some rocks or even map a path to a different texture, I was stuck with the single texture.
- This means you can’t have a
- Editing was clunky, and sucked.
- I’m sure there are better solutions, but I was having fun messing around in photoshop, creating gradients allowed for ramps, the same color would be the same height level, and depth variance is just making each pixel darker or lighter.
Solution: Terrain With Vertice Editing
To address some of those problems, I started to experiment by adding support for UV mapping. Half-way through creating it, I realized I’m just making a 3D modeling tool, I don’t know if it’s worth doing that when blender is the go-to modeling solution for this project. I paused it for now, but I’m still experimenting with how I’ll do terrain.

Jan 27th - Start Menu
I’ve decided to keep things simple, and just try writing a basic windows hook in C. I haven’t written C in a while, so this will more than likely need to be revised in the future. But the result is the game now allows me to override the start menu key - this introduces a stable, consistent way of toggling the start menu - and the key doesn’t conflict with anything else. Surprisingly, there wasn’t a single key, within the start menu region, that I could use.
- CTRL would make it trigger when I’m editing text. (CTRL + A, CTRL + Z)
- SHIFT had the same issue, and it would trigger when I’m trying to capitalize words.
- ALT would trigger random menu interactions at times, I assume this is a relic from when interfaces used to be controlled by keyboards.
- CAPSLOCK I could have used, I think people rarely mean to turn that on, but that kind of sucks, and would require the same low level hook I just made for the start menu…
- TAB I think we could have used, but I feel we’re getting farther away from a start menu button.
- TILDE key could have been used, but again this felt like it’s no longer a start menu button at this point.
Jan 30th - Gallery
I’ve decided to end this month with a gallery of posting my favorite photos I’ve taken this month, I’m going to continue this tradition from now on.
