07/12/2023 – Everything Is Broken

Last week was bloody terrible for me, and the entire month has been a bit shit. But I’m here to give you an update… After nearly two months of silence.

Upgrading & Breaking My PC

The big thing that’s happened since the last blog post is that I finally upgraded my PC. My old system was running a Ryzen 7 2700 and a GTX 1070. They’ve served me well the past few years, but as I’ve gotten more into 3D production, I’ve needed a lot more horsepower. Plus, I’ve been struggling to run a lot of games lately. And very recently, that GPU started becoming the minimum spec for a lot of new games. Anyway, the new CPU is a Ryzen 7 5800X3D and the GPU is a RTX 3060.

I went with the 5800X3D as I’ve heard nothing but good things about it, and it’s likely the best chip for the AM4 board. It’s also the last chip for the AM4 board. So if I do need to upgrade again in the future, it’s gonna be a full upgrade. I’ve definitely seen a performance improvement with it, and OBS is throwing up less of a shitfit when I stream games now.

Getting the chip in was more of a headache than I thought. First of all, it didn’t come with a new heatsink, so I had to use my old one, meaning I had to clean up all the thermal paste and re-apply it, using some old paste my dad dug up that was almost finished up. And then I remounted the fan, but without removing the motherboard from the case. I ended up with a solution where I took a few bits of non-static packaging and a tissue packet and used them to keep the rear bracket from falling out. It worked out in the end, but it took more work than I was originally expecting.

As for the RTX 3060, well with this, I can now do raytracing to a reasonable level. This will make material creation in Blender MUCH FASTER. Working on materials previously was a massive pain in the arse. Plus, it’s nice to know that I should be able to throw any mainstream game at this thing without issues, at least for the next few years.

I played around a bit with the raytracing stuff, mostly just messing with Minecraft and Quake II RTX. I might give Portal RTX a go at some point.

Getting the GPU in literally took 5 minutes and was probably the least painful part of this experience.

But anyway, the performance boost is really nice, and better productivity is always a good thing… Or it would be if EVERYTHING DIDN’T BREAK.

Shortly after getting my rig up and running again, my 4TB media drive which contains a lot of my video footage just straight up fucking broke. Inaccessible. There was about 3TB worth of stuff on there. I’m going to try and get it sent off to a repair place, but it’s likely going to cost me a fucking lot of money.

In the process of replacing parts, my PC was moved around a bit, among other things. This was likely to be the root cause of the problem.

Following this however, I decided to take advantage of the Black Friday deals and get myself two new SATA SSDs. One to replace the media drive, and the other to clone my documents folder.

It took a few days, but when I got them, I started by putting in the new media drive. I left it in for a few days before doing anything with it, and then decided to download a whole bunch of shit. And then it eventually stopped accepting downloading, and some of the files it did download were corrupted. Following that, I couldn’t access the drive at all.

But when I booted the machine the morning after, I could access the drive again, and all the files that had been downloaded properly were fine. The corrupted ones were still busted, but I just deleted those and re-downloaded them. So I’ve decided to just take it slow when downloading stuff to that drive.

I also cloned my documents drive onto another SSD, which for some reason didn’t work when I first tried the process, but did work the second time around. I waited a few days as this was during the issues with the new media drive, but this morning (5th December when I write this) I finally swapped it over.

It didn’t replace my original drive immediately; I had to go into disk management and change the drive letter from Q to F. Once I did that, it worked, but then the SSD I have for games was no longer showing up, so I restarted again, and Windows gave me a blank screen. One more restart later, and everything finally booted up properly.

However, that isn’t the end of this story. I still have a 2TB NVME SSD to install, which I will probably do later this week.

But this whole endeavour has ended up costing me A LOT of money. I don’t like begging for cash, but if you’re reading this and appreciate the game dev work I do or generally enjoy my streams, and have a few bob to spare, consider donating to me on Ko-Fi.

CyberSurfer Progress

A lot has actually changed in the past couple of months in regards to the project. Last time, I mentioned all the rail grinding stuff. Well, that’s actually been changed significantly. Using the Spline Utility part of the spline package, I’ve rebuilt the whole system so that it can finally follow curved rails, or bezier curve rails. There’s a video tutorial a little later in this post, but the results are much improved over what I previously had.

But the big thing that happened was the first public demo of the prototype. Here’s a video of me talking about it, alongside some other things.

The demo didn’t go over all too well with players. Most of the complaints were about the speed. Players didn’t like having to slow down for obstacles; the placement of them seemed poor; collisions were a bit messy; and so on. I didn’t get too many complaints about the game feel. The only complaint I got about the grinding was about how jumping between the rails kills your momentum, which is something I thought I fixed, but in further testing later on, when I increased the speed of the grinding, it became clear that it wasn’t fixed.

The game as it is now is quite different compared to the original GGJ game. Especially the aspect where the player can move however they want, compared to the original, where they were limited to only left and right. But that change brings about a very different form of level design, which I did not account for. However, instead of adapting to that change, I’ve decided to go back to the original idea of pushing the player down the track like in the original game.

However, this time, I will not be spewing waypoint triggers along the track in order to rotate the player. This time I’m going to use splines to create the track and rotate the player’s aiming based on it, similar to how I handle rail grinding.

After a bit of work, I can finally generate tracks from splines. In addition to this, I can generate colliders on the sides to keep the player within bounds. So now I can have non-flat tracks with the correct colliders. I haven’t fully tested the track generation, but it should be fine for most scenarios.

Well, when I say it’s not flat, I mean the track as a whole. But I am thinking about having the actual surface be curved, especially around corners, and maybe even having half- or full-pipe sections. But that’s going to require even more complicated programming, and I barely understand what I’m doing as is.

Finally, the rail grinding tutorial.

Pretty basic stuff. The differences with my old code were mostly the spline utilities stuff. I am calculating the direction of the player slightly differently. Instead of using the dot product, I’m calculating the angle between the player’s forward and the spline tangent (Read as: Forward) of the point of the spline the player is in contact with. It seems like it works better. There’s a GitHub repo linked in the description of the video if you’re interested in seeing the code.

With the track generation stuff in a good place, the next thing I’m likely going to be focusing on is level design. And following that, a lot more animation work. I’m not sure when I’ll be working on an overhauled trick system, but that’ll definitely be part of the upgrade.

VR Development

In preparation for 7DFPS, I decided to learn how to develop VR-specific stuff in Unity. Following their starter tutorials, I built myself a room and placed a few objects in it. Including a mirror.

The tutorial covers things like locomotion, grabbing objects, objects having correct physics, and socketing. The last one is the act of placing objects in specific places, like putting a hat on a hook or on top of my head, like in that image there.

It’s given me a good jumping-off point for learning how all of this works, although I must admit, it is a little jank in places.

7DFPS

Following that jumping-off point, I decided to get started on building the 7DFPS game. To give a general overview of the game I’m going for. Imagine Pistol Whip but with your own music, and the gun handling of Half-Life: Alyx. I mentioned it in one of the videos I linked previously.

But for my idea, I’m setting up a spline, splitting it up into a random number of sections, and turning each section in one of three directions. I should also note that each section is the same length. That’s just to make my life a bit easier. After that, I have the player use spline animate using the song’s duration as the total time it takes to traverse the spline.

To top it off, I spawn a few cubes to act as buildings along the sides of the path. In theory, these were meant to act as cover points, but as I’ve been working on it I’ve gotten a bit lazy, and now they’re just decorative. The enemy generation is soon to follow, but I haven’t quite gotten it to work yet.

What I just recently started working on is putting the gun in the game. It’s actually been easier than I thought to get the model and animations set up. It’s not fully done yet, but it’s getting there. Following that will be enemy spawning, enemy AI, and then finally loading in user tracks.

There’s still a lot to do, and as of writing this, I’ve still got about a week left until the originally set deadline. But it’s my understanding that it will be extended out to the end of the month, like last year. Hopefully that gives me enough time to really make this something worth people’s time. And hopefully enough to give it a decent amount of paint so it doesn’t look like a mess of placeholders like it currently does.

Well, there’s your update. I’m working on the year-end GOTY list stuff like I usually do; hopefully it’ll be more on-time this year compared to last time. But I still have more than half of it left to write, and I’ve still got games to play. So maybe don’t expect it in as much of a timely fashion as I hoped.

Till next time.

-Adam