Hanu Kancharla
This page will include all the C++ projects I have made as my assignments and projects in the GAME 230 class "Fundamentals of Game Engineering" at the University of California, Santa Cruz. I have used SFML which is a cross-platform software development library designed to provide a simple application programming interface to various multimedia components in computers to build my projects.
I had tons of fun making these projects in my university which has given me a lot of insights about the C++ concepts and game programming in general.
Asteroids
Asteroids!
I was given a task to build a classic Atari game "Asteroids". In Asteroids, the player controls a ship in outer space. The player's objective is to destroy all of the asteroids in the area by shooting at them with lasers/bullets. Destroying a large asteroid causes it to split into two medium-sized asteroids, and destroying a medium asteroid causes it to split into two small asteroids. Shooting a small asteroid destroys it. Once the area has been cleared of asteroids, the player moves to the next level where there are more asteroids. If the player's ship is hit by an asteroid, then the ship is destroyed and the player loses a "life". If the player loses three lives, it's "game over" and the player must restart from the beginning.
Here I implemented many features such as
Ship controls. The ship has momentum, meaning that it continues to coast even after the player lets go of the thrusters.
Shooting
Level Progression, display of stats and level
Implementation of inheritance, trees concept for (Big, Medium, Small) asteroids
Implemented asteroids and player collision (AABB). Visual representation of player being hit by an asteroid
Breakout
Breakout!
In this project I made the classic re-imagining the old video game of 1976 "Breakout". This again was an extension of my previous project "Pong".
In Breakout, the player controls a "paddle" on the bottom of the screen. A ball starts sitting on the paddle until the player launches it. Along the top of the screen are several rows of "bricks". If the ball hits a break, the brick breaks (or is damaged) and the ball bounces off. Once the player clears all of the bricks, they move on to the next level. If the ball falls past the player's paddle, they lose a life. If the player loses all of their lives, the game is over.
Features that were implemented are
Player can control the paddle and launch the ball using both the mouse and keyboard a
The ball moves in different direction depending on where it was hit on the paddle.
Level progression and stats display over the screen
Power up which can be used by the player to shoot down bricks.
Different types of bricks ( bricks which get destroyed after taking different number of hits, invincible and invisible bricks) where I have used inheritance concept.
FANCY PONG
This was my first SFML project. I had been given a task to build the class "PONG".
Pong is a table tennis–themed arcade sports video game, featuring simple two-dimensional graphics, manufactured by Atari and originally released in 1972.
In Pong, each player controls a "paddle" on one side of the screen. A ball in the middle starts flying towards one side of the screen. If the ball hits that player's paddle, the ball bounces off and flies towards the other side of the screen. If one player misses the ball with their paddle, the other player is awarded a point and a new ball spawns in the middle.
Mechanics which have been implemented are
Player Movement
AI system
Collision detection
Power Ups