“Week” 4: January 14 – 21
After getting derailed 2 weeks ago from my computer problems, the last week has been going pretty smoothly as I’ve moved back into my dorm at University and did my thing over the week. Most of the time working on it was last Sunday and the 20th, where I worked about 11 hours on both of those days with only a passing few contributions over the week. I think I’d prefer to meter my schedule out better, but so far the binging works well until I have a more permanent schedule to work with.
Cleaning Up The Rifle
The first half of the week was spent cleaning up the rifle now that I’d fixed the animations. I implemented aim spread, so firing in quick succession will increase a firing cone of varying sizes depending on whether you’re aiming, moving, sprinting, and/or crouched. I’ve been thinking back and forth on this, but I’m fairly sure I’m gonna keep the ability to shoot while sprinting.
When shooting the rifle, the camera now kicks vertically with recoil, requiring a little bit additional aim compensation on top of the spread. I’ll be fine tuning these values as I implement enemies to test against, but the features are now in there and working smoothly. Another small thing I’ve added is “Max+1”, an unofficial term which essentially means that if you have a bullet in the chamber and reload, then the bullet will stay as an extra shot while a full magazine is placed below. I should also note that I’ll be overhauling the magazine reload system later to include a light inventory and bullet management, but that’s lower priority than making enemies to test against, which is the next step.
I also added the ability to sprint out of a crouch, which is something I should have added forever ago and really feels a lot better that it’s in.
The Hare and the Unity Documentation
The second half of the week began an undertaking of learning out what I need to know to implement enemies, which is to say something I can test low-poly organic modelling, organic rigging, animation layers, and AI implementation on. A hare is precisely a small and simple enough creature to test this on.
The hare! The desert hare. Modeled after the Black-Tailed Jackrabbit, I’m ultimately quite happy with how he ended up looking, which was a relatively short and sweet step on the artistic journey of nailing down an art style. I’m starting to get used to rigging and ended up doing it pretty fast, and the animation afterwards went quite smoothly, although I’m still not sure where I put it on a scale of “placeholder” to “done”, but it’s probably in the middle.
The hare should be a pretty simple AI test to match the following behaviors:
- “Waking up” and leaving his den to initiate his idle state.
- Running to waypoints where it will stop to look for food and danger across the way.
- Eating at various branches until he gets his fill and goes back to his den.
As he performs each of these animations, I’ve figured out Unity’s Animation Layers documentation and gave him a little breathing animation that’s additive to whatever else is playing on him, which is a technology I’ve been meaning to learn for a while. The effect is almost too subtle on him but the skill will come in handy in future NPC’s.
A modeled a branch real fast, added health and dying to the hare, and got a basic “follow the player” script working on him with animation, but a lot of time was spent planning out how I’m going to structure the behaviors of the AI and the other facets of enemy variables. I’ve implemented an Abstract class for an enemy Health and Controller script, wherin the former now allows NPC’s to take hits and Die using a delegate from the latter, which will host all the executable behaviors and have access to the Animation Controller. AI will probably work similarly with various behavior delegates that are updated in the AI script.
It will probably take much of the time to properly understand and implement how I want to be doing AI for now and in the future, but after I get the hang of it, it should be something I can add on fairly quick, so it’ll mostly be predicting interactive behaviors with multiple hares and squashing bugs from emergent stuff in testing.
I predict that by next week’s update (probably something I’m gonna do on Mondays from now on) that I’ll have finished and moved on from the hare to fix a few bugbears like fixing weapon switching while reloading, adding a tool for the current weapon in the editor, and adding a few effects here and there like cartridge ejection and FOV zooming on the Rifle. After that I’ll start working on a template human model, which will probably take some time to get right, but it’s the kind of thing that’s worth taking time on.
That wraps up this update. I’ll still hold to putting the next one on Monday but college is gonna come first and I can’t predict how hard this semester is gonna ramp up. I’ll do my best though.