Entities, entities and entities


Progress has been made :)

Ever since the last devlog I was fairly productive. I added gamepad support, reworked the movement, I finally implemented the collisions and more!

Movement

In the last 2 weeks the goal was to implement full gamepad support. As such I wanted to have the topic of movement done once and for all. For that I finally revisioned the slime and player class and made a lot of fundamental changes. For example, logic for moving around and user inputs are all put into the corresponding base class. So technically it is possible to move around any entity in the game if set, but I don't plan for that. But more importantly, I know that every entity from here on will behave the same in terms of moving around. So I was finally able to work on...

Gamepad support

This was thankfully not as complicated as I was afraid of. Although I naturally had to implement a lot of code into my MonoEngine (my self-made framework on top of the MonoGame framework) because I never added gamepad support there. But frankly the structure I had for listening to keyboard and mouse input is scalable enough to easily adapt to a gamepad with new concepts. Although I technically never managed to test the gamepad vibrations. However, while the interface between gamepad and game worked like a charm, there was initially an issue about handling multiple inputs at once. I believe there could be great ways to solve such issues, but since I have a simple project I require simple solutions. And now steering your character with a joystick disables any additional movement by movement keys ;)

Also, if I might say so, moving around with a controller is already significantly more fun than expected. I can imagine this game to be heavily focused on gamepad gameplay.

Collisions


 

As you can see, you can see a lot here. I thought it would be interesting to see how simple I tackled collision tests. I actually temporarily just edited the art in order to see very specific boundaries. In the picture above in particular  one can see rectangles colored in bright colors representing the collisionbox I tried to test. That way I could easily tell for sure if a collision works as supposed to. Saves me time trying to write automated tests. Also, I think the dog looks funny with the red dot on his nose. Kinda like a clown. The yellow bar that you can see there represents "feet" collisions. As you may know it feels much more natural if the character collides with the feet area rather than the whole body. Writting this I realise my slimes utilize a collisionbox for the whole body.. But that should be fine - I hope.

And here we can see some fun quirk that I had during the development. Because I actually have a veery thought-out system for collisions. Initially I developed it for my previous game in which I wanted to replicate BlitzBall from Final Fantasy X. But I quickly noticed, that the project scope goes too far and I also lost motivation. The nice thing about Slime Breeder, is that I see progress immediately and it is relatively less error-prone. But back to the image. As you can see the slime is inside the collisionbox. But in fact the collisions for the fences worked. So how did go inside there? Well, the collisionbox of the slime is of the same size as the collisionbox of the fence. And since I don't use my super awesome collision system but rather implemented a dirty one for this game only, it actually just "sees" the corner of the collisionboxes. Now, whenever the slime tries to move up or down, the collision-logic will push it back perfectly aligned with the edges. That way you can "slide". BUT! I fixed this easily by also taking into account middle points of the sides. So frankly collisions can still be an issue, but only for very small boxes in niche situations which maybe never occure.

What is next?

Sound and music - that is what's next. Today I even went to the local park and recorded myself stepping on a bunch of things looking funny I guess. I also made some nice menu sounds and even a small music track with my bass guitar. I am hoping to use the track as a character theme for one of the NPCs later on in development.

Other than that there is still a bunch of technical things to do. Such as interactions, events and the whole main menu. But it is definitly not as dry as the last months and I am happy to share as much as I can.


As always,
Thanks for reading this :)

Get Slime Breeder

Leave a comment

Log in with itch.io to leave a comment.