Saturday, May 9, 2026

Item Skin Maniac

Nothing too exciting this month, still reimplementing systems and catching back up to where I left off back in August.

The systems architecture that I wrote about last time is in place, although it took longer than expected to finish up because I, like, forgot how programming works. Been a minute since I finished that CS degree. But it feels good to get back into a software engineering mindset, and I'm very happy with the result.

Fuel, RCS & Gyro Systems

The development of this new version has been pretty abstract up to this point, so I figured what this spaceship flying game could really use is the ability to fly a spaceship. To that end, I got to work on reimplementing the RCS system. I talked about this back in June & July, so you can scroll down for more info, but basically the thrusters now work in a more realistic (and satisfying!) way, they can break and wear down, you can fix them and upgrade them, and I've added a few new in-cockpit features. I mean, the cockpit doesn't exist yet, I haven't got to the 1st person stuff, but it's all working with default keyboard controls.

Getting the RCS system back up & running required that I reimplement the fuel tank, which is also now upgradable. The tank & it's fuel have mass, so it'll be up to you whether you prefer a smaller tank for a more maneuverable ship at the cost of more frequent refueling, or a big-ass long haul tank for the full lonely space bastard experience.

The RCS thrusters can now provide auto-stabilization c/o the gyro system, which means that I also had to reimplement the gyro system. Again, I wrote about this in more detail last summer if you want to dig deeper, but basically everything is cooler than it was before.

I should be clear here that shops don't exist in the game yet, so you can't actually upgrade anything, but the systems are in place & ready to be eventually hooked up to a shop UI of some sort.

Coming Up Next

I've still got work to do on all the systems mentioned above, but they're just about done. Next up is the booster system, which should go pretty quickly. With a flyable ship back in the game, I can move on to system-scale simulation which should catch me up to where I left off last summer.

Epilogue That Nobody Asked For

numbers unknown to science


Thursday, April 9, 2026

Systems Architecture Revamp

As indicated in the previous drunken devlog that I barely remember writing, Black Road Sky is finally back on track. Still have one Nubby achievement left to grind, though.

As you'll know if you've been following along, I started the BRS project over last year, but didn't make a whole lot of progress before needing a longer break, so I've just started over again. I know what I'm doing this time, I know what I want the game to be, and I've solved all the major technical difficulties. Now it's just a matter of getting over the terrifying realization that I have years of near-daily work to do. But, like, what else have I got going on?

The work, and therefore the devlogs, will be fairly boring for at least a few months, maybe more like a year. How boring? This boring:

Ship Systems Backend Architecture

Ship systems, and the interplay between them, got very complicated in my last attempt even though I was nowhere close to the final vision. The code wasn't quite spaghetti-bad, but maybe like a nice bucatini. Confusing, anyway. Basically it wasn't vamped good enough, so by god I'm revamping it.

IT'S DIAGRAM TIME BITCHES

Ok, so the diagram kind of makes it look like I'm just making things more complicated, but hear me out.

First of all, the systems themselves are, by design, never calling per-update events (Update() or FixedUpdate() in Unity), instead everything is called by referencing each systems' handler function from a single point, the player ship controller class. So it's trivial to see, at a glance, what order shit is happening in, which is kind of the thing that makes programming hard. This goes a long way towards untangling the bucatini.

Second, system logic and hardware functions are handled separately, which again just helps in managing the logic & order of events. Both system and hardware classes derive from base classes which hold all the common stuff like general health stats, repair functions, cockpit button interaction handlers, and so on. Nice & clean.

Finally, the actual hardware stats (thruster power, response time, durability, and eventually things like cost) are held in logic-free stat blocks, glorified plain text files that Unity calls scriptable objects. That means that I can quickly & easily create new hardware components with just a few lines of text, and maybe even open it up to modding. Not sure about that, though, probably shouldn't even have said it.

I'm also doing a better job of commenting code for future me, who as it turns out is kind of a dunce, and following best practices for Unity-specific things. When I started making this game it was my first Unity project (I mean, I guess it still is), and I couldn't have given half a fuck about whether a variable was initialized in Awake() or Start(). But here I am now, giving a bunch of fucks.

Coming Up Next

More exciting diagrams and shit, probably! And I'll let you know if I 100% Nubby's Number Factory, but I've been pretty distracted lately by My Summer Car. Got a lot going on over here.

Monday, March 9, 2026

All Nubbs Must Come to an End

Yo yo yo, had to take a break to play Nubby's Number Factory but baby, WE ARE BACK.

Well, we are back. Putting it all in caps was a bit disingenuous. Performative. I mean, I am back. Never really went anywhere. But I am getting back to work now.

On Black Road Sky. Not on Nubby's Number Factory. I mean, both. All things, all of the time, in every possible configuration. One of these times I'll nail it.

Thursday, October 9, 2025

Still Chillin'

Nothing to report, but life-things have chilled out and I think I'll get back to work soon.

I've been prototyping a few other game ideas, just in my downtime at work, including a fantasy small plane sim that I might keep working on alongside Black Road Sky, but this remains my main project and I have no intentions of abandoning it.

In other news, Apollo is taking a lot longer to learn than Gemini, holy moly.

Tuesday, September 9, 2025

Didn't Do Shit

As expected, development this month took a back seat to shit getting hectic at work. A bountiful (read: pain in the ass) honey harvest and my recent discovery of Reentry didn't help. Honestly, I don't think I even opened Unity once.

So it goes. I'm getting pretty good with the Gemini capsule, and the old school NASA cockpits are probably flavoring Black Road Sky in a way that I won't regret, but if I can claim to have made any progress, that's about it.

If you're enough of a nerd to be upset about this, then you should be enough of a nerd to accept my custom Gemini mission pad as an apology.

Back at it soon, hopefully!

Saturday, August 9, 2025

Boldly Going Where I've Already Gone Before

As (sort of) promised, I did manage to work on system scale & close range physics this month, but just barely. System scale is working, but the close range physics was honestly wonky as hell before and I'll need to take my time getting it right this time around.

Lots of other shit to talk about this month as well, but the TL;DR is that everything's going pretty damn smoothly.

Attitude Stabilizers

The gyroscopic stabilizer system is pretty much complete & in final form. It mostly works the same way as before, with the main difference being that the system is now breakable, fixable, and upgradable.

I've added an auto-stabilization feature which will be available from the cockpit, with independent toggles for all 3 axes. I think this could be useful for docking, and some pilots might find it convenient to use full-time.

The ship can only be stabilized in this way on any given axis if it's angular velocity is less than that of the flywheel's saturation velocity, which will vary depending on the installed model of stabilizer, but overall it means that attitude stabilization has been significantly nerfed. You can no longer just hold tab to bleed off arbitrary amounts of rotation. To make up for this, I've added an RCS-based auto-stabilizer as well. Of course, this will use fuel, but it should be helpful for managing wild post-collision spins and the like.

Propellent System Hardware

Prop System Diagram

Virtual implementations of the various bits of prop system hardware are in place, with the exception of the utility dock & refuel valve. The rest of the engine room equipment that you can see in the diagram above is all working, and will have player-interactable entities after I reimplement the first-person scale.

The manifold can be used to choke or open fuel flow on individual outputs, pump power can be adjusted to balance thruster power against efficiency and wear damage, and injectors can be adjusted to similarly affect thruster response. All of this only half makes sense, of course, and is geared more toward gameplay than accurate simulation.

Some of these adjustments will only be available from the engine room, but a few important ones will have cockpit controls as well. For instance, there will be an overall RCS pump power selector as well as an RCS injector on/off switch in lieu of the old docking mode button for fine maneuvering control.

System Scale & Related Sidequests

There is once again a vast solar system to explore, so that's cool, but it's just 2 different colored cubes a few billion kilometers apart from each other, so that part could use some work still. There's somewhere to boldly go, anyway.

This was a pretty simple task that boils down to implementing a floating origin, but I took a couple of detours along the way. In order to test the system I needed a way to find distant objects & a way to keep the camera on the ship for the journey, and instead of throwing together quick temporary solutions I decided to build out the base of the sensor system and implement a new & improved chase camera.

The chase camera has a bunch of new functions, nothing fancy but you can actually zoom & pan now. You can also pause the game, and I added an in-game screenshot capability which is just perfect now that the game looks worse than ever. Pausing the game, which seems like a pretty simple thing, is actually a pain in the ass for a game like this, so that was it's own sub-sidequest, but it needed to be done sooner than later, anyway.

As far as the sensors go, I'm waiting until I reintroduce space stations & docking before I really flesh things out, but the base architecture is in place. The biggest change from the old system is that sensor pings are now modeled as radio waves propagating at light speed, rather than being magically instantaneous. This will introduce some weirdness once I reimplement the warp drive; I haven't quite decided how I'm going to deal with that, but the warp bubble will probably just block outgoing radio waves, which might make for an interesting mechanic.

Coming Up Next

As I said up top, I'm still working on close range physics, AKA running into shit. I've got a busy couple of months coming up, so development will be taking a bit of a backseat. My only plan is to keep plunking away at physics range & collisions until I'm happy with it.

Wednesday, July 9, 2025

Main Boosters & Attitude Stabilizers

Steady progress this month as I continue rebuilding the main flight systems. Things are going a bit slower than I'd originally intended, but as I mentioned last month, the goals have shifted. I'm not worried so much about 'catching back up' to where I was before. Instead, I'm focusing on building robust systems that work, more or less, the way I imagine the final version to work, right off the bat.

I'm also just being smarter in the way I structure the code, taking refactoring detours as needed. Whenever I find myself about to write a comment like "Dear future me," I ask myself if I'd be better off taking a little sidequest rather than adding another point to the future todo list. So far, future me has appreciated the effort.

Booster System

Wooosh

The boosters work basically the same way as before, but there are some important changes. First, just like with the RCS thrusters, the port & starboard boosters are modeled independently, and accumulate damage asymmetrically, requiring occasional adjustments & repairs. They're also upgradable, with a few different booster options already added to the game.

As before, there are 3 boost modes: reverse, normal (formerly 'maneuvering'), and overdrive (formerly 'boost'). Once I get around to putting the cockpit together, there will be a shift lever to change modes, rather than console buttons, because that feels more badass space trucky to me. Boost is now separate from RCS, so you'll still have access to RCS regardless of boost mode. There's no longer a docking mode. Instead, you'll have more control over RCS power to facilitate high precision docking maneuvers.

Unlike the previous 'boost mode', overdrive is intended for emergency situations only. It provides a lot of extra thrust, but burns through fuel prohibitively quickly. Speaking of fuel, it actually has mass now, as does the fuel tank itself, which is also upgradable.

Finally, you'll no longer have to throttle down completely in order to change booster modes, but it will still be best practice to do so in order to avoid unnecessary damage to the boosters. There's now a 'throttle lock' toggle that will prevent accidentally shifting while throttled up, but whether or not you use it is up to you.

Attitude Stabilizers

I'm currently finishing up the new & improved attitude stabilizers, which I'm calling gyroscopic because it sounds cool, but they're modeled as reaction wheels. I say 'they' because rotational velocity is now considered on all 3 axes independently. Each axis has a wheel with a maximum 'saturation' velocity, above which they need to be desaturated manually by applying rotation in the opposite direction via RCS. This makes the system slightly less magical, and brings it more into line with it's intended gameplay use, which is just to bleed off that last little bit of angular velocity as you steady the ship. It also means that I can give the stabilizers meaningful stats and add them to the repair/replace/upgrade system along with the boosters & RCS thrusters.

I'm still working on these, so I'll have a little more to say about them next month. But, like, they're cooler than before is what I'm trying to say here.

Coming Up Next

Once work on the stabilizers is complete I need to spend some time modeling the internals of the fuel system. That shouldn't take too long, I don't think, so I'll finally be able to move on to system scale & close range physics, I MEAN IT THIS TIME PROBABLY!