Week 10 - Quack Attack Assignment 3 Development
With my group and I we have made a start on the Quack Attack project, we have however foudn a large amount of limitations that will affect how the game will play compared to the one page.
Asset limitations
The original assets for quack attack where made as scalable svg's gdevelop doesnt really support this format and the way it does is though an extension and the performance is terrible.
We tried converting the resources to png however it was a tradeoff between performance and resolution and ultimately we decided to change the direction to a more pixel art style, to keep up performance and simplify the development. This didnt come without issues, as none of the previous modules covered pixel art there was a lot of considerations we where not aware of. such as how to scale the text correctly, resulting in blurred text due to nearest neighbour scaling. Ideally we would have used a bitmap font however that was too difficult to work with and ended up breaking the healthbar element permanently in the project. I tried to fix it by searching gdevelop forums and such but there was no answer.

The new assets

These are the pixel art assets I ended up designing to attempt to remedy the performance and scaling issues we encountered, they worked quite well we have been able to get 100+ on screen at once without to many major issues.
Moving Water
This is probably where I spent the most of my time on the project, developing the open water movement of the game, it is done entirely programatically though a mix of gdevelops effects and custom events in the scene events. The way it works is by moving a tiled image through 2 layers of distortion maps, giving it a moving waves look. The assets for this is a tilable water image and 2 of the same tilable distortion maps which you can see below:
Water:


Then in the events code the wate tile is moved across the distortion map and the distortion map scale is also changed dynamicaly to give the waves different shapes.
Movement was a bit difficult with this system since the water would move against the player when they where moving, making it seem like they where stood still in certain directions. To remedy this I modified the offset of the water movement when the player is moving to match, this isnt the exact effect I was going for but it works well enough and shows it as choppy sea water.
Water Performance Issues
GDevelop handles displacements quite poorly, and as the game goes on the performance degrades significantly, if the round was longer than 10 minutes it would likely crash, this is due to the constantly increasing float of the waters movement and how gdevelop applies distortion maps being far from optimised. I did some tweaks to increase performance but if this was a game that was going to go longer like originally planned this would need to be addressed better.
Before the programatic system I also had a tiled system with animated water using tiled tile editor and external imports that had better performance but could not be affected by in game events and ultimately didnt quite fit the look we where hoping for. The performance was better with that though.