Homepage > Projects > Rock, Paper, Death!

Welcome to... "Rock, Paper, Death!"

- A computer simulation of a rock-paper-scissors game that I'm trying to keep based in randomness. But, let's start at the beginning:

You must have seen them, I have seen them: The absolutely amazing computer simulations of rock-paper-scissors games from TikTok-user "@livingrps".
I found them so great and inspiring, they made me want to start my very own project based on the observation of their simulations.
So, credit where credit is due: TikTok-user "@livingrps" builds the fundamentals of this project.

However, not only them, but another simulator-creator on YouTube inspired this project. User "Morigan"'s video will also set the course for the project to come.

To describe both of these simultation types in a short form:
All of livingrps' videos show us a blank rink at first. Then, in the next frame, the objects spawn.

To make the dimensions clear with an example, I will rest my case with this video. Here, 78 objects spawn. 21 rocks, 27 papers and 30 scissors. The following statements are generally applicable for the majority of livingrps' simulations, still, they derive from said example.

The objects, stylised in emoticons, seem to span in relatively even distributions: Most commonly in groups of 2-3 objects of the same type. Then, over the following 41 seconds, they move around the rink slowly. Their direction is set to the direction of the group with which they are moving (5 papers are always moving together, as long as they are currently touching or had touched each other very recently before). Upon impact with another object type, the 'weaker' object takes on their direction (and their form, it is still rock-paper-scissors after all). The 'stronger' objects continue as before, until every object is of the same type. Another thing worth mentioning is that the rink seems to 'shrink', since every object gets closer to one another with passing time.

Screenshots of livingrps' video.

"Morigan"'s video is - compared to livingrps' - more of a montage. The 'important bits' (for the description, at least) start at 0:21 seconds, for everyone interested.

In general, the frame in which these competitions are held is similar:
Many objects spawn on a blank rink. In Morigan's case: up to 100 in groups packed tightly. We can observe here too that the group is moving in a 'coordinated' way (into same direction). Due to the tight packing, changes in object types are more rapidly occuring. Just like with livingrps' video, the rink seems to shrink. The 'weaker' objects seems to change its direction to the direction of the 'stronger' object here as well.
Sadly, I could not gain more insight to remaining secrets via their code, since the game is free to download. In this manner:

🖝 You can download Morigan's simulation on itch.io! 🖜
Please support the creator, tip them - their work is great!

To visualise this process as well: (please zoom in!!!)

Screenshots of Morigan's video.

So, to summarise our findings broadly:
  1. Both videos visualise rocks, sheets and scissors with emoticons.
  2. In both videos, the emoticons can move.
  3. In both videos, a 'stronger' object wins over a 'weaker' object by changing its from to this of the 'stronger' one.
    • Example: A rock makes a rock out of a scissors upon impact.
  4. In both videos, a direction is given at spawn and can be transfered though touch.
    • A 'stronger' object influences the direction of a 'weaker' object. A 'weaker' object does not influence the direction of a 'stronger' object. The same objects don't influence each other.
  5. The game ends when every object is of the same type.

What Does This Mean For My Project?

Cool, you might say. Which of these parameters will you explore further, which will you drop and which will you ignore?
Difficult question. I will probably try out multiple versions, each with different parameters. In general, I want to uphold:
  1. The visualisations in emoticons or easily identifiable symbols.
  2. The movement, even though I might accelerate it.
  3. Obviously, the rock-paper-scissors aspect of it: A 'stronger' object wins over a 'weaker' object by changing its from to this of the 'stronger' one.
  4. The touch-setting-direction.
  5. And that game ends when every object is of the same type.
I don't quite know how I want to implement the directions-setting. I mean, in general, I have four options:
  1. Stronger object hits weaker object. Both change their directions to a random value.
  2. Stronger object hits weaker object. One changes its direction to the direction of the other.
    • The weaker takes on the direction of the stronger (common).
    • The stronger takes on the direction of the weaker (uncommon).
  3. Two objects of the same type hit each other.
    • They don't change their direction.
    • They change their direction to a random value.
  4. Upon impact, no object ever changes its direction.
Eh, I don't know. Maybe I'll make multiple variants? Do you have an opinion? State it on the board!

SOFTWARE

For my project, I will use Scratch 3. For those of you unaware of Scratch:

Scratch is a beginner's coding platform that we used in school from grade 8-10 and with which I am very familiar. Even though Scratch is built as a very simplistic platform (with the user only needing to drag and drop coding "blocks" into an area), it contains very powerful variable setting and math tools (that we for example used for encryptions!). Here's a screenshot from the UI:

Screenshot of Scratch's UI.

CREDITS

Tiktok account "livingrps"' video (tried to save it with the WayBackMachine, let's see if it worked!): 🖝 Click here!

YouTube user "Morigan"'s video: 🖝 Click here!

Wish me luck with this project! I am but a busy high school student ): recently stuck in exam season )): So, I probably won't get to work on this until further notice, but I wanted to post anything! So, here is this report (: Anyways, have a good day!!! :D