On this page you will find some of my programming samples I have made over the years. These include things from old dos 6.22 based C programming games, to newer C#, C++, PHP/SQL web pages There is also a game made in GameMaker and numerous games made in Unity. The C# programs will require at least .NET 3.0, so make sure you have the latest .NET Framework installed. Towards the bottom you'll find a game I made in GameMaker 8, which is an old retro style top down 2D action survival game. Below that is a section of my Unity games I'm working on, as well as a section for Game Jam entries that I've made.
If you'd like to contact me you can reach me at: leonard4@gmail.com
Index
Current Projects
Survivors of Mayhem - a fast paced fantasy survivor game. Embark on a heart-pounding journey through waves of fantasy battle, where chaos reigns, and your every decision could mean the difference between life and death. In Survivors of Mayhem, you'll face relentless waves of enemies, upgrade your characters, pick and choose from dozens of abilities, and upgrades to try to survive.
Echoes of Mayhem is an arpg roguelite soulslike. You'll fight through a randomized dungeon of monsters and bosses in an attempt to reforge the world. You'll score loot along the way and gather resources to upgrade your town and choose your own path with random dungeon perks.
Ultra Ball Blaster (Published on Google Play Store)
I made this application for my wife. She was very much into this style of game a few years ago but the constant ads popping up between each level, each death, reload etc was bugging her. I was like I can make that game for you! So I did, and this is what I came up with. It evolved over the course of the project and we put it out there with some optional ads for some of the upgrade options but you get to pick to view the ad, its not forced on you.
Ultra Ball Blaster (Google Play Store)
100 Balls³ (Published on Google Play Store)
This project started out as a "can I do that" type of thing, when the 100 Balls games were super popular I wanted to see if I had what it took to make the same type of game with the physics, controls, and everything that goes along with making a mobile game. This was also a great exercise in learning about publishing on the Google Play Store, as well as the Android SDK, and Google Play Games API, for things like Leaderboards and Achievements (which are both present in the game). There are three modes, and gameplay is very simple. In addition to the standard 2D view I implemented a secondary perspective camera to give a 3D option.
100 Balls³ (Google Play Store)
StarWarden was going to be a bounty hunter style top down 2D game in space. Right now I have working multiplayer using the new 5.x Unity UNet API and world generation. Stars with their own planets and starbases. Players can enter individual star systems by orbiting a star. Eventually I'll have an economy for purchasing and selling goods in a TradeWars style system. Bounties and contracts will be available for capturing fugitives. Customizable ships for each mission will be an option, as well as designing your own base, outpost, starbase etc as a home port.
Back to IndexGame Jams
Olympus is Falling (Ludum Dare 43)
This was my entry for Ludum Dare 43. I did all of the game design, and programming solo. Its been quite awhile since I did a game jam so I went small and simple to try to get something done. The theme this time was "Sacrifices must be made", I immediately got a Joe Vs The Volcano vibe, but after seeing a dozen or so preliminary ideas post on the LD site I went a different route. I ended up going with a Greek God type of game where you have to sacrifice items to them.
All in all I'm very happy with the fact that I got a finished game done in 3 days, I had builds for Linux, OSX, PC, and Android as well as a WebGL build. Next game jam I hope to tackle something more complicated.
Olympus is Falling (Ludum Dare 43)
This was my entry for the Ludum Dare 34. I did all of the game design, and programming. The theme was actually a tie this year, and was "Growing" and "Two-button controls". Since I had done a Warm-up entry on Growing I found it funny that the final theme was the same thing I already did. Because of this I decided on doing something that wasn't plant based for the theme/idea. We came up with an idea to feed a cat and to do that you use two buttons on a mock factory control box to decide which way to send the food. It was nice to finish a Ludum Dare entry.
In the end we came up with a fun little game. The goal is to see how much junk food you can feed the cat while avoiding healthy food. Junk food adds weight while healthy food subtracts. You also can't let too many items pass by the end of the conveyor belt as a pile of garbage will build up and eventually end the game. The longer you play the faster the food spawns and the faster it moves.
Sandwich Maker 9000 (#IndiesVSGamers on GameJolt)
This was our entry for the #IndiesVSGamers Game Jam put on by Game Jolt. I did all of the game design, and programming. All of the 3D food models were done by Addy Taylor. The theme was "Arcade", and since Pewdiepie, Markiplier, and Jacksepticeye are going to review the 5 top games, I figured something with some physics would make for a fun time. (Those guys LOVE playing physics games and raging!). The idea is an homage to the arcade classic Burger Time. The goal is to build an order that appears on a whiteboard in the middle of the kitchen by catching food that drops on a plate. I tried to stay away from typical text UI elements and I incorporated things like a clock for a timer, a whiteboard for the order, and a sticky note for the score, and a handbook for a food legend. I like how everything works together and doesn't stand out as blatant UI elements. Has a fully integrated Game Jolt API with Leaderboards and Trophies.
Since the Game Jam ended I've added Touch and Accelerometer support for mobile devices and published the game as a free game on the Google Play Store. As I get the time I'll be adding in Google Play Trophy and Leaderboard support, and probably pull out the Game Jolt API. I'd like to also improve on the spawning of foods and optimize the physics as well.
Sandwich Maker 9000 (Game Jolt)
LaserBlast (#Texturlessgamejam on GameJolt)
This is a game that I started for the Textureless Gamejam 2015 and have continued working on it. Everything in this jam was done by myself. It's vaguely similar to Super Smash Bros from Nintendo. It's a 3D side view 4 player local head to head game, each player starts in their own corner of the level and once spawned they have access to a short range laser cannon and can drop a 1 sec time delayed bomb. The game supports double jumping and wall jumping and has some moving platforms. This was also the first game that I've done that has used the new Unity GUI elements introduced in version 4.6 and 5.x. I'm currently working on creating some models, since nobody likes being a capsule! I'd also like to implement some power ups, or alternate weapons that the player could pick up. Multiplayer is being worked on, but I'm waiting to finish up the multiplayer on StarWarden so I have a better framework to re-use. Game has complete sound effects as well as a score system and damage.
Back to IndexUnity3D
The idea for this game was to make a game with an object that shot something. Then set it up to have boxes to break, and once you break 3 you win. I added quite a bit more, I added some GUI buttons for movement for touch input for phones/tablets. In addition I setup a Box spawning button, a Debug button to disable the win condition, a fire button, and an increase/decrease velocity of the cannonball buttons.Memory (Published on Google Play Store)
This is my attempt at a classic memory card flip game. I created custom textures for the card backs and faces. In addition I'm tracking the amount of moves the player takes, and added a scrolling background and music. I also added an explosion effect when you match up two cards. A restart button to reload the game is also available once you win.Memory Match (Google Play Store)
The idea behind this one was to take an Angry Birds style side view game and do something extra. I decided I wanted to do an homage to Tron. I setup a MCP as the center point and created a rotating shield array around him and changed the view to a first person style. You throw discs by swiping to the left. Each shield will take five hits to break, and then once your able to hit the MCP its 3 to kill him, at which point he'll turn blue and you can restart.
This one was fun because I went back and ripped some sounds out of the old Tron 2.0 game for the shield hits, disc sound, and MCP being struck.
C/C++
This is a text based game I made based off of World of Warcraft. One of those "can I replicate what I see" type of projects. I started out doing this in a Borland Turbo C++ 3.0 compiler on my old Pentium Pro 200 DOS box back in 2006, and eventually ported it over to a newer Visual Studio 2010 project. I had to recreate several functions that were missing in Visual Studio 2010 that were present in Turbo C++ 3.0, so that was a fun learning experience. (Gotoxy, Textcolor, Clrscr, Showcursor, and Hidecursor) The Red Dragon is a console based game based off of my World of Textcraft idea, it was written using C++ Object Oriented programming. It uses half a dozen new classes, pointers, and inheritance as well as reading in all of the information for maps and monsters from data files. I wanted to make use of the I/O that I've been learning and do something more than just read/write the player file. The map dynamically colors everything based off of the symbol read in from the file. There's a few items that the player can use, and a half dozen creature types, which are also read in from a text file. I've included a UML diagram of the classes I used after the game screenshots.The idea is that you run around and randomly fight creatures and level up and gain gold. You can buy weapon and armor upgrades from the Town (T symbol), and eventually you can go to the large volcanic mountain and try to beat the dragon at the base of it (the D symbol). Of course you need to be strong enough to defeat him, and you can't flee from battle against the him like you can against everything else, good luck!
Back to IndexC#
I made this to learn how to make an SQL connection to a database using C#. You can select between a remote SQL database on any ip/dns and port combination, or from a local SQL database (*.MDF). You can also specify the database name, table, userid, and password. Right now it only returns the first three columns for each entry, but that's easy to expand. I'm going to work on allowing an update/change and probably a delete/drop and an insert. I might just keep this program as a "connection checker" though for testing purposes.Basal Metabolic Rate Calculator
This is a tool I made for calculating calorie intake based on weight/age/height/sex/activity levels. This was a good lesson in C# forms and objects as well as some complicated math with the formulas to calculate everything.Basal Metabolic Rate Calculator Download
This is a converter I made after learning about binary to decimal and hex conversions in my C++ class at school. Fairly self explanatory. It doesn't handle signed binary numbers at the moment, but I'll update it later once I figure out how to do all of that in C#. This is another one of those "how do they do that" type of programs. I wanted to figure out how game companies generated and validated serial keys for games. I learned how to send the value of a button to a function, for generating lists of codes with 1 function, but from 5 different buttons. Learned how to work with arrays of specified values to generate the code, and how to validate it off the same array. Future use will be in a game I'm going to design. Serial codes will be one time use to enable the account from a database of all the numbers I generate, and then be deactivated once the account is setup. This is an application that I made off of a set of flashcards I had created. Basically its four or five categories and you deal one or more from each pile and lay them out to "create" a game. I used these for brainstorming ideas for games and what not. You can randomly generate any number of entries as well as output the list to a file. You can edit the list for each category by double clicking the header, or by editing the text files by hand.This was a program I made for a friend who was getting into Baccarat, he wanted something that would take an amount of money and an amount of "flips", and see how long before he went broke. I added a file output option and five cards that when you click on it generates a random card and shows the picture. I stopped working on this as he didn't have a need for it after I prototyped it for him.
This is another "can I do that" project, I wanted to see if I could replicate the in game talent calculator from World of Warcraft. On this project I learned how to set focus on objects (like the Class box), as well as hover, and mousein and mouseout actions. Also how to change images based on certain events.
If you click the Test button it changes the status text at the bottom as well as the icon next to the button, as well as changing the text when you hover in and out. I also setup an OnClick action for the button in the middle to allow you to add up to 5 points into it by left clicking, and reduce by right clicking. This also affects the total points remaining, and has a custom tool tip. Changing the class from the drop down list also changes the background image to match.
WoW Talent Calculator Download
This project was to learn how to use the WebClient() api and read in a datastream with the XML parser. The API that this program accesses on the Blizzard site is being deprecated on August 1st so it won't function after then.
This was a rather large project. The idea was to create a GUI for ImageMagicks command line programs to convert images.
This project became a snowball, as I started I added more and more things. I learned about file dialog boxes, more controls, as well as limiting what can be checked or set for radio boxes or check boxes. There is a registration scheme I created that reads and writes to the registry, and does so on 32bit or 64bit operating systems. The registration key is tied to the systems network card MAC address, and is read using a base64 encoded string. I also created a serial generator that takes the string the user sends to me and then generates a key that I can send back to allow the program to work.
ImageMagick GUI Serial Generator
This is the serial number generator I created for the ImageMagickGUI, it takes the serial from the program (in this case it's their network card MAC address) and then when you key it in and hit generate, it spits out the same key but base64 encoded.
ImageMagick GUI Serial Generator Download
PHP / MySQL
This was a page I worked on for personal use, basically lets you add users to a database with stats for each user. Allows you to login (was changing it from a $_GET to a POST method so that the login information isn't visible in the URL, but never got around to finishing it), and then list all the users or foods. The add user, list user, list food, and add food options all work. This was a test using PHP to see if I could validate if an input box, check box, dropdown, or radio box was filled in without using javascript. It then validates each item and if everything went well, send an email to the address that was keyed in with all of the values that were filled in or checked off to the recipient, all using PHP. Back to IndexGameMaker 8
This was my final project for my CS125G class. We had to make a game from scratch using GameMaker 8.0. I decided to do a retro 2D top down style action game. You can collect different weapons, there's a hidden cow level, a Portal gun, and all sorts of fun stuff. I used some publicly available sprites and sounds, and created most of the gun sounds myself. I really wanted something fun to play and for GameMaker I think I came out with a relatively complex GameMaker game with some cool features. Back to IndexDisclaimer
THERE IS NO WARRANTY FOR THESE PROGRAMS, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THESE PROGRAMS “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THESE PROGRAMS IS WITH YOU. SHOULD THESE PROGRAMS PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.