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

28/11/2022 – Analogue Pocket GET

Hello again. A thing I bought a year ago finally arrived, and it’s pretty sweet.

The Analogue Pocket is an FPGA emulation device that specifically plays GameBoy and GameBoy Advance games. FPGA is hardware emulation, not software, so it leads to greater accuracy in terms of emulation. This generally means less visual glitches but also has the downside of emulating the slowdown in games that would suffer it on real hardware.

Although you can play real cartridges on this thing, the OpenFPGA side is the most interesting part. You can just load FPGA cores made for it and then boot games off the Micro SD card. I have Neo Geo, NES, SNES, and Mega Drive cores on mine. Pretty much all the games I’ve tried have worked perfectly, and GameBoy games especially look gorgeous on the screen.

My major issue with the thing is that I don’t find it particularly comfortable to hold for long periods of time. Much like actual Nintendo handhelds. It’s not as bad as the 3DS or Switch JoyCons, which cause literal circulation problems for me, but there’s still things I would have changed.

I mean there is one more issue; the price. I think I’ve spent £400 on the thing all-and-all. It was £300 for the thing and dock, plus shipping, then the FedEx tax was £70 (Customs charges are a fucking scam), and then another £40 for a Micro SD card and UK USB-C plug. Yeah, it comes with a US plug. Be fair warned.

But I like the thing, and I’m gonna enjoy playing it. I actually did a stream soon after I got it where I played a bunch of games, check it out:

In other news, Indie LIVE Expo is happening soon. Why am I bring up here? Well Rotaction is going to appear during the first day when they discuss currently released games, so keep an eye out for it. But this is the first time one of my games has appeared at a major event, although it’s the second time it’s been promoted. The event will be streamed on the 3rd and 4th of December. Check it out, there’s loads of cool games.

Now, I’m going to talk about what I’m currently working on.

7DFPS (7 Day FPS) Jam is coming up in December, and I’ve decided that I want to take part. So I’m putting together a few things to practice and learn how to make stuff for it. I’m looking at stuff like Probuilder and Pro Grids for fast generation of levels, and learning how to do raycasted bullets with appropriate effects, as you see in the video above.

Now I know what you’re thinking, the Jam hasn’t started yet and I’m over here making stuff. Well, there’s no rule that says I can’t work on stuff a little early and most of this work isn’t going to be used in the Jam game. But it’s better I figure out these problems now, rather than during the Jam.

As for the side project I’ve been working on:

Well, progress is slow. I can shoot a bow now, but it’s a giant mess. Unity’s Rig Builder tool is such a giant mess to use that making it this far is generally surprising for me. But to explain the issue, layers upon layers upon layers. At some point I had to undo a lot of work and replace it with a canned animation, which is how I got the bow aiming and firing to work. Although I can explain some of that as well. When I started with the rigging, I was basing it on the idea of driving the player animation in relation to the bow. That was dumb, now I’m driving the bow animation in relation to the player, which is simpler to implement and has lead to better results.

Well that’s it from me for this time. Now I have to publish this before my power goes out. Which is a thing that’s happening today. Fun times. At least I have some books to read.

Till next time.

-Adam

27/09/2022 – 7 Years Late

Well the weather is getting colder, so I guess summer is finally over. The season that is, my dog of the same name is doing fine.

7 years after graduating university, I have finally updated the “Uni work” pages of this site. Better late than never I guess. Annoyingly, there’s still a lot of stuff missing from the pages because there’s stuff I just don’t have anymore, or can’t post. There’s also things like documents and such that aren’t programming related.

Either way, it’s something off my whiteboard.

Anyway, you might be wondering what’s going on with my side project. Well you’ll have to keep waiting because I’m working on something else now. A certain place I hang out on, on a certain anime image board started a Asset Jam, a two part game jam where the first part has users submit assets for games, and then the second part has users make games with those assets. Well I didn’t make any assets for the first part, but I am making a game.

Behold.

The beach ball of doom.

It’s a game I’m titling “I MUST CONSUME”, and it’s basically Katamari. But instead of gathering items in a massive ball, you absorb them instead. I’m using the game as an excuse to get familiar with Cinemachine and a few other things. I was thinking of migrating the camera system in my side project to Cinemachine, and used this project as a test bed for it. I’m fair happy with it here, so I think I will be doing the work needed to switch.

I’ve got until the morning of October 15th to finish it. Hopefully I can get it done by then. As usual, I’ll be streaming development on Twitch.

Nothing else is going on really. Still trying to find a game industry job, at least they’re actually replying to me now, even if only to reject me. I’ve started uploading some of my regular gameplay streams to my YouTube channel, and getting some decent view numbers. I think I’ll be doing more of that, especially for the demo & VR streams I do on occasion. Maybe some highlight compilations at some point too.

I was warned that gaining viewers solely on Twitch was a fool’s errand, and they were right. So maybe I’ll try this method. On that note, I am thinking of streaming my game dev stuff to YouTube as well, although I don’t know what the state of restreaming is these days. Maybe I’ll take a look at Restream.

That’s it from me. I’ve got a busy few weeks and maybe months ahead, I’ll try and post when I can. Later.

-Adam

10/01/2022 – 2020: The Threequel – It Can’t Get Worse, Right?

Later this year, this website will be 10 years old. You think I would have done more with it.

Anyway, do you like the new makeover? It’s not that big of an improvement, all I really did was change the theme and update some images. Either way, there’s a proper dark theme now and everything is less of an eyesore. Better fonts too.

Let’s start off with an update on that headphone story from the last proper post. Turns out the headphones I was using with my phone were APTX, meaning low latency. And the new ones that I was using with the Quest via that transmitter weren’t. So I’ve swapped them and I’ve noticed there’s even less latency when using VR now. And for an added bonus, the new headphones are much better at noise cancelling, making it superior for when I’m out walking the dog listening to stuff on my phone.

I mentioned last time that I got Oculus AirLink working with my quest. Although I’m fairly happy with the results, it’s not completely perfect. I certainly notice some jitter or stuttering from time to time and occasionally the picture resolution will drop in quality. But for being wireless, I’ll happily take the shortcomings. Unfortunately, I can’t use it wirelessly for long because it drains the battery very quickly.

Messing around with VR also led me down the road of thinking about using a virtual avatar to display while playing VR games, so that viewers can get an idea about some of my body movements. And so VRoid comes into play.

It’s a me! Albeit with really long arms. Work in progress.

The software is quite easy to use and very detailed. Think of it as a more elaborate character creator that you might find in games like Saint’s Row. The default clothing options are very limited though, but you can edit the textures to create your own interesting designs. In the image above, you can see that I modified a texture to try and recreate my jacket. The bad news is that I didn’t have any decent tools for image manipulation or image creation. Although as I’m writing this, I’ve recently installed GIMP. Perhaps now I can do a bit more work to it.

Speaking of software, I’m starting to think about getting back into video editing and I’m considering downloading and trying out Da Vinci Resolve. I used to do video editing with Premiere and After Effects, but money is getting tight, so I’m looking at free options these days. We’ll see if I actually do anything though, I got a lot going on right now as I’ll get to later.

Another thing that’s been bothering me about my VR setup is the microphone. The built-in mic for the Quest sounds like muffled crap for me and no amount of audio adjustment seems to solve that problem. So I was looking at getting a new microphone with my Xmas money, but as it happens, my sister decided to gift me the microphone I wanted as a present. Saves me some money at least.

The new mic seems to be OK. It boosts the volume and helps the clarity a bit, but there does appear to be a small amount of interference or crackling on occasion. More tests are required I’m sure.

Just as a last thing; over New Years I watched They Shall Not Grow Old. Now I bought the physical Bluray of it, and my Bluray player of choice is my PS3. About 3/4 through the film though, I was getting horrible graphical artefacts and glitches. I had hoped it was just some weird HDCP bug caused by my capture set up, but when I adjusted my cables and reset the video settings on the PS3, it became apparent that the GPU was most likely dying.

My options were to go back to my other, older PS3 which a disc drive that didn’t function properly or buy another PS3. I originally picked the first option. But once I got it connected, I received the YLOD. That only left me with one option left and a day or so ago I received a used PS3 that was in fairly decent condition and decided to do a full system transfer.

I’m on my 4th PS3 now. I thought hardware failure of this kind was something only original Xbox 360 owners had to deal with. Either way, my plans for playing through PS3 games that are still on my backlog have shot up in my schedule because I should probably enjoy them before this machine conks it as well.

New Year Plans

It’s difficult to make plans for this year all things considered. I’m still hoping to hitch a ride to Japan with the help of a friend of mine and his mate. But God knows if that’ll happen.

But I will do the language proficiency test (JLPT) this year, if available. Starting with N5, although I have a feeling it might be too easy considering the Kanji levels I’m studying at the same time. I’ll look into it more soon.

At the tailend of last year I submitted my CV a couple of times to a few job openings, but I was unsuccessful on all accounts. I’ll probably keep trying, but I might start looking into going back into training. Perhaps online courses or something like that. I’m not sure if I’ll stick to games or maybe go back to traditional software development.

I would also like to get back into drawing again. It’s been well over a decade since I drew anything seriously and I’ve still got a desk full of art tools. I gotta start from scratch again and re-learn everything, and then education myself on new things like drawing humans and animals, and animation. But it’ll be a serious time commitment.

I can’t really commit to anything else for the time being.

Plans For Current Projects

I’m going to go back to the Game Template Project and start getting that into a somewhat releasable state. I need to add more multiplayer functions and game modes, as well as fixing and improving a lot of the game types. Specifically making them more flexible and expandable. I intend to sell this thing, so it has to be of a relatively high quality, or at least packed with features.

Space Cart is a bit up in the air. I know what needs doing, but it’s intimidating as Hell. There’s a ton of inter-locked systems that I now need to break up, remake, and put back together again. And then make all the new UI work with a controller. I need to figure out a way to motivate myself to just get it done.

The fighting game prototype is hold-on until further notice. I just don’t have the time or knowledge to be able to make anything competent right now. I do have some of the animations ready to use, but the actual system itself will likely require an overhaul as Unity’s default animation GUI can get messy with a lot of animations. Or perhaps I’m just doing it wrong. Either way, I can’t deal with it anytime soon.

Bunny Jammers Redux really only existed as a test for me to make a networked multiplayer game. And I haven’t achieved that goal yet, so I will probably work on that either alongside or after the template project.

I really hope this year is better than the last two. And I hope Windjammers 2 is good.

-Adam

18/12/2021 – The Wait For Headphones And Bluetooth Delay

In late October, I decided to get myself a new phone. I got an Sony Xperia 10 III.

The phone is alright. Taller screen due to the 21:9 aspect ratio which I am not really into. I tend to prefer my phones as compact as possible, and greatly miss the days of flip phones. Anyway, all my stuff still works, although there’s some getting used to because they keep changing the dumbest stuff between phones.

But onto the first story. The phone was promised to come with some wireless headphones, decent Sony sound cancelling ones. But when the phone turns up, it’s just a package with the phone. So I end up calling EE, who I bought the phone from, and asked them where the headphones I was promised are. That’s when I learnt about a waiting period, that was never mentioned on the site, and that Sony were running it and were supposed to send me a text or e-mail about it. A couple of days later I get that text, fill in the details, and then get told I’ll get it within 3 weeks.

While I waited, I pondered on what I would use these new headphones on, as I already had Bluetooth ones for my phone. And I figured I would use it for my Oculus Quest, removing one more cable from my setup.

Over a month passed, and I was getting rather impatient. I contacted Sony multiple times, only receiving one reply saying that it was something on EE’s end, and after contacting EE they told me to contact Sony again.

Just as I was starting to consider serious dispute options, lo-and-behold, the headphones just turn up on my doorstep. All’s well that ends well I suppose. But this only leads into another series of problems.

I paired these new headphones up to my Quest and found out the fun way that the thing doesn’t support low latency Bluetooth codecs, making it absolutely useless to use with games. I don’t know why they allow you to pair headphones if it doesn’t work properly, seems like a pretty big oversight.

Following that, I did some research and found myself a Bluetooth transmitter. A MaedHawk one specifically. It’s not too bad. The delay is dramatically reduced, although you can definitely notice it still, but it’s now at least acceptable.

But now I enter my next problem; I have more devices that need USB to charge than places and ports to charge them. Plus I need somewhere to put all these damn headphones I now own. Leading me to buying an Anker USB hub, and some metal hooks held to the bottom of my bookcase using sticky pads.

So after spending a bit more money than I wanted, I’m relatively pleased with my set up.

Now, I was planning on ending that story there, but there’s a new problem.

Lately I’ve been having issues streaming VR stuff with OBS, crashes after 15 minutes or so. Furthermore, the mic on the Quest is utter crap and sounds terrible when streaming. Meaning my next side quest in life involves finding a new mic and trying to figure out why OBS shits the bed whenever I stream VR stuff. For now I’ve found a workaround for the latter where I’ve just made a new source collection on my main scene collection, where OBS doesn’t crash.

I have a few candidates for a wireless mic solution, but I’m unsure about the quality; and in one case, the price. I’ll keep doing some research into the matter and see if I can find something decent.

In other news, I finally got Oculus Air Link working. It involved editing some values in Oculus Debug Tool that I had previously edited, to lower them far enough that it actually operated properly. Anyway, I’m now completely wireless in VR. FREEDOM.

Tested out Elevens: Table Tennis and Half-Life: Alyx. Both worked well, no serious delay. There’s certainly some visual downgrades compared to using a cable, but it’s a small price to pay, plus I hadn’t fully adjusted my settings to allow for a higher bitrate.

Game Dev Stuff

Last post I mentioned I was going to goof around with Mirror in Unity. It’s certainly more mature than MLAPI in terms of features, and I can certainly see what MLAPI influenced by.

But you may remember some months back when I did ThreeThingGame and made a pretty crappy Windjammers clone called “Bunny Jammers”. I was never particularly happy with that game, I thought it played terribly. So recently I decided rebuild it, with networked multiplayer, in Unity.

Currently, I’ve just about got the absolute basic gameplay features working. The player can grab and throw the ball, the scoring works, and movement is getting there. Unity undoubtedly tried to make building this more complicated than it ever needed to be, and furthermore, their physics system is absolute trash. I’ve rolled my own, which isn’t too bad because it’s fairly simple.

I’ve still got more to do for the gameplay, but once I’ve got that done, I can start working on the networked side of things.

As for Space Cart… I got nothing. I haven’t touched it in months. There’s still a lot of systems I need to rebuild for that. But quite frankly, I’ve lost pretty much all of my drive to develop that idea. I’m not gonna make any promises that’ll get worked on any time soon.

That’s it. Next thing from me will be the year-end Den post with my top 10. See you then.

-Adam