Thanks for checking out my website, feel free to reach out at and check out my current project, Super Hamster Havoc on Soulcade Interactive’s website

  >  Developer Blog   >  Developer Blog #2 Sumo Koi Fish

Write a decent system. Burn everything. Write a better system.

So in the last six days I have gotten ALOT done towards Sumo Koi Fish. The system for rendering the fish looks ALOT better, there is a camera that follows all the action, and we have the groundwork for our fish to sumo wrestle.

This is a hingey-boy! Not an effective swimmer.

Look at that fluidity! Now we got some swimming thingies

Rewriting the rendering of the body

The goal I had in mind with the look of the fish is that it would be broken up into several “joints” so I could make it fluid and I would make variables for every joint. This is kinda how the previous system works as there are variables keeping track of the “head”, “thorax”, and “tail” positions as well as the sides of the fish relative to the previously mentioned positions but I wanted something much more more fluid, more dynamic, and less unsightly to look at in the code. So the solution was to break the fish up into segments with set of arrays that are initialized and updated in for loops. After doing this, I variables that controlled how many segments there would be, how long and wide the fish would be, and the size of each of its fins. Then with all this information I can draw each part of the fish as a primitive, that I could then texture.

Old System. Baaaad

New System. The backbone of some realistic swimming thingies

Early gif of the new system of rendering the fish

And on the 6th day, we let them fight!

So with the combat of the fish, I wanted it to be something where they would tackle each other and take damage, and the more you were tackled, the further you would be knocked back in future tackles. I was also gonna have limited dashes. So in using the physics system that comes with Gamemaker Studio 2, I can easily update the restitution (The bounciness) of the fixture that is bound to an object as long as I have the ID of the fixture. If you are using Gamemaker’s front end for setting up your fixtures (like I was) you are out of luck as there is no way to get the ID of the fixture you set up there and you’ll need to setup everything in code. So once I re-setup the physics and made a simple damage system (based off of the speed of the instances in a collision), I made the restitution go up proportionally with the damage and a few funny things happened. Not only were both the attacking and attacked fish were receiving damage (most times the attacked fish receiving more), but when repeatedly attacking, you could “spin out”. In lieu of this, rather than making a dash, I opted for a “fish sprint” that will use up stamina.

The fish in their fighting glory!

Write your Comment