Programmer portfolio

I have here my programmer portfolio I was required to make for one of my business classes at Niagara College. I will warn you that I am by no means a video editor, so it is a little rough. As well, we were required to show off at least one 3D modelled item we had made. Rather than use an item from my 3D modelling or art portfolio, I got cheeky and rendered a segment of code as 3D text.

Chess AI

As the final project in my Artificial Intelligence class, we created a game of chess in Unity where the computer made informed and strategic moves.

The AI is relatively simple. First It generates a list if possible moves, pushing them into a fitness sorted priority queue. Of those moves, it evaluates the ‘fitness’ of the resulting board. This is an incredibly simple calculation, as it just tallys each of the AI’s piece’s multiplied it by its associated value in inspector.

The players pieces then do some calculation, and the result is subtracted. This final value gives us our fitness for the move.

After each move is generated, it chooses the current best move (highest fitness), simulates it, and then attempts to predict what the players response will be. After generating a list of all of those moves, it assumes that the player will make the best move that it can, and so simulates said move. The new board (now two simulations in) is then fed back into the priority queue.

The algorithm then grabs the top of the priority queue, and the simulations begin again (resuming where they were if future moves have already been simulated for the current best performing move).

Now, it could keep doing this forever (or until it runs out of moves to simulate), but that wouldn’t be very fun for the player or the machine its running on.

Soooooo, there are two limiting factors: Depth, and Think Time

The depth refers to the number of simulated moves the game will generate spanning from a single starter move (included in the total). Given that it simulates its own moves and the players, a depth setting of 5 allows the AI to “plan” its next 3 moves.

Think time is what usually kills the AI’s turn, as it ensures that no matter what depth the AI is allowed to simulate to, it cant be thinking for more seconds than the Think Time Limit.

If you would like to see the code or download a playable build, head on over to my github: https://github.com/QuantumInfinite/ChessGame

Feed-forward neural networks for data classification

For one of my Artificial Intelligence projects, we had to study neural networks and how adjusting their initial properties effect their outcome.

To test this, we used two separate data sets, the age of Abalone’s (https://archive.ics.uci.edu/ml/datasets/abalone) and the the classification of Iris flowers (https://archive.ics.uci.edu/ml/datasets/iris)

Unfortunately, for this project we did not have time to use our own Neural Network. Instead we used WEKA, developed by the University of Waikato.

My findings and full paper can be found in the below linked pdf, and all of my datasheets can be downloaded at my github here: https://github.com/QuantumInfinite/Feed-forward-neural-networks-for-data-classification

Magehem

For my Niagara College Year 3 Capstone I worked with a team of 9 developers to create the VR tower defence game MAGEHEM.

All the details for the game can be found at https://digitaldetails.ca/ , but to summarize:

  • VR Tower Defence, where there is only one tower, and you’re sitting on top of it
  • Minions come from the distance to attack your tower
  • Your only defence? MAGIC
  • Craft spells using our modular glyph drawing system (48 unique spells)
    • Chose your spell type (Beam, Lobbed, Point)
    • Chose your element (Fire, Ice, Earth, Lightning)
    • Chose your modifier (Split, Cluster, Bouncy, Explosion)
  • Gesture recognition using AirSIG
  • Made in Unity3D using OculusVR

This was a really fun project, and very educational as well, since I was the lead programmer for the team with 3 other programmers working alongside me.

We also learned a lot about feature creep, and keeping expectations simple from the start (we originally planned 128 unique spells and 3 schools of magic)

The game can be downloaded here: Google Drive

Lotto 649 simulator

After getting tired of seeing friends drop money on lottery tickets every week, I decided to build this simulator over the course of a few hours (would have been faster, but i’m still getting used to the syntax of JavaScript)

The payouts are calculated based on the most resent lotto 649 winning stats (at the time of writing):

Capture

Pinhead

Pinhead was my second year project at Brock. It’s a 2.5d platformer about a pin cushion and his alternate personas trying to escape a crafts store.

Over the course of 6 months, I worked with the fantastic team of:
Charlie Trafagander (3D Art), Chris Rosati (Level Design), Alyssa Ebanks (Level Design),
Ivy Truong (2d Art), and Josh Egamino (Sound design) to scope, design, and implement all of the characters, art, and challenges.
I myself wrote most of the code related to character movement, ability’s, and well, anything that wasn’t included in the main project file.

This was a very eye opening experience, as this was the first time we had to create something tangible of this size, as most of our previous projects were scoped to one or two short levels and at max 2-3 minutes of game play.

However, despite being a massive change and an incredible challenge given our course load at the time, working on this project made me, for the first real time, feel like an actual game developer. We created something from scratch to release (Albit a demo), had weekly daily meetings, timelines, goals. I got to see the project go through each stage of development, and saw my character controller go from a box which jumped 30 pixels forward on a key press to a fully flowing animation.

I learned a lot about programming, game design, and even surprising 3D modeling over the course of this project, all thanks to my fantastic team and our desire to make something we ourselves would in awe of.

We’ve published our game as a downloadable executable, which can be found here:

https://drive.google.com/open?id=1n_VKkigUlqsaDfdTwN_7FNuY4MqL8u-W

Little Adventures

Untitled-1For my second year IASC game.

While simultaneous working on PinHead, we were assigned the projectc of creating a short sidescroller in Unity. Wanting to take on a bit more of a programming challenge, I pressured my team into working on a very simplistic roguelike about a boy scout trying to get back to his troupe.

This project taught me and my team a thing or two about working on multiple ambitious projects at a time, and as such, I must honestly confess that this game suffered from a lack of fleshing out the mechanics and systems, aswell as an uncomfortable small amount of testing. I leave this project here as a reminder to always put my full effort into the games I work on and create, and that nothing should be back-burnerd for 90% of its development time.

The game can be downloaded here:

https://drive.google.com/open?id=17XpnvBhnoRA-anfA_Vw7PnlnsM8ESe0d

 

Spooky Shapes Game Jam

2

For the halloween Game Jam at Brock, me and my team made a Christmas themed office horror. Why you ask? Thats a very good question, which none of us can answer.

We had roughly 12 hours spaced over 2 days to create a Halloween themed game using only basic primitives and simplistic textures.

From the start we knew that we wanted to something scary. While brainstorming, we came to the conclusion that our favorite type of horror is psychological, something with a deep message and dire consequences to player actions. However, we had spent around 40 minutes discussing games which pulled this off well, and then realized we had nowhere near enough time to create something so rich.

So, naturally, we decided to go with the cheapest type of horror around: Jump scares.

We considered doing them in the style of something along the lines of 5 nights at Freddies’, but we didn’t like the fact that you’re subjected to a jump scare as a consequence of loosing. We then drew reference from Slender: the Eight Pages, wherein the jump scares are not the end of the game, but more like a consequence of progressing.

I worked on the character model (C’mon, I had only basic shapes to work with), the doors, the particle effects, and the jump scare events themselves. All in all, we worked straight down to the deadline, having almost deleted half our project around an hour before we were to present.

Our effort seemed to be well worth it in the end, as our classmates and professor judges selected it as one of the best games created that night.

Download here:

https://drive.google.com/open?id=0B-ztEHYBgRLVZVhCYnU1NDVib1U