Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411279 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 04:00:07 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsFire Exit: End-of-the-World Crisis Management Game
Pages: [1]
Print
Author Topic: Fire Exit: End-of-the-World Crisis Management Game  (Read 1102 times)
Guntha
Level 0
***


View Profile WWW
« on: May 27, 2019, 08:17:19 AM »


Hello TIGSource Community,

I wanted to create this devlog for a while. I had to wait for the artist responsible for that logo above to be proud of her work first Smiley


Fire Exit: a nervous end-of-the-world crisis management game.
The planet is at the end of its life, burning, and the earthlings have no other choice but flee from it. Hopefully (and weirdly?) they had expected it and have a bunch of rockets ready to take off that just need their passengers before doing so.
Your job is to keep the path between the people and the rockets free from fire or other obstacles to save as many people as you can.
Beware: the rocket will take off as soon as fire touches its launchpad, as a security measure!

Currently, the tools you have at your disposal to help you in this task are:
=>A squadron of water bombers to slow down fire's progress
=>A team of lumberjacks to clear a forest that's in the path of the people (those earthlings are so panicked, they couldn't find their way in the middle of a forest!)
=>Arrows to force the earthlings down a more secure path

And more to come.


Work on this game started almost a year ago
This game's development began as a game jam game during a 2-day game jam on the French website Développez.com. During this particular jam, everyone had to follow a common theme, which was: "It's the end of the World!".
After a short brain-storming with myself, during which I thought of doing an overcooked-like (because I wanted to make a game like that at that time) but without any idea really compelling, I came up with an idea that had some vibes of Chu Chu Rocket and Lemmings: guide a crowd of people, too panicked to take care of themselves, to a rocket that will let them escape the planet.
Biiscuit (who I can't reference because she doesn't publish her work online... yet), my artist and my partner in life, created the art in her free time during those two days.
The game originally looked like this (that clip is from a stream of another programmer during the jam, who tested all the other games at the end. I don't know why it cut so abruptly at the end, the stream was originally longer.) Originally, there were only the water bombers, and the game was nervous enough, but you wouldn't expect it to be much more than a small mobile game.

I took some time to make it better, prettier, and cleaner, and spent some months making a level editor which I hope to be able to ship with the finished game. I documented some bits of my progress in a YouTube playlist.


What's to come
I'm aiming to release a two-level demo in a few weeks. For this, I made a quite polished menu that still needs some more visual details, and I will polish two levels that will showcase two of the first tools you will have to use in the full game (the water bombers and the lumberjacks), as well as a glimpse of the chaos the game will throw you into (the fire spreading, the crowd screaming and burning, rockets taking off, and some scripts that will add to the overall chaos).


On the technology side
I'm making this game using a custom engine that I've been developing through the years, written in C/C++, which uses either OpenGL3 or D3D12 as a rendering backend, SoLoud as its sound engine, dearimgui for debug tools and for Fire Exit's embedded level editor, and a few other libs (libpng, nunicode, freetype, rapidjson).

It also features a custom scripting language called ceq. I began creating my own scripting language because, when doing a state of the art when I needed a scripting solution for another project, I found that they were either bloated or way too rich for my need; All I needed was being able to script a sequence of events. I first announced it here. Because I would love to make it available publicly, I have set up a Patreon and a Liberapay account to be able to get support for dedicating more of my time to completing it. Feel free to give your support if it's something that you would also be interested in Smiley

Fire Exit makes a heavy use of this scripting language - for controlling how each tile reacts to fire, for adding events inside a level, for controlling the behaviour of tools... -, so giving your support will also help in the development of Fire Exit, by making it the proof of concept of a commercial game using ceq Smiley


On the Art side
Biiscuit, who was already therefor the prototype, will hopefully create and enhance all the necessary sprites in her free time (she's currently working full time in a sign company). I'll try to keep the sprite count low enough to shorten the development time, which will be a challenge because I would love each map to be a recognizable place of the actual world.
On the sound design and music front, I'm sorry for the souls of sound designers and composers out there, but for now I will live by Jeff Vogel's words in his GDC talk (I'm not putting the link because the forum will automatically embed it :/) ("Don't be afraid to be cheap!"), that will mean basic sound design and royalty free music; I hope to make this better if this game generates any revenue Smiley


Here are the most short term improvements I have to do:
=>Currently, burning people don't look like they're burning anymore because of a lot of other changes (improvement of fire, the way people are animated...) This will come back, and look better than before.
=>The ground tiles are currently implemented in a naïve way, and can't be modified through the editor. I don't know exactly what I will do about this.
=>Some improvements of the main menu

After this, hopefully I will be able to improve the levels and then release the promised demo Smiley

In the meantime, please post some feedback if you have anything to say, not only about the game but also with my use of the English language in this post, or if there's anything hard to understand.

See you!
« Last Edit: May 28, 2019, 12:13:38 AM by Guntha » Logged

Sustrato
Level 1
*


It's a good day to die.


View Profile
« Reply #1 on: May 27, 2019, 10:09:25 PM »

Bwahahah, this is a pretty funny concept, I look forward to trying the demo!
Logged

Guntha
Level 0
***


View Profile WWW
« Reply #2 on: May 31, 2019, 03:10:18 AM »

Thanks Kris!

Burning people are burning again:

The effect could be improved. Implementing this gave me an idea of how to make a burning version of objects on the map (like trees or future buildings).

I'm still not too sure of how I will change the ground's implementation. There are a lot of ideas that could be done, every one requiring different skills to make it look good in-game, different amounts of work, different memory budgets...

We just began to add some sprites to the game, starting with new rockets based on real life ones Smiley
Logged

Superb Joe
Level 10
*****



View Profile
« Reply #3 on: May 31, 2019, 12:06:09 PM »

wonderful concept
Logged
Guntha
Level 0
***


View Profile WWW
« Reply #4 on: June 15, 2019, 08:35:12 AM »

Hello,

I finally changed the ground implementation, no screenshot because it currently looks exactly like it was before.
Basically, it's a map-sized mesh that's cut in tiles, and is displayed in as few draw calls as possible.
The hard thing now is making editing tools that make advantage of it.

In other news, I've found a new full time job, so progress on Fire Exit will slow down.
It's a shame that I waited for so long to start this devlog, and now I can't promise  quick progress anymore ^^'
I will try at least to still stick to releasing a demo in a few weeks.

I hope in the next post I will be able to show you some of the new sprites.
Logged

Guntha
Level 0
***


View Profile WWW
« Reply #5 on: June 30, 2020, 01:55:33 AM »

Hello,

I'm sorry, I almost forgot I had a devlog here!

As I said earlier, during the last year I didn't really have time to work fully on Fire Exit, hopefully in the last months I began to make some significant progress, even though a lot of it is invisible.

Invisible improvements
A long task was to isolate the two rendering backends I support (one using OpenGL3, the other D3D12) in DLLs, so now I can ship a single executable, and on the first launch the game will choose which renderer to use based on the user's machine (basically, D3D12 for Windows 10 machines, OpenGL3 for anything older).
Previously I had 2 separate executables, which could be error prone for the user if their machine didn't support both. I'm still keeping the ability to do this, mainly for future platforms for which it wouldn't make sense to support multiple rendering backends.

There has been a lot of other changes, like fixes of long running bugs and corruptions, parts of the level editor that stopped working after a large refactoring (to batch some draws) that are now working again...

Visible changes
After some brainstorming with Biiscuit, we thought that the best way to represent the map's borders would be an infinite smoke cloud outside of the map. It doesn't only look better, but it also allows the map to look less squarish, allow us to hide some patches of the map, and maybe later to script some kind of fog-of-war system to unveil new parts of a map.

The cloud's animation is based on this shader: https://www.shadertoy.com/view/lslXRS

Before that the borders used to look like this:


As you can see, Biiscuit started to add some real-life rockets, redrawn in the style of the game, maybe you can recognize them Smiley

On my end, I'm getting started in Affinity Designer and try to improve the sprites I already made, I feel like this game has to be content-heavy so I can't let Biiscuit alone on that task.

Some of my family members are now able to try a very early demo version (the current levels are more proofs of concept than actual levels for now, so nothing is shippable yet). I'll try to keep working at that rythm for the next months Smiley

For the next post, I've got some more bugs to squash, and hopefully I'll be able to improve the ground as I've been promising in my previous post.

See you soon hopefully!
« Last Edit: June 30, 2020, 07:08:12 AM by Guntha » Logged

ternbasedcombat
Level 0
**


View Profile WWW
« Reply #6 on: June 30, 2020, 05:56:13 PM »

I love the way this looks!

Do you have someone to do music?

I would love to write a tune for you!

TM
Logged
Guntha
Level 0
***


View Profile WWW
« Reply #7 on: August 20, 2020, 02:02:10 PM »

Hello, I've got some progress to show!

Ground Editing
I've finally been able to make some progress on the way the ground is made. It's basically a collection of textured 2D meshes that can be edited inside the game's editor using an embedded, very rough 2D mesh editor (which I began creating to help me for creating the smoke cloud tiles above).
I'm not an artist, so I struggle to really take advantage of it and can't really show you something pretty made with it, so here is a quickly drawn road on top of the grass tiles to illustrate :p


Better blending
You might have noticed if you thoroughly compared the above screenshot and screenshot from previous posts: no more pixelated black outline around trees, no more black outline around the rocket: I've taken care of these issues by adding support for premultiplied alphas into my engine. I also tried the "bleeding" approach first, which had the advantage of not requiring any change in the code, I'm still not sure which approach is better... Either way, the result is now much better than before =D
(Everything is explained here: http://www.adriancourreges.com/blog/2017/05/09/beware-of-transparent-pixels/)

To illustrate: you can also notice the difference in the rockets' smokes:

And some more before/after comparisons:


Campaign Editor
Previously, the data describing how all the levels go together was pretty disorganized: the location of the level on the planet was part of the level's project file itself, as well as the number of medals necessary to unlock it, and a "campaign" was just a list of source level files and tried to make sense of the mess when compiling the campaign...
Now there's an editor dedicated to that: you can choose and visualize where each level is on the globe, even change the globe's texture if you wish, and edit the unlock conditions in this editor also, where it makes the most sense. You can also place flames directly on the globe with this editor. I can now more easily have both a "normal" campaign and a "demo" campaign, and maybe more additional campaigns in the future :p



Next
I have to globally reorganize my editor because most workflows are slower than necessary, optimize the baking of the ground mesh because it is currently way too slow,... And at some point, make some progress on the game itself.

See you soon!
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic