Art and Music (Fall 2025) - Module 10: Making Games

“Creating Art & Music" is an introductory course designed to introduce creative activities in the context of art and music. Thus far the course has been taught at the middle school, high school, community college, and university level (with appropriate adaptations for each level). Each week this fall, students in the course are posting their projects in this strand of the Snap! forum. Here is s a link to the course materials:

Art, Animations & Music

In this week’s module, we will begin exploring how to create games in Snap!. Since games tend to be more complex, this module will extend across multiple weeks, as we develop concepts, create first drafts, and then refine mechanics and features.

As a jumping off point, please review the documents on the course page for the module on Designing Games. This includes links to several games of varying complexity as well as text documents showing how they were built.

The games included are:

Side Scrollers
Simon
Pong
Battleship
Pacman

Feel free to review past versions of this module or other projects published in Snap for additional game ideas.

Once everyone has outlined a game they want to create and described the elements they want to include, we’ll work on creating those elements and assembling them into a fully functioning game.

Hi everyone! For my project I think I’m going to create a platform jumping game. I will have a character and players will be able to move the arrow keys to move the character up, down, left and right. The goal will be to have the character jump to higher platforms in between hoops to reach an end goal. Maybe there will be some checkpoints or little prizes along the way too!

Game mechanics:
I will need to implement different platform structures that the character can jump through. I may have them move up infinitely and generate infinitely to make the game trickier too. I will also need to implement the character that jumps on the players keyboard moves.

Win/loss conditions:

You win if you get to the very top of the platforms. I think I will have obstacles along the way you have to avoid, and you lose if you run into any of those obstacles.

Potential difficulty:

I think it may be difficult to implement moving platforms, while also having the character responding live to the user’s key presses. This is why I think I may start with just stationary platforms for now and add on if there’s time.

Hi, everyone! It’ll be pretty simple, but I want to try to make a paint-by-numbers project. I intend to draw something up, section it off, and make each portion a sprite that can be colored when clicked. Other than that, I would love the user to be able to select their own color palette and switch colors manually. I think it’ll be a fun but calming gameplay experience.

The mechanics will be minimal. The user will be able to select colors for their palette, change the color of their brush, and color sections of the drawing.

There won’t really be a loss condition for this. Rather, when the user finishes the drawing, a congratulations message will show, and they’ll be able to see the finished product.

I don’t think this project should be too difficult, but I intend to have some early problems with designing the drawing and making the sprites. I should start sketching early to get an idea what I want to do for the image.

Update: I’ve been slowly getting started, but have hit some bugs along the way. While I don’t have anything very functional yet, I’ve been playing around on this project to see what works and what doesn’t

Hello! For my project, I want to work on replicating a small section of Cooking Mama, the DS game. It’ll include a Sprite being the Cooking Mama and you can use the mouse to simulate her chopping, mixing, and combining different ingredients. I want to simulate a single round of her making something, and will plan to do an apple pie. If all of the steps are followed to make the apple pie correctly, the player will win. If any step is done incorrectly, they will lose the round. I think displaying the different ingredients and making sure they visibly change when the player does the “mixing” or “chopping” steps might be difficult. I haven’t yet created any code, but looking forward to getting started!

For my project I was thinking about doing a Piano Tiles-style game basically based on hitting the correct keys, either on a computer keyboard or on a MIDI player, at the correct timings. I would implement this by creating a “hitbox” with moving objects colliding with a stationary line as the timing when the note could be pressed. In this way, I could match the key pressed with the current note (or just the correct keypress) and speed up with success or interrupt/exit with failure. I’m deciding whether to do this with random notes, where it’s more of a pure game of just hitting the correct keys, or if I want to try and make it more musical with hitting specific notes in specific order, more like Piano Tiles. I also am deciding between doing so with the MIDI keyboard vs the computer keyboard still, but I’m leaning towards the MIDI keyboard.

I was hoping to make a game similar to Five Nights at Freddy’s where the goal is to keep the antagonist entities at bay until a certain time to win.

The main mechanics I would need to implement would be the buttons that close the doors to the office when a threat is nearby, a battery system so the player cannot leave the doors closed the whole time, a semi-random process through which the animatronics approach the player’s office to attempt to make them lose, and a security camera system to allow the player to look at different rooms to track the progress of the animatronics.

The win condition for the game would be the player surviving for a certain amount of time without losing to the animatronics getting into the office (in the original game it is about 6 minutes so I would consider something similar).

Some potential difficulties I can imagine is implementing the “decision tree” for the animatronics in a way so that it does not become too easy to prevent them from entering the office at common intervals and introducing a mechanic that necessitates looking at the cameras so the player is stopped from simply waiting for the animatronics to appear to close the doors and repeating that process.

For my project I would like to make an apple cider farm simulation game. I think that it will have a few stages of mini challenges for each part of the cider making process and then at the end your apple cider is judged at a fair. Each mini game will have a different scoring system. At the end of the game you will get a ribbon with your ‘grade’ based on the average of your challenges.

I started to work on the first stage where you harvest good apples and avoid rotten apples. You move the basket using the right and left keys. The score for this section will be Score=(Total good apples)-(total rotten apples). This is the code I have so far: Snap! Build Your Own Blocks

One challenge I’m having is that when you open the game from this link the Right Arrow and Left Arrow keys don’t work, but they do work when you play it in the coding screen.

Update 11/5: I updated the mechanism for tracking when clones are touching the basket so that it is inside the clones instead of a for-loop in the basket. I wanted to try to start making a welcome screen that you click to start the game, but when it switches to the new scene I can’t figure out how to make everything in the new scene start. I looked on the forum and it said you should broadcast a message but it does not show any broadcasts in the dropdown in the new scene.

Update 11/10: Started working on the next level which is going to be a conveyer belt where you remove all of the trash/non-apples from the belt.

Update 11/11: I found the block that reports direction so now there is an if statement that checks if the magnet and the worm are facing the same direction once.

Update 11/17:

-Added additional costume for ‘bad blocks’ .

-Added logic for bad blocks to continuously appear and move on the conveyor belt until touching green color.

-Added clones.

I want to create a game called Catch the Falling Notes. The player moves a basket at the bottom of the screen with the objective of catching musical notes falling from the top. Every time a note is caught a sound is played and the player’s score is incremented. If too many notes are missed, the game ends. Some mechanics I will need to implement are left/right movement of a sprite with arrow keys, musical note sprites falling from random positions, the playing of a sound and a disappearing animation when a note touches the basket, and a life/score system. A player’s score will increase +1 for every note caught and once a player hits 20 they win. A player will start with 3 lives and lose -1 for every note missed with the game ending when 3 notes are missed. Some areas of difficult I anticipate are managing multiple sprites simultaneously, balancing the speed of the falling notes, and displaying score/lives in an appealing matter.

For my game project, I’m planning to make something similar to Doodle Jump. The idea is pretty simple, the player controls a character that keeps jumping up onto platforms. The goal is to stay in the air as long as possible while the screen scrolls upward.

To make it work, I’ll need to add gravity, collision physics (so the player can land on platforms), upward scrolling, and a point system that tracks how high the player goes. The game ends once the player falls or when the bottom of the screen catches up.

I think the hardest part will be getting the gravity right. It has to feel smooth and natural and not too floaty but not too heavy either. Balancing that will probably take some trial and error.

For my game project, as mentioned in class, I would like to make a game simulator for the game Blackjack as it’s one of my favorite games. The idea is pretty simple, it would be the player vs the casino (dealer/bank). A player chooses to hit or stand, trying to get closest to 21 without going over.

I will need to implement a 52 card deck, a shuffle function, dealing function, hand totals. Aces will be challenging as I need to figure out when to use it as 1 or 11. Player input will be needed, dealer (AI) to keep hitting until greater than or equal to 17. Lastly a reset function when cards are low.

You will win/draw if you hit blackjack on the deal. You will also win if you get a higher score than the dealer without busting. I could also implement a score counter instead of using chips to make bets.

The Aces portion of this will be difficult as I need to choose 1 or 11. Preventing duplicates could be challenging, along with managing the game in order from deal, to whose turn it is, and the outcome. Animations could be difficult as well as I need to track 52 cards.

11/22: Here is an updated version of the project, I started with the baseline functions/code and need to figure out the equations to show results. I will then later add more images to look more aesthetic: Snap! Build Your Own Blocks

11/24: There were some contradictory statements with the results portion of this, so I had to fix it so all the cases would work. I also added a little dealer image. I now need to figure out ace cases along with 52 cards.

11/30: I made great edits. Before I had Snap! picking a random number 1-10 to just give me a basis for the game, but now I created a list of 52 cards and implemented it into the game so it deletes a card after every hit. Then I reset the deck after each round. Now I need to figure out aces being 1 or 11.

12/1: Still finalizing the game, but I finished the gameplay essentially adding the Aces to the game, giving the player the option to choose 1 or 11.

12/1 (2): I created a more aesthetic background, while also creating a costume for text instead of having the default labels. This added to a cleaner game.

I think for my project I’m going to make an ice fishing game. The idea is that the player stands on top of the ice and moves a fishing rod up and down into the water to catch fish swimming by.

You’ll use the arrow keys to move the line, and each fish you catch will add to your score. I also want to add some sharp objects or obstacles in the water that you’ll have to avoid, like if the line touches one, it breaks and the game ends. I think the hardest part will be timing how the fish and obstacles move so the game feels challenging but fair.

Hi guys, so the game I wanna build is very similar to a space invader game. Where there is a space jet in the middle and will keep shooting laser beams, and the enemy will try to flood your jet, ie, if a enemy touches you, or you get shot, then game over(maybe add some hp settings here to allow more room for error).

Mechanics, you will control your jet using wasd keys,and the jet will keep shooting by itself. Shoot, move, and dodge until you hit a certain score(level passed)

Difficulty: I think the main difficulty here is the ballistics, I don’t know how to make and track so many flying bullets. Shall I need like 500 sprites? Also how to generate new enemy and their pattern of movements should also be another thing that needs a lot of considerations.

For my project I am thinking of building off of my baseball game to create a home run derby/batting practice challenge.

The idea is that you try to hit as many home runs as you can before you run out of pitches. When you press one key, the pitcher throws the ball at random speeds and angles, and when you press another key, the bat swings. Where the ball goes and how far it goes will depend on the timing of the swing and you get more points for longer hits — like 10 points for a home run, 5 for a solid hit, and none if you miss. The hardest parts will probably be getting the timing and collision between the bat and ball just right, and making the ball’s movement look realistic after it’s hit.

Here is the link to my project, I haven’t gotten too much done, but I’m hoping to make good progress this week! Snap! Build Your Own Blocks

11/17 - For this week I worked on the look of the ball being hit off of the bat and randomizing where it goes while making it look like it is getting farther away. I also worked on the end-game logistics and visuals, creating sprites that create a game over screen and display the score.

I created a simple program as an improvement over last week where it was just an idea. I now have a basic start screen so the game does not begin immediately with a play button. When the play button is pressed it takes the player to what will eventually be the office with two open doors. The doors can be opened/closed by clicking on the doors. I plan to add more to the start screen and possibly an instructions page as well as implementing more of the gameplay functions in the future.

link

Over the past week I have implemented some of the core features of my project to include:

  • Movable avatar (a for left d for right)
  • Backdrop
  • Avatar design
  • Note design
  • Randomization of note falling
  • Honed in on appropriate note speed/size

Seeing as before this week I had only conceptualized my project, I am satisfied with the progress I have made so far. Going forward I plan to finish up the falling notes mechanic, introduce variation in note design, and work on the scoring/life system.

My Project: FallingNotes

I really like the initial work you have done. The door opening animations are very crisp and well done. I think the idea of a start screen is great, the way in which a player is initially greeted is important. Great work so far!

I am going to make a simple Asteroids arcade game, where the player is in a jet in space trying to avoid random asteroids flying on the screen. The player can shoot lasers to destroy the asteroids and earns points for however many asteroids they destroy. The game ends an astroid hits the player. You can move around with WASD and shoot with the spacebar.

update 11/5

  • added penguin
  • added ice hole
  • added ocean background
  • added rod logic
  • added fish caught variable for true/false

My next step is adding the fish sprite and moving fish in the ocean