Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1319041 Posts in 59254 Topics- by 50354 Members - Latest Member: omgonoes

October 21, 2017, 03:07:07 pm

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsFinal Days - a post-apocalyptic multiplayer shooter
Pages: [1]
Print
Author Topic: Final Days - a post-apocalyptic multiplayer shooter  (Read 1488 times)
madhatter
Level 0
*



View Profile WWW
« on: September 21, 2015, 09:29:56 pm »

Latest News

Final Days is now available on Steam as an Early Access title!
Final Days on Steam



Hi all! I'm new here (I've just introduced myself here) and this is my first time doing a devlog. So if I'm doing anything wrong, or could be doing something better, then please let me know!

I'm hoping to share a bit with you about the development of my game, Final Days, and hopefully you'll also find it interesting! Smiley Please let me know what you think, or if you have any questions at all about Final Days.




These are humanity's Final Days...

Dirty warfare has left most of the population mutated and thirsty for blood. Band together and battle for your survival!




Final Days is a fast-paced and intense multi-player shooter set in a post-apocalyptic world. It attempts to blend retro arcade style with modern elements. The design goal is for the game to be quick and simple to play while providing an enjoyable challenge. Inspirations include titles such as Smash TV, Gauntlet, Killing Floor, and Left 4 Dead.

Can you survive?


Current Features

  • Enjoy intense multi-player sessions with as many friends as you can muster (up to 16 players!)
  • Play split-screen with up to 4 friends on the same computer (and still be able to join online/LAN games!)
  • Control the action using either a twin-stick controller or keyboard & mouse
  • Feel the tension as the realistic field of view forces you to check your surroundings
  • Locate threats using your "sonar radar" which visualises where sounds are coming from
  • Test your skill with a unique aiming mechanism which varies accuracy (e.g. running will reduce your accuracy)
  • Think on your feet as the hordes (and sometimes other players) destroy the environment
  • Destroy the mutant hordes with several different ammo types and explosives
  • Use your shove attack to help get you out of those tight situations
  • Enjoy awesome tunes by The Groove Foundry
  • Experience a foreboding atmosphere created by effects such as dynamic lighting and pseudo-3D sound effects

Planned Features*
* These are features I'm planning to add, or are currently being developed.
Please be aware that this list will be likely to change over time based on community feedback.


  • Game mode better suited for single player
  • Further expansion of maps and game modes
  • Ability to create and share your own custom maps
  • Procedurally generated levels
  • More enemy types, including bosses
  • More ammo types and explosives
  • More music
  • Steam Trading Cards, Achievements, Leaderboards, and Workshop support
  • Player customisation
  • Customisable controls


Final Days is currently in the alpha stage of development. If you'd like to try it in it's current state, then there's a free demo you can play right now. If you'd like to get more involved with the alpha, it's also available to buy as an Early Access title on Steam.

Links: Website - Twitter - Steam - YouTube



DevLog Posts

« Last Edit: December 31, 2016, 05:47:00 pm by madhatter » Logged

Get involved with the Final Days alpha on Steam Early Access. Thanks for your support! Smiley
Final Days DevLog | Website
droxon
Guest
« Reply #1 on: September 22, 2015, 10:06:13 am »

Looks interesting, I'll keep an eye on this. Gomez
Logged
madhatter
Level 0
*



View Profile WWW
« Reply #2 on: September 28, 2015, 08:25:36 pm »

Development Intro

Final Days was originally intended to be more of a survival style game with mechanics like crafting and building. But I quickly realised that this was a bit overly ambitious given that it was my first game that I wanted to get to market and it's only me working on it. So I simplified it into more of an arcade-style shooter that it is today. (If it's successful, then maybe the sequel can be more of the survival game I'd like to do Wink)

I've been working on Final Days by myself for just over a year now. It's currently in the alpha stage and I've got a small group of testers who have been doing playtesting and giving me feedback. I'm hoping to expand this group soon and invite some more people into the group.

It's written entirely in C# using the MonoGame Framework (an open-source version of Microsoft XNA). Other major libraries I'm using are Lidgren.Network for UDP networking, and Farseer Physics for physics. The game engine and multiplayer netcode has basically all been custom built by me for Final Days. It's currently Windows only, but I plan to also do Linux and Mac versions.

I'm good at code, but unfortunately I'm not really a very good artist. So it's thanks to the hard work of others who have provided their works for free for others to use that has helped me immensely in this area! (If you're interested, there's a list of attributions on my website here)

Final Days uses a top-down 2D art style, but I've made use of some effects like dynamic lighting, a restricted field of view, and a "sonar radar" to try and create a more immersive experience.

The maps are a mix of hand-crafted static maps, as well as procedurally generated maps. Walls and objects are also destructible, so they'll only provide temporary defense against the hordes of mutants!

I've spent a lot of time on the netcode in particular. It was a steep learning curve and very hard to get working well, but it seems fairly solid now. The game is still quite playable even up to 200ms ping. Testing has also shown that a typical DSL connection with 1Mbps upload can support 12 players!

Anyway, I've probably waffled on enough for now! Smiley Hopefully that's a good introduction for you all. The next thing I'll probably post about is some of the procedural generation techniques I've used for the maps since I've recently been doing some work in this area. But if there's anything in particular you'd like me to tell you more about, then please ask and I'll try my best to answer your questions.

Hope you enjoy! Smiley
Logged

Get involved with the Final Days alpha on Steam Early Access. Thanks for your support! Smiley
Final Days DevLog | Website
madhatter
Level 0
*



View Profile WWW
« Reply #3 on: September 28, 2015, 10:55:05 pm »

Procedural Map Generation

My original procedural generation technique generated more open and random feeling maps which looked a little maze-like. It produces a result which looks something like this:


However, while this worked ok for the "kill everything that moves" style of game play, it didn't work so good for the new campaign mode I've been working on (which is more objective based). So I had to come up with something better for this mode which I'm going to tell you about now.

I came across a great article by adonaac on a procedural dungeon generation technique which was originally described by the TinyKeep dev, Phi Dinh (thanks guys! Smiley). So I won't go into too much detail as these other articles already describe the technique very well, but I will give an overview of my approach and go into some detail about some things I did differently and why.

It's still a work in progress, but here's an example of what it currently looks like:


And here's how I've done it: (Note that my explanation assumes that you're already familiar with Phi Dinh's technique)

1. Generate Rooms
When it came to generating the rooms, I had to use a different method as I'm restricted to a fixed grid for my maps. I also wanted control over the start and end points of the map which the original technique didn't really cover.
  • First I randomly placed my start and end area pre-fabs in random corners of the map.
  • Because I wanted my start and end areas to always be at the end of a path, I cheated slightly and added a small "joiner" room right next to them (more on this later).
  • Finally, I randomly place random size rooms (I put some restrictions on width/height/area so the room sizes aren't too crazy). If the room is placed in an area which isn't completely free, then it's rejected. I keep doing this until at least 50% of the map space has been used, or after making 100 attempts.

2. Generate Room Graph
Next, I generate the Delaunay triangulation graph of the room mid-points to connect the rooms together, and the minimum spanning tree of that graph to create a path between rooms which guarantees that every room is reachable (just as described in the original technique).

The one difference is that I've excluded my start and end area prefabs from all of this. This is where the "joiner" rooms come in. They are part of the graph so are joined to all the other rooms, but they also manually join to the start/end areas. This guarantees that the start/end areas are always at the end of a path.

And when it comes to adding edges back to the minimum spanning tree subgraph to create some loops and alternate paths, I've made a slight tweak again. I found that the edges from the Delaunay graph could sometimes be a bit extreme for my liking and could create connections between rooms that were too far away from each other. So to get around this, I instead generated a Gabriel graph from the Delaunay graph. It has the effect of only creating connections between rooms which are next to each other. So I randomly take about 15% of the remaining edges of the Gabriel graph (after excluding the minimum spanning tree graph edges from it) and add them back in.

Here's an example visualisation of the room graphs:



(Legend: Thin dark red lines = Delaunay triangulation; Thick red lines = Gabriel graph; Green lines = Minimum spanning tree; Cyan lines = Re-added edges from Gabriel graph)

3. Hallways
Lastly, I create the hallways/entrances between rooms. Because I didn't want to let any hallways join together, I had to use a different technique. To achieve this, I ended up using the A* search algorithm.

My process to join one room to another with a hallway is as follows:
  • First mark all the currently used areas of the map (i.e. rooms and hallways) as "obstacles", EXCEPT for the areas used by the rooms we want to join together (you want to keep those areas free so the search algorithm can move through them)
  • Select a random starting point in the area of the first room, and a random finishing point in the area of the second room
  • Use A* to generate a path between those points (I'm disallowing diagonal movement, and also punishing direction changes to create straighter paths)
  • Using this path, we can now create the hallway


And that pretty much covers it! If something doesn't make sense, or you want further details on anything in particular, then let me know and I'll do my best to clarify.

Thanks again to Phi Dinh and adonaac for the articles on the original technique! Smiley

Hope you found this interesting! Smiley
« Last Edit: September 29, 2015, 12:24:36 am by madhatter » Logged

Get involved with the Final Days alpha on Steam Early Access. Thanks for your support! Smiley
Final Days DevLog | Website
marcgfx
Level 5
*****


if you don't comment, who will?


View Profile WWW
« Reply #4 on: September 29, 2015, 01:26:33 am »

reminds me a lot of this indie-game: http://www.splattergame.net/
looks pretty scary, only seeing what is in the beam of your torch. good luck on your project!
Logged

@falkenbrew
madhatter
Level 0
*



View Profile WWW
« Reply #5 on: September 29, 2015, 04:44:15 pm »

reminds me a lot of this indie-game: http://www.splattergame.net/
looks pretty scary, only seeing what is in the beam of your torch. good luck on your project!
Thanks marcgfx, good luck to you on your project also! Smiley
I hadn't heard of Splatter before, but it looks pretty cool. I'll have to check it out sometime.
Logged

Get involved with the Final Days alpha on Steam Early Access. Thanks for your support! Smiley
Final Days DevLog | Website
madhatter
Level 0
*



View Profile WWW
« Reply #6 on: February 01, 2016, 06:46:37 pm »

Hey all,

It's been a little while since I last posted. I've been quite busy with the Perth Games Festival late last year, and then getting a demo version ready to release to the public. But the demo version is now ready and I've just released it into the wild!

So if you'd like to give Final Days a try, then you can grab the demo version from here: http://plus7software.com/finaldays/demo/

The demo doesn't have any of the procedurally generated levels in it at the moment. But hopefully I can include a little bit of the procedural stuff in the demo later when it's a bit more ready.

If you do try the demo, then I'd love to hear your feedback! Please feel free to give me feedback directly here, via the in-game feedback system, or even via Twitter.

Have fun and I hope you enjoy Final Days!

- Mike
+7 Software
Logged

Get involved with the Final Days alpha on Steam Early Access. Thanks for your support! Smiley
Final Days DevLog | Website
madhatter
Level 0
*



View Profile WWW
« Reply #7 on: March 13, 2016, 06:31:34 pm »

Hi again everyone!

Some exciting news - I have recently launched Final Days on Steam Greenlight! I've also made a new trailer for Final Days (which you can watch below).

If you're interested in Final Days, please show your support by voting and helping to spread the word. Your support is greatly appreciated! Grin




Any feedback or suggestions you might have are very much welcome! And if you have any questions or dev related topics you'd like me to talk about, please let me know.

Thanks for your support everyone! Smiley

- Mike
+7 Software
Logged

Get involved with the Final Days alpha on Steam Early Access. Thanks for your support! Smiley
Final Days DevLog | Website
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic