Check out my Programming Blog!
It's pretty nerdy and uninteresting, but there's a game I made on there!
THE BLOG IS HERE
seen from Saudi Arabia

seen from Singapore

seen from United States
seen from China
seen from T1

seen from United Kingdom

seen from Singapore
seen from China

seen from Türkiye
seen from United States
seen from United States
seen from France

seen from Türkiye

seen from Egypt
seen from Germany

seen from Libya
seen from United States

seen from United States

seen from United States

seen from Argentina
Check out my Programming Blog!
It's pretty nerdy and uninteresting, but there's a game I made on there!
THE BLOG IS HERE
Wizard Battle Royale: Demo
Wizard Battle Royale was my final project for Graphics Programming at Champlain College in the Fall of 2013.
For the sake of the video, the program was in "testing-mode", allowing a single player to play the game, as well as showing the FPS rate, number of particles on screen, and hit-boxes of the characters and projectiles on-screen.
Main Concept of Wizard Battle Royale
In Wizard Battle Royale, the concept of the game is that 2-4 players select Wizards and summon-able Minions to combat with; the last Wizard alive wins the game. The Player's Health, Mana, and Minions points are shown at the bottom of the screen with their primary color and Player number above their information.
Spells
Each Wizard is equipped with two spells; in the video, Fireball and Heal are demonstrated. The two spells each cost a specific amount of Mana and behave differently once cast. The Fireball is fired in the direction of the Player's cursor, damaging enemy Wizards and Minions. Casting Heal would restore health points to the player wizard and any allied minions in close proximity.
Minions
Each Wizard is allowed two minions they may summon in order to fight enemy Wizards as well as enemy minions. Depending on the minion type, each minion contained their own stats and behaviors on how to move and attack. For instance, the Brown Goblins hunt down enemies within close range, and the Green Goblins shoot fireballs toward enemies within a certain range. Each minion costs Minion points in order to summon, and have a smaller amount of Health points compared to their Wizard masters.
Strategize Mode
In order to provide a sense of tactics and strategy into the game, each Player is able to command and coordinate their minions at will by entering "Strategize Mode". Once activated, the Player's cursor will start to emit particles of random colors. Hovering over their allied minions put those minions into a queue, and once Strategize Mode is deactivated each minion in that queue is commanded to move to the current location of their Player's cursor. Once reaching the desired position, minions revert to their regular movement patterns.
Wizard Battle Royale and all content included are rights reserved to Herrera Programming.
Creating Custom Palettes In-Game
Wizard Battle Royale was my final project for Graphics Programming at Champlain College in the Fall of 2013.
One of the requirements for this final project was a feature that allowed custom content, something edit-able or created by the user. For my project, I provided the ability to create Custom Color Palettes for the Player's character and minions.
The user is able to modify the individual RGB color-values for each color of the palette. This allowed almost no limitation to the combination of colors any user can create. I added in a feature to be able to modify the alpha-value as well, but once testing commenced, I took that feature out due to problems saving the colors.
Once the user has finished editing their palette colors, they only need to press ENTER (if on Windows; Xbox users needed to press START) and the palette will be saved on a file, allowing the palette to remain in the game even once the program closes. Once saved, the palette becomes an option for the player to choose for their Wizard and Minions in battle.
But what about the sprites in the sprite sheet? How did the sprite sheet differentiate between two different palettes?
The way I solved this problem was by having two definite color-values in the Sprite Sheets that would be changed into either the Primary color/Secondary color of the Color Palette.
Example Wizard in the Sprite Sheet
Example Minions in the Sprite Sheet
The areas where the Color Palette will edit the Sprites are colors with values of [60, 60, 60] & [30, 30, 30], respective to the Primary and Secondary colors of the Color Palette. Once the palette was chosen, the program would scan the current frame of the sprite and change those areas with the Primary and Secondary colors, thus creating different looking palettes for each character.
Wizard Battle Royale and the rights associated with it are reserved to Herrera Programming.
Particles and Pixel Effects
** Warning: The video above contains strobes and strobe-like effects. **
This video demonstrates the use of my Particle Generator, full-screen Pixel effects, as well as depth between sprites and the horizon, and differing AI's stemming from a base Sprite class.
Particle Generator
For the Particle Generator, I created a function that allowed the creation of dynamic particles. This function allowed control of:
the texture of the particle
how long a particle lasts
starting and ending colors of the particle
movement behaviors
velocities and friction
frequency of particle creation
Some examples in the video of the Particle Generator is the Rabbit's after-image, the Professor's "thought-process steam", and the King's "fireworks explosion." This allows for a diverse and interesting display of particles for individual AI's and events.
Pixel Effects
For the Pixel Effects, I used the Graphics Card on the computer and with HLSL, created a variety of effects. The effects shown are, respectively:
Colorful Strobe: affecting each pixel to be a random color
Grey-scale: changing each pixel to become grey
Red Channel: changing each pixel to only show their red RGB color value
Blur: changing each pixel to appear "blurred" if not in a radius around the center of the screen
Strobe: changing each pixel to black and it's actual color quickly
Pulsing Darkness: changing each pixel to black and it's actual color slowly
Darken: changing each pixel to a darker value
Depth
The program demonstrates the depth using the horizon (an x value) as a point to relate to. The closer/farther each sprite came to that horizon, the smaller/larger they appeared on-screen. As well as changing sizes, each sprite would move behind/in-front of other sprites depending on their current position from the horizon. This was done by comparing the sprite's "base box" around their feet with one another.
AI Variation
Lastly, the AI system used a base Sprite class that contained variables such as the sprite's speed, texture, and behavior on how to move. Extending this base class, I was able to create a variety of different AI that had various characteristics. Some examples of the different AI are Feng the giant, AI with a larger texture and slower speed; the Rabbit, who created after-image particles and moved faster than most; and Zork, the yellow character who moved more rapidly than the other AIs. With this system of diverse AI's, it is easy to create characters who appear to be different, yet contain a similar framework with the other characters.
"The People" was a program created for my Graphics class in the Fall of 2013 at Champlain College.
All rights are reserved to Herrera Programming.
Find Em: The Game
This assignment was given to demonstrate our use of animations and multiple sprites on the screen. We had to make a game, so I went with a simple "Where's Waldo?" approach, adding in moving characters.
The general gist of this game is that before it begins, you are shown a "target" character to find among the large crowd. The goal is to find the target character as quickly as possible and thus receiving a low score. The longer you take to find the character, the higher your score becomes. Clicking on characters that are not the target causes that character to disappear, but adds a moderate amount to your score.
Some of the features of this game I'm pretty proud of is that when any character collides with the edges (or each other with the switch of a boolean), they gain new, random horizontal and vertical velocities. For instance, approaching the bottom edge moving at a down-right angle could then result in the character moving without any horizontal velocities and just an upward velocity. I think that this added to the difficulty to the game as well as the chaos.
For animations, I created a sprite sheet with three different frames for each character. I made sure only one of the "target" character was on-screen, in order to have a singular way to win.
"Find Em: The Game" was a program created for an assignment in my Graphics class at Champlain College in the Fall of 2013.
All rights reserved to Herrera Programming.