Spirits are the ghosts of recently dead players. Spirits lack the 3 stats normal players do, but have a single Energy attribute. Energy determines the time left a Spirit has before fading. Energy is lost two ways; one way is from natural degeneration similar to hunger while the other is from the usage of abilities.
Spirits have several traits that define them from normal players. One of such, is the inability to communicate with the living. Spirits are unable to speak and cannot tell players anything. However, Spirits have fewer physical bounds, and can pass through barriers players cannot. While they can pass through these barriers, Spirits are unable to leave a room without support. However, such support, comes with their Spiritual abilities.
Spirits are capable of object manipulation. While a Spirit cannot communicate with the living, they can aware them of their presence. For example, a Spirit can flicker a light or open a container to lure a player closer. Once they're close enough, a Spirit can bind their soul to the player, allowing them to leave rooms. Doing so will benefit the "possessed" play, reducing their Sanity drain significantly and allowing previously unreachable switches to be used. However, a Spirit will lose greater amounts of energy for utilizing contraptions not within the bounds of their corpse, lowering their overall lifetime.
@cookies4you: Go
That sounds a bit too fantasy for this, and death isn't supposed to be rewarding anyway. I don't want players to sometimes want to die. I think it's also not possible to block players from using the [All] chat?
I now have the light system working quite well, as I described earlier. I had to do a little trace line trick for checking the light's line of sight to the player but I don't think it's too performance-heavy. Now I just need to modify the building generators to spawn lights in reasonable spots (now they just spawn randomly around there). The lights behave as if they would turn on when the player comes near, and turn off when the player goes away. This means the players won't see the "light beams" through doors until they enter the room. But we can think of them as scifi lights that have a motion detector or whatever. :P
Update: Monsters can now follow players from building to building. The system is still missing the case when a monster is trying to move inside an unspawned building, but I think I'll fake it by just teleporting the monster out of there after a specific amount of time based on its direct distance to the door. No one sees what happens there anyway since it's unspawned... It should be just fine.
Good job on the threat and light/sanity system. However, I'd like to point out some concerns.
Currently, Zombies are much faster than humans. I can agree to that, but here's where the issue lies. Zombies are too fast for human players to escape them. I suggest that the room delay time for zombies to increase, or the base speed of them slightly lowered. You should be able to evade an enemy by juking them rather than having to sprint or initiate combat.
Perhaps I'll make most zombies slower than the players, but add some tougher ones that need to be ran away from? And sprint needs to be a lot less efficient. The current version of it is just a Stimpack without the health cost, and I've just been using it for testing.
I'm currently working on the weapon system. Just got it to the point that weapons can't be fired through walls even if the player has vision through it.
The camera is now unlocked from the player, but can't be moved outside the indoor area. Outdoors the camera can be freely moved, so players can see what's happening to other players. And since the camera is unlocked, zooming is now possible.
Also, I modified the UI layout a bit. If required, the bars can be extended to the right, but I'll keep them limited to 10 slots for now.
Last night was a refactoring hell, but the code is now much cleaner and more efficient. I changed the way my interact system works, which was previously done by an inefficient loop that checked distances between the player and the target. Now it's done using a smart-click ability which is then caught by triggers. Previously, items and monsters were spawned as units already when the map started, and now they are only spawned when any player enters the building for the first time during the game. This speeds up the building generation on map start by a little, but most notably it reduces the number of units that simultaneously exist in the map.
I considered slowing the enemies down so that they'd be slower than the player, but it just won't work. If they're that slow, they'll never get to do anything to the players and don't really pose as a threat. This isn't Resident Evil with endless masses of zombies blocking your way. To compensate this, I'll probably give the players more weapons than I originally planned. I need to redo some of the AI as well so that it's easier to flee by using shadows and corners to your advantage.
Before last night, I got my weapon system partially done, but it's since been slightly improved. Here's a short video of its first version:
Small suggestions. Have automatic weapons use Persistent effects at the cost of using more ammo or have a toggle-able mode to switch between rapid fire or single fire.
Random suggestion, raise the height of light halos.
Random Suggestion: Spirits
Spirits are the ghosts of recently dead players. Spirits lack the 3 stats normal players do, but have a single Energy attribute. Energy determines the time left a Spirit has before fading. Energy is lost two ways; one way is from natural degeneration similar to hunger while the other is from the usage of abilities.
Spirits have several traits that define them from normal players. One of such, is the inability to communicate with the living. Spirits are unable to speak and cannot tell players anything. However, Spirits have fewer physical bounds, and can pass through barriers players cannot. While they can pass through these barriers, Spirits are unable to leave a room without support. However, such support, comes with their Spiritual abilities.
Spirits are capable of object manipulation. While a Spirit cannot communicate with the living, they can aware them of their presence. For example, a Spirit can flicker a light or open a container to lure a player closer. Once they're close enough, a Spirit can bind their soul to the player, allowing them to leave rooms. Doing so will benefit the "possessed" play, reducing their Sanity drain significantly and allowing previously unreachable switches to be used. However, a Spirit will lose greater amounts of energy for utilizing contraptions not within the bounds of their corpse, lowering their overall lifetime.
@cookies4you: Go That sounds a bit too fantasy for this, and death isn't supposed to be rewarding anyway. I don't want players to sometimes want to die. I think it's also not possible to block players from using the [All] chat?
I now have the light system working quite well, as I described earlier. I had to do a little trace line trick for checking the light's line of sight to the player but I don't think it's too performance-heavy. Now I just need to modify the building generators to spawn lights in reasonable spots (now they just spawn randomly around there). The lights behave as if they would turn on when the player comes near, and turn off when the player goes away. This means the players won't see the "light beams" through doors until they enter the room. But we can think of them as scifi lights that have a motion detector or whatever. :P
Update: Monsters can now follow players from building to building. The system is still missing the case when a monster is trying to move inside an unspawned building, but I think I'll fake it by just teleporting the monster out of there after a specific amount of time based on its direct distance to the door. No one sees what happens there anyway since it's unspawned... It should be just fine.
Watch it on youtube for higher resolutions (up to 1080p)!
Good job on the threat and light/sanity system. However, I'd like to point out some concerns.
Currently, Zombies are much faster than humans. I can agree to that, but here's where the issue lies. Zombies are too fast for human players to escape them. I suggest that the room delay time for zombies to increase, or the base speed of them slightly lowered. You should be able to evade an enemy by juking them rather than having to sprint or initiate combat.
I like the UI though, it looks nice and simple.
Perhaps I'll make most zombies slower than the players, but add some tougher ones that need to be ran away from? And sprint needs to be a lot less efficient. The current version of it is just a Stimpack without the health cost, and I've just been using it for testing.
I'm currently working on the weapon system. Just got it to the point that weapons can't be fired through walls even if the player has vision through it.
The camera is now unlocked from the player, but can't be moved outside the indoor area. Outdoors the camera can be freely moved, so players can see what's happening to other players. And since the camera is unlocked, zooming is now possible.
Also, I modified the UI layout a bit. If required, the bars can be extended to the right, but I'll keep them limited to 10 slots for now.
Status report!
Last night was a refactoring hell, but the code is now much cleaner and more efficient. I changed the way my interact system works, which was previously done by an inefficient loop that checked distances between the player and the target. Now it's done using a smart-click ability which is then caught by triggers. Previously, items and monsters were spawned as units already when the map started, and now they are only spawned when any player enters the building for the first time during the game. This speeds up the building generation on map start by a little, but most notably it reduces the number of units that simultaneously exist in the map.
I considered slowing the enemies down so that they'd be slower than the player, but it just won't work. If they're that slow, they'll never get to do anything to the players and don't really pose as a threat. This isn't Resident Evil with endless masses of zombies blocking your way. To compensate this, I'll probably give the players more weapons than I originally planned. I need to redo some of the AI as well so that it's easier to flee by using shadows and corners to your advantage.
Before last night, I got my weapon system partially done, but it's since been slightly improved. Here's a short video of its first version:
Small suggestions. Have automatic weapons use Persistent effects at the cost of using more ammo or have a toggle-able mode to switch between rapid fire or single fire.
Random suggestion, raise the height of light halos.
whoa how did you make the hunger system ive been trying to figure out how to make one
Looks pretty Awesome :D