Pipanic

Holzchopf

Moderator
3rd Party Module Dev
Tutorial Author
Joined
Jul 31, 2017
Messages
482
Hi everyone!

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

Pipanic

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:
pipanic01.png


And here's the download to please you:

Pipanic.zip for Windows

Next planned steps are:
- Make Android version
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
2,815
Good luck with your entry. Would be cool to see a CX powered game up in the ranks.
 

Holzchopf

Moderator
3rd Party Module Dev
Tutorial Author
Joined
Jul 31, 2017
Messages
482
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!
 

Phil7

Administrator
CX Code Contributor
3rd Party Tool Dev
Joined
Jun 26, 2017
Messages
539
I played it for a little while and I liked it! Good luck with your ranking!
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
2,815
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.
 

Holzchopf

Moderator
3rd Party Module Dev
Tutorial Author
Joined
Jul 31, 2017
Messages
482
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 ;-)
 

Rob Hewitt

Active member
Tutorial Author
Joined
Aug 30, 2017
Messages
104
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!
 

Holzchopf

Moderator
3rd Party Module Dev
Tutorial Author
Joined
Jul 31, 2017
Messages
482
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.
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
2,815
Thank you for sharing your technical info. This is very interesting to read.
 

Rob Hewitt

Active member
Tutorial Author
Joined
Aug 30, 2017
Messages
104
That's awesome. I just zoom, rotate and alpha stuff. This is a whole different level. :)
 

Holzchopf

Moderator
3rd Party Module Dev
Tutorial Author
Joined
Jul 31, 2017
Messages
482
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 :)
 

Rob Hewitt

Active member
Tutorial Author
Joined
Aug 30, 2017
Messages
104
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.
 
Top Bottom