Welcome. I'm Diego Avena.

I am situated in Whittier, Southern California, and recently graduated from Chapman University with a Bachelor's Degree in Computer Science and a minor in Game Development. I currently am working on finishing up a 2D platformer game I started with a group of friends from Chapman University; it is called Sengoku (feel free to check out my section on it if you are interested)

I really started getting into programming after playing Minecraft. I was amazed at how such a game can be developed, and I remember seeing this video where the creator, Notch, plays around with the mechanics of the game just by changing a bit of Java code, and I knew then that programming was something I wanted to learn. Some other big motivators were games like The Last of Us: the game's ability to make the player feel like they are actually in the stories' apocalyptic world to the impact the story leaves on the player at the end - all of this showed me how powerful programming can be and I wanted to learn it even more.

I am also very interested in outer space, and this was another big motivator for getting into computer science. The software that guided all of those rockets in space, from the Saturn 5 rocket to the numerous landings made by NASA rovers on Mars - all of this was really inspiring and only made me want to learn programming even more.

Besides programming, I also (you could have probably guessed this) like playing video games (Hollow Knight and Ori and the Will of the Wisps being my favorites as of now). On my spare time, I also enjoy designing and building my own creations out of the Lego collection I managed to accumulate over many years. I am also really into architecture, and occasionally sketch out some house drawings.

Well, that's enough about me for now. On this website I have collected links to all of my programming work and game dev projects. Feel free to check them out! You can also play a couple of the games I have worked on!

Thanks for stopping by!

Learn about what I do

Overview of what I do.

Programming
Projects

Besides IOS development and game development, I have completed a variety of smaller programming projects, using languages like C++, Java, and Python.

See more

IOS
Development

Using Swift and the framework called Spritekit, I have programmed 5 IOS games, 4 of which were on the app store for about a year.

See more

Game
Development

Using Unity and C#, I have programmed 4 games. I have also done some of the art for these games, and made custom shaders for enhanced visuals.

See more

Programming Projects

Below are some of the programming projects I have worked on

C++ Projects

Miscellaneous

DNA Sequencer



Takes an input file with any number of DNA strands that each have an even length, and computes the mean, standard deviation, and variance of the lengths. It also computes the probability of each nucleotide and nucleotide pair. Lastly, 1000 DNA strands are generated with nucleotides that are at or near the same frequency as calculated in the inputed file. The lengths of these DNA strands also follow a gaussian distribution. All of this is written onto a file labeled diegoavena.out.

The Game of Life



An implementation of Conway's Game of Life, a bacterial growth simulutor!

Basic Syntax Checker



Checks if each opening delimiter matches each closing delimiter in a source code file written in any language. If a mistake is detected, the potential line numbers, along with the cause of the mistake, are printed out to the user, and the program exits for them to correct that error. Only 1 error is printed out to the user per run of this program.

Registrar's Office Simulator



Simulates the window idle times and student wait times in a registrar office. Time used here can be in any unit, but in this project the time is printed out as minutes.

Student and faculty database



A graph based database system that makes use of Binary Search trees to keep track of faculty and student records.

Sorting Algorithm Performance Tester



In this program, the following algorithms are implemented and tested for their speeds and memory consumption: Bubble Sort, Insertion Sort, Quick Sort, and Merge Sort.

Data Structures

Binary Search Tree



A BST data structure that orders nodes based on their keys in such a way that nodes with keys less than the root go to the left, and nodes with keys greater than the root go to the right, and so on and so forth. NOTE: This BST does not contain any mechanism to keep itself balanced.

Board Games

Tic Tac Toe in C++!



Uses openGL to render a game of Tic Tac Toe, complete with an unbeatable AI that makes use of the minmax algorithm.


Java Projects

Miscellaneous

TCP Tic Tac Toe



A tic tac toe game that can be played with 1 other person given their IP address.

Best First Search Robot Navigation



Finds the path a robot can take from a starting position, marked i to a final position on a 2D, NxN grid. The path is marked by a series of Os on the solution grid.

Operating Systems Concepts

Basic Multithreading



Demonstrates the use of multithreading in Java by running 2 threads: 1 thread prints Marco every 10 secs for a total of 10 times, and another thread prints Polo with a newline character appended every 10 secs for a total of 10 times.

More Advanced Multithreading with Sodoku



A program that validates a completed 9x9 Sudoku puzzle. If any mistakes are made, it also makes suggestions to the user on how they can correct those mistakes. The program also contains a GUI made with the framework called Swing. Multithreading is also used to increase the performance of the validation checks.

Using Semaphores



This project simulates 2 seesaw riders named Fred and Wilma who take turns pushing up and down on the seesaw. Semaphores are used to insure that only 1 person pushes up at a time, allowing the riders to take turns. The output of the program contains the height that each person is at for each simulation run, where 1 simulation is represented by the a specific person going up and then down, or down and then up.

Rate Monotonic Schedular



A rate monotonic schedular that manages the scheduling of 4 threads that contain different processing needs.


Python Projects

Python and SQL

Student Database with SQLite



Creates a table from a spreadsheet, and allows the user to perform searches for students based on their major, GPA, advisor, etc. Also allows the user to update student information, add new students into the table, and delete students from the table.

The Universe Database



This program creates a local mysql database and loads universe data into it from a table called UniverseRawData. This table combines data from various resources, referenced below, that document information on things about our universe such as the various exoplanets, galaxies, stars, and moons we know about.


Shell Projects

Miscellaneous

Cars



A bash script named “cars.sh” that will help a user maintain an inventory of old cars.

numbers



A bash script that prompts the user for a positive integer and prints all the numbers from 1 up to that number (inclusive), it will also print if each number displayed is odd or even.

username



A bash script to check whether a string satisfies the requirements for a username.

IOS Development

Here are all 5 IOS games and other IOS apps I have made using Swift inside of XCode.

Apps

GUI Simple Password Manager



An ios app that allows multiple users to store passwords and even set a master password that prevents others from viewing their stored passwords unless they know that master password All passwords are also stored after being encrypted with caesars cipher


Games with spritekit

Fiery Rocks



In this game, you must prepare yourself to think fast and dodge asteroids to score points. Survive for as long as possible, and obtain the highest score. Be careful though, the asteroids start falling faster and faster, requiring you to react faster and faster!

Was on appstore from 2017-2019

Lava Panic



A classic style of gameplay where you must compete for the highest score by jumping on platforms to avoid falling into the lava. You can also collect coins scattered throughout the platforms in order to purchase power ups that will allow you, if used correctly, to gain higher scores!

Was on appstore from 2017-2019

Pixel Packing



Pixel Packing is a game where you must work to match colors to the correct box for as long as possible. Watch out though, the levels will reach a faster speed, forcing you to increase your reaction speed.

Was on appstore from 2017-2019

Pixel Cruise



Pick a car you want to drive and weave your way through traffic to earn the highest score you can! Traffic is not the only thing to worry about though. If you drive to slow, you may lose as well, and there are different street patterns that you will need to be careful for.

Was on appstore from 2017-2019

Adjust!



The goal of the game is for the player to swipe vertical platform groups up or down in order to adjust the gap between the platforms so that a red cube, which moves up and down, can pass safely. The player must do this for as long as they can.

Game development

Here are all 4 games I have developed in Unity.

Games I did on my own

The Gloom

The Gloom will be a 2D Shooter set in a zombie infested city. The player will meet many enemies along the way and go on a journey that will lead them to a shocking discovery about the source of the zombie outbreak, and what their world really is.


Playable in browser!


Games I did with a team

OperationDZ

OperationDZ is a 2D zombie side scroller where players may team up in a squad of 4 to battle against endless waves of the undead, or go solo against the undead. Good luck!

Won Best Art and Fans choice Award at the Panther Games Winter Showcase 2018!


Playable in browser!

Sengoku - A Time of Warriors and Demons

A 2D action platformer set in the Sengoku era of Japan. The player fights through numerous enemies and bosses in hopes of saving their kingdom under siege.

Recently won 3rd place at IEEE GameSig Awards 2021!


Downloadable!

Bionicle Smackdown

A multiplayer based PVP game, fight and kill your opponent to win!


Playable in browser!


Social Media

These are my social media. Thanks for stopping by!