Update 16: May 16th – 30th
It’s been an unusually chill two weeks. My new living space has been treating me well, work has been easy-going, and dev time has been pretty productive. I’ve been planning a dnd game for my friends too, for which they recently made characters last weekend, and now I’m working on harder material so I can start running soon. In addition, I’ve been getting closer to finishing God of War and it’s really ramping up the tension, making a lot more emotional impact on me than I thought it would.
For dev-related things, the first week began with some bugfixing but was spent mostly on some interaction with the environment and experimentation with shaders, but the focus of the second was largely on learning the particle system and making a fire model and some effects.
I guess it’s time to get down to the details.
Press F to Ｄｒｉｎｋ Ｗａｔｅｒ
The survival mechanics in Atavism aren’t going to be extensive or anything; the game is still a linear FPS and I don’t need any self-sustaining gameplay elements, just a variety of tools that I can leverage to manipulate the tension that the player is experiencing. Part of those tools are how the player regains health – and in the more naturalistic, primitive phase of the game, they’ll be doing that by interacting with the environment, hence drinking and eating.
My approach to interactables was simply shooting a raycast out and making an event when the user hits F (or whatever they set the interaction button to). Each item that can be interacted with has a large collider around it, and when the player looks at it, a message appears over the item and follows the player camera. I’m not entirely sure if I want to keep the message thing, but if I can get it to look the way I have it in my head, it should be kind of neat. I might get rid of it for the natural elements in the future though, but I’d like to make it clear what the player can interact with.
So right now the player can drink water, which allows them to regenerate health. They can take sips up to an arbitrary amount, after which they tick down ever arbitrary amount of minutes and hit zero, stopping them from regenerating. The idea is that I can tune this to keep the player trying to drink water to stay healthy, but obfuscate the exact science of it to make it less artificial. Eating food just restores health.
Fire and Cinders
This was probably the most fun part of last week, though I don’t really want to admit it. I didn’t know much about particle effects going in, but fire, being so core an element of atavism (the concept) and the identity human technology, deserves some special treatment, so I sat down and tried my best to make it look nice. There really wasn’t that much to it, but I’ve got 4 sets of particles (yellow to smoke, harsh fire, glow, and cinders) and a few models for gathered-looking wood along with an ash pile and a cooking rock. I suppose there isn’t a whole lot to say about it, but Twitter loved it and it made me realize I love making VFX.
I’m not fully sure about cooking (but I’m strongly considering it, it’s just a matter of ironing out the process for the player), but the player will definitely be sitting at fire use as a checkpoint. It errs a little towards (seemingly) ripping of Dark Souls, a game I respect and don’t want people to think I’m just trying to ape it, but fire as a resting place is such a core part of early humanity that it must be in here. Anyways it looks nice so there.
Odds and Ends
I’ve got a smattering of random things here
- Animated a Guard Break for the shield, but I’ll only be implementing the logic for it some time later.
- Added a check so that you can only block or parry attacks in front of you to a certain degree.
- Added a feature where you can walk slower by holding alt, or by hitting Caps Lock to toggle walking speeds. I kind of forgot about this since I added it, but it’s the kind of thing I like in FPS games, even if they aren’t important.
- Fixed an ancient bug in my code for clambering and refactored some of that year-old stuff. Also fixed a bug with standing while crouching while I was in there.
- Fixed a big, giant bug (and I mean big, this consumed me for hours across the first week) where the player seemingly gets hit at random times or not at all during enemy attack animations. This actually had to do with the ragdoll setup I had (and having rigidbodies/joints on bones that don’t have colliders), so it’s apparently been present for months, just not always seeming like a big problem, and holy cow I’m glad I found what was wrong. Before I fixed it I could sit in one place sometimes and have the enemy attack 7 or 8 times before landing a hit and I had no idea what the problem was and I was only able to find it after using the Physics Debugger.
- Upgraded to Unity 2018.1! This is pretty big in theory (and probably with more than I think) but there is a small drawback in that I can’t use the new rendering pipelines (because of my custom cel shaders), which forfeits the Shader Graph, which was a large reason I wanted to upgrade in the first place. Instead I bought Amplify Shader, which admittedly is a bit expensive, but has more features than SG anyways so it was probably worth it in the long run. Other than that, it’s great being on the current version, and this might be the last upgrade I’ll do unless 2018.2 and 2018.3 are easy and beneficial.
- Added blocking functionality to the tribesmen, so if they get hit a few times, they’ll hold up their knives defensively and stop taking damage. This is more to prevent spam and protect the poor tribesmen on the edge if you walk up and whale on them, but I also added the ability for the player to guard break them by attacking enough, which adds a short stagger.
- Refactored (I guess you could say) my setup for the enemy parrying and blocking, so animations and events only happen if you hit colliders in front of them. This makes it more reactive (blocking high when the player hits high) and also stops the player from getting parried while behind an enemy. Neat.
- Updated Visual Studio so it doesn’t yell at me as much when I manage backup projects.
Oh man I think it’s finally time to move on from the tribesmen for now. It’s been a long road getting this far (in no small part to learning a ton and having to redo things) and I’m happy with their current state, but I’m not done with them yet, both in polish and in features. They still need spear variants (requires tons of animating), guard break moves (requires tons of animating), edge AI animations (requires tons of animating), out of combat AI (requires tons of animating… seeing a pattern here?), and then some real late-polish features like repolishing their models, adding a female variant, adding a bunch of flavor animations, adding Morale, etc. etc. I could add to these guys forever.
Anyway the fact is that I shouldn’t add on to them forever for the time being. Next up is Birds and while I can’t say I have a game plan for their timeframe (beyond possibly getting them rough draft done by the time Uni starts again), but I’ll sort of just get to work and feel it out as I go along. Hopefully the experience under my belt means that the planning and execution will match closely, requiring fewer reworks than as the tribesman had (in both modelling and AI), but we’ll just see. I want to make this right.
Until next update, cheers.