Michael Sadler | Infynidas

A Game Developer, Scriptwriter and Programmer based in Sydney Australia.

The Academy of Kinetic Magic

The Academy of Kinetic Magic is a 3D Fantasy Puzzle Platformer with Object Manipulation Abilities. Take on the academy exam by completing 15 levels across 5 different modules, and try to get the highest grade!

The full game is available for free on itch.io (Windows and Mac):

Game Features: 15 levels featuring various puzzles and platforming challenges 6 object manipulation abilities: Grab, Gravity, Clone, Scale, Rewind and Fuse Over 100 custom-made models Custom shader to emulate a hand-drawn, comic-like pen and ink style Animated adaptive UI Hint, message and scoring systems Comic-like word effects that appear to emphasise actions Sound effects and background music


Project Outline

This project was created as part of the UNSW course COMP3421 Computer Graphics. We had 10 weeks to create a game in Unreal Engine with a group of 5 people.During the planning phase, we created a 50-page project proposal document outlining all the features of the game, as well as all technical specifications.

I worked on the game concept, game design, planning, prototypes, level design, programming and UI.

Project Contributions:
Created game concept and prototyped mechanics Programmed the player character, all object manipulation abilities and most interactable objects Created level structure and global Blueprints to use across all levels Designed several game levels and mechanics Implemented the UI Implemented the hint, message and scoring systems Implemented music and sound effects General bug fixing and optimisation


Grab Ability

The Grab Ability allows the player to move and rotate interactable objects.It fires a line trace from the mouse position to the object in order to determine where the object is.It then attaches the object to the physics handle component, with this component moving with the first-person character.The player can hold right click and move the mouse to rotate objects. This was achieved by rerouting the camera yaw and pitch movement into the rotation of the physics handle, which in turn rotates the object.



Gravity Ability

The Gravity Ability allows the player to freeze objects in mid-air and move them around.The object is frozen simply by turning off simulate physics, and storing a reference to it in an array.If more than 3 objects are frozen at once, the oldest frozen object will unfreeze, which is determined using that array.The scroll wheel can be used to move all frozen objects up or down. This is achieved by applying an increment to all frozen objects in the array, with this being clamped to ensure they don't move too far.




Clone Ability

The Clone Ability creates an exact copy of the chosen object.This is achieved by spawning an actor of the same class slightly above the current object, and resetting all default values.There is a limit of 20 clones per level, with the earliest clone being deleted if the limit is exceeded. Clones are kept track of using an array.




Scale Ability

The Scale Ability augments the size and weight of objects.The function Scale Object sets the World Scale 3D and Mass Override to the new scale determined by the float Scale Alteration.There is a limit on it to prevent objects from getting too big or too small.Pressing C will revert the object back to its original scale and weight, with these values being saved by the object itself.



Rewind Ability

The Rewind Ability freezes time and allows the player to move objects forwards or backwards through time.While the level is running, all objects save their world transform and angular velocity into a stack (FILO) array, keeping up to 30 seconds of history.Only significant changes in position is recorded, ensuring that duplicate data isn't stored.When the ability activates, Simulate Physics for all interactable objects in the level are turned off. The object's currently velocity is also stored.Once time has frozen, the player is able to hover over objects and see a line trace of its movement history.Selecting an object allows the player to scroll through its history to rewind or advance its position through time.When the ability is deactivated, time will be unfrozen. Each interactable object has Simulate Physics turned back on, and the velocity that was stored is applied to them.When time is unfrozen, all future positions of any objects that were altered are deleted, ensuring a linear history is stored.




Fuse Ability

The Fuse Ability allows the player to attach objects to each other, creating fused compounds.If the player is holding an object and presses the Fuse key, a check will be performed to see if the Grabbed Actor is colliding with an object.If it is, the new object will be attached to the Grabbed Actor, and the object will be added to the Grabbed Actor's array of fused objects.Whenever a fused object is grabbed, all objects fused to it will be detached from their current parent and then attached to the Grabbed Actor.This ensures that the Grabbed Actor is the parent of every fused object, allowing the entire fused compound to move with the Grabbed Actor.The weight of all grabbed objects are set to 0 to prevent them from pushing other objects around, making it easier to fuse objects together.Pressing the Unfuse key will unfuse all objects from the Grabbed Actor, which is achieved by getting the array of fused objects and detaching them from the parent.


Runaway Saloon Arcade

Runaway Saloon Arcade is a 3D top-down arcade shooter where players aim to get the highest score.An arcade machine has escaped the saloon, and all the mighty cowboys of the land are hunting it down! Play as the arcade machine and run away from the cowboys for as long as possible.This project was created as a part of the SXSW Sydney 2024 Cowboy Game Jam. I worked with 1 other person to create this game in 14 days using Unreal Engine.

The full game is available for free on itch.io (Windows and Mac):

Game Features: 3 types of endlessly spawning cowboys Limited ammunition system: collect coins to get more ammo Interactable objects: Hundreds of objects in the level can be flung around, with these being able to destroy cowboys Cowboy hat collectable: double movement speed for a few seconds Sheriff badge collectable: Earn more points High score system Cowboy quotes on the game over screen 4 difficulty modes and starting coin counts

For this project, I worked on the game concept, level design, programming and UI. I worked with Matthew Chiu Lo on this project, and he created all of the 3D models, textures and animations.

Project Contributions:
Created game concept and prototyped mechanics Programmed the player character, enemies and all objects Created level layout and design Created and implemented the UI Implemented the scoring and difficulty systems Implemented music and sound effects General bug fixing and optimisation


Devlog

I kept a devlog during the development of this project. The full version is available here:

Day 1: Started brainstorming game ideas, settling on a cowboy-themed 3D top-down arcade shooter.Day 2: Begun coding the project, creating the character blueprint, camera, collectable coins, coin counter, shooting mechanic, basic enemy AI and timer.Day 3: Created basic UI menus, worked on several bug fixes and created the Cowboy Sheriff.Day 4: Created additional UI menus, the scoring system and cowboy movement patterns.Day 5: Created more cowboy movement patterns, the enemy spawning system and collectable sheriff hats.Day 6: Imported Matthew's model and textures of the arcade machine into Unreal Engine.Day 7: Imported the cowboy, horseback cowboy and coin models from Matthew and implemented them.

Day 8: Improved the cowboy movement patterns, upgraded the enemy spawner and created the cowboy hat collectable.Day 9: Designed new versions of the UI screens, added atmospheric effects and implemented mode models.Day 10: Imported and implemented all building models, and planned out the level layout.Day 11: Imported and implemented all props, and created the level layout.Day 12: Refined collision for the props, finalised the level layout, updated the UI screens, implemented the options menu and added cowboy quotes to the game over screen.Day 13: Finalised all features of the game, enhanced lighting and particle effects and tested exporting the project.Day 14: Implemented a high score feature, volume slider, optimised the game assets and exported the final version of the game for submission.

Overall, I learned a lot from this project, as I had to create a complete game under a strict deadline. It taught me a lot about how to use Unreal Engine, and how to work well in a collaborative environment.

The Crystal Valley

The Crystal Valley is a 3D game environment that I created using Unity, Maya and Substance Painter.As the player explores the environment, they will find numerous androids that have been destroyed by strange glowing crystals, with their spaceship and driller tanks being encased in crystal. These androids had landed on the planet to mine for resources, but they were attacked by sentient crystals, with there being no survivors.

I created all of the models in Maya, and textured them in Substance Painter. The designs for the androids, spaceship and driller tank are all my own, with them being inspired by various sci-fi designs.

This project was created as part of the UNSW course DDES2111 3D Visualisation 3. We had 10 weeks to create a 3D game environment.The models for the androids had to have movable joints since they would be posed throughout the environment.This was quite a challenge, especially since it was the first time I attempted something like this.After a lot of trial and error, I managed to create the android, with it having over 40 movable parts.I then created two different textures for them, one for the standard android and one for the leader.Once the models were done, I positioned the androids throughout the environment.

Next, I created the driller tank and the spaceship models. I wanted the androids and their technology to have a consistent colour scheme, with this being silver, purple and black.The driller tank model was rigged to have the drill spin, adding more life into the scene.The spaceship is the hero asset of the scene, and was the largest model by far in terms of scale.I experimented with a lot of different body shapes and configurations for both models, and eventually landed on these design.After the models were textured, they were placed in the valley along with the androids.

The environment features over 1000 crystals, including 30 different models and 16 different colour schemes. These crystals were placed all throughout the environment, and I made sure that each cluster was a unique formation, ensuring that the environment didn't feel repeated.Once all models were placed, I experimented with various post processing and lighting effects, ensuring the scene had the correct atmosphere. I placed light sources on each crystal to create a glowing effect.Overall, this project taught me a lot about the process of 3D modelling, and how game environments are created.

About

Hello! I’m Michael Sadler, a game developer, scriptwriter and programmer based in Sydney Australia.
I am currently studying Media Arts and Computer Science at UNSW, and have released a few games on itch.io.I’m passionate about crafting immersive and impactful stories for others to experience. I have always loved games, and have a strong desire to continue creating game worlds to share with other people.I enjoy working in collaborative environments, and am always willing to learn new skills and techniques to ensure each project I work on is better than the last.

Thank you for viewing my website!