25/04/2022 – Rotation & Action

Happy St. George’s Day.

I’ve been working on another new game, although for justifiable reasons this this. Having made a bunch of game templates within Unity, I decided I should maybe try and make something with it. I had a small idea while ago while replaying one of my favourite games, Everyday Shooter, and thought about making a top-down shooter. But I also wanted to put it on my phone so I figured I should keep the controls simple. Around the same time, I was working on Global Game Jam and wanted to make an Ikaruga style game with colour switching, but as you now know, never happened. But I kept the idea.

And now I present, the new game.

It’s a rotating action game with colour switching as its core mechanic. Additionally, it has arcade style scoring. I’m quite pleased with how it’s coming along. There’s still work to be done, but getting it up to this point was surprisingly fast.

I do have a demo in the works (There’s a HTML version on the currently private Itch.io page), but I’m having difficulty getting the game on the intended platform I wanted it on, phones. Specifically, I can’t get Unity to build to an APK so I can test the game. Just to add insult to injury, the errors I get mostly amount to “Gradle Failed: 4 Errors” and then doesn’t elaborate. It’s infuriating.

I’m looking into solutions, but I’m getting rather pissed off at it. But I’ll keep working on it regardless.

On the plus side, I’ve learnt a lot about exporting and importing packages into Unity, and figuring out what dependencies I need for what game type. So when I eventually release the templates onto the world, it should be a smoother experience.

But just to cover some pros and cons: The templates can be somewhat rigid to work with and depending on what you’re doing may require a lot of additional work and changes. With this game, there’s a lot of stuff I needed to change in regards to what happens with collisions and I’m probably going to need to make adjustments to the spawning code as well. But on the positive side, I have saved days in figuring out various systems for things like aiming and spawning. Overall, I am fairly OK with the practical implementation, but at the same time, I’m curious as to how someone who has no knowledge with the codebase would use these templates.

Now, you maybe wondering what happened to making something with Stride. Unfortunately, I just could not get the engine to play nice. I tried my hardest to load the demo projects as well as empty projects, and it error out each time. And that’s a shame because I was really looking forward to using something other than Unity for once and getting stuck into a new IDE, and finally freeing myself of the chains of proprietary software. Alas it was not meant to be. So I’ll either wait or look into other engines. Not Godot though, that’s just awful to use.

That’s pretty much it from me. As always, you can find me streaming on Twitch. Lately I’ve been using my VRoid model in place of a webcam to see if it interests more viewers and change things up a bit. That model still needs more work though, it’s really ugly in places and desperately needs better textures.

See you next time.

-Adam

08/03/2022 – Quacking Around With PS1 Games

It has been a while, I’ve been keeping OK.

As you can maybe guess from the title, I’ve been messing around with PS1 emulation via Duckstation. Although it’s not the only emulator I’ve been fiddling with, I’ve also been poking around with PPSSPP and playing a few gems on PCSX2. Although a lot of work is required to get stuff working properly on the latter there.

I suppose what brought all this on was my desire to play through the old Drakengard games along with my friend linking me the opening movie to Wild Arms 5. All that just locked my brain into a place of wanting to play a bunch of PS1, PS2, and PSP RPGs as well as various other games I missed from my youth.

On PS1 emulation specifically, it’s nice to be able to play those games without the texture warping. It really cleans up the image and can make some of these games look really good still. Stuff like Wild Arms looks like it could be released today by some small indie studio or something. Although the actual gameplay and exploration design is probably a bit dated by today’s standard. But I’ll talk about that in my Den post later in the year.

Another point on the matter, phone emulation has come a long way. PPSSPP was on Android years ago and worked OK-ish. But now it and Duckstation both run pretty well on my Xperia 10 III. However, the experience of syncing up my saves between PC and phone could do with some dedicated support. Currently I’m using Dropbox for Duckstation saves. It works well enough, but you have to make sure that the PC application’s memory card settings are set to make a seperate cards for each game. The phone only gives you that option, and a shared card causes problems when importing.

Right, down to business.

The Game Template Project, the Unity assets designed for building basic game ideas without having to start from scratch every time; has reached a point where I’m fairly happy with it. I wouldn’t say it’s done yet, I do plan on adding documentation and general feel of the “games” isn’t quite right yet. But I’m happy with the amount of different genres covered. Hopefully I might actually finish this project. That would be refreshing. Whether or not it’ll make any money for me is another question entirely though.

Outside of Unity, I’m going to start experimenting with the Stride game engine. It’s an open source game engine made with C# that many say is a Unity-like IDE. My experiences with Godot was prompted my desire to check out other engines and such because I can’t rely on Unity for everything, and quite frankly Unity has been driving me up the damn wall in places. Having an understanding of how other engines and other people do things can only be a benefit. But I am worried about a lack of documentation.

As for what I’m building in it, well I’ll probably start with Pong as it’s the “Hello World” of video game development. Following that, I’ve had a small game idea pinned to my white board for a while now. It’s a very small game, so the scope should be small enough to use it as a reason to learn how to the use the engine. And if it ends up being too difficult to deal with there, I’ll port it back to Unity. Although perhaps at this point I should stop coming up with new ideas and finish the ones I already have.

There’s nothing else really to talk about for the moment. The Den post is getting filled in slowly, jotting down notes as I play through things and such. Again, that’ll be out come June. See you next time.

-Adam

31/01/2022 – Global Game Jam 2022 Post-Mortem

Another Global Game Jam happened. This year’s theme was “Duality”. My friend and I cheated a bit and knew about the theme about a week before the actual event we had signed up for. In other words, the theme was out on the 19th and the jam site we joined started on the 28th.

We discussed a couple of ideas in the week leading up, I initially thought of making a bullet-hell top-down shooter with colour switching like Ikaruga, but my friend wasn’t into the idea, and wanted to make a platformer instead.

My original concept of the idea was a side scrolling platformer, where the player would jump on different coloured platforms, and the colour of the platform would change the background colour of the scene. That in turn would hide or reveal the platforms ahead of the player. This is the one concept we actually kept, but it didn’t become a 2D platformer.

I’m probably gonna ridicule my friend here, but he also gave me twice as much work to do, so he probably deserves it. When we prototyped the idea and I was giving him instructions on what we should do, he purposely ignored them and built a 3D platformer instead, and claimed his idea was “Better”. The kicker is that he did put in a 2D mode, but made it so the gravity was sideways instead of down, because he claimed being able to climb was a cooler idea. Which made designing a level even more difficult because it meant any 3D to 2D puzzle design had to revolve around a quite frankly undercooked idea.

By the end of it, we dropped the 2D side of things. Which brings me on to Godot.

I’ve complained about Godot before, but it continues to surprise me with how underdeveloped or obtuse it can be. Let me provide a couple of examples. The background colour changes. In Unity I could access the main camera, set the background to be a solid colour, and then in code, just change the value of the colour. In Godot, according to my friend at least, you have access a node, set a global variable to access that node, and build a script to access that to set it.

Another example is putting some UI around the map in the form of text tips or hidden words. In Unity there exists a text mesh feature that just lets you put whatever words you want wherever you want. There’s also UI element text which is constrained somewhat by the canvas, but for the most part is fairly easy to place and manipulate. Godot’s version isn’t anywhere near as easy to use. You have to build a viewport, build a control node (Which I didn’t do initially, I’ll get to that in a bit) and then attach a label or rich text label to that node, and then make a 3D sprite, and render that viewport containing the text to said 3D sprite. Now when I made the viewport without the control node, although the engine prompted me to edit the positioning via the 2D canvas, I couldn’t actually see the UI elements. So you need to attach the control before you can even manage that stuff.

When I complained to my friend about the latter of those examples, he then proceeded to take an hour and a half “Making it easier” and created a UI theme that in theory we could use to drop text anywhere. In reality it just took up a bunch of time and broke all the UI stuff that I made previously.

Other than the problems with Godot, making a 3D platformer provides its own issues. We were fairly limited timewise to implement mechanics. So we focused on making the level around the placements of the platforms, making a couple of additional platform types for destructible and moving platforms. Even with that, my level design experience is lacking at best.

The start of the level is just 3×3 grid that can demonstrate the colour switching, as well as a couple of destructible platforms. This then leads to some moving platforms, with some vertically following that, and so on. The 2D stuff had to be abandoned purely because there wasn’t really use for it, climbing walls isn’t useful compared to what I had planned about perspective switching. There’s a part about halfway through the level with a moving platform, and I placed a wall just above the platform forcing the player to jump to another platform and jump back to get around it. In one idea after settling on a mixed perspective, I planned the idea of having that be a 2D section, where they would see a wall, but when they switched views to 3D there would see a gap in the wall to go through. But with the physics set up that we had that my friend refused to change, it just wasn’t possible.

The sense of direction was also a problem when we watched other players play the game. Some players didn’t know where they were going or why. There are a couple of directional arrows in the game pointing at paths ahead, but perhaps we should have put a few more down.

Myself and my friend have done multiple game jams now, and something is clear, we have very different views on game design and development principals. Part of this is due to our choice of engine, I typically use Unity and he exclusively uses Godot for reasons beyond any human understanding; and that often causes problems in design visualisation and fully understanding what the other is capable of. Furthermore, he mostly exclusively insists on creating 3D games despite the fact that I have very limited experience with things like Blender, but it’s my turn to do art, he still wants to make 3D stuff and then butcher my sprite and jerryrig it to 3D meshes. I’m just complaining at this point.

After we finished this game, we did joke to each other that we had made a better game than Bubsy 3D. Considering how difficult it can be to make a 3D platformer, I’d say we at least did better than that.

As for things to do different, well if it was possible, I would have liked to properly explore the perspective switching idea. Or just keep to the original 2D idea I had and add in some of the more physics based sections, like the pachinko machine. I don’t really feel like making a Unity version to be honest. I liked the concept of Bunny Jammers enough to do something more with it, but I think this game proves its concept well enough that it’s unnecessary.

If we take part in another game jam though I might try and convince my friend to install and mess around with Stride, which is C# game engine I’ve been thinking of looking at for a while now. If we can both find an engine with like and want to use, it would probably increase our productivity. Possibly ditch the idea of switching roles each time too.

If you want to play the game, download it here or play it in the browser:

-Adam