Niagara Falls, moments before the branch broke
❤️Abee❤️ working that Ergodox EZ better than
anyone else in the office
I'm Ali, and I like to build things.
I'm a generalist game programmer at work with over a decade of experience, from low-level systems and core APIs, to custom tooling, metaprogramming, serialization, gameplay, AI, technical art and UI. If it's required by the job, it gets done.
Unity at day, Unreal at night. I'm very passionate about recreating my childhood PS1 game experiences. #GouraudShading4Life
Lately @TheEmberKnights, @PlayStarkadia
Favorite game: Resident Evil 1.
Favorite graphics: Dog Football.
I also dabble in gynmastic strength training, construction work, electrical, woodworking, anything that lets me use my hands and gets me off the screen for a bit.
Challenge me on lichess!
I'm a generalist game programmer at work with over a decade of experience, from low-level systems and core APIs, to custom tooling, metaprogramming, serialization, gameplay, AI, technical art and UI. If it's required by the job, it gets done.
Unity at day, Unreal at night. I'm very passionate about recreating my childhood PS1 game experiences. #GouraudShading4Life
Lately @TheEmberKnights, @PlayStarkadia
Favorite game: Resident Evil 1.
Favorite graphics: Dog Football.
I also dabble in gynmastic strength training, construction work, electrical, woodworking, anything that lets me use my hands and gets me off the screen for a bit.
Challenge me on lichess!
some real gaaaims
Doom turtle is an indie developer based in London ON Canada, founded in 2022
with the same team from Tiny Titan Studios but with focus on quality Console and PC games instead of mobile. Best known for Ember Knights.
Legends of Starkadia
Ember Knights
Ember Knights: Action rougelite, 1-4 players local/online multiplayer.
Development started around 2018, was originally a kart game! I was main programmer alongside Dave from start to finish. Implemented the player snappy combat and abilities, custom ECS system for the core gameplay, custom serializer for save system, custom shaders, editor tooling, majority of the game UI, wrote the AI for all the enemies and bosses in the game.
Went Early Access April 2022, Released July, 2023
Available on Steam, and Nintendo Switch.
Development started around 2018, was originally a kart game! I was main programmer alongside Dave from start to finish. Implemented the player snappy combat and abilities, custom ECS system for the core gameplay, custom serializer for save system, custom shaders, editor tooling, majority of the game UI, wrote the AI for all the enemies and bosses in the game.
Went Early Access April 2022, Released July, 2023
Available on Steam, and Nintendo Switch.
Tiny Titan Studios was an indie game developer and publisher based in London ON Canada, founded in 2014
by Jeff Evans, with over 10+ titles released mainly mobile with some PC. I was the first employee hire. The studio was then sold to TrophyGames and we rebranded to Doom
Turtle to focus on PC/Console games.
Tiny Rails
Tiny Rails: An idle pixel train game. One of Tiny Titan Studio's most successful titles, we did not
expect for it to take off, but apparently people really like trains!
Sole programmer from start to finish, liveops post release. Did all the gameplay, all the systems, UI, editor tooling and a lot of the whacky secrets Tiny Rails is known for like Cowboom and Godzilla.
I would wait until everyone leaves, order pizza and drinks id-Tech style, listen to some Doom tracks and stay until 10am the next morning, it was fun! I was pretty hardcore, now I sleep at 9pm :D
Released Aug, 2017 on Android, iOS and later Steam.
The game was sold to TrophyGames and renamed to "Tiny Rails - Train Tycoon".
Sole programmer from start to finish, liveops post release. Did all the gameplay, all the systems, UI, editor tooling and a lot of the whacky secrets Tiny Rails is known for like Cowboom and Godzilla.
I would wait until everyone leaves, order pizza and drinks id-Tech style, listen to some Doom tracks and stay until 10am the next morning, it was fun! I was pretty hardcore, now I sleep at 9pm :D
Released Aug, 2017 on Android, iOS and later Steam.
The game was sold to TrophyGames and renamed to "Tiny Rails - Train Tycoon".
Kung Fu Z
Kung Fu Z: An Active-Idle Retro Zombie 2D Sidecroller Beat-em up.
You can idle and watch your dude punch zombies, or engage by tapping to make him fight harder.
Sole programmer from start to finish, liveops post release. This was a special one to me, it was very fun, loaded and ran pretty fast. This game also featured the birth of our custom DLL hot-reloading system that we used to help develop our other games.
This game also had whacky Ali secrets, some of which are still undiscovered, one was a tribute to our lovely office dog Zoe.
Released July, 2018 on Android, iOS.
The game was sold to TrophyGames and renamed to "Kung Fu Zombie".
You can idle and watch your dude punch zombies, or engage by tapping to make him fight harder.
Sole programmer from start to finish, liveops post release. This was a special one to me, it was very fun, loaded and ran pretty fast. This game also featured the birth of our custom DLL hot-reloading system that we used to help develop our other games.
This game also had whacky Ali secrets, some of which are still undiscovered, one was a tribute to our lovely office dog Zoe.
Released July, 2018 on Android, iOS.
The game was sold to TrophyGames and renamed to "Kung Fu Zombie".
Dash Quest
Dash Quest: A retro pixel top-down Hack-n-Slash.
The OG game that started it all for Tiny Titan. An impresive feat coded by my boss Jeff Evans. I came in later and did platform integration, save system, gameplay features and minigames like the Archery.
Released October, 2015 on Android, iOS.
The game was sold to TrophyGames.
The OG game that started it all for Tiny Titan. An impresive feat coded by my boss Jeff Evans. I came in later and did platform integration, save system, gameplay features and minigames like the Archery.
Released October, 2015 on Android, iOS.
The game was sold to TrophyGames.
Dash Quest Heroes
Dash Quest Heroes: A dash quest spin-off.
I assisted in fixing bugs, implementing platform integration (ads/iap), load-time and runtime optimizations, save system, some gameplay features and UI, redid the input handling as it was grosly over-complicated.
Released December, 2017 on Android, iOS.
The game was sold to TrophyGames.
I assisted in fixing bugs, implementing platform integration (ads/iap), load-time and runtime optimizations, save system, some gameplay features and UI, redid the input handling as it was grosly over-complicated.
Released December, 2017 on Android, iOS.
The game was sold to TrophyGames.
Dash Quest 2
Dash Quest 2: Dash quest sequel (came after Heroes).
I assisted in fixing bugs, implementing platform integration (ads/iap), load-time and runtime optimizations, save system, some gameplay features and UI, I did the worldmap here if my memory serves me.
Released October, 2019 on Android, iOS.
The game was sold to TrophyGames.
I assisted in fixing bugs, implementing platform integration (ads/iap), load-time and runtime optimizations, save system, some gameplay features and UI, I did the worldmap here if my memory serves me.
Released October, 2019 on Android, iOS.
The game was sold to TrophyGames.
Tap Smiths
Tap Smiths: It's hammer time! Race the clock to craft stuff.
This was text-book indie game in terms of scope and juice. My boss was the main programmer on it. I assisted in bugs fixes, implementing platform integration (ads/iap), minor optimizations and the save system.
Released July, 2016 on Android, iOS.
The game was sold to TrophyGames.
This was text-book indie game in terms of scope and juice. My boss was the main programmer on it. I assisted in bugs fixes, implementing platform integration (ads/iap), minor optimizations and the save system.
Released July, 2016 on Android, iOS.
The game was sold to TrophyGames.
Arena Stars
Arena Stars: A real-time multiplayer battle royal.
This was Tiny Titan's biggest and most ambitious game. Was absolutely a georgous game! Unfortunately canceled due to many reasons.
I did UI, gameplay and a lot of load-time and runtime optimizations.
Released April, 2019 on Android, iOS and Steam.
This was Tiny Titan's biggest and most ambitious game. Was absolutely a georgous game! Unfortunately canceled due to many reasons.
I did UI, gameplay and a lot of load-time and runtime optimizations.
Released April, 2019 on Android, iOS and Steam.
These are games/demos I did on the side in my spare time using different technologies. They're ps1 inspired games with lowpoly esthetics. Purely fueld by nostalgia.
Tech ranged from Unity, Unreal, OpenGL and software rendering with C/C++ (my favorite)
Project JungleRot
My most recent attempt at creating a retro RE-inspired survival horror game.
Features prerendered backgrounds with static camera angles, tank controls, classic zombies, multiple weapons, limited inventory and puzzles!
Notable progress compared to my other attempts, finishing is still hard but we're aiming for a free itch.io demo soon.
Check out my tutorial on Prerendered backgrounds in Unreal!
Features prerendered backgrounds with static camera angles, tank controls, classic zombies, multiple weapons, limited inventory and puzzles!
Notable progress compared to my other attempts, finishing is still hard but we're aiming for a free itch.io demo soon.
Check out my tutorial on Prerendered backgrounds in Unreal!
IOU
Was my dream project... How I got started in video games.
IOU was meant to be a love letter to Classic Survival Horror. Started all the way back in 2012 by Nic the artist, I then joined. We had no idea what we were doing. Couple of passionate fools purely fueld by nostalgia. Did all the text-book indie mistakes, rewrote things a million times, hopped engines a thousand times. Lot of burnout and emotion, work would be put on hold, then resumed, then on hold again.
In 2020 I decided to give it a final go now that I have real experience making and shipping games. I implemented all the systems and mechanics of the game in Unreal and I was pumped, but due to some unfortunate circumstances, I had to cancel the project and move on. Make use of the game systems in other projects. It was hard, we were both too attached and obsessed with this project, it wasn't healthy. We definitely bit more than what we could chew, turns out making an RE clone is not so trivial afterall.
Recent mechanic clips from me: Puzzles, Map & File, Game Over, Main Menu.
OG project links from Nic: Enter The Locker Horror, Blender Artists.
IOU was meant to be a love letter to Classic Survival Horror. Started all the way back in 2012 by Nic the artist, I then joined. We had no idea what we were doing. Couple of passionate fools purely fueld by nostalgia. Did all the text-book indie mistakes, rewrote things a million times, hopped engines a thousand times. Lot of burnout and emotion, work would be put on hold, then resumed, then on hold again.
In 2020 I decided to give it a final go now that I have real experience making and shipping games. I implemented all the systems and mechanics of the game in Unreal and I was pumped, but due to some unfortunate circumstances, I had to cancel the project and move on. Make use of the game systems in other projects. It was hard, we were both too attached and obsessed with this project, it wasn't healthy. We definitely bit more than what we could chew, turns out making an RE clone is not so trivial afterall.
Recent mechanic clips from me: Puzzles, Map & File, Game Over, Main Menu.
OG project links from Nic: Enter The Locker Horror, Blender Artists.
PS1 Game Engine
This is a 3D game engine for lowpoly games. Written in C/C++ from scratch. It features a software renderer with z-buffer and triangle sorting support, object culling, triangle clipping, perspective-correct and affine texture mapping.
The collision system used ellipse-based detection, where objects are represented as an ellipse and then shrunk down to a sphere to simplify math and do collision detection and handling. I used a simple grid for broadphase.
The animation system is skeletal-based bone-weighted key-framed implementation.
The asset pipeline used an offline step to convert models/images using Assimp to an internal engine format.
Platform layer (Win32) was written from scratch which gave the game input handling via Xinput, audio mixer using DirectSound, and would blit and stretch on screen the game's 640x480 or whatever size pixel buffer. Game state was separate from engine and compiled into a DLL which is loaded dynamically from the engine for hot-reloading support.
Prerendered backgrounds are implemented by populating the depth-buffer with the prerendered depth before rendering the scene: Youtube Video.
Credits: Casey Muratori, Fabian Giesen, Paul Nettle, Andre Lamothe
The collision system used ellipse-based detection, where objects are represented as an ellipse and then shrunk down to a sphere to simplify math and do collision detection and handling. I used a simple grid for broadphase.
The animation system is skeletal-based bone-weighted key-framed implementation.
The asset pipeline used an offline step to convert models/images using Assimp to an internal engine format.
Platform layer (Win32) was written from scratch which gave the game input handling via Xinput, audio mixer using DirectSound, and would blit and stretch on screen the game's 640x480 or whatever size pixel buffer. Game state was separate from engine and compiled into a DLL which is loaded dynamically from the engine for hot-reloading support.
Prerendered backgrounds are implemented by populating the depth-buffer with the prerendered depth before rendering the scene: Youtube Video.
Credits: Casey Muratori, Fabian Giesen, Paul Nettle, Andre Lamothe
Bottlenec
OpenGL 3D engine prototype with MD2 model animations, DLL hot-reloading, funky shaders, and an entity inspector that uses reflection/introspection to inspect data and modify values.
A preprocessor runs in a pre-build step, scans source code files and generates reflection code that the engine uses. The code contains metadata information about the types, field names, field types, and getters/setters and type constructors.
TODO: Post code on github. But first, figure out how this thing builds again Lol.
Written in 2015. Check out the demo on Youtube.
A preprocessor runs in a pre-build step, scans source code files and generates reflection code that the engine uses. The code contains metadata information about the types, field names, field types, and getters/setters and type constructors.
TODO: Post code on github. But first, figure out how this thing builds again Lol.
Written in 2015. Check out the demo on Youtube.
These are tools I built in my spare time to improve quality of life, solve certain problems or just for fun. When I started using Unity back in 2014 I noticed it had a lot of shortcomings. I wrote many editor extensions and plugins to improve the ecosystem and put on the Asset Store or out for free.
fRED
fRED aka "Fuckin' Right Editor" is a custom-tailored text/code editor for my personal use and coding style.
I was fed up with how slow Visual Studio is, and how cumbersome it is to customize other 'lightweight' editors to perfectly fit your needs. I also wanted to prove to myself that I can finish projects not just small demos.
One of my more serious projects, written in 'sane' C/C++, uses gap buffer for the text data-structure, and Dear Imgui for the rendering backend. It has a fast custom lexer for C-type languages, syntax highlighting, instantanious text and symbol searches, macro recording, super smooth scrolling, split views, an inspector for changing themes and properties, and much more.
I plan to put it on github at some point...
Check this (old) demo on Youtube, and this Inspector.
Credits: Per Vognsen.
I was fed up with how slow Visual Studio is, and how cumbersome it is to customize other 'lightweight' editors to perfectly fit your needs. I also wanted to prove to myself that I can finish projects not just small demos.
One of my more serious projects, written in 'sane' C/C++, uses gap buffer for the text data-structure, and Dear Imgui for the rendering backend. It has a fast custom lexer for C-type languages, syntax highlighting, instantanious text and symbol searches, macro recording, super smooth scrolling, split views, an inspector for changing themes and properties, and much more.
I plan to put it on github at some point...
Check this (old) demo on Youtube, and this Inspector.
Credits: Per Vognsen.
Tiny Console
One of my most useful tools I made for work.
It's a C++ utility that uses Dear Imgui for the interface, and UDP sockets to communicate with Unity clients. The idea is to be able to connect into running builds or editors and inspect memory, get state dumps, execute commands, etc. The possibilities are endless on what you could do. We have multiple games and each one of them uses its own cheat tool and editors. This can unify all that.
Data is communicated from/to C# to/from C++ via a custom written reflective binary serializer.
We mostly use it for console development to send commands to the game.
I also use it to mess with Greg our QA guy and send random console logs to his editor "SYSTEM CRASH OUT OF MEMORY PZZERRRRRP" lmao.
Check out the demo on Youtube.
It's a C++ utility that uses Dear Imgui for the interface, and UDP sockets to communicate with Unity clients. The idea is to be able to connect into running builds or editors and inspect memory, get state dumps, execute commands, etc. The possibilities are endless on what you could do. We have multiple games and each one of them uses its own cheat tool and editors. This can unify all that.
Data is communicated from/to C# to/from C++ via a custom written reflective binary serializer.
We mostly use it for console development to send commands to the game.
I also use it to mess with Greg our QA guy and send random console logs to his editor "SYSTEM CRASH OUT OF MEMORY PZZERRRRRP" lmao.
Check out the demo on Youtube.
Vexe Framework
VFW: Custom serialization, sexy property drawers, faster GUI.
VFW is an editor extension that offers much more advance editor extensibility features than what comes out of the box with Unity. A better drawing API, a faster GUI layout system for editor drawing, tons of attributes/drawers, helper types and more.
Was my biggest and most used plugin at the time. Basically was the precursor to Odin Inspector. Should I have asked money for it? Probably...
Written in 2015, check out the source on github.
VFW is an editor extension that offers much more advance editor extensibility features than what comes out of the box with Unity. A better drawing API, a faster GUI layout system for editor drawing, tons of attributes/drawers, helper types and more.
Was my biggest and most used plugin at the time. Basically was the precursor to Odin Inspector. Should I have asked money for it? Probably...
Written in 2015, check out the source on github.
Fast Serializer
Fast Serializer: IL-based binary serializer.
emits IL to genreate the necessary serialization functions.
Supports inheritance, cyclic refernces, serialization by reference, single dimension and 2d arrays, generic Lists, Queues, Stacks, HashSet, Dictionary, Metadata (Type, FieldInfo, PropertyInfo, MethodInfo), enums, Guid, Nullables, structs/classes and some Unity types.
Learning IL and knowing what goes on under the hood gave me a much deeper knowldge of C#, thanks to this future me was able to write much more effecient C# code.
Written in 2015, check out the source on github.
emits IL to genreate the necessary serialization functions.
Supports inheritance, cyclic refernces, serialization by reference, single dimension and 2d arrays, generic Lists, Queues, Stacks, HashSet, Dictionary, Metadata (Type, FieldInfo, PropertyInfo, MethodInfo), enums, Guid, Nullables, structs/classes and some Unity types.
Learning IL and knowing what goes on under the hood gave me a much deeper knowldge of C#, thanks to this future me was able to write much more effecient C# code.
Written in 2015, check out the source on github.
Fast Reflection
Fast Reflection: Delegates for Lightning Fast metadata Reflection.
This is an extension methods library that emits IL code to generate fast field/property getters/setter, method calls and ctor invocations.
It's ~22x faster than normal reflection, within milliseconds of direct invocation. Very simple, easy to use and intuitive API, with both weakly and strongly typed overloads. Handles instance and static members (fields, properties and methods) as well as ref/out method parameters.
Written in 2015, check out the source on Github.
Unity Asset Store page is still up it seems!
This is an extension methods library that emits IL code to generate fast field/property getters/setter, method calls and ctor invocations.
It's ~22x faster than normal reflection, within milliseconds of direct invocation. Very simple, easy to use and intuitive API, with both weakly and strongly typed overloads. Handles instance and static members (fields, properties and methods) as well as ref/out method parameters.
Written in 2015, check out the source on Github.
Unity Asset Store page is still up it seems!
gstring
gstring: GC Free string for C#, sorry ladies.
Uses black magic 'unsafe' C hacks to give you the ability to perform string operations without any allocations.
Written in 2015, check out the source on github.
Uses black magic 'unsafe' C hacks to give you the ability to perform string operations without any allocations.
Written in 2015, check out the source on github.
uFAction
uFAction: Serializable & Inspectable Delegates (Actions & Funcs).
My first commercial plugin! This is basically UnityEvent before it was a thing. This also eventually led to the development of VFW and RabbitGUI.
It supports both Unity objects and vanilla C# objects as targets. Assign handler arguments right from the editor.
Published in 2014 on the Unity Asset Store.
My first commercial plugin! This is basically UnityEvent before it was a thing. This also eventually led to the development of VFW and RabbitGUI.
It supports both Unity objects and vanilla C# objects as targets. Assign handler arguments right from the editor.
Published in 2014 on the Unity Asset Store.
Clipboard Logger
Clipboard Logger: Intercepts Ctrl+C and logs the text content to a file.
This is a very handy little utility, lot of times I forget I copied something I need and accidentally copy again and lose the oroginal content. With this, each Ctrl+C creates an entry in a file with timestamps so you never lose anything.
Check out the source on github.
This is a very handy little utility, lot of times I forget I copied something I need and accidentally copy again and lose the oroginal content. With this, each Ctrl+C creates an entry in a file with timestamps so you never lose anything.
Check out the source on github.
Happy Virus
Happy Virus: It's a happy virus. Prank your buddies kek.
- Keeps popping annoying windows and boxes with stupid messages.
- Disables regedit.
- Disables taskmgr.
- Keeps sending BACKSPACE so user can't really type his way out.
- Copies itself to Startup folder.
- Consumes RAM and CPU.
Check out the source on github.
- Keeps popping annoying windows and boxes with stupid messages.
- Disables regedit.
- Disables taskmgr.
- Keeps sending BACKSPACE so user can't really type his way out.
- Copies itself to Startup folder.
- Consumes RAM and CPU.
Check out the source on github.
Contact☎️