January 11, 2017 Student Spotlight: WizardDuel
Ryun Valdez
Ryun Valdez

Before the Course:

Before taking the 8-week Unity course I had dabbled in video game development a number of times, but the self-teaching usually only got me so far. My dabbling efforts consisted of several attempts at making Minecraft mods, managing to make half a game in Gamemaker Studio, and making several mini-games using Python’s Pygame add on. My schooling is in software development so I am not new to coding, however, there is much more to video game development than scripting. At the beginning of the course I was eager to see how professionals go about developing games.

Project 1 (Flappy Bird Clone):

Day 1 (PugJump):

Day one of the course we learned our way around Unity. We learned about how to create game objects, detect collisions, and utilize Unity’s built-in gravity. Using these concepts we were able to create moving obstacles, a player sprite, and a background image. The result was a start on a very basic game, a Flappy Bird clone.

At the end of day one this is what I managed to walk away with. Lots of google scavenged images and a jumping pug, pretty impressive.

pugjump

Finished Project 1 (ColorWall):

We spent a few more days working on Unity basics such as how objects communicate with each other. We also started getting into C# scripting. We were asked to re-create what we had made in class and after some work this is what I managed to create:

colorjump

Scripting allowed me to change the color of the ball, randomize the order of the color gate, and end the game if the ball hit the incorrect color…*wahwah*

Project 2 (Space Shooter):

During the second half of week 2 we shifted course and set our sights on a new type of game, the space shooter. Now that we had the very basics of 2-D gaming down we were able to create a top-down 2-D game. We learned many different things while creating this game and we worked on the space shooter for the next several classes. The first major lesson was learning to deal with more complex input data so we could get the ship to accelerate towards the mouse. Afterwards we learned how to manipulate the camera. More specifically, we learned how to make the camera follow the player. We also utilized more of the Unity physics engine in order to add mass and angular drag to our ship. This allowed our ships to be easier to control.

We also learned how to spawn enemies (meteoroids), how to create co-routines, how to animate sprites, and how to create a GUI while working on this project.

After a bit of work combining what we had learned and applying it in my own time, I was able to…

Detect damage:

spaceshooterdamagedemo

Mine meteoroids and collect health:

spaceshootermininglaser

and shoot lasers!:

spaceshootershootingdemo

Project 3 (3D Shooter):

Our last combined class project finally delved into 3-D (Eeesh). This part of the course was what I was most nervous for. 2-D development is a struggle enough, so I wasn’t exactly sure how adding a new dimension would pan out. Luckily, it turns out that with Unity 3-D isn’t all that bad.
Many of the concepts used in Unity 2-D translate over into 3-D. We still dealt with objects, cameras, and physics. The hardest thing for me to get used to was getting things where I wanted them in the 3-D space.
After the first day of learning 3-D Unity, our game was a platformer, we learned how to utilize rays to detect collisions instead of the physics engine in order to make our games more efficient. At the end of the day we had a simple pill-shaped character that could jump from one moving platform to the other.
During our second day we learned how to work with some 3-D tools such as terrains which allow for a quick and easy 3-D world. We also learned how to work with skyboxes in order to change what the in-game sky looks like. Using these concepts I was able to make the game look somewhat like it was on an asteroid in space.

On day 3 of this game we learned how to make a 1st-person camera, added the ability to shoot projectiles, and make particle effects like explosions.

After the next few classes of working on this game here is what I came up with:

Pillman with a gun:

zombieshooter

Enemies that chase the player:

3dshooterzombies

Shooting projectiles and explosion particles:

3dshooterexplosions

and collision detection:

3dshooterkilldemo

Final Project! (Wizard Duel)

For my final project I decided to go back to 2-D development. The idea for my game was to create a local multiplayer duel where each player controlled his or her own wizard.

wizardtitle

With that in mind, I was able to draw a wizard based off of what I had seen on the internet. I was able to use resulting sprite as a colormap. This allowed me to change the wizard color quickly and dynamically. Both the yellow wizard and the red wizard below use the colormap on the left

wizardcolormap

As a personal project, I wanted to learn more about the Unity animator. Instead of drawing a traditional sprite sheet to animate my wizards I chopped the wizard into multiple pieces as shown below:

wizardparts

Doing this allowed me to animate individual limbs of my sprite so I could make Southpark-style animations like this simple walking animation:

wizardwalk2

Now that I had the basic sprites finished, I needed the wizards to be able to shoot spells. I wanted to limit the casting speed so I created a “charge up” animation to indicate when the character’s staff was charging for the next spell cast. With some particle magic and a spell-bolt sprite, my wizards started looking like this:

wizardchargedemo

Then I added collision detection:

wizardfireballs

I also added power-ups that could change how big the wizard’s spell is (like above), how fast it shot, how far it shot, how long it took to charge, and how fast the wizard could walk.

Lastly, I needed to turn it into a playable game, so I created two phases:

Power-up Collection Phase:

During this phase there is a timed countdown (seen in the middle of the screen), players have until the time runs out to collect as many power-ups as possible. Players will respawn if killed during this round, but they miss out on precious gathering time.

wizardrunaround

and Deathmatch Phase!

During the deathmatch, players get to take with them any stat boosts they received from the previous round and use it to fight the other players. First player to win three rounds wins the game!

wizarddeathmatchdemo

After Class:

The Unity 8-week course taught me a lot, and gave me the knowledge I needed to get a start making my own games. However, what really made the course worthwhile was who I met. Playcrafting is made of many other developers who are just as excited about game development as I am. The comforting part about Playcrafting is that everyone is at a different level of skill and experience, so it is a very forgiving environment to learn in. In the future, I plan on being a continuing member of Playcrafting.

Big thanks to Kevin for doing a great job teaching the class and Robert for your awesome notes.

Quick Questions

1. How did you get into games?

I was into games from a very young age, my dad owned a Pacman arcade machine that lived in our garage growing up. I was playing Pokemon by the age of 5 and the gaming continued from there.

2. You’re part of the first manned mission to Mars! You’ll be gone for 5 years and can only bring 3 games to play alone or with your 3 fellow astronauts. What are they?

Smash Bros. Wii U
Pokemon Sun/Moon
Civ 5

3. What would be your dream game to build?

My grandiose dream game is a RPG where the player’s character, story, and play-style can be as unique as the player themself.

4. What do you love best about the game community in NYC?

Everybody seems very inclusive, excited about sharing ideas, and many people are willing to give aspiring game developers like myself a good place to grow.

5. Choose 5 words to describe your experience making games so far.

Exciting, challenging, frustrating, rewarding, motivating.

 

Want to level up like Ryun did? Check our our upcoming courses!