This game is unbalanced!
Game developers know that: it's hard to balance a game.
You create your nice game and your playtesters just say : "This game is unbalanced!".
They all have their specific desires and their own concept of what a balanced game is... It's so hard to satisfy the players!
In "This game is unbalanced!", you watch a little monster play some games. Unfortunately they are all unbalanced for this little fella: either too easy or too difficult... So your goal is to balance them!
-----
A game created for GamedevJS 2024.
Theme: BALANCE
-----
Challenges
- Open Source Challenge
Source code is published here: https://github.com/adrien-gueret/this-game-is-unbalanced - Build it with Phaser Challenge
This game is built with Phaser (even though I had never used the library before!It's my first game with it, I'm sure there are a lot of weird things in my code :D ) - $NOODS Challenge
Goal was to vibe code a Phaser game: I've heavily used Copilot and its agent mode to build this project. Learn more about that below.
-----
Credits
- Graphisms
- Backgrounds generated via ChatGPT
- Spritesheets create by myself on good-old Paint :)
- Audio
- Game concept
- By myself
- Code
- Usage of Phaser library
- Around 40% of the code written by myself
- Around 60% of the code written by Copilot (see below to know more!)
-----
Vibe coding? Is it worth it?
In order to create "This game is unbalanced!", my partner in crime was copilot. This game has been built in less than 13 days with Phaser... while I have 0 knowledge on Phaser.
I've started asking Copilot to create a template for a Phaser project: it did a good job with importing correctly the library and creating a basic project architecture.
Then I told Copilot my idea, with more or less precise specs, and it started to create Phaser scenes by itself! The result was quite impressive 'cause it was more or less what I had in mind. It was ugly, for sure, but it was a very good base for my game!
The next steps were quite easy: giving more instructions to Copilot, or very specific Phaser stuff. I've asked him how to add my own graphics, how to add spritesheets, how to animate them and so on. This step was the most important one: I've tried to understand the code it wrote for me, and I asked for some explanations when needed.
Honestly, thanks to that, I've learned how to write a Phaser game without reading any docs nor tutorials! Quite impressive.
At first my goal was only to balance a platform game but, since vibe coding a Phaser game was fun and interesting, I wanted to go even further. What if I could code more types of games?
That's why "This game is unbalanced!" also have RPG-like fighting levels. Like the platforms ones, I've tried to understand how the generated code works, and I did a lot of refactors to make it better (well... better in my opinion at least!).
Two types of game weren't enough, so I've decided to vibe-code a third one: a racing game, ala "Super Mario Kart"! But it was a bit too ambitious... Impossible for Copilot to generate a Mode 7 effect, and I could not find any tutorials to create one by myself. I was a bit surprised, since Phaser seems to be very good for any 2D games!
So I gave up on the racing game and I switched to Match 3.
The deadline was approaching so I didn't refactor any of Copilot code on this one. The Match 3 Simulation file is probably the most hideous one on this project, with a lot of dead comments Frenglish stuff between almost 1500 lines... ^^'
But anyway.
It was very fun, and I thank the Gamedev.js organizers to encourage us to test vibe coding.
Before the jam I didn't know Phaser at all.
But I was able to submit a full game built with it and containing 3 different types of mini-games.
And I learnt how to use Phaser.
All thanks to Copilot.
Just wow.
--
To balance a bit this return of experience (hey, it is the theme of the gamejam after all!) please note I am a web developer for years now, I know how to code, I know good patterns and I can detect when the AI is trying to bullshit me.
I am not sure the tool will be that efficient for a junior developer. It will certainly help it to start quicker, but without being able to understand the generated code it can be more harmful than helpful, I guess (just look at the Match 3 Simulation file, it's a total mess!).
If the user of the AI has the goal to learn and understand what the AI is generating, it could be the best educational support ever made.
But if its goal is to only click "accept" on everything the AI suggests in order to develop an app whatever the code quality. It could be the most efficient unmaintainable code generator ever made :)
--
Oopsy, I've gone a bit beyond the scope of the game description. I may write an article about that one day! If so I'll put the link here.
Edit: article written! You can read it here: https://medium.com/openclassrooms-produit-design-et-ing%C3%A9nierie/comment-jai-...
(in french, sorry for that!)
Thanks for reading — I hope you had fun with my first Phaser game!
Comments
Log in with itch.io to leave a comment.
Show post...
I'm really looking forward to playing this game — I think it'll be perfect for my casual gaming nights!
You look like the type of person who'd enjoy this jam: WOW JAM
They have a very interesting platform and are even offering prizes xD
Félicitations ! C'est vraiment un super projet de gamejam et une chouette idée, assez représentative de comment la recherche de l'équilibrage peut être une longue session de test, et qu'il y a beaucoup de variables ajustables pour arriver à un résultat satisfaisant. L'IA du Tile matching est assez impressionnante.
Pour le combat RPG, sur le dernier niveau, je me demande à quel point l'aléatoire joue dans la réussite, dans le sens où parfois, même si on perd, ça peut quand même sembler équilibré.
En tout cas, c'était très plaisant à faire. Un bouton pour interrompre ou accélérer la phase d'observation (avec un peu plus de temps) peut être utile.
Merci beaucoup pour ce feedback !
Il y a effectivement un peu d'aléatoire dans quelques niveaux : je me suis dit que ça faisait parti du jeu de l'équilibre, car en moins de 13 jours pour coder le jeu j'ai choisi d'investir le temps ailleurs x')
Un bouton "speed up" était initiallement prévu, mais il cassait la physique des jeux de plateformes : j'ai perdu 2 bonnes heures pour réparer ça, mais j'ai finalement laissé tomber : le vibe coding a ses limites... :'D
I figure a game can be slightly illogical and be broken if it was played long enough, but if it holds together long enough to showcase my SoundCloud music it's an interesting vehicle -particularly- if the musician in question has like in prior decades been a massive game consumer but reflexes are slowing down lol
That's good. 45 days ago I did about the same with March of the Seventy-Two Demons because i was a musician who innately had done messing-with-programming every 5 years then dropped it over and over around reaching the 'teach yourself in 21 days' book-level, since the 80's but not programmed a full game and put it out ever. I entirely did it arguing with Grok.
Good to see people are being enabled.
Really great concept, super funny, and also enjoyable to tinker with someone elses balance for once!
Only feedback would be to make the scenes play out a little faster :)
Thank you for your feedback! I've planed to add a "speed up" button, but it broke the platforms physics, so I've gave up ^^'