Me

Nathan Gooneratne

Computer Science and Game Development @ Northeastern University

gooneratne.n@northeastern.edu

nathan.gooneratne@gmail.com

|

Discord

@liemons

|

610-348-4303

What are you here to see?

|

|

GD | Project Beat

December 2023 - Present

A solo personal project (WIP) in which I challenged myself to create a modular fighting-game framework. The main focus of this was particularly on the structural challenge of designing asset code structures that are easy for designers to create stuff with, but also powerful in their modularity. I evaluated several approaches to implementing move data, but settled with Scriptable Objects and repurposing Unity’s Mechanim State Machine Animation States.

I used ripped sprites from Scott Pilgrim VS The World: The Game so I could focus on the programming. Every script is custom-written in Unity, with the only package being InputSystem.

- Features and Tools -

  • > Made in Unity with InputSystem Package
  • > Utilized custom-written Python sprite splicing script to facilitate animation importing
  • > Wrote custom input-buffering data structure with a binary-insertion algorithm
  • > Implemented animation scrubber for easier debug viewing of hitboxes and parameters
  • > Developed a modular "Track" and "Sequence" data storage system independant of AnimationClips without AnimationEvents

GD | Project Dall-E

March 2023 - April 2023

gameplay-painting gameplay-npc

A solo personal project puzzle game about matching Dall-E generated pictures to their original prompts. The main goal of the project was to finish and polish a project completely. Some sub-goals were creating an easily-approachable game, extensible dialogue system, dynamic and interesting NPCs, and variable levels of win conditions rather than a cut-and-dry right-or-wrong puzzle system.

- Features and Tools -

  • > Made in Unity with Blender and Maya
  • > All assets custom-made, including models, animations, scripts, and images (paintings AI-generated)
  • > Programmed NPCs with Navmesh collision-avoidance roaming behaviors and custom animations with ShapeKeys and dynamic Rigging multi-aim constraints
  • > Built custom dialogue system with variable text speed and dialogue-world events

GD | What Remains of Me

Sept. 2023 - Dec. 2023

(old release build) itch

A multi-semester project for a class I took called Game Studio. In a mock studio environment with 40 other students, I continued work on a student-led project. I primarily contributed to the codebase with custom utility tools (e.g. facilitating puzzle design with line rendering utilities) and refactoring of old student code, but I also worked on writing and implementing dialogue through the external Inky application. I worked in a small team with 6 other interdisciplinary students in which we would create weekly tasks, following the Agile workflow with Jira.

- Features and Tools I Developed -

  • > Made in Unity with the Inky dialogue system and application.
  • > Used git, Github Desktop, and Jira to facilitate source control and story-point tasks.
  • > Refactored moving-element (e.g. platforms) implementation to generalize behavior.
  • > Implemented custom utility tools for designers to facilitate level decoration and design.
  • > Wrote documentation and guides-of-use for custom developer tools, script componenets, and the Inky software.

GD | Move Shoot

October 2023

gameplay-move gameplay-game
itch

A game jam submission for Ludum Dare 54. Working in a team of 5, I led development on a movement-shooter with a limited-space twist. I mainly contributed programming and game design, but also mentored others in learning Blender for animation and modeling, and guided the programming division with tasks and code-design structures and interfaces.

- Features and Tools -

  • > Made in Unity with Blender
  • > Movement and aim-assisted FPS with 7 speed-runnable levels
  • > Moment-to-moment experience with quick restart and dynamic, reaction-focused gameplay

GD | Summer CC

July 2023

A short summer project where I challenged myself to create a non-kinematic state-machine-based character controller that was different from the standard implementation in two ways:

  1. 1 - The state machine was composition-based, meaning states could be pulled in and out of the state machine willy-nilly at runtime with no adverse/unpredicatable effects.
  2. 2 - The player used a floating-capsule implementation as opposed to the ground-contact capsule implementation which often had implementation quirks with stairs or elevation.

- Features and Tools -

  • > Made in Unity with animations sourced from Mixamo and player model from the Unity Asset Store
  • > Composition-based non-kinematic player controller with a floating collider implementation, stair-slope handling, and other polishes.

GD | Physics Game

May 2022

gameplay-throw
gameplay-dissolve gameplay-platform

The end result of my senior project. My goal was to create a small, polish, proof-of-concept for a puzzle game all about attraction and repulsion. To do this, I learned new tools like ShaderGraph and the HDRP rendering pipeline. I also used practices like Inheritance and modular OoD in order to create game mechanics like my reusable puzzle system and the gravitational-pull system. The latter allowed me to extend the game's original mechanic to affect the player as well, which I was pleasantly surprised by.

Below is the prototype of the game alongside another game mechanic of the finished product.

- Features and Tools -

  • > Made in Unity HDRP with Blender, InputSystem, and ShaderGraph
  • > First-person physics-based puzzle-solving levels with unique puzzle gimmicks and an extensible puzzle development system.
  • > Utilized overlay cameras to produce user HUD.
  • > Custom-wrote a non-kinematic rigidbody player controller driven by a state machine.

CS | Java Journal

June 2023

uml gui-example2

The final project for our Object-Oriented Design class. With two other students, we made a JavaFX-based bullet journal using design patterns (MVC). The goal of the project was to create an easily extensible codebase with modular implementations that would be compounded upon with further iterations of the assignment. One of the lightbox images includes the UML diagram we made for the code layout of our project.

- Features and Tools -

  • > Used Java, JavaFX, git, and Gradle.
  • > Implemented File I/O with password locks, custom dialogue boxes, FXML-based UI design, and unit-tested models/controllers.