back | home

September 16, 2020

For the past couple of weeks, I've been working on psx-template, a template for all of my future PSX projects (i.e. a game engine). I don't recommend using it since it's buggy at the moment. The biggest difference between this engine and the previous engine is that it does not use libgs, and instead uses libgpu for everything. I also implemented a bunch of visual debug features so that I don't have to rely on printf()'ing values all the time (using too many printf()'s every frame tanks performance on real hardware if you're using an XFX + caetla). Right now, I'm working on a camera system and a 2D level renderer. Here's how it looks currently:

[an image of a girl sprite rotating around a broken level]

Yes, the level renderer is broken, but I thought it was quite amusing :p

As for the actual game itself, it's a 2D platformer where you play as a ball; the walking girl sprite is a placeholder. I haven't really brainstormed yet, but it will be a simple and short game.

September 24, 2020

The level renderer has been fixed, but it's a memory hog. The 160x80 2D array stored in memory is composed of SPRT structures, which are each 20 bytes. 160x80x20 == 256000 bytes == 256 KB. That's *roughly* 1/8 of the PS1's RAM! This wouldn't be so bad if I hadn't reserved 1.5 MB of the RAM to storing assets in main memory. I've been trying to trim it down to 24x18 SPRTs, but I ran into issues that I'd rather not deal with right now.

Other than that, collision, animation, and "AreaTriggers" have been added. AreaTriggers are "areas" that, when entered, run a callback.

The controls are pretty much complete. You can bounce off walls, dash, and sprint. Only thing left to do is actually build the levels and story and everything else..

[an image of a ball bouncing around a mushy ground with an orange background]

October 07, 2020

The levels, and everything else has been built, and the game is done! I've decided to drop the story and just go for "you're in a lab, escape out of it," although even that isn't explained to the player. One unfortunate tidbit about the game is that the PAL version is slower than the NTSC version because I screwed up the gameplay timing. This rendered the last level of the PAL version unbeatable, so I made it so that PAL players can wall-bounce 4 times, while NTSC players can only wall-bounce 3 times.

On a different note, I've been wanting to study mathematics for a long time. For the past 2 years I had dedicated all of my time towards PSX game development, and now that this is done, I can actually focus on other things. As such, I'll probably be on hiatus for 2021 or for perhaps longer.

Also, now that I've finished a game, I am finally comfortable calling myself a "homebrew game developer," although the next thing I'd like to make might be demoscene-related. Until then, I'm taking a break.

[an image of a ball hopping around]