Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411471 Posts in 69369 Topics- by 58423 Members - Latest Member: antkind

April 23, 2024, 09:36:17 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsFinal Days - Multiplayer Mutant Massacring Mayhem!
Pages: [1]
Print
Author Topic: Final Days - Multiplayer Mutant Massacring Mayhem!  (Read 2739 times)
madhatter
Level 0
*



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

Latest News

Final Days is now available 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 an intense, arcade style, co-op shooter where you battle against massive mutant hordes. Go it alone, or team up with as many friends as you can muster!

Can you survive?


Current Features

  • Team up for online co-op play 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 games!)
  • Still need some extra backup? Add up to 4 bots to help level the playing field!
  • Battle ever-growing hordes of mutants as their numbers increase into the hundreds!
  • Get amped by the intense soundtrack from Chris Head!
  • Earn bragging rights with your scores on the leaderboards and unlockable achievements
  • Destroy the mutant hordes with several different ammo types and explosives
  • Move and place objects to slow the hordes (although it won’t last long!)
  • Think on your feet as the hordes (and sometimes other players) destroy the environment
  • Feel the tension as the realistic field of view forces you to check your surroundings
  • Control the action using either a twin-stick controller or keyboard & mouse
  • Choose from different campaigns and game modes, several maps, and procedurally generated levels


If you'd like to try Final Days, then there's a free demo available. And if you'd like to get the full version, then it's available to buy now on Steam.

Links: Website - Twitter - Steam - Discord



DevLog Posts

« Last Edit: September 18, 2018, 07:05:07 AM 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 8
***


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

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