Inspiration

I really like online games and wanted to learn gamedev, and wished there was a game that helped me learn how to create AI for games. Things like creative ways of doing path-finding, I think would be best to learn in a competitive environment with friends.

What it does

Pynguins is a multiplayer online programming game, where you write code to control little pynguins in python. You get access to the game board, and the location of other players, and must write a function that gets run every second, and returns your next move. You can walk, shoot snowballs, pick up ammo, and "uniforms" which let you walk on snow or through fire. And yes, there's Fire. The fire slowly spreads through the map, though you can buy yourself time by throwing snowballs, or just speedrunning to your opponent to get them first. Try out various path finding algorithms, and strategies, and hope you don't hit nash equilibrium!

How we built it

The WebApp is built using Ace for the code editor and p5.js for the game board. On the backend, we're using Python with FastAPI. MongoDB is used to store game data, and Redis is used as a PubSub system to broadcast game state to all the players with . The builtins eval and exec are used to execute the user's python code in process.

Challenges we ran into

Due to the short deadline, and limited experience with graphics and UI, it was difficult to get the front end working fast enough. We weren't able to implement outfits and gameover. We also had issues creating free pixel art that could be used for customization. When we ran out of time for customization we then had to scratch all assets set aside for building your own penguin and set up only three types.Another challenge was getting the map scroller to work as the example for it had little to no explanation.

Accomplishments that we're proud of

The concept works, and would be a great teaching tool for aspiring game developers, as well as a way to demonstrate game theory concepts. The pixel are is very nostalgic, and we're really proud of the domain name.

What we learned

Learning the process for game development as well as how the code testing process should go for games. We learned how to properly implement the graphics for games and set up prerequisites to playing the game.

What's next for pynguins

We'll be implementing pathfinding algorithms to teach them for a WiCS TechTalks. We'll also be adding resource collection, and redoing the UI and graphics before the Talk.

Share this project:

Updates