My little brother, who had used in the past, tried to learn Java and object-oriented programming but found it was very difficult. Since I was helping him along the way, I realized that Java's unfamiliar syntax was as much a hurdle as OOP principles. Thus, I thought to re-create scratch but with objects instead of sprites would be a nice bridge for kids who are already intermediate in scratch but beginning in "real" programming.

What it does

As of right now--- not much :( I worked on this project alone and balancing this and school work was a burden. The editor is somewhat working and adding new blocks is super easy using the built-in block editor, but giving those blocks functionalities isn't possible yet because I didn't have time to complete the transpiler. Regardless, the concept is there: object-oriented scratch. In the video, you'll see I'm creating blocks, "methods," and giving them parameters. Thanks to the javascript back-end, there's no strict typing other than boolean/value, which makes it even friendlier. Moreover, the class I'm editing "Player" extends from "Sprite." Sprite is the base class(similar to object) in soop and contains the basic blocks for creating games(or at least it would if I finished). Later in the video, I use a debug tool to switch to a new class "Gamer" which extends from "Player." Normally, there's be a GUI for this but, again, I didn't have time. The most important part of this is that you can see the block we created from before, "take damage," can now be overridden, as well as the variable "health" is inherited.

How I built it

I used typescript and this was my second web project.

Challenges I ran into

Working alone :( And painstakingly re-implementing the scratch block system

Accomplishments that I'm proud of

It looks kind of slick and the concept is there

What I learned

What's next for soop

I'll keep working on it! I think it has potential!

Built With

Share this project: