21/03/2025 – Global Game Jam 2025 & Other Things

Apologies for the lateness of this post. I’ve been quite busy during the past month.

Also, this post has taken longer to write than usual, and as such is filled with corrections and changes. Comments that are striked through are the original text that I’ve left in.

But yes, Global Game Jam happened again, and I made a new game and helped my friend make… His thing.

As you can tell, I made a GameBoy game. In GB Studio, like I said I would. This year’s theme was “Bubble”. I struggled to come up with something interesting around that theme. And due to various circumstances (that I will elaborate on later), I didn’t have much time to brainstorm ideas.

So I decided to make a basic platformer. Which is what GB Studio excels at. It’s very easy to get up and running. The game has the player stuck in a bubble; if the bubble pops, they die. Unfortunately, someone (me) has placed spikes around the place. And so the player must navigate through seven perilous levels.

Initially, my character was meant to have a more significant role. But I didn’t get around to doing everything I wanted to do.

Building the levels was fun. I got to use a program called Tiled, which lets you make levels using tilesets. I made a very basic one with platforms, spikes, and a couple of other bits. It worked well enough for making levels. Tiled itself takes a bit of getting used to. I jumped into it without much of a tutorial, but I got the hang of it quickly enough. Making a test game before the jam started definitely helped getting me prepared.

Finally, I wanted to note that I got the game working on my Analogue Pocket. Which I think is neat.

You can play the game below.

Hot on the heels of finishing that, I immediately began helping my friend with his game. Which he hadn’t started yet. 18 hours before the deadline.

Using Godot, of course, we cobbled together a bunch of poorly made assets that were vaguely Frutiger Aero-related and slapped them into a level. Combine this with the code from a previous GGJ game we made, “If Only The World Was So Black And White“, to handle player movement, and you get… This.

It’s an unfinished mess, but you can check it out if you want. My friend really needs to use his time better. At least I had an excuse for my lack of time.

Now for the reason why I had as little time as I did. Well, at the beginning of that week, I finally received the last of the replacement parts for my PC, the PSU specifically. The moment it arrived, I decided to get cracking at swapping things out. I’ll get into those details in the next section. Regardless, it took 3 days to finish doing that. Then I got one day of solid development in, where I made the player sprite and started work on building the early levels.

And then Storm Éowyn hit the day after. Knocking out my power for the whole day. I didn’t have much water either, making things even more difficult. Unable to use the computer, I decided to draw the levels on squared paper.

I didn’t get power again until the day after. At which point I resumed development up until the point where I pivoted to helping my friend.

Freezing half to death, having little to no water, and having no way of charging my devices made me realise I should spend a bit of money on emergency supplies. As such, I bought a wind-up torch & radio that can be used as a power bank. It didn’t cost too much, but hopefully it’ll work when I need it.

Rebuilding My PC

My previous PC case was old. It was a Lian Li case from 2012. From when I built a PC that I used at Uni. The fans on it were failing, with the rear fan requiring me to stick something between the blades and kickstart it back into moving. Plus the rattling and noise of it. The front panel was held on with tape. And the LEDs were failing too. So I decided last year that I should swap it out for something newer. A Fractal Pop XL Air.

Besides that, I was now using a Ryzen 7 5800X3D but still using the stock cooler from my Ryzen 7 2700. Which was pumping out heat to the side of my case and generally being hotter than I was comfortable with. Which led to me considering an AIO water-cooled solution. I decided to get a Be Quiet! Silent Loop 2.

After ordering those two parts, however, I started having issues with my PC, and after some time, one of my SSDs disconnected. The one I was using for gaming specifically. Initially, I replaced the drive with a newer one and transferred the data to it. Although in doing so, I noticed that the drive was actually fully functional once connected up with USB. Either way, after the transfer, there were a couple of weeks of little to no issues. Until it started failing again.

No matter what cable I used or SATA port I connected it to, it wouldn’t work. But USB connection did. The only consistent factor was the power cable. Seeing as the PSU was a number of years old, I decided to replace that too. And got an 850W SeaSonic PSU.

Beginning the 3-day process, I removed the motherboard from the case and removed the heatsink from the CPU. Then cleaned all the old thermal paste off. Getting an AIO on wasn’t the easiest thing, but the mounting process was easier than the previous heatsink. Getting it bolted down properly was the harder part; suspension on the screws made it more difficult than it probably needed to be. Mounting the fan to the new case was no problem at all.

Following that, the PSU fit in snugly. But after that were cables. This is where the Fractal case is less than great. It’s a massive pain to get through the slots, particularly the thick cables going to the PSU. But I managed.

Unfortunately, my motherboard is so old that it doesn’t have any ARGB headers, just RGB ones. Meaning that the lights on the case don’t turn on. It’s not a huge deal for me, however. The lack of USB 2.0 ports on the case, however, was a problem, as my capture card requires it. Without it, it crashes after 15 minutes. This issue has been fixed since, with the purchase of a separate USB bracket.

Once everything was together, I connected everything up and turned it on. And it worked… For the most part. Some of my drives were missing. I spent a bit of time disconnecting and reconnecting them until concluding that one of the SATA ports was dead, the power cable for one of the drives wasn’t connecting properly, and the cable may also be busted. I got a new cable from my dad and swapped the power connector. Then used the last free port. Then it worked. And I’ve been using it since.

I’m Making An RPG (Which I Promised I’d Never Do)

Following Global Game Jam, I was itching to keep toying around with GB Studio. And then I remembered how much I wanted a game that was like Dungeon Meshi. With a bunch of monsters, cool dungeons, weirdness around things like magic (Mana sickness), and so on. Now obviously, it’s not possible to put all of that into a GameBoy game. So I settled on making a Roguelike.

Specifically, it would focus on the battle, rest, and food balance. Instead of using levels, it would use strength. The party strength would increase if the player won fights, kept themselves well fed, and rested often enough. But it goes down if the player rests without eating or with extreme tiredness. There’s also a stamina bar that indicates how much a player can move around before they start to feel the effects of fatigue.

I’m trying to make it a dungeon crawler, but I’m struggling with the generation element of it. With the unique way GB Studio handles scripts, it’s very difficult to have a lot of control over something like that. I thought maybe I could use tile swapping in order to make it but ran into the tile limit immediately. So I’m looking into alternatives. I’m now building levels manually. I need to make about 50 of them.

Tile swapping is a very powerful tool in GB Studio. I use it for multiple HUD elements. I found it to be easier to use than handling it via actors. Unfortunately, the documentation for GB Studio is awful, so finding examples for how to use tile swapping effectively is difficult. Thankfully, someone on GitHub put me on the right path.

Menus for the game ended up being difficult to manage. Initially I used the built-in menus, but then I realised that they paused the game every time they were pulled up, and I thought that would be a problem for updating things and animations. Then I built my own menu, but the performance took a massive hit because I was updating multiple things every frame. Following that, and a considerable amount more research, I settled back with the built-in menu, with a better understanding of how the loops work.

The amount of nested if statements concerns me. There’s no lookup tables or dictionaries, so you have to use if statements for any comparison. But the more annoying is the inability to dynamically make options for menus. The amount of menu items has to be set manually, along with what each option says. And then you need to use an if statement for each option. The problem is that I want to be able to swap out party members with different classes and skills. But I can’t update the list of skills. Instead, I have three skill slots and then use an if statement for the choice they made in the menu, and then another series of if statements for what skill is in that skill slot (which you can only find out by choosing that menu option), and then another menu asking the player if they want to use the skill, and then another if statement for the selection on that menu.

Complete madness.

I also rewrite chunks of code over and over in different places, because I can’t move it out into a reusable function.

Turns out you can move code out into scripts, with parameters and such. This has made my life so much easier, as I can now reuse code and only pass along the relevant variables. For example, I’ve moved the skill system into its own set of scripts. One for the menuing and others for each character class.

GB Studio is fun if you want to make a simple game. But once you get into more complicated designs, it gets very challenging to work with quite quickly. You can export the engine as code and modify it that way. I haven’t given it a shot yet, but if I were serious about fixing the shortcoming of the engine, I might look into it. For the time being, I’m going to keep trying to get it to work.

Twitch’s Bullshit Hour Limit

Twitch, in their infinite wisdom, have decided to impose an extremely arbitrary limit of 100 hours of footage that can be archived on Twitch. How far above the limit was I?

1300 hours above the limit.

This means that all the collections on my Twitch page need to be moved on to YouTube, and then I need to delete all of those collections. Currently, I have moved most of those playthroughs. Some stuff like the Yakuza games, Death Stranding, Ghost Of Tsushima, and Tales Of Arise; have been removed without being moved to YouTube. So those are gone. The remaining collections are still up as of time of writing this, but will likely be deleted by the time this has been posted. All the collections have been deleted, and playlists of the moved videos will be made on YouTube soon.

As you can imagine, I am not happy about Twitch giving me more work to do. But also, I’m an Amazon Prime (Twitch Prime) user. Meaning I give these chucklefucks money. But everything that they’ve been doing as of late has been making me seriously consider not paying for this trash service. Screw you, Twitch and Amazon.

SMG Model Release

This is the same SMG from 7DFPS 2024, but now textured and with some alterations to the animations. Feel free to use it on any of your projects.

Plans For The Rest Of The Year

Jan 2025

  • Fix PC
  • Global Game Jam

February & March 2025

  • SMG Asset Release

Spring 2025

  • Weapon armature Blender tutorial
  • Video about the Project Fighting Styles

June 2025

  • Cybersurfer demo, rebrand, new title
  • GB Studio Dungeon game demo release

Summer 2025

  • Cybersurfer early access release?
  • Untitled 2D Godot game

Autumn 2025

  • 7DFPS prep

I just wanted to give a slight update to the plan that I made in my previous post back in January. Things are progressing well so far, although this new GameBoy project has definitely put a spanner in the works in regard to Cybersurfer’s development. But progress is being made on that front.

Anyway, I will post again soon. Hopefully, I’ll have some good news to talk about.

-Adam

01/01/2025 – 2020+=5

Here’s the video for 7DFPS. It’s not great, but it covers the important bits. I’m still not too happy about the whole affair. I achieved what I set out to do, but I’m not satisfied with the quality of it. It’s just not much of a game. Whatever, I ain’t going back to it.

So what’s this blog post about? Future plans, of course.

I’m just gonna bullet point the current plans for the year, with dates where applicable.

  • In the coming days: Year end roundup post
  • Jan 20th: Global Game Jam
  • February: SMG Asset release
  • June 4th – 6th: Demo Day 62, new Cybersurfer demo
  • Summer/Autumn: Cybersurfer Early Access release, new branding, and title also
  • December: 7DFPS

That’s the brief overview of the year. There will of course be other things than Cybersurfer and game jams. I’m hoping to catch up with side projects like reworking Rotaction and learning more about Blender. Doing more projects with Godot and possibly GB Studio are also planned. But none of these have definitive dates associated with them. I’ll get to them when and if I’m available.

This is year is make or break for me at this point. I need to focus on what I’m good at get stuff out there.

As for other things, well, I’m replacing my PC case at some point in the next week or two. I got a Fractal Pop XL Air case to replace the 12-year-old Lian Li one that I have. The fans and LEDs are dying on it, and it’s falling apart in places. With the Ryzen 5800X3D chip inside it getting extremely warm while using the stock cooler I got from the Ryzen 2700, it really is time for me to switch it out.

I’ve never done water cooling before, but the AIO solutions seem simple enough to install these days. I hope it all goes well. But I’ve been through this before, and something usually breaks.

I hope you look forward to my year-end roundup post coming in the next few days.

-Adam

10/12/2024 – 7DFPS 2024

I’m never making another VR game.

Last year, I made a VR game about moving through a level as enemies spawned to a beat. It was an experiment to see whether or not moving a player along automatically would cause any form of motion sickness. It wasn’t the most full-featured thing, but it did prove a point. That said, I wanted to go further with the idea.

This year’s game is a two-level game that expands on the ideas a bit, focusing on a more traditional action game format. In terms of player handling, the weapon system has been improved. You can now eject your magazine at any time and put in a fresh one, allowing for tactical reloads. You now have semi-functioning hands, although no real use for them. And you can now switch weapons. The new gun is an SMG I made.

Switching weapons actually involves putting your hand on different parts of your body and pressing the right grip. My understanding is that Boneworks already had a similar system, so it’s not as novel of an idea as I thought, but my implementation works well enough.

As for the levels themselves: The first level is a standard action level where the player moves through a dance club as enemies spawn around them. There’s a part in the middle of the dance floor where the player stops and enemies spawn around them. They then proceed through an office before eventually ending at the last room. Fairly traditional stuff, mostly there just to keep testing that moving the player along doesn’t cause problems.

The second level is the real stress test. The player is standing on the bed of a pickup truck as it drives through a city. Enemy cars spawn as they chase the player, and the player has to shoot them. The increased speed and turning might cause more problems for players, hence why it makes for a good test bed. Originally, there was going to be a helicopter sequence, but in testing that, the up-and-down motion of it made me feel really unwell.

There’s not really much more to it than that. Feel free to give it a go if you have VR.

The SMG that was made for it will be available for purchase at a later date. I need to fix and improve it a bit. There was also another gun that was cut because my friend couldn’t get it done in time due to personal problems. We will get that one ready at an even later date.

So what’s coming up next? Well, a video about 7DFPS to begin with, which I’m currently starting on. After that, the usual end-of-year blog post where I talk about all the games I’ve been playing.

In the new year, things are going to change a bit. I’m going to stop putting unedited first parts of playthroughs on my gaming YouTube channel. It gets bugger all views, and I want to clean out my folders of videos that I, quite frankly, don’t need. I might do more highlight videos or something, or just change the content of the channel entirely.

Global Game Jam is of course coming up. I might join it, but negotiations with the friend I usually do it with have not gone terribly well. I want to use GB Studio to make something, and he wants to use Godot because he hates anything that isn’t 3D. Despite the fact that Godot’s 3D capabilities are less than satisfactory. But we’ll see. I might be able to compromise.

Next year is going to be a wild time. Cybersurfer needs to start being a lot more playable; early access by next year is a goal for me. But it’s going to be difficult.

-Adam

31/01/2024 – Global Game Jam 2024

Global Game Jam has come and gone again, and I made another game for it. This year’s theme was “Make Me Laugh”. I spent a good chunk of January learning Godot for this year’s GGJ, and as part of that, I made a quick prototype of a 2-player robot arena game. I made it because my friend and I were discussing the lack of Robot Wars-related games and thought about making one for GGJ.

As it happens, the theme fit quite well with the idea, so we decided to fill it full of ridiculous items instead of robots and hope that it would be funny. We thought it was silly, but when we presented it to the sleep-deprived audience, it didn’t get much of a reaction.

But anyway, here’s an outline of the game. 2-player robot arena. You can choose a character body, which will have a set amount of weapon placement points each. You then pick a weapon, and then you spawn into the arena. The arena is a 20m x 20m area. There’s a pit that can be activated via a button on the wall and a dropzone where random items drop.

Here are the body models. I’m personally quite fond of the man holding axles model, as it is way more horrifying than I expected it to be when I came up with the idea. And I quite like the box, too. But I should probably note that I modelled both of those while my teammate did the cheese and the toilet. But I did the textures for all of them.

With a bit more experience with Godot, development this time around went a lot more smoothly. However, that’s also because I was in charge of the programming for the most part. Not to say that I’m a better programmer than my friend, but more to say that I spent a lot more of my time doing the work.

Either way, I used the C# version of Godot 4.2.1 and found the programming side of things to be OK. But there’s still a lot of issues I have with Godot, predominately the general hierarchy of things. Accessing nodes is the biggest pain in the arse, and prefabs don’t really work in the same way they do in Unity. You can’t drag and drop something from the files into the inspector; you have to load it as a packed scene and then convert it to the correct node. But not every node is accessible through code. If you wanted to instantiate a vehicle body via code, for instance, you couldn’t. Hell, you can’t even access it.

I also had issues getting information on the root node of an object, and for one of the scripts, I ended up using GetParent() five times on one bit of code just to get the name of the player object. However, soon after the event, I remembered that Node Groups existed, and I probably should have used that instead.

But the more pressing issue with Godot is just how buggy some of the node types are. For the game, we heavily relied on the VehicleBody3D node to drive the player models. But for the first few days, the wheels on the player models simply went through the floor, and I couldn’t figure out why. And after researching, it turns out that the node by default doesn’t really work how you’d expect and suffers from many bugs. That said, I did eventually find a post that suggested altering the stiffness of the suspension plus some other values until you got the behaviour you wanted. After about 30 minutes of tweaking the values, I eventually solved the issue.

I have no real complaints about the art side of things; Blender is pretty robust these days, although I did learn that the GPU compute option wasn’t configured correctly, and after fixing that, rendering stuff took literal seconds instead of minutes. What bothers me is that this option was always there, but I hadn’t set it up properly. Considering I upgraded my PC primarily to improve productivity, I wonder if I had checked the right boxes, I could have saved a bit of money.

That’s really it as far as GGJ goes.

As for the new stream layout stuff, I finished greyboxing the gaming part of it, and now I just need to set up the textures. I also need to get started on the game dev scenes and the transition animations for both.

Hopefully, I can get all this sorted out by March. I don’t really want to be working on this instead of playing through Dragon’s Dogma 2. On the gaming side of things, I’m making my way through Infinite Wealth and having a blast. I also gave Graven ago and had mixed feelings about it. Persona 3 Royal and Granblue Fantasy Relink are coming soon, with the former being on Game Pass. Relink is a bit too expensive for me at the moment, so I might wait for a sale.

Anyway, till next time.

-Adam

09/01/2024 – 7DFPS And Future Plans

7DFPS happened again, and I submitted a new game. And this one is better than that god-awful zombie game from last year, I promise.

Making a VR game was easier in some ways than I was expecting, and weirder in some ways. I definitely didn’t like being tied to Unity’s pre-built systems as tightly as I was. That said, although the game isn’t as fully developed as I’d like, it’s definitely an improvement.

I’m not gonna write too much about the game because I made a video about it, along with some other info about stuff I’m working on that I’ve previously written about. Here’s the video:

Plans For 2024

My plans are a bit of a mess for 2024 so far due to some things taking a bit longer to do than I expected. However, for January, my focus is on Global Game Jam, which starts on the 22nd.

Alongside that, I’m working on improving my stream layout with new art and transitions. It’s going to be quite the challenge. But things are looking good so far with some of my early brainstorming.

Beyond that, I’m gonna focus full-time on Cybersurfer. I’m really close to a breakthrough with it, and I can’t wait to get back to it after GGJ. And in regards to game dev, my stream schedule for it is going to change. It’s still going to be on Tuesday, Wednesday, and Thursday, but now I will stream in the evenings as well. It won’t be consistent because of how my evenings can be, but it will give me more time to work on stuff.

The gaming streams are going to change a bit. Alongside my regular playthroughs of games, I’m gonna try doing one-off variety streams with many games. I’m then going to take those streams, cut them up on a per-game basis, and put the videos on YouTube as scheduled releases. Probably just one a week to give me some time to make content. I’m not sure how frequent these streams will be, but I’ve got plenty of weird ass games I want to check out.

A bit of a short one, especially after the bloody long post that the end of year one was. Keep tuned into my Twitch and YouTube channels (Both of them), and I’ll see you guys next time.

-Adam