Coffee Bean's Last Road Trip!
Hack Beanpot 2025 Submission!
Use WASD or Arrow Keys to move the coffee bean into the coffee pot. Avoid every other type of bean, which is using the DFS algorithm in order to find their own target dishes.
Inspiration
The name of the hackathon "Hack Beanpot" sparked the idea of beans as characters, and combined with the theme "road trip," we got Coffee Bean's Last Road Trip. Wanting to make something fun, educational, and somewhat whimsical, our team saw the perfect opportunity to create a unique and charming game. Blending handcrafted art, algorithm-driven gameplay, and a touch of humor, we set out to make a road trip adventure like no other!
What it does
Coffee Bean's Last Road Trip is a fun and strategic adventure where players navigate a coffee bean with wheels to its final destination, a coffee pot. The game features algorithm-driven bot beans, whom the player must maneuver the coffee bean to avoid. Players must make strategic decisions to progress, all while enjoying an animated, charming, 16 bit pixel world. With its mix of exploration and puzzles, this road trip is anything but ordinary!
How we built it
We developed Coffee Bean's Last Road Trip using Unity using C#. The movement of the bot bean vehicles is powered by a depth-first search (DFS) algorithm, creating dynamic and strategic gameplay. The visuals were created by utilizing a matrix that contains positioning info. We created a system that translates the matrix to a visual "map", and then created a waypoint based movement control scheme for bots that changed their waypoints based on their directions in the search algorithm. The graphics were all drawn and animated by our members, giving the game a unique, handcrafted feel.
Challenges we ran into
Implementing the movement algorithm was extremely difficult due to the fact that Unity's visual positioning system uses the standard Euclidian system (+x, +y are both to the right), whereas when creating matrices to run generation and movement, it used the screen coordinate system (+x is to the right, +y is down). This made it so we had to normalize the matrix so we could code the level designs and see them accurately represented on the screen, but also somehow make the waypoints accurately travel on this completely mismatched normalized matrix in the algorithm that read the matrix's data.
Even disregarding the visuals, it was very difficult to translate a basic rendition of DFS into a step-by-step process used by a frame by frame Update() function.
Only one member had any substantial game development experience in Unity, so navigating the software proved a very difficult challenge. Additionally, their experience was mostly in an older version of Unity, meaning certain critical functionalities had been deprecated, adding to the challenge. Our group had very little Unity collaboration experience, so there were many merge conflicts that had to be resolved. Some of these were very significant conflicts that forced us to completely change our approach and strategies for splitting the work.
Accomplishments that we're proud of
We're very proud of being able to have a fairly polished and complete prototype of our game. The algorithm works perfectly, and the game is very scalable. Every challenge that we ran into was ultimately overcome by teamwork and research, which in itself was very satisfying to achieve.
We're also proud of our visual design, as our designer had no experience with any pixel art or animation, yet we had very cute assets.
What we learned
We heavily improved our knowledge regarding searching algorithms and technical skills using Unity and C#. This experience was especially useful in analyzing how coordinate plane positioning is handled, as any small error will result in complete chaos that is very difficult to debug. We learned how to efficiently collaborate and communicate, and also how to prototype and design various mechanics and features.
Comments
Log in with itch.io to leave a comment.
https://github.com/nunnyu/Bean