early screen shot and now ..???

Slurp Fantasy


Best Inverse Kinematics
Presented by mit-mit

Least Irrelephant
Presented by Cosmologicon

Give this entry an award


Ratings (show detail)

Overall: 3.3
Fun: 2.8
Production: 3.6
Innovation: 3.4

2% of respondents wished to disqualify the entry.
Respondents: 8


File Uploader Date
Final game entry
gummbum 2024/03/24 23:11
Final game entry
gummbum 2024/03/24 23:11
early screen shot and now ..???
DR0ID 2024/03/24 18:05

Diary Entries



### Slurp Fantasy - Pyweek 37 ###

* Pyweek 37
* Theme: Tube
* [ Multiverse Factory 37 project on pyweek.org](https://pyweek.org/e/MultiFactory37/)
* Team members (pyweek.org names): DR0ID, gummbum

### How do I get set up? ###

* Download the final package, unpack the files into a dedicated directory
* No configuration is necessary
* Install dependencies:
  * Install Python 3.10+
  * In the game directory: pip install -r requirements.txt
  * Dependencies: Python 3.10+, pygame-ce 2.4.0 (developed and tested with these; other versions may work, but please do
    not report bugs with other versions)

    **!! if you use pygame please make sure to uninstall it first before installing pygame-ce**

  * Run the game in Python 3.10+:
  * python run_game.py
  * py3 run_game.py
  * py -3 run_game.py

### Who do I talk to? ###

* @dr0id_ in Python#pyweek-game-jam
* @.mrgumm in Python#pyweek-game-jam

### How to play the game ###

User the mouse and the keys a s d w (or alternatively space to jump)

### Tips ###

Try to eat some!

### Thanks ###

Thank you for playing. And if you made a game for Pyweek 37, thank you and good luck.

Add a comment

What I have learned

Inverse kinematics

This is the first time I have implemented an inverse kinematics system. Surprisingly, the implementation took not much time. But tuning and limiting the angles took longer. At first, I did the flip wrong (when changing look direction from left to right or vice versa). This is a very simple implementation (albeit using 3D vectors) and a full 3D implementation would take probably a bit longer and would need to keep a transformation matrix instead of only basically a point and vector. I have to investigate how constraints could be implemented in 3D.
Playing around with a kinematics system the idea of skeletal animation isn't that far away. It could probably be done pretty easy. Taking key frames would be a matter of an editor and the animation should be pretty straight forward using the vectors slerp and lerp functions to calculate the positions in between the key frames. Maybe next time.

procedural generated images

This time we decided to not use any paint program but to try to generate the art by code. You have seen the result. It was fun. One advantage I see is, that it could easily be parametrized for animations or similar.

scene graph

The game does not use a scene graph, but there is the ability to attach and detach an entity to other objects. The idea was that the attached objects should transform the same way as the object itself, e.g. if a platform moves all objects attached to it like plants or the player standing on it should move too. This is a very basic form of a scene graph. One thing that I probably miss is the mouse pointer. When standing on a moving platform the mouse pointer seems to lag behind the movement. I haven't looked into it but I think the movement of the platform isn't taken into account.

Add a comment

Mechanics and puzzles

After reading the ratings here a few words:

The relation to the theme is the drinking straw which is like a tube or pipe. The kid in the intro plays with it (slurping and blowing) and thinks of an elephant.

First thing to figure out was that the suck action is triggered by a right click. Left click lets you blow.

Second thing was in the dream world as elephant that one could suck in two things and blow them out in reverse order.

Third thing is the power bar. The tip in the readme was Try to eat some.. If you eat the right things then you power bar gets green. The greener the power bar is, the further you can blow. Eating is done by moving the mouse cursor to the mouth (the tip has to be on the mouth) and blow the fruit you sucked up earlier.

The rotating platform: this was the main puzzle and here is the way solve it: you need patience, grab some bananas from the left tree (wait until you can reach them) and eat them until the power bar is full (green). Then grab some more (does not matter if banana or lemon) and shoot the target on the right (should be reachable with the full power bar). Next wait until you can hop on the descending platform on the right and move to the end.

Overall for us it was a fun pyweek and had some other fun ideas for this game. But unfortunately we ran out of time to implement them or to design more levels.

Add a comment