Geneva Lost Weekly Reflection – Week 9, 2016

Artifact: Crawlers and spawn points

 

The crawler, which may be our only enemy in the game (due to “budget cuts”), is supposed to be a fast and annoying enemy that attacks in swarms.

When first implementing the crawler it went straight for the player at a constant speed, dealing damage on contact. To make it more interesting we plan to give it some more dynamic behavior. First thing we changed was to give it a maximum turning speed, so that when running towards the player it couldn’t just home in straight towards them. This took a while to implement due to programmer stupidity (when comparing the angle between the player and the enemy’s current rotation I forgot to wrap the difference between -π and π, so it couldn’t determine which direction to rotate).

This also allowed us to give the crawler a higher speed than the player, making it almost like a rodeo, dodging a raging bull. Right now it still just runs around and deals damage when ever close enough. What we’ll do instead is make it so that when the player is in within a cone in front of the player it will stop and do a swiping attack. It will also on occasion do a lunge at the player from a distance. We’ve discussed having different behavior patterns for the crawler, but due to being pressed on time we’ll have to omit that feature from the project. By slightly randomizing properties of the crawlers, their movement won’t be too symmetric, making them feel more organic in the game. Some will be faster but can turn slower, some will have slightly more health.

swarm
Crawlers swarming the player.

We’ve done some redesigning of the game to make it plausible to finish by our deadline, so instead of having a huge level, we’re going to restrict the game to a single location (Sergel’s Square), where the player will face waves upon waves of enemies. To achieve this, we’ll use spawn points for the crawlers that will take in an integer value and spawn a pseudo-random amount of crawlers based on this. This will allow us to either go with infinite waves or a set amount of waves without having to modify more than a single variable. The spawn points will have a spawning queue based on each wave and a timer between spawns as to not have all of crawlers spawn on top of each other. This is all we have on them at this time, but I’m pretty sure more things will show up later on.

 

FIRE
BONUS: Temporary flame thrower (May be a little overkill)

 

One thought on “Geneva Lost Weekly Reflection – Week 9, 2016

  1. Hello Malcolm!

    You’ve done a great job of explaining the whats, hows and whys of your artifact. I very much like posts which are focused on the design, rather than the actual code or implementation. As they tend to be more interesting and thought provoking, letting me think some for myself!

    I like the idea of using different properties to make the same enemy feel less static. It does however increase the need for player feedback a lot. Because if it is not well introduced, the player might not feel that it’s dynamic, rather that the game is sketchy.

    However, introducing it correctly shouldn’t be too hard. For example, the generic way of presenting a difference in speed it to increase or decrease the size of the enemy. Smaller shapes are usually identified as being faster and weaker, whilst bigger shapes are identified as slower and stronger.

    I think the features you’ve put forward seem to be pretty realistic to produce, which is great since you seem to be pressed for time.

    The post is valuable, as it put forward a few interesting designs and also discussed the positives of them, giving me some perspective on your design process.

    I think you might want to give a bigger picture of the design however. Because there is never just one way of doing something. So the only question that hasn’t been answered is, why did you choose this particular design, compared to others?

    In general, I think the post was very good, well written and easy to read.

    Have a nice day!
    /Martin Carlsson

    Like

Leave a comment