This is a collection of applications that I developed within the last 5 years (summer of 2010 until now). I used C#, Java, ASP.NET, HLSL, HTML, SQL (for MS SQL Server 2008/2012 and MySQL), and have designed and utilized a custom scripting mechanism for map and character data.
An Authoritative Server-Step Implementation of Potentially Scalable Network Architecture Using the Cloud This is a well-received Master's of Science project. Through the course of roughly six months, I spent all of my time researching, designing, coding and testing a network solution for a potentially scalable multiplayer online game. The game is very simple: users can log in, select an avatar/sprite and enter the game. Once the user is in-game, they can move the 2D avatar around the 2D environment, and chat in an interactive manner, among other users. Presenting this project as a portfolio item will take some time. More.
Penetration Testing also known as white hat hacking. Essentially, firms will hire penetration testers to break into their network. This is a service necessary for organizations that use complex network architecture, and have confidential data that needs to maintain its integrity and privacy. When a penetration test is performed a contract is used to restrict/control the effects of breaking into the network; to be precise, the firm will want to be able to continue to utilize the network. A penetration test usually involves recon, scanning for vulnerabilities, exploiting a vulnerability, and even maintaining access. It also involved some technical report writing (executive and comprehensive). It can involve social engineering tactics, for example, dropping a malicious flashdrive in the parking lot and hoping an unsuspecting employee plugs it into a networked machine. It can involve digging through the trash, password cracking, pivoting from vulernable server to vulernable server from outside services, and so much more. The following is a video that goes through the very basics of penetration testing, using a WIndows XP virtual machine, Kali Linux virtual machine, two convenient scanning applications (Nessus and NMap), and a pre-scripted payload delivery feature of Metasploit (a robust network analysis/forensic tool). To view the video go to: https://www.youtube.com/watch?v=3S-AhM1ZhyI.
Galactic Plan B This is the first game idea I've had that I am actually trying to implement. It's a 2D SciFi/Fantasy themed flight game that takes in space. This project uses XNA 4.0 spritebatch to draw the graphics, XACT audio management, and is written in C# and HLSL (in Visual Studios 2010 Pro -- thanks to Microsoft Student Alliance). My focus was to create a scene managment module that can systematically load and unload game scenes using number of state management features. The scenes in this game include menus, story portions (image fading and dialog), and gameplay. This game is currently using all placeholder sounds, music, and graphics.
Check out the demo. More.
2D Tile-Mapping Application that can create backgrounds and interactive maps for any 2D game. This is currently being tested in the form of an older RPG game (inspired by SNES games like Legend of Zelda). This application has an in-game map editor, which makes developing these maps quite easy. It has interactive sprite dialogue, sprite reactions (to the player as well as other characters), a flexible sprite animation setup-process, a menu/window system, dynamic lighting, etc...
Check out the demo! More.
Sprite and ParticleObject Developer. This is an application that can efficiently generate particle effects (called particle objects) and saves them into custom script files. These are intended to be used as spell effects, menu effects, map effects, and basically anything that can be complimented by particles. The particle objects can be primitives (points, lines, triangles, etc) or still/animated images. This application also has a primitive sprite developer. Initially, I was going to make a selection of spaceships with different particle effects and thruster angles for the "2D Asteroids-ish Game" below. It works very well, and is fun to play around with, but I have not used the sprite developer portion for anything. More.
2D Astroids-ish Game developed in C# using XNA. This has 2D motions physics: acceleration (forward, back, side to side, and rotation), and conserves angular momentum. I developed this game before I had made the 2D tile mapping engine, and it uses some of the same features, including particle objects and the 2D physics. Check out the demo! More.
3D Animation/Dialogue State Application uses *.FBX files (Animated 3D Models). This application also has a dialogue management system, which enables the player to approach the custom 3D models (sprites) and "talk" with them. This might not look pretty, but it is essentially an engine that allows different animations to take place during different sprite states. The dialogue interactions allow questions and responses to steer conversations based on the player's interaction (I also used the dialogue management system within this application for the 2D tile mapping application previously mentioned. More.
Online-Menu Ordering System. This is a web application that is used to create and manage online menus. It exchanges data with a Microsoft SQL Server 2008 database. This was a group project, and was created using a semi-informal AGILE development model. This was developed throughout a couple of project implementation courses (for a B.S. in C.S.). More.
XNA Menu/Window System. This is a group of C# classes that make it very easy to create game windows, text-boxes, buttons, and the corresponding events. These windows use keyboard and mouse input, and they can be dragged around. Below is an image of these windows being used as a game menu. More.
C-Minus Programming Language Compiler. Last, but not least, this is a project I worked on using Java. It's a compiler that reads a language called C-Minus (very similar to C, but extremely limited). Through a scanner, syntax analyzer (parser), semantics analyzer (checker) and code generator, the compiler creates an executable file that can run on top of a virtual machine. I wrote a token scanner, recursive-descent parser, and semantics analyzer for a computer science class.