top of page

Divij  Sood (Dyonisian)

Gameplay Programmer
Game Development Projects
 
(Click on images for videos/downloads)

I am a Gameplay Programmer with 2+ years of experience working with Games, AI applications, and VR experiences. I am passionate about using my programming skills to translate and execute Game Design into finished products. Applying creative problem-solving to technical challenges is at the core of what I do.

 

I am an expert user of Unity, C#, C++, and Unreal Engine 4.

I recently helped Sunnyside Games polish and release their latest game, Towaga: Among Shadows as a launch title for Apple Arcade. I worked primarily on Gameplay, which included new monsters and boss fights, a new game mode, and lots of bug fixing.

https://twitter.com/Dyonisian_Divij/status/1171673706059272193

I was an AI Simulation Software Engineer for iStein Neural Networks, and created 3D Visualizations and Simulations in Unity to help represent their interest and work in Artificial Intelligence.

I have my own writing business - providing content writing and copywriting solutions to technology businesses. 

 

I write Game Development blog posts for MAGES Institute - https://mages.edu.sg/blog

 

My writing business - www.dyonisianwriting.com

Image 001.png
3rd Person Shooter Procedural Generation Prototype

 

Mechanics inspired by Fortnite and Horizon Zero Dawn      February 2019

Unreal Engine 4, C++

 

Check it out on GitHub.

Watch the video.

 

Player character - 

Camera and shooting mechanics inspired by Horizon.

Building system inspired by Fortnite. 

Player can build walls, floors, and ramps. Built objects snap to a grid. 

Player can edit a hole in one of 4 positions in a wall to easily shoot the enemy.

 

Enemy - 

Procedural and Modular Enemy inspired by Horizon's early prototypes.

Starts with a core block. The final "assembled" enemy varies in shape and size.

AI controller allows the enemy to patrol or seek the player.

Core block (EnemyPawn) spawns pieces and attaches them to its faces.

If the core is destroyed, the whole robot goes down.

 

Module types - 

  • Holder (grey) - Spawns and attaches more modules

  • Armour (black) - Protects the core

  • Weak spot (yellow) - Has low HP and may explode when destroyed, damaging modules near it

  • Weapon (red) - Machine gun - Fast, weak projectiles. Turns slowly to aim towards the player like a turret.

  • Weapon (red) - Missiles - Big, slow projectiles that explode and can blow up cover/obstacles

 

 

WormAI.png
C. Elegans AI-Controlled Physics-based Worm

 

Games/AI Simulation Software Engineer at                       September 2018

iStein Neural Networks  - Unity                        

 

Demonstration of AI controlled worm with realistic muscle-driven movement navigating a simulated Minecraft-like 3D environment towards a food source.

 

Realistic physics-based worm capable of multi-part, muscle-driven movement inspired by nature. 

 

Machine learning applied using ml-agents library. AI's goal is to move the worm to its target. The complexity of the environment was increased step by step.

 

The AI can be trained to move the worm in 2 dimensions, 3 dimensions, and through dense "earth" in the form of blocks. The AI is trained to dig tunnels to get to its target.

 

The AI first wanders to find the "scent" of the food and then seeks the food.

 

Worked with different physics-based solutions for simulating a realistic worm.

 

Implemented voxels and grid-based manager for cubes.

 

 

C. Elegans Connectome Viewer 
 

Games/AI Simulation Software Engineer at                                June 2018

iStein Neural Networks - Unity     

 

Click here to read about it on LinkedIn.

 

Visualized complex biological neural activity data using Unity. Developed a visually appealing viewer for a worm connectome.

 

Data such as the positioning of neurons, connections between them, and other neurotransmitter data is read and parsed from XML files. 

 

UI and Interaction - User can click on neurons to view data. One of 4 themes can be selected. Particles can be toggled on and off. Playback and cinematics can be controlled.

 

Graphics - Line renderers for connections. Particle systems and spheres for neurons. Particle systems for signals.

 

Shaders - Using Unity's variant of HLSL and Shader Graph. Shaders are used for animations, glows, holograms, and diffuse effects. 

 

Playback - Data of signals between neurons is parsed and played in the viewer. 

 

Pathfinding - All neurons are added to a graph as nodes. Programmed pathfinding to find the shortest path between 2 neurons. Pathfinding uses a separate thread for performance. 

 

 

Image 047.png
Procedural Generation and Noise prototypes

 

Games/AI Simulation Software Engineer                                August 2018

at iStein Neural Networks  - Unity                                                        

 

 

Explored Procedural Generation with Value and Perlin Noise.

Explored some applications of Procedural Generation.

Used Procedural Mesh Generation.

 

Perlin and Value noise applied to textures, then used as heightmaps for planes and Unity Terrains.

 

Noise applied to particle systems.

 

Parameters tuned for landscape-esque results.

 

Applied procedural mesh generation for generating mazes.​​​​​​​​​

Hack 'n' Slash Game with Machine Learning AI
 

Coursework - Honours Project                                                2016-17

 

4th Year Project and Dissertation - An analysis of the effectiveness of Machine Learning techniques in a combat-focused 3D action game to improve user gameplay experience.

 

LinkedIn articles - https://www.linkedin.com/pulse/machine-learning-ai-hack-n-slash-game-part-2-neuro-evolution-sood

 

Game available to download here - https://dyonisian.itch.io/talons-wrought-of-steel

 

1) Designed and Developed a 3rd person fighting game as a platform for the research. Game design is modelled based on Mount and Blade.

2) Applied Machine Learning techniques to create AI Agents. Used Reinforcement Learning (Q Learning) and Neuro Evolution (NEAT).

3) Arranged developed AI in increasing order of difficulty in the game

 

All players found the game highly enjoyable and immersive. All but 1 player preferred the Machine Learning AI. All players said the game had a very smooth difficulty curve.

 

Q-Learning AI performs consistently well and can learn in real-time. NEAT produces AI with more varied and interesting behaviours.

 

Documentation includes 2 articles on LinkedIn and several videos.

 

Virtual Reality Educational Games 
 

Virtual Reality Developer at Gilded Mouse Media (1 year+)        2016-17

 

VR Game Development and Design - Educational games for employees/students in the oil industry. 14 applications for GearVR finished.

 

NOTE - The video is one of the 12 modules, recorded on PC. There are some distortions which are not present on the GearVR. Runs smoothly at 60 FPS on GearVR. The other modules are of similar design with different locations/equipment.

 

1) Programmed and designed applications and interaction for VR - UI based                 interaction, movable objects, etc.

2) Optimized applications to run at 60 FPS on GearVR with complex geometry.

3) Solved design challenges to create better games for education.

4) Pitched and pushed for better production quality and a larger emphasis on 

    game design.

5) Improved look/feel and developed smoother UX for some applications.

 

Additional research/development included - 

1) Graphic techniques for performance - Volumetric rendering, Impostor geometry , combining meshes.

2) Day/night cycle with real-time dynamic lights on GearVR.

 

Vermin Scourge - 3D Sci-Fi FPS

 

UE4 Spring Jam and Advneture Jam                                             2018

 

http://jams.gamejolt.io/advjam2018/games/VerminScourge/340485

 

Role - Team Leader and Programmer, some Game Design & Production work.

Made by Team VerminScourge for UE4 Spring Jam 2018.

Team - Divij Sood,  Connor Barthelmie, Rebecca Tipler, Miroslaw Sieniewicz, George Garcia.

 

-First experience forming and leading a Game Jam team (With mostly people I had never met before) - involved a lot of planning and scheduling.

-First non-tutorial project with UE4 and C++. 

-Features programmed - Rat enemies of 4 types, AI state machine, NavMesh pathfinding, combining blueprint and C++ programming, Spawn system with object pooling, particle systems, 2 power ups.

-Managed a considerably complex and well-featured, fully 3D game with high-quality graphics for a 5 day jam, then further improved it for 2 days for the next jam.

Mods for Divinity: Original Sin 2
 

Divinity Engine 2 - released on Steam Workshop and Nexus      2018

 

https://steamcommunity.com/id/dyonisian/myworkshopfiles/?appid=435150

https://www.nexusmods.com/divinityoriginalsin2/users/6348173?tab=user+files

 

My first experience creating mods for a game. I have 4 mods available,

with a total of more than 1500 downloads on Steam and Nexus combined (Not amazing but decent for a "not too active" game community.)

My goal was to exercise my creativity and Game Design skills to add fun content

that suited the game, and to provide additions that were required by player.

 

Work mostly involved Game Design and balancing, through database editing and later on scripting in the Divinity Engine 2's own scripting system.

 

-Skill usability improvements - Changed 28 skills in the game and added 5 new ones.

-Origins/Racial skillbooks - Gives players a bit more flexibility by making some skills in the game more easily available. 

-Apotheosis for everyone - Makes a useful skill more easily available.

-Tank/Defensive Warrior - A completely new class that gives a unique style of 

gameplay not present in the original game.

-Shadow Mage class (In progress) - A more complex class addition for exploring

another archetype not present in the game with more complex and creative skills.

Unreal Engine 4 C++ Prototypes​

 

Following Udemy Unreal Engine 4 C++ course                              2017

-Worked on 2 Unreal Engine 4 prototypes using Blueprints and C++. 

-Core mechanics are programmed with C++ and accessible through Blueprints for easier Game Design. 

-Worked on basic gameplay features, such as movement, physics, collisions, triggers, physics handles, raycasting, automatic projectile aiming, AI. 

-Good application of OOP throughout the projects.

SmartTome Augmented Reality Mobile Game
SmartTome Augmented Reality Mobile Game
SmartTome Augmented Reality Mobile Game
SmartTome - Augmented Reality Android Game
 

Coursework - Professional Project - Unity                             2015-16

Role - Programmer (Team of 8), Development Time - 8 Months 

Twitter - https://twitter.com/teamwayfarer

You're a modern day Wizard, and your phone is your Spell Tome. Players travel to popular locations in the real world to accept quests to take down monsters. Players draft their spells and go into battle. 

The original idea was to make a game that allowed players to interact with the real world. 

1) Researching suitable technologies and methods of implementing them to achieve our goal, including Augmented Reality features, UI, Networking, GPS, Google Maps, Augmented Reality 

2) Implementing GPS, Google Maps and Remote Databases in Unity using C#

3) Programming C# scripts within Unity for Quest functionality

4) Programming and Designing UI

I contributed to the concept and design, including planned features for the future such as World Bosses, Competitive Multiplayer, Laser Tag like mechanics.

Car Steering AI using Fuzzy Logic

Coursework - Fuzzy Inference System in Unity 3D               2016

 

This demonstrates a car being steered by Fuzzy Logic based AI. I tested a Fuzzy Inference System in MATLAB and then programmed a Fuzzy Inference System in C# in Unity to demonstrate it working. The car steers smoothly and the rate of steering varies based on how far it is from the line and its current velocity. The Fuzzy Inference System makes a smooth and realistic steering system for the car. It could be implemented in a racing game.

Desktop Golf - Augmented Reality PS Vita Prototype
 

Coursework - Used C++ Framework for PSVita                    2016

Augmented Reality Desktop Golf Game - Platforms extend from marker to marker to create a golf course based on user's placement of AR Markers. The game allows for flexible placement of markers, and innovative player Level Designs. The game is a tool for the player's creativity, and level flexibility improves replayability. Developed using a C++ framework (Game Education Framework-  https://github.com/grantclarke-abertay/gef)

- Programmed a Game Object class, used for the golf ball and platforms. Includes      Local Transforms for collision detection.

- Used all 6 PS Vita Markers.

- The platforms rotate, scale and position in a way to connect two markers in almost any position.

- Programmed Gravity and Velocity physics, and AABB collision detection.

- Game state is central to the game logic. The state moves forward when the ball lands on the next platform.

Level Editor - C++ Tools Programming

 

Coursework - Used C++ Framework, DirectX11, MFC             2017

Level editor intended for an MMORPG game. The purpose of the tool is to allow easy creation and editing of levels for a game. Additional features and improvements were added on top of an existing framework, for improved usability and world editing. Changes include - 

- Toolbar for ease of use

- Camera controls (Mouse and keyboard, inspired by Unity)

- Focusing on the selected object

- Highlighting the selected object

- Manipulation of objects by dragging the mouse

- Inspector for object attribute editing

- Adding new objects or copying existing ones

- Improved usability of object selection

- Half-implemented object picking with the mouse

- Camera is implemented as a vector camera using Euler Angles

- Mouse input is used for moving the camera and objects

- Object picking implements an algorithm for ray casting along with Matrix calculations based on a tutorial from Rastertek. It could be made to work properly with further debugging. (http://www.rastertek.com/dx11tut47.html)

Audio Programming - Algorithmic music, Filters, Voice processor
 

Coursework - PureData and Unity​                                           2016

The Pure Data patch was created to support an audio-based game. The idea was to have the audio as an interactive part of the environment, that changed based on user interaction and actions, to increase immersion. The game is a work in progress - it shows a distortion or ripple in the audio that would automatically occur when an action is taken in game, and the gradual changing of music alerts the player towards lowering HP. Features to be added include voice recording and processing.

The music is based on music theory and the Circle of Fifths. The Square pitch follows the G Major scale while the rest follow the G Phrygian Scale. This allows the notes to randomize yet still be melodic.

The first part shows the distortion ripple in the audio and the changing music that signifies that the player is close to death. 

The second part shows the actual Pure Data patch.
Demonstrated in order -
1) Algorithmic music
2) Turning off some samples and waves
3) Transposing one of the waves
4) Turning up the comb filtering, reverb, and delay for a wave
5) Effect of comb filter, reverb and delay on drum samples
6) Sending a "ripple" through the music using gradual increase then decrease of comb filtering, reverb and delay
7) Processing recorded audio, including delay, reverb, echo and pitch shifting

Unreal Engine 4 Level Design and Gameplay

Solo project - Unreal Engine 4                                                 2016

This was my first experience with Unreal Engine 4. My aims were to- 

1) Make full use of Unreal Engine 4's amazing graphics

2) Create an atmospheric Island landscape (Using existing assets)

3) Optimize it to perform well (60 FPS)

4) Add some basic gameplay using Blueprints and C++ (In Progress)

5) Optimize it for VR

6) Test it on a VR Headset (In Progress)

Top Down Shooter - Networking, Prediction, Interpolation
Multiplayer Networked Game - Unity

 

Solo Project - Unity                                                                    2015

I built this project as a multiplayer top down shooter, using Unity's NetworkMessageDelegates. I didn't use other in-built Unity networking features. I use my own message-sending protocols and spawning functions. 
I later improved on this for a Network Programming module, adding prediction and interpolation so that the game works even under bad network conditions.

In the video, the client is replicated almost perfectly on the server. Clumsy is used to simulate bad network conditions, and the simulation still works, though not as smoothly as before. 

It has basic gameplay - Players spawn, shoot, throw grenades, lose HP and respawn.

DirectX 11 Graphics Programming

Coursework - Terrain, Lighting, Programmable                    2015

Shader Pipeline, Shadow Mapping, Post Processing

Features - Lighting, Use of all stages of shader pipeline, Terrain manipulation using height map, Multi-pass rendering, Shadow mapping, Post-processing.

Created throughout my first term (Year 3) at Abertay University, but mostly in the last month. 

Shortcomings - 
The lighting simulation on the sphere is incorrect. In the end I left it as it is and created a separate scene with multiple lights and shadows.
Lighting on the terrain is per-face lighting, which creates the look of a jagged gemstone-like surface. A smoother terrain could be made using a normal map. Normals are currently calculated per-face using the geometry shader.

To and Fro(g) - Multiplayer game - 2 or 4 players

 

Global Game Jam                                                                       2017

Role - Programmer, Designer, Development Time - 48 Hours

Platformer made by Team EpicRaft for Global Game Jam 2017.

Team - Divij Sood,  Anna Kosouri, Tasos SkandalisKasia GoszkaMatt Boyle, Jack Baptie and Ian Lauchlan Mcleod

Unite your frog with his love at the center of the pond! Throw pebbles to create ripples in the water, to move logs to form a bridge and jump your frog over to the center. Disrupt your opponents' efforts to do the same.

Anima - 2D Puzzle Platformer

 

Global Game Jam                                                                       2016

Role - Programmer, Designer, Development Time - 48 Hours

Platformer made by Team WhaleyBin for Global Game Jam 2016.

Team - Divij Sood, David Robertson, Simeon Lilov, Matthew Lornie, Connor Cameron, Suzanne Scott, Mark Ritchie, David J Thomson

You are a tribal warrior who wakes up in a forest with seeds following you. You can perform a ritual to plant the seeds and grow them into vines to help you traverse the forest. 

SMight! - 2D Beat 'em up on Google Playstore

Solo Project - Unity                                                                    2015

SMight – The game revolves around a sorcerer, Sorlo, who wakes up in an unknown land surrounded by enemies.

SMight is a short, retro, 2D beat em up fighting game.

This was my first game for the android platform, and first “complete” game too.

The game uses a rough version of a state machine for the different attack states of the player and enemies. I enjoyed the Gameplay programming and Game Design for this project.

It takes about 5-10 minutes to play, but it is NOT easy. 

URL -  http://play.google.com/store/apps/details?id=com.dyonisian.smight

Life is Precious - Dangerous Driving Simulator
 

3D Serious Game - Simulates bad driving practices - Unity​   2015

 

Role - Team leader, Producer, Designer, Programmer

Team - Divij Sood, Kaarlo Korhonen and Wayne Cho

The game demonstrates the dangers of irresponsible driving. The first scene illustrates driving while texting, and the second scene illustrates driving while drunk. I enjoyed the Game Design and Gameplay Programming aspects of this project the most.

URL - www.dropbox.com/s/l03atr1ut580ktn/LifeisPrecious.rar?dl=0

Maxx Penn - Android Game Prototype

 

Internship at Piñata Studios - Unity                                         2015

Role - Programmer, Designer

I worked as an intern for Piñata studios in Singapore for 2 months. This mobile game prototype was developed for them. I worked on adding new features and programming a working prototype.

I collaborated with a fellow intern who was also my classmate. We both communicated with the studio head and full time programmers to better understand our task.

The Last Stand  - FPS Bow and Arrow Survival Game

 

Solo Project - Unity                                                                    2014

You play as one of the last survivors of a zombie-infection-outbreak. After scouting for supplies, you're awaiting extraction. You wait atop a hill - the most strategically sound location. Shoot zombies with your bow and arrow. 
More paths open for the zombies to get to you in levels 2 and 3.

This was the my first full 3D game project in Unity. I particularly enjoyed designing the level.

https://www.dropbox.com/s/pz6yxv283rmt7ys/TheLastStand.rar?dl=0

Fall Off - Ragdoll Puzzle Platformer
 

Group Project - Abertay Game Development Society - Unity     2015 ​

Role - Lead Programmer, Mentor

As a member of Abertay Game Development Society, I formed a group with 5 other members to work on a game project together. Being the only 3rd year student in a group of 1st years, I took on the role of Lead Programmer and mentored the others about programming in Unity to help them contribute to the project. 
It was our first project as a newly-formed group. For some members, it was their first game project overall. A lot of changes had to be made to the initial ideas, plans and expectations. 


Demon Tag - Mutliplayer 2D Platformer

 

Group Project - Abertay Game Development Society - Unity ​    2017

 

Role - Producer, Lead Programmer, Mentor

Team - Davis Vitenbergs, Divij Sood, Filip Przybycień, Liam Telfer, Zane Zarakovska

As a member of Abertay Game Development Society, I formed a group with 1st and 2nd year students. We brainstormed and came up with the idea of a multiplayer platformer inspired by the classic game of "Tag". Onk the Monk and Puf (Poor Unfortunate Fellow) were going about their duties as scribes, when they accidentally summoned a Demon who demanded a sacrifice. Now the player that the Demon spends most time possessing gets sacrificed. The currently possessed player chases the Human player and must "tag" him in order to rid himself of the demon.

As the only 4th year member of the group, I guided my teammates and gave the project direction. I helped organize work and schedules. We worked with rough estimates of Scrum and Agile techniques. 


Multiplayer Battleships Android Game

 

Networking using Java Sockets, Local Database                   2016

and Remote Database. Android Studio

 

I developed this as part of a Mobile Networking module. The game sends messages between two devices on a local network using Java Sockets, stores coordinates of its ships in a local database, and uploads high scores to a remote database.  


Android Split-Screen Multiplayer Shooter 

 

2D Android Game - Unity ​                                                          2015

 

My aim was to experiment with a unique design idea I came up with and try to make it fun and challenging.


Web Design/Development Portfolio in Adobe Flash
 

Graphic/Web Design/Development project

 

This was my final project for my Certificate course in Web Design & Development - An Interactive Portfolio made using Adobe Flash. It displays some of my graphic and web design work - But the contact information is outdated. 


bottom of page