Inspiration

Having experience with teaching children, our group knows that kids hate Python. Often, kids switch from Scratch to Python and find text-based games to be boring: they're going from a visual language to a written one, and they sure love seeing scratch cat! Because of this, we decided to make it easier for Scratch-learning kids to transition to Python and keep the visual aspects of their code!

What it does

PyPlay ports through the basic features of Scratch via PyGame and handles all of the multithreading behind the scenes so that kids can learn to code easily, continuing making Scratch-like games while learning to write in a full-fledged programming language.

How we built it

PyPlay is built using Python and PyGame, and features a multithreading framework with a thread for each script, allowing for otherwise 'blocking' commands like wait() to be executed without suspending the main thread. These threads are used to control various aspects of sprites akin to Scratch

Challenges we ran into

Multithreading was a substantial challenge we ran into in completing this library, as we encountered various issues with differences between Linux and Windows thread implementations which limits the capabilities of our engine on Windows. We also implemented bitmask collision detection, which was very hard to do.

Accomplishments that we're proud of

We have a working game engine and a demo to show it off and it succeeded in being Scratch-like, able to be learned by children with ease.

What we learned

We learned about how to use Python for multithreading and how to recrate a game engine, making its functionality simpler for kids to use.

What's next for PyPlay

We will continue expanding the library's capabilities and fixing erratic aspects such as bitmask collision detection and windows thread creation. We will also try to expand and simplify the documentation as much as possible and put it on a website.

Built With

Share this project:

Updates