go back

synapsium alpha build #1

23 December 2025

video showcase

changelog

a discussion of the changes

node sfx

a large part of what makes a game is enjoyable is that it has to feel responsive. adding a sound effect that the nodes trigger when being hit by a particle helps, in my opinion, to make the whole experience of interacting with the levels feel more fun.

the sound effect being used at the moment is just a placeholder that i’ll change in the future.

i hadn’t actually used raylib’s raudio module before (which handles sound), so this was also an experiment with playing around with that.

transitioning between levels ui

previously, the only way to move around the levels was to press SPACE (if the level had been completed) or M to force skip to the next level (these were arbitrary key choices). i wanted to create some ui that achieved the following objectives:

right now, i’m simply displaying the ui on the side of the screen, though this may change in the future (if there are many levels, it will become somewhat cluttered and look ugly). however, it’s a working first prototype that does the job.

updating the engine

previously, the game’s code didn’t really allow support for levels with pre-existing connections. essentially, all connections formed were stored in a std::vector which got cleared when a level was reset. this meant that even if i created a level with a pre-existing connection, when the player transitioned to the next level this connection would be cleared (along with any connections the player made).

to get around this issue, i reworked how the game handles connections. there are now permenant and temporary connections. permenant connections don’t get cleared when the level is reset, whereas temporary ones do. any connections that a player creates are temporary, whereas connections that are a part of the level are permenant.

due to this change, i can now easily create levels with pre-existing connections, which will be very useful in the future when i build more complicated levels.

a brief discussion of versioning labels

all future builds of synapsium will be labelled in the form #XY (Y is optional), where X is a number and Y is a lowercase letter. for convenience, let’s call this the game’s build string. the Y component of the build string will be used to indicate the addition of minor changes and bug fixes, whereas the X component will be used to indicate the addition of new features.

the game is currently in alpha. what does this mean? well, for this game, being in alpha means that there is not a publically released playable demo. in other words, it’s still in the “rough prototype” phase of development.

when i do publically release a playable demo, i’ll transition the game into beta.