Art & Music: Designing Games (Spring 2024)

For the next two weeks, we'll be looking at basic game design. Please use this forum thread to post your progress as well as your peer feedback.

Module resources can be found here: Module 11 – Make to Learn

Old (but working) start of the minigame:
https://snap.berkeley.edu/snap/snap.html#present:Username=gmtsuh&ProjectName=Assignment%2012%20-%20Game%20Copy%201

New (not yet working) start of the minigame that I will update:
https://snap.berkeley.edu/snap/snap.html#present:Username=gmtsuh&ProjectName=Assignment%2012%20-%20Game

Concept, Rules, and Game Loop:
My game concept is a Zelda-esque minigame wherein the player (working name "Loink") fights various enemies to earn as many points as possible before time runs out. The game starts with the player being unarmed and having to go into a cave to receive the "Meister" Sword, a reference to the original Zelda game. The player then returns to the open field ("Outside") to fight monster, racking up points. If a monster touches them, they will lose a heart. If the player loses 3 hearts, they will lose the game. The player would retreat into the cave to buy powerups with their points: sword upgrade, heart, speed, etc. When the timer hits 0, the game is over.

Additional Thoughts on Certain Rules (Time and Powerups):
My hope is that I might be able to implement a time powerup as well, which could give the player some extra time to fight monsters. I am currently planning for time NOT to stop when the player enters the cave (thus requiring quick decisions on what to buy) and for powerups to be somewhat randomized. I feel like that's a bit ambitious, so I might decide to freeze time when the player goes into the cave and just have standard powerups and set prices. I could impose limits on them to make the game harder.

What I Predict I Might Need Help In:
I think the hardest part will be switching my game over to using scenes and just generally getting used to how they work. I definitely think they are the best way to proceed. The timer could also prove somewhat of a problem, but I think that's only if I misunderstand how data works with scenes. I feel pretty good about my plan the way it is along with the modifications if what I want doesn't turn out.

Update (April 8th):
Overall, my game is still heavily in progress and not cohesive as I've been testing block by block. I've been working on getting the shop (where the player trades in points for powerups) working, and it's very close to working. It doesn't have costumes yet though. The enemies spawning and such will take longer for me to complete. I haven't run into major issues; it's just taking time to do.

Update (4/10):
I've done a lot of work in cleaning up how my first scene transitions to the second one. They look a lot cleaner. I've also implemented a timer. Still working on switching scenes back. Also, I managed to get my code stuck such that I could not edit the first Scene, so I had to make a new copy. Here's the new link:
https://snap.berkeley.edu/snap/snap.html#present:Username=gmtsuh&ProjectName=Assignment%2012%20-%20Game%20Improved%20Somewhat

Update (4/15):
https://snap.berkeley.edu/snap/snap.html#present:Username=gmtsuh&ProjectName=Assignment%2012%20-%20Further%20Draft

Once again, my project changed names due to an issue with Scene placement as I had needed to make a different Scene my first one. I found it easiest to export and import the scenes I needed.

My game mainly operates by passing the the Player's data back and forth between the Field Scene (where you fight enemies) and the Cave Scene (where you get your sword and can buy stuff). This data includes whether the Player has their sword, their current Hearts, their Points, and the Time remaining.

Of these, I think the one of particular interest is the Time implementation. I decided to base the current Time off of Snap's "wait _ secs" block. In a forever loop, this block alternates with subtracting 1 from the current Time, then updates. When the Player touches the Cave Entrance/Exit, the Timer stops. The Time is sent through the Player Data List to the next Scene, and once that Scene has finished its setup, the Timer starts again. I did not use Snap's actual Timer block as I thought my implementation was easier, and I didn't have to worry about potential rounding issues. Making a starting Time and just subtracting from it also was much easier. This is a change from my old Time usage, which didn't countdown but just added.

Once the Player has retrieved the Meister Sword from the Cave, they are ready to fight the Deku Scrubs (the orange monsters). To do so, get close (but not too close, or else you'll lose a heart!) and press Space. They will give you some points. The Deku Scrubs don't spawn as quickly as first in order to make getting to the Cave easier, but once you have the Sword, they spawn faster.

You can also collect Gems to gain points, but they spawn less frequently than enemies even though they are worth more.

Gaining items, getting hurt, and attacking enemies have their own sound effects.

The only issue I have noticed is that sometimes the arrow keys seem to get stuck. I've gone over my logic extensively and tried different methods, and I've come to the conclusion that my computer's arrow keys just get jammed more easily, which I've noticed when doing other things. (I've also noticed that it seems to happen more as I've been more aggressively testing my game and mashing the buttons harder.) That being said, the issue seems to resolve itself if you tap an arrow key in the same direction it's trying to force you. To accommodate for this, I put extra space than before around where the Player comes into/out of the Cave, which should give enough time to do this or catch the Player on a wall instead.

It is a functioning game, but I'm definitely thinking of expanding and improving this game for the final project, which I think will be fun!

https://snap.berkeley.edu/snap/snap.html#present:Username=rjha11054%40gmail.com&ProjectName=Game

Started working on river crossing game. I acquired the sprites and part of the background. I will build on it from there.

https://snap.berkeley.edu/project?username=freyalin2021&projectname=Week%2010

I will start working on the game of a cartoon character chasing the soccer ball. Player can manipulated the character to touch the ball in order to gain points. If player doesn't get enough points within a time limit, player lost and computer wins.

Snap! 12 ghost game (berkeley.edu)

Instructions/Story

You're walking through a haunted forest equipped with nothing but an old camera with flash. For some reason, the ghosts slowly reveal themselves through your camera (which you can bring up and put away with the space key), but if they fully reveal themselves then it's game over! They seem to be afraid of your camera's flash (left click), but only when they become solid enough to be affected by it. Your flash also takes a bit of time to recharge, so be mindful of that. Once you've cleared all the ghosts where you're at, you can move deeper into the forest by clicking the arrow at the bottom of the screen, but if there's any ghosts remaining when you move on, it's game over! Eventually you'll make it through, hopefully...

Additional Thoughts

While the game has a win condition now, I still plan on continuing work on this project as there's still a couple things I want to implement, namely an actual game over jumpscare and adding a bit of actual "story" to this. I drew all the sprites myself, but the photo backgrounds I actually took from Unsplash. The sounds I all sourced from freesound.org, and edited them to my liking. One thing I want is for the ghosts to only be actually visible through the camera screen, as they currently also show up outside of it, but I think that'll be very difficult to figure out.

This is really cool! I'm looking forward to your use of scenes to create different play areas. I'm not sure if this was an intentional design decision (I've never played the original TLOZ...or any of the series, for that matter), but I found it a bit restricting that I wasn't able to move diagonally, which can be rectified by using four concurrent if blocks, rather than if...else if...etc..

Game concepts:

How to start: I'll make a start button for users to click to start.

Game rules: If a user starts the game, a ball will be on a line at the bottom of the stage. In that line, there are holes/unconnected parts. You have to move your sprite to those parts to make it fall down to a lower level. New lines keep getting generated from the bottom but the positions of the holes are different and the number of holes are also different. As the ball goes down one level, the user gets a point. The speed of the lines coming up gets faster.

How it ends/loses: If the ball hits the top of the stage, then the game is over. Your score will be displayed after.

Here is the link:
https://snap.berkeley.edu/snap/snap.html#present:Username=jason0314&ProjectName=game%20project

I'm having trouble generating random lines that have unconnected parts on each line. I don't know if I have to create them all manually like sprites or not. I still have a lot to put in like music and actions. All it does is move left or right when the arrow buttons are pressed.

Updated 4/10: I think everything else works fine except two major things. When the ball hits the line it disappears. And the other thing is that, for some reason, touching (top of the stage) is always false even if the ball is above the stage. I want to figure that out. Other than that, I think there are no other big issues for now. I just need to make a sound every time the ball goes through the line.

Updated 4/14: I fixed my previous problems. Now, when the ball hits the line it stays on lines and it goes up as the lines move up. Also, I fixed the problem that touching is always false even when the ball is above the stage by using the exact y position. If the ball goes above the stage, the game ends. The ball doesn't go off the stage including the left and the right side. I created a score variable to measure the playing time. As I mentioned in the game rule section, the speed of the lines moving up gets faster and faster.

Game concept:

Clouds are flying randomly down the screen and the player is controlling the sprite in order to dodge the clouds.

Another idea is to have progressing levels where the clouds get faster and faster.

https://snap.berkeley.edu/snap/snap.html#present:Username=hxyhxyhxy&ProjectName=Assignment%2012

Game Concept:

I am thinking about taking the old-school jumping dinosaur game and giving it a new theme and character. Right now, I thinking of giving a pixel, dream core, and anime theme. Maybe adding some levels and score board for the players. I also added sound effects and music in the background for a better experience.

How To Play:

Press SPACE to start

Update4/10: I edited my code a bit. Also added a beginning instruction screen for the game. I'm aware that the game lags when the green flag is pressed, even when I tried a couple of times it won't launch. I made the ghosts move in a more random pattern and require a quicker reaction from players. I also added a couple of new themes as they change when the player plays the game but it won't launch correctly.

4/14: I figured adding too many sprites and codes could lag the game and unable to launch. I had to do some subtraction to make sure the game was able to work out.

I currently have three games in mind: fruit ninja (slow ver.), some sort of drag and drop (put the strawberries in the “strawberries” basket — inspired by my teacher’s son) game, or something like "synthetic watermelon". I’m not 100% set on making a game tho…open to other projects but have no idea on what project to do.

https://snap.berkeley.edu/snap/snap.html#present:Username=herrrren&ProjectName=Game%3F

For the final project, I am planning to build a maze with default HP and randomly generated enemies in the maze. The character will need to collect keys separated in the maze in order to unlock the exit. Enemies will be on a looped course. They will reduce the character's health bar by a certain amount. When the character's HP == 0, the game will end and the player will lose. If the character successfully arrives at the exit, then the player wins the game.

Updated: I added some code so that when pressing respective arrows can make the player character move in respective directions. For the enemy part, I was thinking about how to make the enemy approach the player. Since each sprite has different x and y locations, I haven't figured that out yet.

Updated: I modified parts about keys. I am planning to finish the player move part and enemy chasing part this week.

Updated: I finished implementing all the parts. The character will need to collect keys separated in the maze in order to unlock the exit. If it arrives at the exit but fails to collect all keys. Then the player will lose the game. Enemies will be in a looped way. It will reduce the character's health bar by 50. When the character's HP == 0, the game will end and the player will lose. If the character successfully arrives at the exit, then the player wins the game.

https://snap.berkeley.edu/snap/snap.html#present:Username=lexiliiiii&ProjectName=FinalProject&editMode&noRun

Currently have two games in mind:

Dinosaur Game: you would be always running forward and jump over cacti, the dinosaur will get faster and faster until you lose.

Possible Challenges: Worried about the side scrolling not being able to keep up with very fast speeds. Also calculating the physics would require a lot of kinematics equations.

Duck Hunt: You would shoot the birds moving in the air to get points and if you don’t shoot enough in time the duck hunt dog will laugh at you and you would lose a life. If you lose three lives for example you would then lose the game.

Possible Challenges: Can’t think of any at the moment. Maybe with randomly generating birds and possible delay with clicking on the mouse and the bird disappearing.

I’m leaning towards Duck Hunt because it seems more feasible to recreate and is not as well known as Dinosaur Game but I would love to hear
feedback

Edit: I see someone else on the forum also is thinking about Dinosaur game so I might do Duck Hunt to avoid duplicate projects

Update (4/7): I created a very simple version of the game Duck Hunt which I hope to expand upon this coming week:

https://snap.berkeley.edu/snap/snap.html#present:Username=kidusfasil&ProjectName=Duck%20Hunt

Rules: Shoot the ducks flying by clicking on them with the mouse. After shooting 3 ducks, you will win the game. If a duck flies offscreen the Duck Hunt Dog will laugh at you and you will lose the game

Game Idea:

I want to take my previous Mario themed assignment and create a sort of Pac-Man inspired game where Mario has to collect the coins on the scene without getting hit by the mushrooms that are chasing after him. If he gets hit by the mushroom once he becomes smaller and if he gets hit by the mushroom a second time, he loses the level. Once he collects all coins, he is taken to the next level until he reaches the final level where he must collect all the coins and avoid Bowser. I could incorporate the typical Mario powerups but I'm not sure that I want the user to be able to kill off the mushrooms.

Current Version: Snap! Build Your Own Blocks

I've finished the first level of the game where if Mario is able to collect all the coins without touching the mushroom you win the game. I do have a few bugs though which I haven't been able to figure out. One being that regardless of if Mario is touching a coin the coinCount is constantly increasing which it's broadcasting "win game" prematurely every time (I disconnected the part where it shows the win game screen because this kept happening). Also Mario never reacts to touching the mushroom, that should trigger the end of the game but it doesn't unless the mushroom is standing still.

Edits: I'm still trying to figure out the bugs but nothing is working!

Final Edits: Took so long but I finally figured out how to get around the bugs and the solutions were so obvious, I was just overthinking it. You can finally win the game now and it shows a win and lose screen when the player wins or loses.

Game - 04/03/24 I've got the animations working, and now I'm polishing the directional turning

Update: I've made a game where you navigate a space to avoid getting hit with homing projectiles. To win, you need to get a key and then get to the door to exit. You have two lives (blue and red) before the map resets.

Update: Added in walls to the side and started adding in "Delaunay constrained triangulation", which will make the visibility easier

I really like your background and music, for the game, like jumping to avoid ghosts, maybe you can have ghosts appear at different time intervals to make the game harder.

https://snap.berkeley.edu/snap/snap.html#present:Username=evc2bds&ProjectName=Pacman%20-%20Eloise%20(4%2F7%2F24)

I edited the pacman script that Professor Bull wrote by changing the maze for pacman. I changed the grid from 9x9 to an 18x13 grid. I entered the different locations of the walls into a reporter block and created a custom code block to record the grid locations. I then created a block to get the positions for the food and the positions that the ghost and pacman can move through. I also created a shortcut from the left side of the screen to the right side of the screen. I think that the shortcuts may have caused some issues for the ghost chasing pacman (for example sometimes the ghost will leave the screen or pacman will go through the ghost without dying), so I want to work on that more to fix those issues.

I love the animation that you made of the person walking and the sound effects that you added to it. I'm excited to see how you continue to add to it!

This game sounds fun! If you don't want Mario to be able to kill off the mushrooms permanently, maybe the powerups to kill enemies could be temporary like in Pac-Man. In Pac-Man, the ghosts would regenerate themselves some time after being eaten. If you wanted to keep the challenge aspect but allow the player to be able to get rid of enemies, it could just be temporary.

Thanks for the feedback! The lack of diagonal movement was an intentional choice to copy the limited direction of the first game, though, so I probably won't be changing it.

Snap! Build Your Own Blocks Here is my link to the project

Game concept:

Game rule: player control the character("bee") to gather pollen("dots") in order to accumulate points. If players touched the red pollen("dot"), they will gain one points. If players touched the green pollen("dot"), there will be a one point deduction.

What I have done so far: 1. imported the music and cartoon from last project
2. allowing the player to move their character in any direction by pressing arrows
3. sdd new character and background

How to Improve: 1. get rid off the background of bee and flowers
2. make the point system to calculate players' points
3. let the system know which color pollen the player was exposed to in order to calculate points