Author: remscar

  • Backend, Selections, Weight, Map, and More

    It’s been 3 weeks since the last dev blog and a lot has happened so let’s dive into each one.

    Player Data Backend

    I built a simple backend API which acts as a store for player data. It tracks player data such as sanity, aliens killed, victories, rounds played, etc. Game servers connect via a HTTP API and are authenticated with an API key to read/write to this backend.

    There is a little dashboard for me to view/edit player data;

    Admins and Bans

    I also built an admin system where you can define Moderators, Admins, and Super Admins. Players with these roles can kick, ban, perma ban, unban other players. Super admins can change the roles of other players. The admin list and ban list can be synced with the backend server as well.

    Once again, this is a super simple and generic UI, it’s not meant to be pretty.

    Optional

    Right now none of this is required to run a Morbus server. You can still run a game server without connecting to the backend.

    Alien Selection

    Previously when we were picking who should be the first brood alien we just took the player list and randomly chose one player. This is fine as a v1 but it needed to be a bit more nuanced.

    Now each player has a weight, and players with higher weights are more likely to be selected. We have a set of rules, which can be activated under certain circumstances which raise or lower the weight of a player.

    The default weight of a player is 100

    Lowering Weights

    These rules lower weight, making a player less likely to be selected;

    Brand New

    Brand new players (who have less than 5 rounds played) have their weight lowered to 0, meaning they will never be selected as a Brood Alien. This rule only activates if less than half the players qualify as “brand new” as a bootstrapping safety mechanism.

    New-ish

    New-ish players (6-10 rounds played) have their weight ramp up from 50 to 100, or a 50% – 0% reduction. Therefore a player with 6 rounds played has a weight of 50, and by the time they hit 10 rounds played they’ll have a weight of 100.

    Recent Alien

    Players who recently were the initial alien have their weight multiplied by 0.5x the next round, then 0.75x the round afterwards. By the 3rd round this penalty is removed.

    Low Sanity

    Players with low sanity have their weight reduced. From a sanity of 1000 to 400 the weight is reduced from 1.0x to 0.0x, so a player with 700 sanity would have their weight reduced by 50%

    Increasing Weights

    These rules increase weights for players

    Alien kills

    As a human, if a player kills a swarm alien they get +1% weight. A Brood alien kill gives +5% weight. This bonus keeps stacking until the player is chosen as alien next.

    Underdog Human Win

    If humans win and less than 25% of players were human at the end of the round then all surviving players receive a 10% bonus to their weight. This bonus will stack and also persist across rounds until the player is chosen as an initial alien.

    Stored in the backend

    All of this data is stored in the backend with the players data, so it will persist across rounds and play sessions.

    Item Weight

    Items now have a “weight” stat and picking them up will contribute to your “carried weight” which is displayed at the top of your inventory.

    Hovering over the carried weight panel switches the UI to show you the weight of each item you are carrying as well as color coding the items. The carried weight panel also shows you the impact your carried weight has on your speed.

    How much each item weighs and the amount of movement penalty will need to be tweaked and balanced in the future.

    New Map!

    I’ve always loved the original Garry’s Mod Parasite map, which is the gamemode Morbus was inspired from. I decided to make a copy of it in S&Box.

    With the addition of this map we have 4 maps which I think is a solid base. The maps could use additional work to texture and polish them but that’s work for the future.

    Spectator Mode

    I added spectator mode in, which allows you to just fly around and spectate. When i made Morbus in Garry’s Mod i loved doing this and watching people play.

  • Sanity, Prison, and another new Map

    I’ve been chipping away at a couple of features, old and new, as well as porting over another map.

    Sanity

    We once again have a sanity system like in the Garry’s Mod version of Morbus but it works a bit differently.

    Sanity persists across maps and play sessions. You don’t get to be scummy on the last round of a map just for your sanity to magically get restored at the start of the next map.

    You start with 1000 sanity, which can grow up to a maximum of 1100 right now. Each round you play restores 50 sanity up to 1000.

    Sanity restores gradually each round (like before) but it will also restore at a slightly slower rate while you’re logged off, however it will only restore you up to 900 sanity.

    Doing good things, like killing aliens, or infecting humans (as an alien) restores sanity up to your max cap of 1100.

    Killing a human as another human lowers your sanity by 150.

    Punishments – Triggered

    Triggered punishments happen when two criteria is met;

    1. You lose sanity during a round, AND
    2. Your sanity is below a certain threshold

    Punishment: Go to Prison (Below 700 Sanity)

    You start the round in a jail cell.

    There is a bar you can break to escape jail but it takes about 1 minute of punching the bar to escape. Another player could also come let you out.

    This is a bit of a cheeky punishment.

    There will typically be a ceiling vent in the jail cell as well, so a brood alien could jump out of the cell to escape… or perhaps drop in.

    Punishment: Kicked from Server (Below 500 Sanity)

    You will be kicked from the server with a warning.

    Punishment: 1 Hour Ban (Below 400 Sanity)

    You are banned from the server for 1 hour.

    Balancing of punishments

    These are all initial numbers and i’m sure they’ll be adjusted with time and testing. Server owners will have the ability to tweak/enable/disable punishments as well.

    Punishments – Persistent

    These stay so long as your sanity is within the range of these punishements

    Reduced Max Health (500-900 Sanity)

    Between 900-500 sanity your max health will take a hit. You’ll start the round with a “Sanity” damage type on your HP bar. At 500 Sanity your max health will be reduced by a whopping 50%.

    Reduced Human on Human Damage (500-800 Sanity)

    Between 800-500 sanity your ability to inflict damage on humans (as a human) is decreased. Human counts as anything that looks like a human, so a brood alien in human form also takes less damage from you.

    At 500 sanity you do 50% reduced damage.

    Prison

    The gamemode Morbus was originally inspired by had this. Whenever you killed a human as a human you would be sent to prison next round. A player could choose to let you out or kill you.

    Now when you drop below a certain sanity and murder a human you’ll start your next round here. There is a way to escape though, but it’s a moderate annoyance and I think it’s kind of silly.

    New Map – Facility

    I always had mixed feeling about this map but some community members really liked this map so I decided to port it over.

    It also gives me a reason to use my moving platform code which I worked so hard to get working right with the prediction system.

    I’m still working on polishing the map, the textures are still ~okay~ but I think having 3 somewhat different maps will provide some nice variety.

    In the Garry’s Mod version there was a section of the map that made zero sense to me. I didn’t really agree with them being there so I removed them

    (It’s the rooms circled in orange)

    But overall the map remains the same.

    More playtests coming soon

    That’s it for now. I’m hoping to do a playtest or two this month, I feel like we might be getting closer to a Beta release and a constantly running server.

  • (New) Map

    Instead of taking a break I decided to work on a new map. Which is kind of like taking a break because I really enjoy working on maps (for the first 20 hours, and then it becomes a bit of a chore.)

    Isolation

    If you were an original Morbus player you might remember the map Isolation. This was either the 2nd or 3rd map I made for Morbus and I really enjoyed the general layout of it.

    The map was based on the idea of creating 3 parallel passages that run along the entire map, and then connecting them at a peak on one end, and then having other passage ways across to connect them.

    By having 3 paths to traverse the map a player can more easily avoid other players. As a human this is helpful if you’re paranoid and untrusting, or as an alien this is helpful to avoid detection. That’s kind of why the map was called “Isolation;” If I want to isolate myself I can choose a path to avoid other players.

    Each path has it’s own strengths and weaknesses;

    The center path allows you to be on average closest to all need locations. It takes takes you through the central room which is wide and open, mostly preventing ambushes. Since you’re in the center it allows you to potentially see the side paths giving you the most information as well.

    However you’re also in the center, and therefore the most detectable, and you’re forced to walk through the north center hallway which has lots of divets in the side allowing an alien or brood to hide and ambush you.

    The side pathways are more secluded and take you through 2 pillar rooms. These rooms offer great hiding places for aliens and are generally dark. The final approach to the north tip of the map is a tight hallway with no hiding places which prevents ambushes.

    Since the side passageways are on the edges of the map, alien senses often allow players to slip through them without being detected.

    Issues with the map

    The map had two large open backrooms which were supposed to be “cargo bays” that had equipment for humans, as well as entrances to the “vents”.

    These rooms were kind of useless. Nothing motivates humans to enter these rooms and for humans entering the vents, it was very dangerous, because that’s where swarm aliens spawned.

    There was also a basement with light switches, each switch would shut off lights in a section of the map. But getting out of the basement usually meant going into the vents which was dangerous, or back tracking which sucks.

    Human players rarely left the main floor because doing so was dangerous and generally a confusing mess.

    Vents; a confusing mess
    (though you should see some other maps)

    There was also a random light switch in the vents that allowed you to turn the lights off in the center room. Was this explained, did anyone figure this out, did anyone use this? The answer to all of these is no. You couldn’t even see the result of the pressing the light switch!

    Also there was a light switch in the north tip of the map. This switch didn’t turn the lights on/off, instead it turned of all the lights for maybe 10 seconds, then turned them all back on; Like a reset switch.

    TL;DR; confusing light switches suck, confusing vents suck, and a basement which feels more like a dead end sucks.

    Despite all this…

    The map was actually pretty fun to play on though. I had a lot of fun making it the first time and remember that I had lost steam when it came to the vents and basement. They were hacked together because I wanted to be done, not because I had a master plan. That’s probably why they’re the things I like the least about the map.

    Our new version

    Okay let’s go over the biggest changes first

    Only “two” floors

    No longer is there a basement and vents, there’s just an “upper floor” of the map. Giving us essentially just two floors; main and upper.

    The main floor remains mostly untouched. The useless backrooms have been removed though.

    The upper floor

    This floor is supposed to be an alternative traversal route through the map. It’s the “guts of the ship” (I imagine this map is a space ship or something) you see exposed structural beams.

    Following the 3-path theme of this map there is 3 paths through this space (you could technically say 5 though since it’s mirrored)

    Lower Path; This is the “floor” level of the upper floor. You will almost always enter at this level. This is the most dangerous place to be as a human since aliens can attack you from above, and there are a lot of hiding places above you.

    You can take a ramp from the lower to side paths at the A locations on the map.

    Side Path; This path is elevated above the lower path and provides a mostly clear view of the lower path. You can cross over to the Center Path at B locations on the map.

    Center Path; This path is also elevated, and is more protected than the side path. It has a few windows to look down upon the lower path or over to the side path, but is much more protected.

    Jumping Brood Upgrade

    This was designed with the brood jump upgrade in mind. A brood alien with the jump upgrade is easily able to jump from one passage way to another. The upper floor becomes a jungle gym for them. I’m really excited to see some cool ambushes happen in this area.

    Multiple Entrances/Exits

    There are 5 human friendly entrances to the upper floor. 2 at the north end of the map, 2 on east/west, and one at the bottom.

    A caveat on the east/west entrances is that there is no ramp way to the side/center paths so entering there forces the player to traverse the lower path.

    There are many more additional drop down points as well. These are one way for most players, except for brood aliens with jump upgrades who can jump up these with a well timed jump.

    Swarm Spawn

    Swarm aliens spawn above the upper floor and then drop in at the north end. They are forced to drop into the lower path, decently far from a ramp to the side/center paths.

    More

    There are more little changes and tweaks, i’m sure you’ll discover them when you play 🙂

    Possible future changes

    I may shift around one or two of the need locations into the upper floor to encourage movement to the upper floor. Potentially the food could move to the upper floor but stay in it’s central location of the map. I think would have to add path to get to the upper floor from central room to make this work properly.

    Demo Video

    I’m still polishing some parts of the map but here’s a little video showing some of it.

  • Quiet Lately

    The progress blog has been a bit quiet lately because there’s a lot of things in flight without a lot of cool things to show. Here’s a mini update on some things still in flight;

    Surface crawling Swarm Alien

    I’ve been experimenting with the idea of swarm aliens not being humanoid by default, and instead they are pesky little spider like creatures. The movement code for this has been really difficult, but here’s where it’s at right now.

    There was a suggestion that I make the camera work kind of like the Skulk from Natural Selection 2, which I agree with. Right now the camera is just locked to the orientation of the spider for testing.

    This is on semi-hold for now. It’s a cool thing to explore, but there are other more pressing things to work on.

    Prediction System Testing

    The prediction system introduced a handful of bugs. These were found in a short playtest last Monday. None of them super terrible, except for the one where dedicated servers don’t work, cause why not?

    The test went pretty well overall, the real test will be with a full 12-16 player server.

    Brood Alien Visual Upgrades

    I commissioned the guy who made the monsters in Shoothouse to work on the Brood Alien for Morbus. It’s been a long back and forth process but it’s finally starting to be tested in game. I don’t have the textures yet, and have just been testing how it looks in game and animations.

    I asked him to use the Citizen Human rig for the Brood Alien. S&Box doesn’t have native animation retargeting tooling built in (which sucks) so I had to manually retarget all the Citizen animations to work on the Brood Alien. This was a massive pain in the ass.

    But hey, we got movement!

    The tail was looking really bad so I went ahead and built some logic to procedually animate it based on movement;

    It’s been hard

    The past 3 weeks have been a ton of unexciting grinding. The prediction system took an entire week to implement, and then nearly an entire 2nd week to actually integrate back into the main Morbus codebase. Transformation was incredibly hard to do get right too.

    My motivation has been lower this week. I might take a bit of time off soon or take a bit of a break to recharge.

  • Server Authority

    In the last dev blog where we talked about the last two playtests networking came up a lot. Either it was network lag, strange movement, and a general concern about client authoratative movement.

    Last week I decided to bite the bullet and try to nip this in the bud.

    This was a huge undertaking and my brain is still a bit fried from all of this. I worked super long days for essentially the whole week but it paid off.

    Server Authoritative + Client Predicted

    In basic terms we need to make it so when a player wants to move, they send the input command to the server, which then processes the command causes the players character to move.

    On the (player’s) client side, this command is “predicted” by running the same movement logic and having the player character move before the result from server has arrived.

    This diagram illustrates the time it takes for the move command to reach the server and then get back to the client. In our code we don’t wait for the server response to update, instead we take our best guess at what it would be (by running the same movement code.)

    If for some reason the server response/update differs from the client predicted state, reconciliation happens, which in simple terms means we drop our predicted state and replace it with the server state.

    Moving Platforms

    Things start to get really complicated when you want to support a player being on a moving platform. Something like an elevator or a tram.

    I got the core server/client architecture done in like a 1.5 days, but getting this part to work right was much more complicated. I’m still not 100% happy with it but I think it’s the best we can do right now.

    Lag Compenstation

    The magic really happens when we do things like shoot other players. Engines like Source or Unreal handle this by “rolling back” the world state to the moment when the client shot the bullet, and seeing if the bullet would collide.

    This essentially means that as long as the client saw the bullet hit, the bullet would hit on the server. Since it takes time for the client input to get to the server, rolling back becomes necessary because the world state is no longer the same on the server.

    Okay so let’s look at this demo.

    The lines represent the bullet path as it flies.

    The purple shapes represent the rolled back hitboxes of the player.

    What’s happening is I (the client) am shooting be clicking my mouse. I immediately see where the bullet impacted on my screen (white sphere debug draw) and then a moment later i see some purple shapes show up, as well as a yellow line.

    The yellow line represents the servers interpretation of where I shot from, and the bullet trajectory. The purple shapes are the hitboxes that the server believes that I saw. We see green circles when I hit a player and both the server and client (me) agree.

    This is being recorded with 200ms of lag, which in my mind is the very max someone should ever play with (though honestly 100ms seems more reasonable.)

    This is hard to talk about

    This is a lot of deep stuff that’s kinda hard to talk about. My brain is a bit fried from all of this still so i’m trying to do my best. I haven’t posted a blog post in awhile so I wanted to post something even if it’s a bit half baked. I might do a follow up post in the future about this.

    What’s next

    This was all built in a separate test project, just to prove out the concepts. Next steps are to make sure i’m not code smelling much, and then it’s going to be to introduce this into the Morbus codebase and migrate the players to use it.

    I’m sure this will be a tedious and bug heavy process so i’m not predicting another Morbus playtest for at least another week.

  • Playtest 2 and 3

    We had two more playtests this past week. Playtest 2 was on a Monday with at most maybe 9 players and then Playtest 3 saw up to 16 players I believe. Let’s talk about the results

    The Good

    Lots of bugs were found in Playtest 2, I fixed all of them for Playtest 3 and besides an initial hiccup (where voice chat and round ambiance was broken) there were only 2 bugs found. This is great since it means less bugs!

    Well sort of, there were more bugs, but they might be related to networking stuff which we’ll get to later.

    Some good direction on new features/QOL changes was also figured out. End of round breakdown is still missing and it should be in the game soon. There’s little tweaks like clearing the “last seen time” when we switch from Warm up -> Main game state.

    The Bad

    Something isn’t right with the networking.

    For these playtests I ran a dedicated server on my computer, and while I think the lag was better than when I ran a listen server for Playtest 1, I think a lot of players had a laggy time and later on in the playtest some functionality just straight up broke.

    Network Lag?

    Brood Aliens move pretty fast, and right now clients are simulating their own pawns. This seems to be the “standard” S&Box way to do things. You are the owner of your own pawn, so all other players/connections get the position of your pawn from you.

    However I’ve noticed that if a player lags, their pawn starts teleporting around the place. It doesn’t always smoothly interpolate to where they should be. Also i’ve noticed that if the players starts to sprint and they’re moving very fast (ie they are in brood alien form) there is a higher chance that they’ll start teleporting around the place.

    This is bad. Like really bad.

    I’ve always noticed some weird “jank” with multiplayer movement in S&Box, but there’s gotta be some way to solve this, right? And in a game like Morbus where some players need to move fast, the other players need to see them clearly.

    Here are things i’m considering to improve our situation:

    Boost Networking Update Rate

    By default the networking update rate is 30. This means 30 times a second we’re looking at objects and deciding whether or not to update their networked values.

    So at most another player will only get a position update from us 30 times a second. If we’re a brood alien and we’re moving fast, that could be really bad for the other player.

    Counter Strike 2 uses a 64hz tick rate, I was essentially having a 30Hz tick rate on networking updates. I didn’t realize this setting existed until I was writing this blog post so this will be the first thing we play around with.

    Get rid of Rigid Body

    I’ve been using a player controller that’s based on Facepunch’s Player Controller. It partially uses the game’s physics engine for movement.

    I was encountering weird issues where players would jump into each other and it could cause them to rapidly rebound away from each other at illogical speeds. A suggestion was to make clients disable RigidBodies on all other players. I think this fixed the issue, but I’ve been thinking about things a bit more existentially.

    I’ve talked to a couple other game developers in the community and a lot of them seem to avoid using RigidBodies in their player controllers. I’m thinking I should do the same. I don’t want to involve the physics system in player movement, it seems like a recipe for disaster.

    Server Authoritative Movement

    I’ve started to think about how I could make movement server authoritative. I want movement to be responsive on the client side, but I also don’t want to be relying on the client to tell all other clients their position.

    It’s also been brought to my attention that if a client fails to acknowledge an update, a minimum of 250ms passes before another update is sent. Huge lag.

    I imagine this will be very hard at best, and at worse, impossible in S&Box. Kuro a formed Facepunch developer who made the networking system in S&Box posted a “sbox-prediction” library where he prototyped something like this. It’s really bad. I don’t know if it used to work better, or maybe it just doesn’t work anymore, but I was shocked at how unresponsive it felt. He’s a strong engineer so I’m hoping it was just incomplete because i’m not sure if i’ll be able to do better than the person who made the networking for S&Box.

    Slow everything down

    If it turns out that fast movement in S&Box doesn’t work well, I guess we’ll just have to make the game slower?

    Things just randomly broke?

    At least 2 players encountered a bug where they just couldn’t open doors. They were working fine before, but now they don’t work anymore? Crazy stuff. It’s like the dedicated server starts to die after it’s been going for awhile and things just stop working right.

    Maybe the scene needs to switch?

    I don’t have enough data yet to really figure this out, but it’s concerning.

    The woes of a new engine

    Maybe this just comes with the territory of a new game engine. There’s stuff that hasn’t been battle tested yet and no best-practice patterns to rely upon. I might be one of the first people figuring this out. I am quite nervous about hitting a hard obstacle and there being no way around it. What if S&Box can’t handle fast paced competitive shooters?

    I hope that Facepunch will have my back if that happens. I doubt they would want their engine to be in such a state. I just hope that if I raise an existential issue that they would address it in a timely.

    Next Time

    There’s something up with performance, possibly server performance. I need to remove the variable of my computer just not being powerful enough to run the game + a server at the same time.

    Next time we do a playtest i’m going to host the server on a dedicated server. Hopefully any of these weird bugs other people occasionally see will happen to me.

    Gameplay Footage

    I recorded a little bit of footage, check it out!

    In this clip we can see me venturing away from my group to go turn the generators on. I eventually make my way to the bathrooms where I encounter another human. Amazingly they don’t kill me out of paranoia/suspicion. Together we kill a handful of aliens and survive until the end of the round.

    You can see a few moments of the weird movement/lag i’m referring to near the end of the clip.

  • Blood & Gore

    Short and sweet little blog post for a gruesome topic.

    We’ve been needing to gore things up a little bit, add a bit of red ambiance to the game, so I spent the day working on some blood splatter effects.

    Brood Aliens shoot out little chunks of gore when they transform. The gore creates a sort of bloody trail that falls to the ground. Either when the gore hits a surface or the trail hits a surface, it leaves behind a blood splatter decal.

    Some of the decals despawn fairly quickly, but some of them stick around for up to 2 minutes to help provide hints to humans about when/where a Brood Alien transformed.

    Thanks to my buddy Necrossin for pointing me in the right direction for the particle effect on the blood trails. I had to create my own ParticleController in S&Box (since the type of effect I needed wasn’t built in)

    The way it works is by creating a line between each particle that’s been emitted, in order from oldest to newest. This allows us to simulate a sort of “rope” if we then physically simulate the particles and emit them over distance travelled.

    Other gore

    The ability for aliens to eat corpses is going to be added soon, this will also involve more gore so it’s good to get this in now.

  • Brood Upgrades aka Mutations

    Okay this is a hot one, I think this is going to be controversial for OG Morbus players, but hear me out, just give it a listen.

    The Reason

    Brood Alien upgrades are fun and cool in Morbus. It allows the Brood Alien player to express their play style, adapt to the human players, and get stronger.

    We want upgrades, we need upgrades.

    The Problem

    Rounds in Morbus are fairly short, let’s say 8-12 minutes ideally. How much time is it reasonable to spend looking at an upgrade menu?

    I probably am going to figure out a “go to” loadout and just repeat that over and over again. Some players have even mentioned that they bound keyboard shortcuts to specific upgrades so they could just press the keys on their keyboard instead of opening the menu. Power users!

    So does having all the choice matter if I’m going to do the same thing every game?

    Also as an aside, we should consider that Brood Aliens getting an upgrade point after killing a human is giving the Alien team an extra bonus when they already received one (they now have an additional alien on their team.) That’s a recipe for a snowball.

    A Possible Solution

    We need to optimize for a few things;

    Simplify

    Big upgrade trees, multiple paths, reading 16 different upgrade options and learnings what’s what. Yuck. That takes too long.

    We need something simple with a low barrier to entry.

    Diversity

    We should prevent players from just doing the same thing over and over again. Live a little! Try something new!

    Maybe a bit of a nerf

    We should make upgrades a bit weaker, but not just through the numbers. Perhaps we just make it harder to min/max.

    Buckle Up

    Here’s the demo, i’ll explain it below:

    Randomized Options

    You are given a (random) set of 3 upgrades to choose from.

    The list of upgrades these 3 come from changes based on previous upgrades you’ve picked.

    For example, the “Quiet Breath” upgrade requires you to have at least one other “Utility” upgrade previously chosen.

    This means the pool of upgrades grows in size the more (diverse) options you pick.

    Some upgrades like Lifesteal require you to have two “Offense” upgrades chosen.

    Upgrade Rarity

    The color “rarity” of upgrades generally reflects their uniqueness or power. If an upgrade requires you to have picked other upgrades (ie it has prerequisites) then it is considered more rare.

    The invisibility upgrade requires you to have picked quiet breath first, which requires you to have picked another utility upgrade first, so it’s considered “Epic.” (it’s also just kinda epic too.) Then the even advanced invisibility upgrade which is a better version is a “Legendary” since the previous upgrade is a prerequisite.

    Higher rarity upgrades are actually slightly favored to be in the set of random upgrades, so if you’re building towards a certain “legendary” upgrade you’re more likely to get it than a simple stat upgrade.

    Auto Upgrading

    The classic new Morbus player who doesn’t know how to upgrade their Brood Alien; say goodbye to them. With this system we can automatically choose upgrades for players based on rarity + type preference + some randomness. By default upgrades will be automatically chosen for players. They can either disable this or they can choose a specific “preset/archetype” for this automatic selection.

    Right now we have a few, that are variations of favoring offense, defense, utility, some combination of those, or a balance of all three.

    Why I think this might work

    This actually checks those 3 boxes from earlier;

    Simplify

    If the upgrade process is automatic, it’s dumb simple and requires no input from the player. If they’ve set a different archetype, awesome!

    However if we’re in manual mode, we’re also still very simple: all a player has to do is read 3 options and choose one.

    If they’re a new player, 3 different things isn’t hard to parse. We’re talking seconds.

    Limited choices = faster choosing.

    Diversity

    Now I can’t pick my ideal min/max Brood build every single game. I have to make the most of what I have. Builds become less about perfection and more about making what you have work.

    Ideally this would lead to people trying something a bit different and actually using all the different upgrades instead of their favored few.

    Granted since you can lightly sway the selection algorithm (since higher rarity upgrades are favored to be selected) this is limited, but I think it gives us a nice middle ground.

    Maybe a nerf

    Nerf through what I said about diversity.

    Alernatives

    If this is hated, doesn’t work, or just sucks I still have some other ideas.

    MOBA mode

    There could be an additional “Preset” mode where you build out an entire upgrade progression you want, and we save that. This is at the “lets just give up on randomness” point and we’re just back to the original upgrade tree but you can pre-make a selection path.

    It cuts down the time upgrade if you already know what you want, but doesn’t really help the new player or simplify aspect. This just feels like a MOBA game to me though.

    Or it’s just back to the original upgrade system, but we can have presets, and then automatic upgrading just uses a preset.

  • Improved Need Notifications

    Needs are confusing for new players so I’ve tried adding some more prompts and notifications to nudge them into what they need (hah) to do.

    I want to avoid just outright saying “Follow the arrow to go do X” but that might be where we need to go eventually.

    What’s new

    New Need Prompt

    Whenever you get a need now it will display a prompt on your screen, play an alert sound, and then sort of fade it into your need bar on your Hud.

    Need Critical Prompt

    When your need becomes critical, we display another prompt, and say your health is being reduced.

    Critical Need Status Effect

    A status effect is shown when your need is critical. If you open your inventory menu and hover over it, it will tell you to go do your need!

    Need Icon Tracer

    The icon for your need is shown on the path tracer that guides you towards your need. Hopefully making it extra explicit what that tracer is.

    Need Icon at World Location

    Similar to the original Morbus, you see a need icon floating on your screen, positioned to the world position of where you need to go to do your need

    World Info prompts

    When you actually get to the place you need to do your need, it will pop up with a world info display, just like with items, players, or bodies, with a prompt to “complete your need”

    If all this fails

    We’ll see how this lands. We might need to add some text under the need bar on the HUD, “Follow the path to complete your need” or something like that.

    Beyond that, idk maybe a tutorial or a dialogue that pops open and you have to click “okay” on it or “Do not show again”.

    Maybe I can hide tutorial prompts in the inventory menu and show a little HUD element to tell the player to press the inventory button to see them.

  • Fire and Grenades

    There’s been some discussion in the Morbus Discord lately about grenades. A leading thought is that the explosive grenades are too favorable for aliens, specifically brood aliens. This is a pretty valid point, the explosive grenade allows a brood alien to chuck it into a room and inflict damage outside of line-of-sight (LOS) from humans.

    This sucks a bit as a human and i’m not a super big fan of aliens having a strong ranged attack. But on the other hand, I’m torn because I also think this could be useful for Brood Aliens in certain situations where humans are camping in a room and you want to jostle them around a bit.

    I think the long detonation delay is helpful for humans to scramble out of range from the grenade, but it also allows aliens to do the same.

    The fantasy behind the explosive grenade in the first place is that it’s a tool to chuck into pursuing or oncoming aliens to weaken/damage/kill some of them. Or it forces them to back off for a moment to avoid the explosion damage. It’s not a primary killing tool, it’s utility. For a brood alien it would be to sow chaos in a room and create confusion to hopefully be able to take advantage of that confusion.

    Some Balancing

    I’ve decided to lower the max grenade damage from 150 -> 100, HOWEVER, the grenade is now 2x more effective against swarm aliens, and 1.5x more effective against brood aliens (in alien form.)

    The grenade should be lethal against swarm aliens but not be so lethal against humans. Brood aliens typically shouldn’t be getting hit by a grenade because they should be able to run out of range really fast, but in case they do get hit, they should be punished hard.

    Fire Grenades

    A grenade that would be very helpful for humans is one that creates an area of denial. Being able to throw a grenade in a tight hallway or doorway to block aliens from passing through it would be incredibly helpful.

    So I’ve made an incendiary grenade that does just that. Aliens take extra damage from the fire; 2x for swarms and 1.5x for brood aliens.

    The Alien Angle

    This is a powerful tool for humans, so I wanted to create a direct use for brood aliens using this grenade.

    If a dead body is lit on fire then it enters a “burning” state. After 5 seconds of burning it becomes fully burned. When a body is burned you can’t tell who the body belongs to anymore, thus you’re no longer able to mark them as a verified alien.