• Hello everyone,

    We're happy to announce that our forum is back online! We needed to take some time off to discuss and decide on how to handle sensitive topics in our community.

    The team has posted an in-depth comment regarding a recent incident and our stance on politics and sexuality in our forum. We also added a dedicated paragraph about this in the forum guidelines. This is part of our commitment to maintain a welcoming and inclusive environment for all our users. Your understanding and continued support in building a creative and respectful community are highly appreciated.

    Thank you, the CX Dev-Team

Showcase Pipanic


Well-known member
3rd Party Module Dev
Tutorial Author
Jul 31, 2017
Hi everyone!

I just released my second Cerberus X written game into the wild:


It's my entry for the Code A Game Competition Jan 30th - Apr 10th on www.syntaxbomb.com

The game is related to the film Titanic but with a slightly different story. Or is it exactly copying the film? I'd say you have to play it to find out! ;)

Here's a screenshot to tease you:

And here's the download to please you:

Pipanic.zip for Windows

Next planned steps are:
- Make Android version
Good luck with your entry. Would be cool to see a CX powered game up in the ranks.
Thanks! I can't tell yet how my chances are - didn't even find the time to play the other games. But being "in the ranks" would definitely be cool!
I played it for a little while and I liked it! Good luck with your ranking!
Played the Android version. Love the art work. But so far the iceberg takes always more damage than the ships. And so dies before it sinks.
Make sure you ram ships only from the side and try to avoid ships with a higher level (once you master the controls, ships up to two levels above yours aren't a problem. But then, always have healings and big healings ready, because aggressive ships can occur really quick and want to play with you ;-)
Cool game, love the water effects. And I like the pixellated style. I might start doing that if only because I'm rubbish at pixel art (and all my old gfx are low res!) so less pixels is good!
Thanks! There's actually quite a lot of technical stuff going on behind the scenes for the water. For the ships too - but there it's pre-rendered by a tool, while the water effects are done on the fly.

The water first draws two quads with a grey-scale texture of low frequency waves blended on top of each other.
Then, the "trace" of the ships are drawn: this is done by drawing a lot of half circles. When the emitting object doesn't move, the circles are created with an opening angle of 180° so a full circle appears. If it moves, the angle is more and more closed depending on the movement speed. The waves itself are then scaled up to a certain size before they're deleted*. At creation, they're assigned a "depth" (which only defines if it is drawn brighter or darker). A bit of wave physics is behind that to keep everything synchronised and looking good even at low amounts of waves (waves are emitted either all 1/2 period of the wave or every half 1/2 wavelength when moving - whatever appears first).
Then, a third quad is overlaid with a high frequency wave texture.
All this in grey-scale onto an image. This image is then drawn with a fragment shader that turns the different grey values into shades of blue, that actually come from another texture holding the four blue shades and is not filtered, so no in-between colours appear.

* Actually, they're not created and deleted all the time. Every wave emitter can only emit a certain amount of waves due to the restrictions in movement speed and the physics of the waves. All these waves are then created at app initialisation and are then either active and visible after "respawning" them or not. This boosted the performance on my old Android device quite a bit.
Thank you for sharing your technical info. This is very interesting to read.
That's awesome. I just zoom, rotate and alpha stuff. This is a whole different level. :)
Isn't that where we all started? =)

Looking at the implementation of the graphics there's not much more that I do: using textured quads for the screen filling water textures is all that's (from that point of view) more that rotating and blending. The real magic lies within the maths behind it. I can't stop to repeat how powerful mathematics are. And I benefit from three things:
1. I like maths
2. I had a lot of maths classes in university
3. throughout my career I mostly used maths in physical problems (and courses and exercises and so on), where it has a real life application.

It helps a lot when things get less abstract. In physics, you can literally get in touch with the equations that make up a phenomenon. Best example is how I learned in school how force accelerates mass and how I went home that evening and did a little implementation of that in BB. Tiny steps over many years. And that's the emotional part of the story behind the nice waves in my game :)
Thing is, I started programming in 1984 and not improved that much! ;-)

But I enjoy it and every now and again I get something out. I'm still using Blitz on Amiga mind you.
Congrats @Holzchopf on your raning in the Syntaxbomb competition. Well deserved!
Top Bottom