470 Sprint 3
What a bummer this sprint was! I wish I ended up doing more. I got off to a sluggish start, and that's entirely on me. What I did end up doing was something I was proud of, fundamentally. I love the idea of programming inventory systems. Really, the sort of logic and database management it requires is some of my favorite problems to work through.
Additionally, I finally prototyped traps and all that's left is for them to be deployable. I say 'all that's left' like it's an easy thing to do, and I fear that I put myself into kind of a bad spot with my programming. I know for a fact that the instances I made have to be deployable from the character's inventory, and along with that, there has to be an instance of pickups for them that can be added and dropped from the inventory with no major issue. There's a lot of moving parts for a simple inventory system and I fear that I'm overcomplicating it.
Traps as they work right now; enemies approach a trap, move away from it when its revealed, and if they collide with the trap something happens.
But, still, trap deliverables were done and it only required moderate-to-severe tweaking of enemies. For some reason, the hardest part about managing the traps was setting up the coroutines. This is likely a terrible, terrible, way of doing this, but I ended up setting up the enemy script to have coroutines that would be triggered if they interacted with a trap that would slow them, set them on fire, etc.
Status effects in action; enemies move slower for a certain amount of time when slowed. Also note the health bars; a UI element used to let people know how much health each enemy has. Easier to set up than I thought!
This looks like trash because the way I was doing knockback sucked, I fixed it because staring at this gif irritated me into motivation. But, what you can see is that the ignited oil starts a damage over time effect on the enemies as well as making it become visible. Oil also despawns over time and despawns at a faster rate once ignited.
These coroutines would run for a variable amount of seconds depending on the trap. Part of me wishes I just made separate status effects instead of this finicky BS, but, it's what I got. Traps have two possible states; hidden and revealed. Revealed traps, when revealed (or when they spawn) change the navmesh so enemies avoid them when possible. This felt like it could create some bad patterns where traps were more useful as temporary door blockers than for their actual effects, so I ended up creating a variable that would delay hidden traps by a certain amount of time until they're revealed. This allows more enemies to walk into them, and creates a more dramatic effect where the enemy line would be cut into portions; one ahead of the trap which is diminished in size, and the other behind the trap which has to find another way through.
Some traps can also be ignited; if hit with an item that has a property stating that it's used as a firestarter, they'll change states. This is used to change the oil trap from something that slows enemies into something that burns enemies for damage over time. I brought up to Robert how it could be cool if we had more things that could ignite traps, or ignite oil covered enemies, but we're already short on development time as is.
Overall, my biggest concern involves that while I'm doing great on developing the fluff and secondary mechanics, there is still not enough time put into the primary mechanics of the game itself. It's starting to worry me; as what had happened is that Riley was originally tasked with most of the key elements of player gamefeel, and he is rapidly approaching being unable to make good on that. So, this leaves us with a game with a player controller that feels strange and half-baked prototype mechanics that exist as a mirror for stats and nothing else. We can do better, and we're going to need to pick up the pace. There's so much that we have to do and ultimately so little development time to make it happen. So, it's on us to prioritize what matters and find the fun in our game.




Comments
Post a Comment