Still Alive will be a co-op survival exploration RPG for 1-14 players. Each player controls a civilian, trapped in an abandoned city infested by zerg. However, most of the nastiest zerg have also abandoned the area, giving the players a slight chance of survival. The goal is to find a way to escape from the planet, which won't be an easy task.
The gameplay will consist of scavenging items from abandoned structures, barricading entrances to keep the infested civilians and other nasty creatures away, improving your character's survival skills, rescuing trapped NPCs, and sometimes killing some of the zerg.
The map will feature a large 180x160 sized city and literally hundreds of indoor areas, each the size of 32x32 but with everything scaled up to 200%, making vision and collisions more precise. The downside is that moving between indoor areas requires a fade-to-black warp transition, as seen on the video.
Latest Videos
Stats, light system, inventory, chase AI:
Weapon system:
Gameplay
The ultimate goal could be to escape in one way or another: Find and repair a broken space ship on a roof of a building, find a broken radio station, fix it and send a signal for help (and then survive for a period of time), wait long enough that someone will send help on their own... A key element could be a "quest item", a power source like the ZPM from Stargate: Atlantis, so that every time you find one your heart skips a beat as you start thinking of a way to carry it back securely, and you'll start imagining seeing those everywhere (just like those damn cards in Ragnarok Online on low drop rate servers, if you know what I mean...)
How It Works
The inside of each building a player can enter is spawned on-the-fly to an empty 32x32 sized area at the side of the map. There are 14 of those areas, so each of 14 players can be inside a different building at the same time. Obviously, if players go inside the same building, they are spawned in the same 32x32 area so they can see each other. When a unit enters the inside of a building, it gets scaled up to 200% and its movement speed, vision and radius are increased to match the new scale. This way the indoor areas have better detail, collisions and line of sight, while the outdoor areas have plenty of space for the city.
The total space reserved for the birds-eye-view city is around 200x180 game units of the 256x256 sized map. The city will have around 15x15 blocks with streets in between, totaling in roughly 200 building doodads. I'll try to make the city not to look too repetitive, although there are only a limited number of different building models available.
Not all of those buildings will be accessible since that'd just be an overkill, but I will give most of those you can enter more than one floor level, and an accessible roof at the top. Rooftops also have their own special area reserved at the side of the map, done using the skyscraper cliffs. You'll be able to change the floor by using a staircase with a similar fade-to-black transition as seen on the video. Currently, generating 4000 of those 32x32 sized rooms into memory takes around a minute on map start, but the speed is still going to decrease and also the maximum number of room variables that can be initialized. However, I'm not too worried since even a couple of hundred buildings will be more than plenty for my needs, and will be a lot faster to generate.
Woo go A1win! I'm liking this a lot, looks better than I imagined it. One suggestion with this thread, you're a good writer but try to add some headings to break up the wall of text for the less dedicated readers :p. Looking forward to seeing this fruition, let me know if you need any help/suggestions etc. :).
Each building is now checked of accessible areas by "crawling" through the building from each exit door and marking areas that can be reached. This way zombies, items etc. won't be spawned into rooms that aren't accessible by the players. I still need to make sure that entrances coming from other buildings can be accessed from the other side, though.
Units (zombies) can now be randomly generated to the rooms (thanks to the accessible area checker) on map spawn and their position memorized while the room is despawned, and recalled when spawned. It will be easy copy-paste to do the same for items as well once I get to it. There's still some trouble removing the blood splat the zombies leave behind when they die.
Players now only have shared vision when they are in the same area. I had to make them neutral so that zombies attacking allies aren't semi-revealed. If there's a better way to fix this, it'd be nice to have the players as allies again.
The city is no longer "unexplored" for players who enter a building and come back outside.
Now I've been pondering how to restructure my code so that I can pass the location of a staircase in a building for the next floor level so that the stairs will be in the same spot for each room and that the randomly generated walls will match them. I'm starting to get a pretty good idea of what needs to be done so it should be fine.
Zombies still can't enter/leave buildings but that will be rather simple now that their indoor positioning is remembered. Making zombies move inside buildings that aren't currently spawned will be a bit more complicated task (not overly so, though) so that might take a while.
Good news everyone! The system now supports buildings with multiple floors, both upstairs and downstairs. There's virtually no limit to how many floors a building can have, but it's obviously still bound by the same maximum building limit as every building is. The stairs are positioned smartly so that you actually appear at the other end of the stairs in the next floor. This is accomplished by having two different variations of each random building template. It should also be possible to have multiple stairs going from one floor to another, but my current templates don't use this so it might be more work unless I actually managed to nail it on the first try.
The map will randomize the number of floors each building has so that the total number of floors in the entire map is still the same in every game (since the array has a limited size).
Once I get some new building templates done and the stairs to actually resemble stairs, I'll post a video. Now they're just short and tall cubes like the doors...
That took me two days of work since I didn't plan my code in advance. I spent hours and hours desperately trying to figure out what's wrong with my logic. :P But I have a pretty good idea about it now, at least until I start messing with everything again.
1) Zombies should basically feel like they are slow, but tough. They should be able to withstand most attacks unless you are skilled or cunning. A zombie's speed would be 1/4 the speed of a player, but they make up for it with a slow but powerful grapple and large numbers (in open public places). If a zombie grabs you, they'll try to bite you. Other zombies can't interfere but if you break out of it, you'll still have to deal with the rest of them, thus you get blocked off. Zombies needs to have a "wandering" AI so they'll move about randomly, rather than standing in a crowd and reacting when they noticed players.
2) Survivors can shove zombies away, by running by them. Zombies can only grab you if your standing or moving at a walking speed or less. Survivors should have a "Action" ability, which allows them to do various actions with one button. How you can manage this, is having the name of said action "appear on top of your survivor" when your interacting with something. Example: You are close to a zombie, hitting X (action button) will use up some energy, but you will shove the zombie back, stunning them for a short duration. If you have a melee weapon equipped, X will do a execution attack the closest zombie, costing some points.
3) Weapons in the game should feel scarce, but killing zombies should still be an option, and beating the game without killing anything is also a option.
4) Puzzles should be incorporated into the game as mini-games that pops up as a interface. Say you want to pick-lock, then developing a interface that tests the player's skills is important too. Some puzzles require a item to use, and some requires multiple players.
5) Stealth is a option, and you should enforce that, by rewarding the players with saved ammo, and less damage.
6) Have the game contains mystery on the location of the area. Like secret locations that are only found if you get specific items and beat certain puzzles.
7) Bosses takes on a form of a patterned monster, where they will slowly chase after the player, from room to room, and try to kill them in a slow but immersive manner. At some point, you'll trigger a boss battle where you must kill him to attain a item, but you get a choice on how to do so (the game should allow you to indirectly kill enemies, like trapping them in a machine that kills them).
Cool — I have a little different idea for the gameplay in mind, though, but it's good to know how other games do things. I've never been a big fan of horror games since they never really scare me (or when they do, they do it very annoyingly with loud noises and weird teleports etc). So what I'm going for is not to scare the player, but more like invoke some feelings of excitement and tension. I'm most likely keeping this in the StarCraft universe (just without much combat), since zerg infestation works very well with this setting, and is slightly aside from mainstream zombie settings. Here's what I've been thinking so far, in comparison to your comments:
Running and Hiding
1) Rather than having slow zombies everywhere and be a threat just by sheer numbers, I was planning to make them appear more randomly to the players and be a bit faster than the players can walk. When a zombie hits you, however, it needs to stop for a moment before it can continue to follow you again. This makes the difference between "Oh it caught me, I'm dead" and "Oh it caught me, I took a bit of damage but I still have a chance to flee (and then find some bandages and medical supplies to clean potential infection)."
When a player encounters an infested civilian (a zombie, in other words), 90%—95% of the time I want him to run away (not just walk) and hide. This is made possible by a sprint ability which makes you exhausted afterwards, so you can only run a little while, after which you have to hide, or you get caught. A good strategy would then be to always make sure you have a route you can retreat to without encountering more zombies (at least not very probably, since they wander around), and having some hiding places along the way. And when you forget to do so, you can only blame yourself for it rather than the difficulty of the game. I've found the "flee in panic" mechanic very fun in the past and it's something I'm certainly going to implement.
One more thing that will add up to this style of gameplay is distractions which will lure the zombies away. There can be some items that do that, but most importantly, you can use players as bait while another player sneaks past the area where the zombie was guarding.
Character Quick-Actions
2) The shoving mechanic won't really fit for what I described above, but it's not really that interesting anyway. I've been thinking of a lot of different kinds of actions the survivors can perform, but the controls will obviously resemble more of the SC2 controls since you move using the mouse, and right click to interact. I'm not sure what the default interaction with a zombie would be since you'll rarely have any weapons, though.
Weapons
3) I totally agree with this: Very few weapons, and none of them should have "infinite ammo". Let's just say the infested civilians (who are partially zerg) have too quick regeneration to take lethal damage from any common melee weapons.
Puzzles, Skills and Abilities
4) I've never played a game that has minigames that fit into it well enough. The closest is probably the lockpicking in Mafia II, which was very simple, but in my opinion the game would've been even better if the chance to succeed was automatically randomized instead. Most of the time minigames aren't even interesting on the first try, and even when they are, I get frustrated for knowing that I'll have to play this minigame dozens of times during the game since it's obviously something the developers wouldn't pop-up on me only once (and then the next time is just plain boring). It's like "Great, you've paid the effort to make a decent minigame I might be interested in playing on a mobile device when I'm bored enough, but now I'd like to play what I intended to when I launched this application."
A minigame inside a game should not have a separate GUI or controls for it from the actual game. Instead of popping a tic-tac-toe GUI on the screen, the tic-tac-toe should be implemented into the game itself: Put it on a floor and let the player's character play it, not the player himself. It should not feel like alt-tabbing to Windows and playing a bit of Solitaire for a while.
I was thinking to just use a skill system like in RPGs: "Attempt to pick a lock... picking lock (progress bar)... succeeded/failed", or more fatally: "Climbing out of the window on the fourth floor... climbing/falling down... arrived outside/fell down and died". There will be various skills, and you can improve them by using them during the game. I'll also add different kinds of tools you first need to find in order to perform some of those actions, or to help with doing so.
Puzzles are bad for replay value especially in multiplayer when one of the players most likely knows how to solve them, unless they can be randomized. However, all the various barricades and other blockades placed randomly into the map should automatically develop into some sort of puzzles.
Stealth
5) Stealth will be implemented in the form of hiding, and I'll place different kinds of hiding places around the map (abandoned cars, thick trees you can climb into, and of course just disappearing behind a corner before the zombie can see where you went). I'll also make the zombie AI so that they won't always immeadiately notice you when you notice them (depending on their facing direction for example), so you have time to retreat or quickly run past them. I might visualize the time the player has in some way, like it was done in Mafia II (I really liked that mechanic in the game).
Random Encounters
6) Absolutely! I've had some cool ideas for encounters in areas that aren't easily accessible, but I'll leave those as a surprise. I'd love to hear ideas from others, however, so I'll be able to add as many interesting ones as possible.
Bosses / Big Bad Monsters
7) Bosses... This often implies a "beat or be beaten" situation, and I'm not sure if I want that, especially not with big monsters since the players will be weak against the minor zombies already. Still, I think I could add random encounters which spawn different kinds of (zerg) monsters in the city, but instead of having to figure out a smart way to beat them, the players should come up with a smart way to get as far from them as possible (and preferably very fast as well).
The other thing that might fit better about bosses is their use as gatekeepers you need to pass to progress in the game. The gameplay I've had in mind is oriented to staying alive, and finding supplies to help with that. When players scavenge areas for items, they can also secure some of those areas by blocking exits with wood or maybe even metal if they can find the tools. With this kind of non-linear, slow-progression gameplay, there needs to be a lot of these "bosses" scattered around so that the players can't avoid them forever. When they want to get past a boss monster, instead of killing it, they lure it away and let other players sneak by.
For hazardous environments, I think dangerous plants can be one.
Like you wouldn't need to add many zombies to spawn, just have a area that is "infested" and pose a risk to players who aren't equipped with a suit that can nullify the infection.
The infested area basically have stuff, like eggs, and zerg plants. These can be hostile to the player, like if the player move too sudden or attacked the egg.
Of course, a full fledge zombie spawning from the egg is a bad idea, so make them weaker but deadly "zombies" that has the same effect as a broodling.
They inflict the same damage, but they move faster but dies very fast as soon as they pop out of their eggs/cocoons. Only triggered when your very close or when you attack it, it only lives for 2 seconds.
Zerg Plants basically are environmental triggers that have a slim chance of occurring if you happen to touch or brush by them. It basically entangles or shoot out spores at the player, trying to stop or poison the player.
As for tools, I think your essentially tools can be used to destroy these minor inconveniences, but they can't be used as weapons to kill zombies.
You can basically use a makeshift-flamethrower to kill plants and eggs, etc. You could make certain tools or items very useful... Like pesticide spray can harm small zerg critters that lives in the infested areas, chemical agents that can kill small living organisms such as plants...
As for bosses, they needs to be more important in the storyline, like bosses should be unique and interesting, should match with the game style.
Maybe they can take form of special zombies (not like l4d) that specialized in tracking survivors, basically not linked to the zerg overmind, they are a individual specie.
Speaking of overmind, it would be interesting if you can put a overmind in your map. It makes sense for one to be on a infested planet.
Story is very very important. Especially if you can include "documents" that can be scattered throughout the map. Players can learn about secrets and possibly new clues to beat enemies or finding a way through, with the use of these documents.
When your going to implement the HP system, try to do it in a fun but short way:
Survivors have 100 hp, 0 defense. Able to regenerate "some" health if they are not afflicted with any statuses. Health regeneration is slower if the survivor keeps moving. Survivors can lose "max" health if they get wounded, which is a script that runs and knows that a survivor's max health is always 100, but can have a debuff that lowers max health by a fixed amount.
Typical zombies would have 100 hp, 5 defense. If they attack a player, they should do minor but "bleeding damage". Basically make the zombie's attack do 5 (15 to biological) so they can chip off healths off of barricades, and do good damage on surviviors. Bleeding "debuff" is what these zombies are good at doing, and they have a 15% chance of inflicting bleeding on you, of which it does 1 damage every 5 seconds, for 1 minute, and your health can't regenerate at that time until you use treatments or bandages.
The aspect of killing zombies... Maybe certain weapons will have certain effects and a degree of damage to the zombies. Angle of attacks can be VERY important, as zombies can have a "slow turning" speed to go along with it's AI, meaning a smart player can circle it and smack it on the back of the head. Problem is, there is usually more than one zombies, so it's not safe to think your a pro and you'll sprint and whack every zombies on the back of the head with your crowbar.
Weapons should have a weak default damage, with a high damage to specific value.
Crowbar for example, should be:
12 (44 to structures, 22 to light) With attack speed of 0.6 hit per second.
Flamethrower:
4 (12 to biological, 10 to structures) With attack speed of 0.8 hit per second. Hits 3 times.
The zombies are tough and sturdy, but they have the same health. They regenerate health similarly to roaches.
So if your going to incorporate bosses, make them have the same idea: same health, but higher defense to handle being hit, and regenerates just as well.
Zombies and mutant monsters in movies and games, they are tough because of their regenerative and defensive abilities, not because they have a HUGE vitality. Immortal characters in games and movies is because they nullify your damage with their huge defenses or super high regeneration.
Storylines don't work well in multiplayer games. The only time it gets to its full potential is when all of the players are playing the map for the first time, and since the map will support up to 14 players, it'd rarely be the case. I like the idea of having one background story that isn't actually a "plot" for the game, but like telling a reason why the players are in the situation and what they need to do to get out of it.
Zerg eggs could be used for the broodling-like quickly spawning, quickly dying enemies, but I was also thinking of using the infested cocoons to very rarely spawn full-grown zombies from them. I mean very rarely as in if you walk to a room with 10 cocoons, there'd only be like 1%-5% chance that even one of them will hatch.
I don't want a "tactical" combat system where the players can outskill the enemies just by being good at controlling their character, which means I won't make the zombies turn slowly. There will be very few zombies around, so if they turn too slow, players could just kill them by running around them (since there won't be other zombies to help the one being attacked).
As for weapons, there's only one attack animation for the civilian model so unless I can get someone to make new animations and attached weapon models etc. they'll only be able to throw stuff... But that should be good enough for a start. I can add more weapons later on if it seems like they're needed. Either way, I wouldn't worry too much about the combat system since it'll be one of the least used aspects of the game.
Just have to say, this looks friggin sweet. If you could get multiple levels and rooms to work with groups of zombies following through the levels it could would probly have a real nice resident evil survial feel to it.
I have some trouble with my building spawning system: When I create a building, the game freezes for a short duration (maybe 0.1 - 0.25 seconds) for all players, which feels very annoying. I can optimize this a lot, but it will take some time. I need to make some of the walls consist of longer parts than 1x1 so I only need to create one unit per multiple squares of wall. Another thing I can do is spawn the walls into the game already on map start, and hide them when they aren't needed, and then move them to their position and show them when a player enters a building. If anyone has any better ideas for optimization, I'd like to hear them.
Edit: It was a bit simpler than I thought, so no worries here.
Well, this is a difficult decision, and I'd like to hear some feedback, since I don't want to take dying into either of its extremes. Although "death means death" would fit into a survival game, it doesn't fit into a multiplayer game when the players want to play it together. I know for a lot of players it doesn't really matter who they are playing with, so that if a game ends for them, they can just go play another game even if the players from the previous game were still playing that game. But if players want to play with their friends, like I often do, and they get dropped out of the game, they'll have to wait until the friends finish with the current game until they can start a new one together again.
Best solution could be to let the host decide the game mode. I could do a death-means-death hardcore mode and another mode where you can respawn. But there are still some unanswered questions about both of these, and even more so with the mode where you can respawn. I'll focus on that for now.
Respawn Mode
In this mode, when a player dies, the game doesn't end for him. However, he doesn't get to respawn immeadiately, and there will be penalties for that player and also for the overall gameplay. Respawning also just means the dead player gets a completely new character, losing everything the former one had (unless other players manage to loot some of his possessions). If there are no living civilian NPCs around, the player needs to wait until a new one is rescued by the other players. Meanwhile, the player gets to spectate the other players. There's also a timer after which the player gets to control a new character. This could be explained so that the NPC civilians are too afraid to act, but then one manages to gather his courage when the player gains control over him. The length of the timer could inrease on each death per player, and maybe even have a limited number of respawns per player to prevent abuse.
As I described earlier, the number of rescued civilians affects how fast the players lose and gain sanity, which indicates their mental health. Losing sanity makes the game more difficult by giving your character different kinds of drawbacks depending on how low it goes. The more living civilians there are, the faster they regain their sanity in safe places, and the slower they lose their sanity when encountering horrors. So when a player's character dies, this global sanity modifier decreases (because there's one less civilian alive), and there could be an instant sanity loss for all active players and NPCs.
In addition, the number of dead civilians (player characters and NPCs) will have an effect on sanity losses and gains. If the civilians know that a lot of people have died already, their morale drops and they start losing their sanity faster, and regaining it slower. This way you can't just keep enough civilians around to have a decent sanity modified and then replace the dead with new ones when too many start to die, but you also have to keep them alive as long as possible.
The goal is to not make dying feel like just another decision for the player to make. It should feel like you're supposed to keep your character alive as long as possible. Only then it's properly possible to get the feeling of tension when you're being chased by a monster and trying to desperately find a place to hide. The player shouldn't be let to think, "Well, I can just stop running since I can respawn anyway." With enough penalties for dying, I think this can be achieved even if the player can return to the game later. But will the penalties I described above suffice, and are they reasonable enough?
Meanwhile, I've been planning the zombie AI and I have a pretty good idea about how they will react to players and follow them around from building to building until the players manage to lose them.
You definitely need a modeler and a animator to do this, otherwise I suggest you study a bit of 3d modeling and animation so you can modify your civilians to do simple poses or animations for using weapons.
Too bad you can't half rig marine skeletons onto a civilian and have them play that animation when firing a gun.
I'll just give them weapons without proper animations for now and when I know which weapons I want to keep, I'll look for someone to do the animations.
In Starcraft lore, they technically can use small arms, but little information is on those.
Other than that, rifles, flamethrower, and such are quite plentiful (in military areas that is).
In a urban environment, where soldiers died fighting, maybe there are guns, but most of em are destroyed in the battle.
So maybe, survivors can also craft guns together like this, after finding unbroken parts to assemble them.
Example:
Instead of making items with "barrel, trigger, etc." you can just craft them out of "Gun Part" items that stacks.
Say making a gun requires a # of said gun parts, and maybe experience or skills.
News & Info
Still Alive will be a co-op survival exploration RPG for 1-14 players. Each player controls a civilian, trapped in an abandoned city infested by zerg. However, most of the nastiest zerg have also abandoned the area, giving the players a slight chance of survival. The goal is to find a way to escape from the planet, which won't be an easy task.
The gameplay will consist of scavenging items from abandoned structures, barricading entrances to keep the infested civilians and other nasty creatures away, improving your character's survival skills, rescuing trapped NPCs, and sometimes killing some of the zerg.
The map will feature a large 180x160 sized city and literally hundreds of indoor areas, each the size of 32x32 but with everything scaled up to 200%, making vision and collisions more precise. The downside is that moving between indoor areas requires a fade-to-black warp transition, as seen on the video.
Latest Videos
Stats, light system, inventory, chase AI:
Weapon system:
Gameplay
The ultimate goal could be to escape in one way or another: Find and repair a broken space ship on a roof of a building, find a broken radio station, fix it and send a signal for help (and then survive for a period of time), wait long enough that someone will send help on their own... A key element could be a "quest item", a power source like the ZPM from Stargate: Atlantis, so that every time you find one your heart skips a beat as you start thinking of a way to carry it back securely, and you'll start imagining seeing those everywhere (just like those damn cards in Ragnarok Online on low drop rate servers, if you know what I mean...)
How It Works
The inside of each building a player can enter is spawned on-the-fly to an empty 32x32 sized area at the side of the map. There are 14 of those areas, so each of 14 players can be inside a different building at the same time. Obviously, if players go inside the same building, they are spawned in the same 32x32 area so they can see each other. When a unit enters the inside of a building, it gets scaled up to 200% and its movement speed, vision and radius are increased to match the new scale. This way the indoor areas have better detail, collisions and line of sight, while the outdoor areas have plenty of space for the city.
The total space reserved for the birds-eye-view city is around 200x180 game units of the 256x256 sized map. The city will have around 15x15 blocks with streets in between, totaling in roughly 200 building doodads. I'll try to make the city not to look too repetitive, although there are only a limited number of different building models available.
Not all of those buildings will be accessible since that'd just be an overkill, but I will give most of those you can enter more than one floor level, and an accessible roof at the top. Rooftops also have their own special area reserved at the side of the map, done using the skyscraper cliffs. You'll be able to change the floor by using a staircase with a similar fade-to-black transition as seen on the video. Currently, generating 4000 of those 32x32 sized rooms into memory takes around a minute on map start, but the speed is still going to decrease and also the maximum number of room variables that can be initialized. However, I'm not too worried since even a couple of hundred buildings will be more than plenty for my needs, and will be a lot faster to generate.
Just bumping this cause it should be front page... this is sweet.
Woo go A1win! I'm liking this a lot, looks better than I imagined it. One suggestion with this thread, you're a good writer but try to add some headings to break up the wall of text for the less dedicated readers :p. Looking forward to seeing this fruition, let me know if you need any help/suggestions etc. :).
@XenoX101: Go Thanks, I added the headings. My excuse is that it was three in the morning when I wrote this... ;)
I added a few screenshots from the editor to give you a better idea about my setup. Everything else is handled by triggers and a few data changes.
This looks awesome, great work A1.
If only it could handle the buildings having multiple levels. such as B1 B2 1F 2F 3F
Today's progress so far:
Now I've been pondering how to restructure my code so that I can pass the location of a staircase in a building for the next floor level so that the stairs will be in the same spot for each room and that the randomly generated walls will match them. I'm starting to get a pretty good idea of what needs to be done so it should be fine.
Zombies still can't enter/leave buildings but that will be rather simple now that their indoor positioning is remembered. Making zombies move inside buildings that aren't currently spawned will be a bit more complicated task (not overly so, though) so that might take a while.
Good news everyone! The system now supports buildings with multiple floors, both upstairs and downstairs. There's virtually no limit to how many floors a building can have, but it's obviously still bound by the same maximum building limit as every building is. The stairs are positioned smartly so that you actually appear at the other end of the stairs in the next floor. This is accomplished by having two different variations of each random building template. It should also be possible to have multiple stairs going from one floor to another, but my current templates don't use this so it might be more work unless I actually managed to nail it on the first try.
The map will randomize the number of floors each building has so that the total number of floors in the entire map is still the same in every game (since the array has a limited size).
Once I get some new building templates done and the stairs to actually resemble stairs, I'll post a video. Now they're just short and tall cubes like the doors...
That took me two days of work since I didn't plan my code in advance. I spent hours and hours desperately trying to figure out what's wrong with my logic. :P But I have a pretty good idea about it now, at least until I start messing with everything again.
Here we go, video of the floor system so far:
Also, I'm calling the map Still Alive. It fits a survival RPG perfectly. ^^
I'm trying to think of other kinds of dangers for the players than just zombies (infested terrans) to give the theme a bit more spice.
Hazardous environments.
Go study Resident Evil Outbreak game styles.
1) Zombies should basically feel like they are slow, but tough. They should be able to withstand most attacks unless you are skilled or cunning. A zombie's speed would be 1/4 the speed of a player, but they make up for it with a slow but powerful grapple and large numbers (in open public places). If a zombie grabs you, they'll try to bite you. Other zombies can't interfere but if you break out of it, you'll still have to deal with the rest of them, thus you get blocked off. Zombies needs to have a "wandering" AI so they'll move about randomly, rather than standing in a crowd and reacting when they noticed players.
2) Survivors can shove zombies away, by running by them. Zombies can only grab you if your standing or moving at a walking speed or less. Survivors should have a "Action" ability, which allows them to do various actions with one button. How you can manage this, is having the name of said action "appear on top of your survivor" when your interacting with something. Example: You are close to a zombie, hitting X (action button) will use up some energy, but you will shove the zombie back, stunning them for a short duration. If you have a melee weapon equipped, X will do a execution attack the closest zombie, costing some points.
3) Weapons in the game should feel scarce, but killing zombies should still be an option, and beating the game without killing anything is also a option.
4) Puzzles should be incorporated into the game as mini-games that pops up as a interface. Say you want to pick-lock, then developing a interface that tests the player's skills is important too. Some puzzles require a item to use, and some requires multiple players.
5) Stealth is a option, and you should enforce that, by rewarding the players with saved ammo, and less damage.
6) Have the game contains mystery on the location of the area. Like secret locations that are only found if you get specific items and beat certain puzzles.
7) Bosses takes on a form of a patterned monster, where they will slowly chase after the player, from room to room, and try to kill them in a slow but immersive manner. At some point, you'll trigger a boss battle where you must kill him to attain a item, but you get a choice on how to do so (the game should allow you to indirectly kill enemies, like trapping them in a machine that kills them).
It's all close to the Resident Evil style btw.
@dra6o0n: Go
Cool — I have a little different idea for the gameplay in mind, though, but it's good to know how other games do things. I've never been a big fan of horror games since they never really scare me (or when they do, they do it very annoyingly with loud noises and weird teleports etc). So what I'm going for is not to scare the player, but more like invoke some feelings of excitement and tension. I'm most likely keeping this in the StarCraft universe (just without much combat), since zerg infestation works very well with this setting, and is slightly aside from mainstream zombie settings. Here's what I've been thinking so far, in comparison to your comments:
Running and Hiding
1) Rather than having slow zombies everywhere and be a threat just by sheer numbers, I was planning to make them appear more randomly to the players and be a bit faster than the players can walk. When a zombie hits you, however, it needs to stop for a moment before it can continue to follow you again. This makes the difference between "Oh it caught me, I'm dead" and "Oh it caught me, I took a bit of damage but I still have a chance to flee (and then find some bandages and medical supplies to clean potential infection)."
When a player encounters an infested civilian (a zombie, in other words), 90%—95% of the time I want him to run away (not just walk) and hide. This is made possible by a sprint ability which makes you exhausted afterwards, so you can only run a little while, after which you have to hide, or you get caught. A good strategy would then be to always make sure you have a route you can retreat to without encountering more zombies (at least not very probably, since they wander around), and having some hiding places along the way. And when you forget to do so, you can only blame yourself for it rather than the difficulty of the game. I've found the "flee in panic" mechanic very fun in the past and it's something I'm certainly going to implement.
One more thing that will add up to this style of gameplay is distractions which will lure the zombies away. There can be some items that do that, but most importantly, you can use players as bait while another player sneaks past the area where the zombie was guarding.
Character Quick-Actions
2) The shoving mechanic won't really fit for what I described above, but it's not really that interesting anyway. I've been thinking of a lot of different kinds of actions the survivors can perform, but the controls will obviously resemble more of the SC2 controls since you move using the mouse, and right click to interact. I'm not sure what the default interaction with a zombie would be since you'll rarely have any weapons, though.
Weapons
3) I totally agree with this: Very few weapons, and none of them should have "infinite ammo". Let's just say the infested civilians (who are partially zerg) have too quick regeneration to take lethal damage from any common melee weapons.
Puzzles, Skills and Abilities
4) I've never played a game that has minigames that fit into it well enough. The closest is probably the lockpicking in Mafia II, which was very simple, but in my opinion the game would've been even better if the chance to succeed was automatically randomized instead. Most of the time minigames aren't even interesting on the first try, and even when they are, I get frustrated for knowing that I'll have to play this minigame dozens of times during the game since it's obviously something the developers wouldn't pop-up on me only once (and then the next time is just plain boring). It's like "Great, you've paid the effort to make a decent minigame I might be interested in playing on a mobile device when I'm bored enough, but now I'd like to play what I intended to when I launched this application."
A minigame inside a game should not have a separate GUI or controls for it from the actual game. Instead of popping a tic-tac-toe GUI on the screen, the tic-tac-toe should be implemented into the game itself: Put it on a floor and let the player's character play it, not the player himself. It should not feel like alt-tabbing to Windows and playing a bit of Solitaire for a while.
I was thinking to just use a skill system like in RPGs: "Attempt to pick a lock... picking lock (progress bar)... succeeded/failed", or more fatally: "Climbing out of the window on the fourth floor... climbing/falling down... arrived outside/fell down and died". There will be various skills, and you can improve them by using them during the game. I'll also add different kinds of tools you first need to find in order to perform some of those actions, or to help with doing so.
Puzzles are bad for replay value especially in multiplayer when one of the players most likely knows how to solve them, unless they can be randomized. However, all the various barricades and other blockades placed randomly into the map should automatically develop into some sort of puzzles.
Stealth
5) Stealth will be implemented in the form of hiding, and I'll place different kinds of hiding places around the map (abandoned cars, thick trees you can climb into, and of course just disappearing behind a corner before the zombie can see where you went). I'll also make the zombie AI so that they won't always immeadiately notice you when you notice them (depending on their facing direction for example), so you have time to retreat or quickly run past them. I might visualize the time the player has in some way, like it was done in Mafia II (I really liked that mechanic in the game).
Random Encounters
6) Absolutely! I've had some cool ideas for encounters in areas that aren't easily accessible, but I'll leave those as a surprise. I'd love to hear ideas from others, however, so I'll be able to add as many interesting ones as possible.
Bosses / Big Bad Monsters
7) Bosses... This often implies a "beat or be beaten" situation, and I'm not sure if I want that, especially not with big monsters since the players will be weak against the minor zombies already. Still, I think I could add random encounters which spawn different kinds of (zerg) monsters in the city, but instead of having to figure out a smart way to beat them, the players should come up with a smart way to get as far from them as possible (and preferably very fast as well).
The other thing that might fit better about bosses is their use as gatekeepers you need to pass to progress in the game. The gameplay I've had in mind is oriented to staying alive, and finding supplies to help with that. When players scavenge areas for items, they can also secure some of those areas by blocking exits with wood or maybe even metal if they can find the tools. With this kind of non-linear, slow-progression gameplay, there needs to be a lot of these "bosses" scattered around so that the players can't avoid them forever. When they want to get past a boss monster, instead of killing it, they lure it away and let other players sneak by.
Oh and I almost forgot that... How about creep? ^^
For hazardous environments, I think dangerous plants can be one.
Like you wouldn't need to add many zombies to spawn, just have a area that is "infested" and pose a risk to players who aren't equipped with a suit that can nullify the infection.
The infested area basically have stuff, like eggs, and zerg plants. These can be hostile to the player, like if the player move too sudden or attacked the egg.
Of course, a full fledge zombie spawning from the egg is a bad idea, so make them weaker but deadly "zombies" that has the same effect as a broodling.
They inflict the same damage, but they move faster but dies very fast as soon as they pop out of their eggs/cocoons. Only triggered when your very close or when you attack it, it only lives for 2 seconds.
Zerg Plants basically are environmental triggers that have a slim chance of occurring if you happen to touch or brush by them. It basically entangles or shoot out spores at the player, trying to stop or poison the player.
As for tools, I think your essentially tools can be used to destroy these minor inconveniences, but they can't be used as weapons to kill zombies.
You can basically use a makeshift-flamethrower to kill plants and eggs, etc. You could make certain tools or items very useful... Like pesticide spray can harm small zerg critters that lives in the infested areas, chemical agents that can kill small living organisms such as plants...
As for bosses, they needs to be more important in the storyline, like bosses should be unique and interesting, should match with the game style.
Maybe they can take form of special zombies (not like l4d) that specialized in tracking survivors, basically not linked to the zerg overmind, they are a individual specie.
Speaking of overmind, it would be interesting if you can put a overmind in your map. It makes sense for one to be on a infested planet.
Story is very very important. Especially if you can include "documents" that can be scattered throughout the map. Players can learn about secrets and possibly new clues to beat enemies or finding a way through, with the use of these documents.
When your going to implement the HP system, try to do it in a fun but short way:
Survivors have 100 hp, 0 defense. Able to regenerate "some" health if they are not afflicted with any statuses. Health regeneration is slower if the survivor keeps moving. Survivors can lose "max" health if they get wounded, which is a script that runs and knows that a survivor's max health is always 100, but can have a debuff that lowers max health by a fixed amount.
Typical zombies would have 100 hp, 5 defense. If they attack a player, they should do minor but "bleeding damage". Basically make the zombie's attack do 5 (15 to biological) so they can chip off healths off of barricades, and do good damage on surviviors. Bleeding "debuff" is what these zombies are good at doing, and they have a 15% chance of inflicting bleeding on you, of which it does 1 damage every 5 seconds, for 1 minute, and your health can't regenerate at that time until you use treatments or bandages.
The aspect of killing zombies... Maybe certain weapons will have certain effects and a degree of damage to the zombies. Angle of attacks can be VERY important, as zombies can have a "slow turning" speed to go along with it's AI, meaning a smart player can circle it and smack it on the back of the head. Problem is, there is usually more than one zombies, so it's not safe to think your a pro and you'll sprint and whack every zombies on the back of the head with your crowbar.
Weapons should have a weak default damage, with a high damage to specific value.
Crowbar for example, should be:
12 (44 to structures, 22 to light) With attack speed of 0.6 hit per second.
Flamethrower:
4 (12 to biological, 10 to structures) With attack speed of 0.8 hit per second. Hits 3 times.
The zombies are tough and sturdy, but they have the same health. They regenerate health similarly to roaches.
So if your going to incorporate bosses, make them have the same idea: same health, but higher defense to handle being hit, and regenerates just as well.
Zombies and mutant monsters in movies and games, they are tough because of their regenerative and defensive abilities, not because they have a HUGE vitality. Immortal characters in games and movies is because they nullify your damage with their huge defenses or super high regeneration.
Storylines don't work well in multiplayer games. The only time it gets to its full potential is when all of the players are playing the map for the first time, and since the map will support up to 14 players, it'd rarely be the case. I like the idea of having one background story that isn't actually a "plot" for the game, but like telling a reason why the players are in the situation and what they need to do to get out of it.
Zerg eggs could be used for the broodling-like quickly spawning, quickly dying enemies, but I was also thinking of using the infested cocoons to very rarely spawn full-grown zombies from them. I mean very rarely as in if you walk to a room with 10 cocoons, there'd only be like 1%-5% chance that even one of them will hatch.
I don't want a "tactical" combat system where the players can outskill the enemies just by being good at controlling their character, which means I won't make the zombies turn slowly. There will be very few zombies around, so if they turn too slow, players could just kill them by running around them (since there won't be other zombies to help the one being attacked).
As for weapons, there's only one attack animation for the civilian model so unless I can get someone to make new animations and attached weapon models etc. they'll only be able to throw stuff... But that should be good enough for a start. I can add more weapons later on if it seems like they're needed. Either way, I wouldn't worry too much about the combat system since it'll be one of the least used aspects of the game.
Some progress today:
Just have to say, this looks friggin sweet. If you could get multiple levels and rooms to work with groups of zombies following through the levels it could would probly have a real nice resident evil survial feel to it.
I have some trouble with my building spawning system: When I create a building, the game freezes for a short duration (maybe 0.1 - 0.25 seconds) for all players, which feels very annoying. I can optimize this a lot, but it will take some time. I need to make some of the walls consist of longer parts than 1x1 so I only need to create one unit per multiple squares of wall. Another thing I can do is spawn the walls into the game already on map start, and hide them when they aren't needed, and then move them to their position and show them when a player enters a building. If anyone has any better ideas for optimization, I'd like to hear them.
Edit: It was a bit simpler than I thought, so no worries here.
Dying
Well, this is a difficult decision, and I'd like to hear some feedback, since I don't want to take dying into either of its extremes. Although "death means death" would fit into a survival game, it doesn't fit into a multiplayer game when the players want to play it together. I know for a lot of players it doesn't really matter who they are playing with, so that if a game ends for them, they can just go play another game even if the players from the previous game were still playing that game. But if players want to play with their friends, like I often do, and they get dropped out of the game, they'll have to wait until the friends finish with the current game until they can start a new one together again.
Best solution could be to let the host decide the game mode. I could do a death-means-death hardcore mode and another mode where you can respawn. But there are still some unanswered questions about both of these, and even more so with the mode where you can respawn. I'll focus on that for now.
Respawn Mode
In this mode, when a player dies, the game doesn't end for him. However, he doesn't get to respawn immeadiately, and there will be penalties for that player and also for the overall gameplay. Respawning also just means the dead player gets a completely new character, losing everything the former one had (unless other players manage to loot some of his possessions). If there are no living civilian NPCs around, the player needs to wait until a new one is rescued by the other players. Meanwhile, the player gets to spectate the other players. There's also a timer after which the player gets to control a new character. This could be explained so that the NPC civilians are too afraid to act, but then one manages to gather his courage when the player gains control over him. The length of the timer could inrease on each death per player, and maybe even have a limited number of respawns per player to prevent abuse.
As I described earlier, the number of rescued civilians affects how fast the players lose and gain sanity, which indicates their mental health. Losing sanity makes the game more difficult by giving your character different kinds of drawbacks depending on how low it goes. The more living civilians there are, the faster they regain their sanity in safe places, and the slower they lose their sanity when encountering horrors. So when a player's character dies, this global sanity modifier decreases (because there's one less civilian alive), and there could be an instant sanity loss for all active players and NPCs.
In addition, the number of dead civilians (player characters and NPCs) will have an effect on sanity losses and gains. If the civilians know that a lot of people have died already, their morale drops and they start losing their sanity faster, and regaining it slower. This way you can't just keep enough civilians around to have a decent sanity modified and then replace the dead with new ones when too many start to die, but you also have to keep them alive as long as possible.
The goal is to not make dying feel like just another decision for the player to make. It should feel like you're supposed to keep your character alive as long as possible. Only then it's properly possible to get the feeling of tension when you're being chased by a monster and trying to desperately find a place to hide. The player shouldn't be let to think, "Well, I can just stop running since I can respawn anyway." With enough penalties for dying, I think this can be achieved even if the player can return to the game later. But will the penalties I described above suffice, and are they reasonable enough?
Meanwhile, I've been planning the zombie AI and I have a pretty good idea about how they will react to players and follow them around from building to building until the players manage to lose them.
for weapons, you could change the unit rather then the weapon if you want to.
You definitely need a modeler and a animator to do this, otherwise I suggest you study a bit of 3d modeling and animation so you can modify your civilians to do simple poses or animations for using weapons.
Too bad you can't half rig marine skeletons onto a civilian and have them play that animation when firing a gun.
I'll just give them weapons without proper animations for now and when I know which weapons I want to keep, I'll look for someone to do the animations.
In Starcraft lore, they technically can use small arms, but little information is on those. Other than that, rifles, flamethrower, and such are quite plentiful (in military areas that is).
In a urban environment, where soldiers died fighting, maybe there are guns, but most of em are destroyed in the battle.
So maybe, survivors can also craft guns together like this, after finding unbroken parts to assemble them.
Example:
Instead of making items with "barrel, trigger, etc." you can just craft them out of "Gun Part" items that stacks. Say making a gun requires a # of said gun parts, and maybe experience or skills.
Then you'll have to craft ammo... Somehow...