June 4: Monster Attacks!

This week we’re getting into one of the funnest parts of the monster and combat overhaul: monster attacks! As Armagon mentioned in yesterday’s post, Tiy and I have been going through each of the possible monster heads and coming up with a characteristic ranged attack to match them. Some of the attacks are similar to the ones you’ve seen before, firing directly at the player with various kinds of projectiles. In addition to adding a lot more of these, we’re mixing it up a bit with some different patterns. For example, ballistic projectiles are now properly angled to hit targets at different ranges (and with different gravity):

Other monsters will have ‘ranged’ attacks that are AoE (area of effect) and hit all nearby enemies:

This is just a small sample, but we want to leave some to be discovered! Once we have a set of these basic ranged attacks, we’ll move on to more elaborate special attacks for rare monster parts, unique monsters, and bosses. Some other, less exciting things I’ve been working on include moving control of the script tick frequency from configurations into Lua (monsters will update more frequently while in combat to balance responsiveness with performance), helping kyren track down rendering bugs, and continuing to refactor monster code for consistency and maintainability.

 

June 3rd: Mixing it up!

While Tiy, Omni and Metadept have been working their butts off overhauling the combat, I spent the day doing a number of different jobs here and there.

The lion’s share was spent working on putting together a key for our outpost dungeons, which will serve as a hub of sorts for the player to sell their crops, trophies, and so on. The keys can be pretty involved to put together, as it essentially needs to show me exactly what objects I get with each given brush, the brush’s color (which I have to make sure is not duplicated anywhere), and the object orientations.

In the absence of a dedicated toolset, these keys are crucial to my ability to create the dungeons. For those who missed our early dungeon creation posts, this image should give you a pretty good sense of how this stuff works.

LevelDesign

I’ve tried to make these keys as easy to read as possible so our modding community could dive right into any one of our existing dungeons and add new rooms and layouts if they wished.

Typically while adding all the objects to the key, I go through and make sure they behave the way they should, making sure their image positions line up properly in the world, switches function as intended, and if their omission is glaring enough, sound effects. I’m keenly aware that there are still many objects lacking appropriate sounds and I intend to check them all in detail at a later date when the progression update is done and dusted.

That doesn’t mean I haven’t had the odd sound task here and there. I had to devote some time away today to put together samples for our shields, chiefly designing sounds for perfect blocks and guard breaks. This sometimes can be a fairly straightforward matter, especially when I’m able to find that single perfect sample (like the footsteps, breakable objects, etc). At other times it can be fairly involved, requiring me to layer multiple samples and effects with careful balancing to get the sound I want (plasma weapons, monster sounds, and environmental ambience tracks were generally put together in this fashion). In the case of the shield sounds I had to make today, it was definitely the latter approach.

Fortunately it seems to have paid off, as combat is feeling that little bit extra satisfying now.

Tomorrow it’s back to work on the key and the objects. Once the key itself is completed, the next step is to take all the tiles and objects from the key and turn them into actual functioning brushes within a dungeon file. I’m aiming have the dungeon file done later this week so I’m able to start building the outpost proper. I look forward to sharing more on that with you soon!

June 3 – More random shields progress

Hey there, I spent most of today writing and configuring methods for making shields sound different when you perfect block and when they break. They also make particles on perfect block and break now.

I also wrote come code to suppress the shield while invulnerable and very slightly after (2 frames), in order to prevent tanking the first hit of a stream (that can hit you 2 or 3 times) in order to perfect block the rest of them, (essentially cheesing the system.)

I also discussed changing part of the lower level windowing system with kyren, and spent some time making sure she understood that area of the code, because she’s working on the AI stuff.