I really had no time to work on Kill da Ducks as I was working on a University project with a friend. We put a lot of effort on it and did new things we never did before like physics (realistic one) behaviour. We used the verlet integration to solve vertex movement and using rigid and elastic (more like springs) constraints we were able to create polygons. The using the SAT theorem we detected collisions and finally using some more complex formulas I don’t know we implemented the collisions behaviours. Then we implemented a grid to minimize collisions detections and optimize the whole thing. Benchmarks were really nice. Alowing us to create very big worlds with more than 200 dynamic boxes and running at 60+ fps We then created a Level Editor that allowed us to place vertex, polygons and constraints and then save them and load them too. We needed that in order to create levels for our game. We then started with the player and the GUI for the editor.
We wanted to implement a realistic behaviour on our player but we realized that it was way more difficult that I thought and that we were not in time to do such a thing so we kept things simple and created a Box for the player. Changing the mass and the size of the base we created some kind of stable player. We tried lot of things before that, there were all more difficult, using constraint to make the player stand-up but then the physics behaviour was incorrect. In fact we wanted to still have the world have an impact on the player, in order to make gameplay more difficult than just being a physics actor that cannot be pushed by other bodies.
In order to have an animated player we introduced a simple Animation based on angles or position to determine the different body parts positions (Neck, arms etc)
After lots of test and hours of work, we came up with something playable. And I must say the result was really nice, not only graphically but also because the game offered a gameplay that could be way simple or ultra hard. All of this depends on the level, and this allow people to create easy levels or really hard levels only playables by people who have mastered the player controls.
The Final result is that:
This level is hard for example. It may look simple but it’s not.
Finnally I will say that you can go and take a look at the code and even compile it by yourself. All the dependecies are explicitily mentioned on the page and a Makefile is provided to have an easy compilation.