Pet Overload by Jonathan50

Pet Overload is a simple 2D top-down puzzle game written with SDL2 and available for Windows, MacOS and GNU/Linux. You use W/A/S/D to navigate through several mazes in a forest terrian, however, once you come in contact with an animal, you instantly adopt them and they stick to you like a magnet, helping you throughout the game. Unfortunately, you only have the energy to care for so many pets, so watch out! You can sell a pet to an NPC by walking up to him or her, and then your energy will be restored.
The game is coded in C using SDL2 for graphics (https://libsdl.org) and I drew the assets in GIMP (https://gimp.org). It feels a bit rough (particularly because of the sprites, collision detection, jumpy movement, and lack of sound) but I hope you like it!
- This is a very short game, it should only take between 9 and 3 minutes to complete.
- Note to Linux users: you'll need to install libSDL 2.0.x if you don't already have it!
- (Source code content warning: May contain trace amounts of kludges, premature optimization, excessive bitwise arithmetic, etc.)
Changes: I fixed a bug that allowed you to go just under the bottom and to the right of the screen.
Ratings
| Given | 14🗳️ | 17🗨️ |
1. Did you put the app in /Applications, without renaming it (if you have the permissions to do so)?
2. Do you have a 64-bit Intel Mac (from no earlier than late 2006 until today?)
3. What version operating system do you have?
4. Did you mount the .dmg file and actually the find the app bundle?
Edit: I published a new build that no longer requires being installed in /Applications and is confirmed to work on Mac OS X 10.6.
Also, here's how you do movement:
Store the state of each key, when it's pressed be like `leftKey = TRUE` and when it's released by like `leftKey = FALSE` and then have some code run every frame and be like `IF leftKey is TRUE then like character.x -= movespeed`. And if you're feeling fancy / want it to look nice you should actually make that accelerate instead of instantly change, but that's the general idea
In any case, the idea is solid, although I find that there are a few problems with the game as it currently stands.
- Collisions with trees feel a bit strange, simply because they are perhaps *too* "realistic" -- i.e. trees don't form quite a solid straight-edged wall, but that's how one would expect them to be in a game.
- The spiky walls have no discernible differences from the trees, except for that collisions with them do not suffer from the same problem. I'm guessing that there were plans to use them that were simply scrapped?
- There is no graphical hint on the first level with a door that the door can only be opened from one side.
- The second level with a door is completed simply by walking underneath the entire map -- is this intentional?
- Until I started writing this review, I was not entirely sure that the last level is a win screen. In order to make sure, I looked back, and sure enough, it does spell out "You won." Perhaps it should use a more contrasting tile type, because as it currently stands, it mostly just looks like a forest.
Thanks for the feedback. Actually I think why the reason why collision with trees is strange is because I didn't implement any proper collision detection (I just used bounding-box detection and made it tolerate going a few pixels in). Originally all the brick walls where trees but I replaced them with brick walls because the trees have a randomised position to make it more natural and sometimes you can slip through the trees and other obstacles, so the brick walls are for making strict boundaries.
Yes, there is a bug that lets you go just under and to the right of the screen (it also affects the first level with a door) because I didn't properly test the code that stops the player from going off-screen, I'll fix it.