You are an english pilot during World War II.
Defend the ships and fight the Axis by destroying their fighters and bombers before they destroy yours !

 

Form a squadron by recruiting other pilots on the fly* ! But be careful, you are not invicible and you are running out of fuel !
The battlefield is procedurally generated, for a different experience everytime !
There is a tutorial ingame. You can also see the inputs for XBOX controller and keyboard in the options menu.

Xbox controller is advised but not required.
The keyboard controls are for AZERTY, usually you can switch from QWERTY to AZERTY using ALT+SHIFT.

 

Inspired by DUNKIRK (2017).

 

Made for Ludum Dare #39

JAM (72h)

I made everything exept the music and a couple of SFXs.

 

Theme : "Running out of power"
You are running out of fuel (fuel powers your plane), and man-power as your allies are gradually leaving the battlefield (because men are what power this war).

 

JAM RESULTS:

OVERALL

3,7 / 5

181st**

FUN

3,5 / 5

179th

INNOVATION

3,1 / 5

341st

THEME

3,1 / 5

618th

GRAPHICS

4,5 / 5

58th

MOOD

4,1 / 5

52nd

 

August 1st, 2017

DOWNLOAD

 

 

*: solo game, other pilots are controlled by an AI.
**: out of ~1361 submissions (see results).

 

DEV BLOG:

        During summer 2017, I saw the movie Dunkirk (2017) by Christopher Nolan. I was particularly impressed by how they handled the non-linear storytelling (out of the many things I loved about this film).

A week later, I saw that there was a Ludum Dare Game Jam the next week-end. I decided to join in!

When I saw the theme: “Running out of power”, it directly made me think of Dunkirk (2017) and the airplane parts. My ambition was to make some sorts of flight sim, where you could recruit other Allied planes, fight enemies, and defend allies as a squadron.

 

        About a month before this event, I started really learning about 3D modelling and texturing using software like Blender and Substance Painter. This was a chance for me to challenge my new skills and see what I could do now.

Before coding anything, I started making a 3D model for the plane, using Spitfire’s blueprints found on the Internet. After a few hours, I came up with a realistic enough plane. I used the next few hours to texture the plane, two times, so I could have Allied and Axis plane skins. I started in the morning, at around 9-10AM.

        Then, I opened Unity and started coding. A few weeks earlier I discovered flocking simulation. It’s a pretty easy algorithm that I already implemented in another project. I had to rewrite it quickly and I add some planes to see them flying around as a squadron. The flying wasn’t very realistic, as the planes didn’t roll when they turned (they also turned quite fast…). I got this demo by 2PM.

        After that, because I wanted LOTS of planes at the same time, I decided to multi-thread my project. So basically, I made another thread that would handle the flocking simulation operations for each plane and then a manager in the main thread would move them in the right direction accordingly. This allowed me to get at least a thousand planes running the simulation at the same time. More planes caused problems because their directions wouldn’t be updated as quickly, and I started getting under the 60FPS mark (couldn’t render all those planes). I was done by 5:30PM.

        The next step was to make a controller. This wasn’t an easy task, as I didn’t knew much about plane simulations. I knew I needed to add pitch, roll, and yaw. I did not use a pivot at first, which was a big mistake as my controls weren’t behaving appropriately. By 10PM, I had fix the controls, added the squadron mechanic and some particles (here you can see how they all go in the same direction as I do when I fly towards the water).

 

        The next day, I knew I had to add at least two other events: the axis bomber and the Allied ship, the first one being fighters fighting each other. In the morning, I made 3D models and textures for them.

So, first, the bomber: it flies straight forward and is a bit slow compared to the fighters. For a normal fight zone, where allied and axis fighters fight against each other, there is a target in the center where they all try to stay close, this allows them to not scatter around them world. Here, the target is set to be the bomber, so they follow it until it’s shot down. In this video I made at 4PM, you can see I added some VFX and some debug UI elements.

        For the ship, it’s simple, static ships are on the water and Allied and (sometimes) Axis fighters are flying around it. Axis fighters can shoot and sink the ships if they do enough damages.

I randomized the spawning of those events (position, number of Allied and Axis fighters). You at least get one of them every time.

        It was now time to do the UI. I wanted to make something intra-diegetic. By that I mean that I wanted to make the UI based on the actual dashboard of the planes. After digging for some images that were enough high-resolution so that I could read the text, I started making them in Adobe Illustrator. The text wasn’t clear enough, so I added some scratches to fade parts of the text I couldn’t read. Because of the theme, I displayed the main information, the five minutes timer (aka the fuel tank) as a big gauge (from the actual spitfire dashboard). I also added some less important information, such as the altitude and the speed as two smaller gauges on the side (the altitude I added for symmetry). I also added simple text to display the player score (based on the number of kills, hits, and allied hit), another to display the ratio of friendly and enemy planes and finally the number of planes in the player’s squadron.

        After thinking about it, I decided to add a new gamplay mechanic, were after three to four minutes, allied fighters would stop fighting and start leaving the battlefield (because they too, had fuel limits). The enemy planes were not concerned by this. This also was nice for the theme as the player would run out of man-power.

        I didn’t wanted the plane to directly crash after the fuel tank was empty. This is completely inspired by the movie (spoiler alert) so the player could continue fighting until he crashed into the water (the plane would slowly loose altitude and slow down). The player could stop early by ejecting himself from the plane (meaning game over), so he wouldn’t have to wait for one or two minutes. If the player wanted bonus points (by not crashing his plane); he could (before being out of fuel) head into one direction, look for a few seconds and flee from the battlefield.

        I could have stopped here, but considering I love using the post-processing scripts, I had to enter for the jam and not the compo (as I didn’t write those scripts). Because of this extra day I had, I took the opportunity to add sounds to the game.

        I also added another gameplay mechanic to the UI. Again, this was inspired by the movie. So, every time the player’s plane got shot, you could loose a gauge (for example, the fuel tank gauge would simply stop).

        There’s some other stuff I forgot to talk about here, like some VFX, like the fact that when a plane got shot it would start falling and turning, creating ribbons of smoke in the sky (it didn’t look as good as I wanted though). I also added a quick tutorial, something that I think many game jam games lack of. The option menu also has the same UI, using gauges (it's one of the things that took way more time than I expected).

 

        After releasing the game, I got lots of nice comments! Here’s some:

“Possibly the nicest UI I’ve seen in a LD game, I love how the dials break after you get hit” -blaster391
“the game has amazing graphics and music” -Artur Hawkwing
“This game was incredible! I really liked the graphics, especially the effect when shooting your guns.” -paracatgames
“Wow, this is super impressive! The art is amazing, really beautifully done” -DuzzOnDrums

So it was really nice to see this kind of things, especially considering it was my first game jam (well technically I did one a year before but I didn’t really care back then). People liked the visuals, this encouraged me to continue working on my 3D modelling and texturing skills!

 

        Obviously, every comment was balanced by advices on what was wrong. Here are some:

“enemy planes all weave back and forth constantly which isn’t very realistic and it makes it really hard to shoot them down” -Spetsdod
“I struggled some with the controls (even on a 360 controller)” -Aircraft Terrier
“I found it very hard to distinguish friend from foe, and often ended up causing much accidental friendly fire” -blaster391

It was the same remarks for most of the people: the erratic movement of the fighters made them hard to shoot. I knew this, but I didn’t think it was really that important to fix, I wanted to capture the feeling of the movie and I didn’t really care if it was a very good plane sim. This is also why the controls were not that good, as I said above, I struggled making them as I didn’t knew what I was doing. I tried to imitate the controls from games like Battlefield 3, and not real plane sim like War Thunder (obviously I wish I did some competitive intelligence on those games. But, as I said, it wasn’t really the point.

For the comment about distinguishing friend from foe, I also knew about this, and I wanted it to be that way! I liked this uncertainty the player could get.

I also wished I took time to do some quality insurance, because as some people found out, the main theme for example has some audience clapping in the end! (I never listened to it in full).

 

        Now, a few months later, I’m really proud of this game. Looking back, I’m impressed I was able to fit and make all this features and game mechanics, even though they’re not perfect.

Thanks for reading this!