Metastasis – Midterm Project

Introduction

Switching my idea for this project was the best thing I could have done. Now, I am satisfied with the final result “Metastasis”. The user plays as a cancer cell that has to defeat the immune system’s cells: the white blood cells that shoot antibodies and the T-killer cells that secrete toxic substances in close proximity to the cancer cell. The game takes place in a blood vessel because it is a fitting environment for gameplay for this particular idea. The mechanics of every character in the game are characteristic of their real life counterparts. In order to ensure that the instruction screens are not too wordy, I had to limit the knowledge I impart on my audience about the biology of things. However, for the scope of this project. I believe only basic knowledge is required.

In the first level, the user gets used to movement and attacking as they face off against a horde of white blood cells. Then, as the white blood cells die, they signal the T-killer cell to respond to the situation. As the final boss, the T-killer, is defeated, the user wins the game and the cancer cell goes on to metastasize (grow to other parts of the body and take over). The game starts of with a main menu. If the user chooses to view the Instructions, they are taken to a screen that displays all the characters and the way they interact with each other within the game. When the game ends, either if the user dies or if they defeat the T-killer, the user has the option to play again or go back to the main menu.

Implementation

Where do I start…

I will only cover the concepts that I have not mentioned in the Midterm Progress Report.

1) Now, the user can shoot in all directions. The last key pressed is stored to determine which direction the user will shoot in. This idea of shooting in four directions was encoded to counter the T-killer enemy type.

2) There are now two levels of gameplay. First, the user learns how to play the game on an easier difficulty mode against white blood cells. These enemy types do not move much and fire antibodies. Next, the user has to face off against the T-killer which seeks the user’s position and attacks when in close proximity. To counter this, the user can shoot in all four directions.

3) A main menu, instructions menu, and endgame screens are now encoded. There are buttons on the screen that can take the user to the corresponding screens. When the T-killer is defeated, the endgame screen appears prompting that the user won. On the other hand, if the user (cancer cell) dies, the endgame screen appears prompting that the user lost.

4) Sounds have been encoded. I tried my best to find free sounds online that are the most relevant to the gameplay. Sounds for all the attacks, winning the game, losing the game, and receiving damage were encoded.

5) In the first level, the user can only move up until a little over half the width of the screen to encourage distance from the white blood cells. Eventually, in the second level, the user can move over the whole canvas to adapt to the T-killer’s movements.

Overall, the foundation of this project is built on Object Oriented Design with the exception of the T-killer’s attack that only needs to detect if it is in close proximity to the user to activate the attack.

Here is the game:

Conclusion

In the end, I have added every functionality in the final game that I had planned to add in the Midterm Project Report. Have fun playing!

Midterm Progress

I’m still at the beginning of my game making process so bear with me –

My idea is to make a game where the premise is – “Oh no, my cat escaped into my brother’s room! Help me find him quick before my brother comes back from the bathroom!!” I would put a 1-2 minute timer, depending on how many items are in the space/how difficult it is to complete with trial and error.

I’d like to create an animated moment where the cat scurries from the door to a hidden place in the room and then the game starts but I’m not quite sure how to integrate that.

The biggest problem I’ve had so far is trying to figure out the drag and drop – I’m able to do it successfully with one image but as soon as I try to make more than one image move, my code stops working. I also realize that I don’t completely understand how to make a class and how to ‘push’ it out in draw. I spent hours googling different ways to code in drag and drop (whether that be different shapes/images) but not many came up. Even with those that did, the code was too complex for me to understand.

I finally was able to work around a code to get several images working and moving but it isn’t very efficient. I’ll need to schedule a meeting with the Professor to figure out how to sort everything into classes and make it smoother overall.

Here is what I have so far – very plain but everything will start coming together in the next day/two:

Midterm Progress

So I was inspired by the game Crossy Road and wanted to do a similar concept. I chose the concept of a game where you have to run away from your boss and escape in time while avoiding all the workplace obstacles in the way. The camera will pan down slowly while you are running and if you touch the border you will lose.

I implemented my chosen sprite of a guy in a suit and got it to move left right and up as going down is not needed. I also created a background using photoshop of the hallway that the player will run through. My next step will be to add all the furniture objects that the character has to avoid and the camera pan.

Making all the objects move down while the character runs is something I need to try and figure out as I am not entirely sure how that would work, especially on top of the camera not being static and having to move slowly on its own even when the character is not moving.

 

Wild Wild Taxi (Midterm)

In a previous assignment, I decided to recreate a game, which is more of an appropriate project for the midterm as an OOP assignment. However, this is the perfect opportunity to recreate the game with components that make it more like the real game.

Components that are necessary for recreating the game are (1)adding the keyPressed function so that the mouse is no longer controlling the car, but the space bar to drive forward, and left and right arrow keys to move left and right, (2) add a component so that when the cars crash the game is over and restarts, (3) it might be ambitious but to recreate the car crashing sound effect, but it could also be that I have car sounds in the background which I have found different effects here. Visually, I would like to make the cars look more realistic by adding a roof to the car using the push and pop component or simply adding a rectangle of a different color on top which I played with but wasn’t successful. Finally, I of course want to add the direction/start page, which like the car sounds would make a sound with every button the player presses on, and make the car start in a lane and not on the bottom left corner.

At  this point, this is where I am:

 

Midterm Progress

Inspiration

In elementary school I played a lot of Club Penguin. In the club penguin world, there was a mini game based on fishing, and I’d always play it because it was the quickest way to receive in-game money. Due to the  dissesemblement of the game, my aim is to recreate this game with my own twists. You can click the link below for a clip from the original game.

Implementation (thus far)

So far, I have preloaded some images to display the background and fishes in my game. These are regular pngs, but I hope to find appropriate sprites later to make the game less stiff. The fish class randomizes the starting and speed of a  position of a fish. This way, each fish ‘spawned’ by the for-loop in the draw function has its own unique random attributes, thereby avoiding any patterns from forming.

Conclusion

I hope to incorporate several more types of objects to make the game more exciting/challenging, while also making it more interactive.

Shama Midterm Progress

For my midterm project I decided to remake my own design version of Guitar Hero. The game functions are straightforward and the concept is laid out, so all I have to focus on is actually coding it in p5js and designing my own UI. I firstly began with a reference of the functions I’d like to remake, my main point of inspiration is from this code by Joseph Aronson.

When testing out this version of the game I instantly knew what parts I liked and what I would eventually change. The main factors that worked well in my opinion would be the interactivity of pressing the buttons or missing them (when you press the border lights up green, when you miss the screen flashes red). However, the buttons ZXCV felt very uncomfortable for my hand to quickly tap on the keys, which goes against the original idea of Guitar Hero which came in the form of ergonomic keys on a toy guitar handle.

For this reason I decided to remake my interface with only three keys, and I chose to use the up, left, and right keys since they felt the most comfortable to rest my hand on.

To take this idea a step further, I will also be adding different music to the different levels that will correspond to how fast the user must respond with a matching key i.e an the extreme level would have an Eminem Rap song as opposed to the easy level that might have a slow song.

Additionally, I will add a sprite character playing the guitar to the side of the screen which will be programmed to stop/play according to the music playing or not (when the user loses, the sprite will not be moving).

Currently, I have customized my own interface according to the three buttons I want to use, and am working on adding sound (which is not working in the way I want it to as of yet). I have also made my starting title/menu screen which is working, and when the user chooses the level “easy” the screen successfully transitions to the game screen. I still have to add my moving sprite on the game screen and I need to figure out how my key output sounds will connect to the music I insert. There is still a lot of fixes I have to make, but for now I’m very happy with the progress.

Midterm Progress

For the midterm, I am creating a Carnival-themed game: Shoot the balloons. I plan to have balloons displayed on the screen, and the player has to pop as many as they can in a given time.

The main work for this is to make the balloons pop. So, that is what I was mainly working on. I used an image of 6 colored balloons and created an array with each balloon in it.

Here’s what I have done so far:


I have also (manually not looped) the display of balloons in a line to see how I want to position them on the screen. I will be using a background as in a carnival stall that I have to design yet.

Its pretty slow progress but I plan to update this as I have more developments.

Yunho Lee Midterm Progress

As a midterm project, I decided to make an FPS (First-person shooting) game. This is an upgraded version of the OOP assignment.

In order to make a plan of overall programming, I decided to write down the algorithms needed for each object in the game.

Algorithm

 

Class Zombie – create an array of zombies

Spawn() – spawn a zombie in a random position on the screen

hitbox() – give a range of hitbox

Die() – when shoot() is called clear all zombies that includes (middle, middle) coordinates inside their hitbox & displays death frames from the sprite

Walk() – zombies walk around the map with random speed & random distance in X-direction & Takes frames from sprite

 

Class GunClass – shoots when clicked

drawBullet() & fly() – draws a bullet and make it fly to the shooting direction

shoot() – displays shooting motion of the gun sprite when it is clicked

 

Class UI – shows the score and the time left of the game

Timeover() – stops the game and shows the UI that shows the score and restart button

Restart() – restarts the game

Pause() – pauses the game

Resume() – resumes the game

 

I have progressed until implementing the shooting motion of the gun and will be adding the zombies soon. The prototype is below.

Midterm Progress Report

Ideas & Inspiration

For this game, I took inspiration from the game ‘Flappy Bird’ where you have to control the bird by not letting it touch the green pipes. I wanted to incorporate a similar concept therefore went with the idea of having to keep a butterfly away from the fly traps (I love butterflies).

How Are 'Flappy Bird' and 'Candy Crush' Still Making So Much Money? - Pacific Standard
Original version of the game
My version of the game

Process & Implementation 

Once I decided that I wanted to use a butterfly and fly traps, I started  brainstorming what I wanted the aesthetic of the game to be, by choosing suitable images and a color scheme. Then, I did the basics of finding images I wanted to use for the game, preloading them into p5js and then playing around with their sizes, placement and size.

Then I was wondering what to do next as there was so much I wanted to do, so I noted down all the different functionalities I wanted and made a list. I decided to start off by making a butterfly class so that I could store all of its features such as width & height as well as what I want the velocity & gravity values to be (to actually make it move). I am currently working on getting the butterfly to bounce when the spacebar is pressed. I also made a class for the fly traps, which I need to continue working on however felt as though I should focus on working on the butterfly first and then the traps next.

What to work on next

  1. Get the butterfly to bounce, using the spacebar key
  2. Get the frame to move with random height fly traps.
  3. Have a start up screen which introduces the game with basic instructions on how to play.
  4. Maybe – have a sound for each time the spacebar is pressed
  5. Have a points system
  6. Have the fly traps go red once the butterfly touches them – I may have to hide a shape behind the butterfly to allow this to work well.

What I have so far –

Midterm Progress (Very Slow)

Idea:
For my midterm, I will create a game called “Hungry Henry”. In this game, there will be food falling from the sky – like the movie “Cloudy with a Chance of Meatballs” – and the small person (Henry) will have a task which is eating all the food that falls from the sky. The player gets to move Henry left and right in order to eat the falling food; if the food touches the ground, the player loses.

Implementation:
In order to make the food fall from the sky, I will be using object oriented programming. So far, I have been having some difficulties with the if function that makes the object move left and right. I am assuming it is because my “object” is an image. For my progress, I am using the image of a random cat, however, my actual object “Henry” will be an animated figure that I will draw using an iPad to make it more customized.