Red Flag (Le Temps des Tempêtes) by Achiru

Yo ho!
🏴☠️ Welcome aboard 🏴☠️
Thou art sailing the heart of the unstable seas of the Caribbean, host of many ships (and seagulls). Those ships contain valuable cargo that a mighty pirate such as thyself hath to bring back.
Destroy the privateers' galleons by shooting them with thy sturdy cannon. But beware!
The sea can be calm, but also twisted and tricky! Aiming is not mere childplay on the windy ocean!
Goal
Thy goal is to steal the cargo of 25 galleons.
How to play
Controls
Accelerate: D / Right arrow
Decelerate: A / Q / Left arrow
Shoot: Space / Left click
Aim: Mouse
Mechanics
- Hold the shoot button to start loading your cannon; release it to shoot.
- Throw some lead to the seagulls and get a life in return.
- Beware of the storms!
We created absolutely all the assets, and had great fun doing it!
(except for the font which is Convincing Pirate by Walter E Stewart)
A game by the Ludum Darons 👑 team.

Changelog
Post-jam updates are not gameplay changes but only bugfixes and quality of life improvements. You can find the detailed changelog below.
v1.0-bugfixed
- v1.0 including bugfixes only (marked with (*) below)
v1.3 (post-jam)
- (*) fix seagull giving 2 lives (for real this time)
- (*) fix sunny weather never coming back
- (*) fix enemy popping on screen
- (*) fix minor music issue
- (*) add arrow keys for acceleration / deceleration
- add randomness for enemy aiming time
- show enemy health bars
v1.2 (post-jam)
- (*) fix seagull giving 2 lives
- minor graphics and sound effects improvements
- make seagull hitbox bigger
- decrease goal from 30 to 25
- reduce chance to get bad weather
v1.1 (post-jam)
- (*) fix deceleration key not working with QWERTY keyboards
- (*) fix cannonball water collision
- add missing rain sound effect
v1.0
- initial release
| HTML5 (web, postjam version only) | https://antbrl.itch.io/red-flag |
| Link | https://antbrl.itch.io/red-flag |
| Link | https://antbrl.itch.io/red-flag |
| Link | https://antbrl.itch.io/red-flag |
| Source Code (Godot) | https://github.com/nbusser/LD49-Red-Flag |
| Original URL | https://ldjam.com/events/ludum-dare/49/red-flag-le-temps-des-tempetes |
Ratings
| Overall | 151th | 4.024⭐ | 44🧑⚖️ |
| Fun | 158th | 3.976⭐ | 44🧑⚖️ |
| Innovation | 241th | 3.798⭐ | 44🧑⚖️ |
| Theme | 572th | 3.726⭐ | 44🧑⚖️ |
| Graphics | 744th | 3.607⭐ | 44🧑⚖️ |
| Audio | 168th | 3.929⭐ | 44🧑⚖️ |
| Humor | 426th | 3.438⭐ | 42🧑⚖️ |
| Mood | 354th | 3.78⭐ | 43🧑⚖️ |
| Given | 84🗳️ | 49🗨️ |
With that said, it wasn't buggy, and the procedural generation seemed very fun to figure out and implement. It had a nice feel to it overall! Well done!
The aiming tips were really nice, but after I while I found myself running and gunning as fast as I could. But that only got me up to 20/30 :)
Nice job!
@skallywags Haha I made the sound effect by dropping a small object into the water :droplet:
@alpharock6 We dynamically generated points of a godot line 2D. We had a lot of trouble to make this debug this feature :sweat_smile:
@martta Thank you very much ! I think we all miss flash game golden age :smile:
@alpharock6 We are considering making the game open source. The code is not very pretty though...
We have reduced the game objective from 30 to 25 ships in v1.2.
We start by defining a line of points with a uniform x-spacing and random y-offsets from each other. This is our base wave. Every so often, a new target wave is defined. We then slowly morph our base wave into our target wave and display that. Once our displayed wave is exactly the target wave, we define it to be our new base wave and we generate a new target wave, etc. That way, we have something dynamic. We can control how fast we morph between waves and how large our random y-offsets are allowed to get. We use this to simulate weather effects on the water.
We generate a polygon based on this line (and update it constantly) to simulate the wave. Entities movements are constrained to the line (for the most part).
Of course, such a line hardly resembles a wave (sharp edges everywhere!). In fact, we use it as a basis for generating a Bézier curve, aka an easy way of obtaining actual curves. Bézier curves are defined using a set of position points alongside a set of control points. The position points are points through which the curve is forced to pass and the control points allow us to control how the curve behaves between these points. We are not very creative with control points for now, we could get some interesting wave shapes by putting less restrictions on them (we always define the pair of control points of a given point to form the same angle as the line going from the previous point to the next one).
Also, we don't use one wave but two that are swapped every so often (when the ship is on wave A, we can generate wave B and place it at the end of wave A; once the ship has reached wave B and can't see the end of wave A/beginning of wave B anymore, we can regenerate wave A and place it in front of wave B, etc). We have to take precautions so that the waves line up and have a continuous derivative at the transition point (in other words, they should line up smoothly). We really should be using only one wave and updating it continuously as it would be easier and more efficient, but we did not find the time to make such a change to the architecture once it became relevant.
We make use of shaders to add detail to the surface of the water (smaller waves), without any impact on entities movement.
So if you're connecting multiple Bezier curves along those points, basically using the "wave" generation you described in the first part to construct a spline that the boat travels over? Is the small wave shader doing vertex displacement on the same points that define the curve?
I do wish there were something a bit more attention drawing as I got lower on health. My death was a bit of a surprise as I wasn't watching the HUD.
( aaaarrrggh... A fine game matey, and other pirate phrases. )
https://www.youtube.com/watch?v=2lqrigjRcGM
(déso j'étais obligé en lisant le titre)
Bravo pour cette entrée les darons ! C'était fort sympathique à jouer, Arrr !
Bon le faite de pouvoir spammer sa mère le camembert les boulets rend l'aventure un peu facile, mais c'était tout de même super marrant. J'ai surtout aimé la progression visuel du jeu avec cette tempête sur la fin. ça ferait un bon jeu multijoueur au final...
Merci pour ce petit moment de piraterie !
Bravo !
(PS: J'adore aussi le nom d'équipe ;))
Fair enough, we really should at the very least keep a link to the initial version and not just to the GOTY release on this page (not sure why we don't) and we'll make sure one is uploaded today (**edit:** that was just done, thanks @antbrl).
For transparency, here is a complete (I think) list of the post jam changes that are not straight up fixes :
- goal decrease from 30 to 25 (balancing)
- seagull hitbox tweaking (balancing)
- enemy health bar display (qol)
- random enemy aiming time (fluff)
- "minor graphics and sound improvements" (qol, and tbh I don't know what these were, I think that the seagull volume was a bit too low initially and no idea as to the graphics part)
- support for arrow keys (qol, less sure about that one being acceptable or not; to be clear, we did not add acceleration and deceleration post-jam, just some additional key bindings to these actions)
Anyways, the whole postjam updates part of the rules is not as strict as I think it should be. The fact that you are allowed to publish a postjam version during the grading period means that most people end up testing and grading your postjam version no matter what (assuming both jam and postjam are available).
(Vous passeriez sans conteste meilleur jeu de la Jam, au moins dans mon cœur)
The waves felt good to sail over! Having played both the 'bugfix' version of the original Linux build and now (to check this) also the web-version ... I don't think the version I played on Linux actually contained (all?) of the bugfixes: I wasn't able to move backwards (zoom out) or forwards (zoom in) there, seemingly at all.
You can get pretty far by just rushing ahead and having a good spread with quick volleys, instead of carefully aiming :-)
P.S. With regards to the part of the discussion about post-jam uploads: For what it's worth, I'm one of the people that always does download the jam-version if available, and I appreciate both being around. As long as people provide a list of changes and (unless those changes are game-breaking bugs) there is a separate jam and 'continued development' version, I'm a happy camper. After all, sure, part of the responsibility is in the developers hands, but we have some responsibility as raters as well to pay due diligence if the developers have _clearly_ indicated what's what.
My first jam was LD38, and I perfectly remember your game. I actually replayed it several times over the years :carrot:
The graphics are simple but nice.
The sound is very good, both the music and the sound effects.
The gameplay is really fun and refined. it's cool trying to load the shot and hit the right angle to destroy the enemy ship.
Overall it's a cool game! Congratulations.