February 2020 Summary

This month I continued to work on SDL Shooter, which is a space shooter written in SDL and C.  This game started as a presentation demo for the December 2019 Knoxville Game Design meeting.  The project source code is available on my GitHub account.  I’m hoping to release it on more platforms when it gets to a point where I feel that it is complete.  Right now I’m just having fun adding new types of enemies.

 

  • Foxtrot – Moves a few units either vertically or horizontally, pauses, and then moves in a new direction.
  • Golf – Snake type enemy that has a random number of tail links.  Each link of the tail must be damaged before the head can be damaged.  Moves in a sine wave at variable rates.
  • Hotel – Stationary enemy that constantly fires projectiles in a radial fashion.
  • India – Large enemy that explodes into four smaller enemies when damaged.  When the four smaller enemies are damaged they explode into eight even smaller enemies.  I need to make the explosion angles random, instead of the standard 90/180/270 and 45/90,135, etc angles.
  • Juliett – Hopper enemy that jumps in a parabola one to three units horizontally.  One issue is two of these enemies can jump to the same spot and overlap.  This could be solved by adding a target location variable for each enemy, and determine if another enemy has claimed that spot before jumping there.  I would also like to have the enemy attack the player’s ship in some way.  Either charge the player’s ship when it is aligned vertically, or shoot webs at the player’s ship to slow it down like in Zekkou no Tomodachi.
  • Kilo – A random number is displayed on top, and the player must shoot the correct binary sequence to defeat this enemy.  Added the current “attack value” below the target value, which makes completing the binary sequence a little easier.  The enemy has between 3 and 5 bits, so the maximum value for a 3 bit enemy is 7 and the maximum for a 5 bit enemy is 31.
  • Lima – A bat type enemy that starts sleeping, and then awakes and chases the player when the ship is near.  The enemy is only vulnerable when it is not sleeping.  The amount of time that it takes for the enemy to wake up is random.  The second level enemy moves faster and takes more damage to defeat.
  • Mike – Color orb enemy.  Three small orbs revolve around the center, which are either red, green, or blue.  The player must shoot the correct revolving orb to match the center.  If the center is yellow, cyan, or magenta, then it takes the correct two orb combination to defeat the enemy (such as cyan = green and blue).  Shooting an incorrect orb will make the orbs revolve faster for a short period of time and the enemy will shoot at the player’s ship.

I checked my Microsoft developer dashboard today to see if the XBox One Creators Program was still running.  I noticed that Kitty’s Adventure has now passed 50,000 acquisitions between XBox One and Windows Store.  It is by far the most popular game that I’ve released to this day.

Also this month, we had a great turnout for the online Knoxville Game Design Meeting.  This month’s topic was Java Game Development.

I spent some time updating my two college work pages for Georgia Tech and the University of Tennessee.  Links to those two pages are now displayed on the main menu on my site under Education.  I also found more of my old websites, which I uploaded and linked on my wiki page under Historical Pages.  I uploaded the source code for some projects that were missing, such as the Predator database projects.

Mister Adventure

Mister Adventure must collect all of the treasure in the land. The three treasures to collect are gems, coins, and chalices. Each treasure can be red, blue, or green. Only collect the treasure specified at the top of the screen. The requested treasure changes after the hourglass becomes empty. Avoid spiders and birds as they will hurt Mister Adventure and take away a heart. After losing all three hearts, Mister Adventure must restart the level.

Mister Adventure  Mister Adventure

 


Created by Levi D. Smith
Released
Built with: GameMaker

SDL Shooter

Simple space shooter game created using SDL (Simple DirectMedia Layer) and C.  Sprites created with Aseprite.

Energy meter added.  Using any weapon will deplete energy, but it will gradually refill over time.   Each weapon has three strength levels and energy consumption increases with the strength of the shot used.

Below are the weapons in the game.

 

Weapon Name Weak Attack Mid Attack Strong Attack
Speed Shot Slightly increases fire rate Moderately increases fire rate Greatly increases fire rate
Multi Shot Shoots in two directions Shoots in three directions Shoots in four directions
Wave Shot Shoots one wave projectile Shoots two wave projectiles Shoots four wave projectiles
Blast Shot Damages all enemies on impact within a small radius Damages all enemies on impact within a medium radius Damages all enemies on impact within a large radius
Spin Shot Four projectiles rotate around the ship Eight projectiles rotate around the ship Sixteen projectiles rotate around the ship
Freeze Shot Freezes an enemy in place for 1 second Freezes an enemy in place for 4 seconds Freezes an enemy in place for 20 seconds
Seek Shot Locks on enemies within a small range Locks on enemies within a medium range Locks on enemies within a large range

 

 

Enemies will drop various bonuses, such as refill energy, increased attack power, increased defense power, and health refill.

Create your own levels by editing level_00.txt.  Separate waves with a single equal sign ‘=’ on a line.  Place enemies using the numbers 1, 2, 3, and 4.

Create Linux build by running ‘make linux’.  Tested and works on Ubuntu Linux.

Get the source code at https://github.com/gatechgrad/SDLShooter

 

Enemies

  • Alpha – Moves left and right in a horizontal motion
  • Bravo – Moves to the right at constant speed
  • Charlie – Moves downward in a wave motion
  • Delta – Moves in a circle motion
  • Echo – Moves to random locations;  Vulnerable only when eye is opened

Weapons

  • Normal shot – 5 energy
  • Fast shot – 8 energy
  • Triple spread shot – 15 energy


Created by Levi D. Smith
Released
Built with: SDL