Engine fixings


I fixed some issues in the engine code that I found when making the game.

The first was that whenever viewmodel firing animation finished, there would be no animation playing on the viewmodel and it would go back to the bind pose for a single frame. It was not looking good, so I added an option to add a callback function to the animation player that would get called when an animation is finished playing, so that you can immediately start another animation and you don't get the viewmodel flickering back to bind pose for a single frame.

In pseudocode:

for_each (animation_that_is_playing) {
    animation.current_frame.increment()
    
    if (animation.current_frame > animation.last_frame) {
        animation.stop()
    } else {
        animation.calculate_matrices()
    }
}

I turned it into:

for_each (animation_that_is_playing) {
    animation.current_frame.increment()
    
    if (animation.current_frame > animation.last_frame) {
        animation.stop()
        if (callback.is_defined()) callback.execute()
    } 
} for_each (animation_that_is_playing)     animation.calculate_matrices() }

There was also the problem that animations would not play if you tried to play them before a model was loaded, so in the game I had to do a workaround where I have a component that waits until the model loads and then issues the command to start playing the animation.

I fixed it, so now the animations will be remembered and will start playing as soon as the model is loaded, which also meant that I can remove the workaround component.

Other fixings.

Based on feedback, I made the level's exterior a bit brighter. If by feedback it was meant that the inside is too dark, not outside, then yes, it was intentional (monster hole == very dark). And the player being very slippery is also intentional (just so that you would know).

Files

Version 1.1 [NEWEST] 75 MB
Oct 07, 2022

Get Dzīvības Partikula

Leave a comment

Log in with itch.io to leave a comment.