About
@@ -410,7 +416,7 @@![]() |
|||||||||||||||||||||
![]() |
- A market-making bot written in C++ for Chainflip, a decentralised cross-chain exchange. - The bot provides liquidity by placing limit orders on Chainflip's concentrated liquidity - AMM, then hedges directional exposure by taking opposing perpetual positions on - Hyperliquid. It pulls price data from Bybit as a secondary oracle to inform pricing. -
-- The system connects to three exchanges simultaneously via WebSocket, each with dedicated - rate limiters and staleness detection to prevent trading on stale data. Orders are priced - using the external mid-price plus a configurable profit margin, and a kill-order is - scheduled for the next block to cancel unfilled orders before they can be picked up at an - unfavourable price. -
-- It has hot-reload DLL support, a platform layer (Sokol) separates business logic into a - reloadable DLL. Dear ImGui is used for monitoring positions, order fills, and exchange - connectivity. A separate web dashboard server (CivetWeb) publishes binary heartbeats over - WebSocket for remote monitoring in a browser. -
-2023: Terry Cherry game.doylet.dev/terry_cherry/
--
-
- C style C++ -
- Raylib -
- Emscripten -
- 2D Tower Defence-Esque -
![]() |
- ![]() |
-
- A 2-player local co-op top-down tower defence game developed over 4 weekends in a game - jam. Players defend "Terry's Heart" from waves of love-themed enemies (catfish, smoochie - teleporters, and clinger dashers) that march along waypoint paths toward the base. -
-- Players earn coins by defeating enemies and purchase upgrades or buildings from the - storefronts. A pub that slows enemies, a church that converts them to allies and an - airport that flies them to the back of the queue. Monkey totems spawn periodically which - can disable enemy portals when delivered to them shutting them down permanently to win. -
-- The engine features a tree-based entity system with generation-indexed - handles[1] to prevent use-after-free bugs, - fixed-timestep physics with swept AABB collision and a waypoint path-finding system. Built - on Raylib with a custom C++ meta-build system, hot-reload DLL support, and an Emscripten - web build targeting WebGL. -
- --
-
- Source Code git.doylet.dev/doylet/feely_pona -
- [1] Handles are the better pointers floooh.github.io/2018/06/17/handles-vs-pointers.html +
- C style C++ +
- Chainflip +
- Market Making +
- ImGui +
- Sokol +
- SQLite +
- Backend
Archived
+2024 - 2025: Liquid++ (Closed Source)
+-
+
![]() |
+ A market-making bot written in C++ for Chainflip, a decentralised cross-chain exchange. + The bot provides liquidity by placing limit orders on Chainflip's concentrated liquidity + AMM, then hedges directional exposure by taking opposing perpetual positions on + Hyperliquid. It pulls price data from Bybit as a secondary oracle to inform pricing. +
++ The system connects to three exchanges simultaneously via WebSocket, each with dedicated + rate limiters and staleness detection to prevent trading on stale data. Orders are priced + using the external mid-price plus a configurable profit margin, and a kill-order is + scheduled for the next block to cancel unfilled orders before they can be picked up at an + unfavourable price. +
++ It has hot-reload DLL support, a platform layer (Sokol) separates business logic into a + reloadable DLL. Dear ImGui is used for monitoring positions, order fills, and exchange + connectivity. A separate web dashboard server (CivetWeb) publishes binary heartbeats over + WebSocket for remote monitoring in a browser. +
+2020: intc Software u128/256 bit port to C git.doylet.dev/doylet/intc
--
-
- C99/C++ -
- Open Source -
- Single File Library Port -
- intc is a port of calccrypto's uint128/256 library into a single header file library to - allow u128/256 calculations. This port is primarily C first and provides C++ helpers like - operator overloads that are opt in. -
- --
-
- calccrypto's uint256_t github.com/calccrypto/uint256_t +
- C style C++ +
- Raylib +
- Emscripten +
- 2D Tower Defence-Esque
- Source Code git.doylet.dev/doylet/feely_pona +
- [1] Handles are the better pointers floooh.github.io/2018/06/17/handles-vs-pointers.html +
2023: Terry Cherry game.doylet.dev/terry_cherry/
+-
+
![]() |
+ ![]() |
+
+ A 2-player local co-op top-down tower defence game developed over 4 weekends in a game + jam. Players defend "Terry's Heart" from waves of love-themed enemies (catfish, smoochie + teleporters, and clinger dashers) that march along waypoint paths toward the base. +
++ Players earn coins by defeating enemies and purchase upgrades or buildings from the + storefronts. A pub that slows enemies, a church that converts them to allies and an + airport that flies them to the back of the queue. Monkey totems spawn periodically which + can disable enemy portals when delivered to them shutting them down permanently to win. +
++ The engine features a tree-based entity system with generation-indexed + handles[1] to prevent use-after-free bugs, + fixed-timestep physics with swept AABB collision and a waypoint path-finding system. Built + on Raylib with a custom C++ meta-build system, hot-reload DLL support, and an Emscripten + web build targeting WebGL. +
+ +-
+
2020: RaylibSIMD SIMD Software rendering in C git.doylet.dev/doylet/RaylibSIMD
--
-
- C99 -
- SSE2 -
- Graphics Programming -
- Raylib is a game-engine by Raysan5 whose main focus is to make game engine programming - simple and enjoyable. In this project, I rewrote the software-rendering routine to use - SSE2/3 instructions to attain the expected 4x speed-up by taking advantage of - data-parallelism offered by SIMD. -
- --
-
- Raylib Website raylib.com +
- C99/C++ +
- Open Source +
- Single File Library Port
- calccrypto's uint256_t github.com/calccrypto/uint256_t +
2020: intc Software u128/256 bit port to C git.doylet.dev/doylet/intc
+-
+
+ intc is a port of calccrypto's uint128/256 library into a single header file library to + allow u128/256 calculations. This port is primarily C first and provides C++ helpers like + operator overloads that are opt in. +
+ +-
+
2017: DTRenderer 3D Software rendering in C++ git.doylet.dev/doylet/DTRenderer
-![]() |
- DTRenderer is an attempt to build a simple software renderer from the ground up. The main - goal is to build an intuitive understanding of graphics mathematics, rendering pipeline - and core concepts. It runs as a Win32 program with minimal dependencies. -
--
-
- 2D Software Rendering -
- Alpha Blending -
- Bilinear Filtering -
- Correct Color Space Pipeline (SRGB <-> Linear) -
- Rasterisation -
- Texture Mapping -
- Translation, Rotation, Scale -
- 3D Software Rendering -
- Full Bright, Flat, Gouraud Shading -
- Orthographic, Perspective Projections -
- Custom Wavefront Obj Loader (minimal subset) -
- Hot Reloadable DLL for Renderer Code (taken from Handmade Hero) -
2017: Math Masher Math game for mobile doylet.dev/luneaustralia
-![]() |
- ![]() |
- ![]() |
-
- Math Masher is a cross-platform mobile app that aims to teach basic arithmetic skills - including addition, subtraction and multiplication by gamifying the learning experience. - The app was developed in a team using the Cocos2DX framework in C++. My role in the - project is as the lead developer and assisting role with asset design. -
--
-
- Project management (Trello, minutes meeting, code review etc.) -
- Game engine architecture (Gameplay, UI, shopping mechanics, debug) -
- Basic sound editing (Compressor, EQing, normalisation) -
- Asset designs (Creating graphical assets with Photoshop) -
-
-
- Trailer youtube.com/watch?v=AUozUZ8aY7g +
- C99 +
- SSE2 +
- Graphics Programming
- Raylib Website raylib.com +
2020: RaylibSIMD SIMD Software rendering in C git.doylet.dev/doylet/RaylibSIMD
+-
+
+ Raylib is a game-engine by Raysan5 whose main focus is to make game engine programming + simple and enjoyable. In this project, I rewrote the software-rendering routine to use + SSE2/3 instructions to attain the expected 4x speed-up by taking advantage of + data-parallelism offered by SIMD. +
+ +-
+
2017: DCHIP8 Chip8 interpreter git.doylet.dev/doylet/dchip-8
-![]() |
- ![]() |
-
DCHIP8 aims to emulate the CHIP8 architecture to better understand at a lower level - operations between memory, cpu, input and output.
--
-
- Fetch, Decode, Execute Opcodes -
- Modelling memory, registers and basic CPU architecture -
- Software Rendering and interaction with Win32 -
- Minimal dependencies, single file executable -
-
-
- Specification Sheet devernay.free.fr/hacks/chip8/C8TECH10.HTM +
- 2D Software Rendering +
- Alpha Blending +
- Bilinear Filtering +
- Correct Color Space Pipeline (SRGB <-> Linear) +
- Rasterisation +
- Texture Mapping +
- Translation, Rotation, Scale +
- 3D Software Rendering +
- Full Bright, Flat, Gouraud Shading +
- Orthographic, Perspective Projections +
- Custom Wavefront Obj Loader (minimal subset) +
- Hot Reloadable DLL for Renderer Code (taken from Handmade Hero)
2017: DTRenderer 3D Software rendering in C++ git.doylet.dev/doylet/DTRenderer
+![]() |
+ DTRenderer is an attempt to build a simple software renderer from the ground up. The main + goal is to build an intuitive understanding of graphics mathematics, rendering pipeline + and core concepts. It runs as a Win32 program with minimal dependencies. +
+-
+
2016: Dengine 2D engine for asteroids git.doylet.dev/doylet/dengine
-![]() |
- ![]() |
-
- Dengine is a solo project, 2D game engine developed with OpenGL and low-level libraries in - C. The main goal of Dengine is to facilitate learning from many aspects of Computer - Science. Alongside Dengine, Asteroids is being built which guides the development of - features for the game. Dengine is inspired by Handmade Hero, with a focus on developing as - many features with minimal libraries, such that it is not too time-consuming and - counter-productive to do so. -
--
-
- Asset Management (load data into intermediate representations) -
- Audio API from OpenAL -
- Basic 2D Game Mathematics/Physics (Vector, Trig, Explicit Euler) -
- Collision Detection (Single Axis Theorem, Minkowski Sum/Diff, AABB) -
- Debug Services & Displays -
- Entity Component Systems -
- IMGUI Systems -
- Input Parsing -
- Push-Buffer Memory Systems -
- Small Size Array Optimisations -
- Standard Library Replacements (e.g. atoi, strlen, itoa, string) -
- Texture Atlas Support, Runtime Font Packing -
- OpenGL 2D Rendering Pipeline & Batching Render Calls -
-
-
- Handmade Hero handmadehero.org +
- Project management (Trello, minutes meeting, code review etc.) +
- Game engine architecture (Gameplay, UI, shopping mechanics, debug) +
- Basic sound editing (Compressor, EQing, normalisation) +
- Asset designs (Creating graphical assets with Photoshop)
- Trailer youtube.com/watch?v=AUozUZ8aY7g +
2017: Math Masher Math game for mobile doylet.dev/luneaustralia
+![]() |
+ ![]() |
+ ![]() |
+
+ Math Masher is a cross-platform mobile app that aims to teach basic arithmetic skills + including addition, subtraction and multiplication by gamifying the learning experience. + The app was developed in a team using the Cocos2DX framework in C++. My role in the + project is as the lead developer and assisting role with asset design. +
+-
+
-
+
2017: DCHIP8 Chip8 interpreter git.doylet.dev/doylet/dchip-8
+![]() |
+ ![]() |
+
DCHIP8 aims to emulate the CHIP8 architecture to better understand at a lower level + operations between memory, cpu, input and output.
+-
+
- Fetch, Decode, Execute Opcodes +
- Modelling memory, registers and basic CPU architecture +
- Software Rendering and interaction with Win32 +
- Minimal dependencies, single file executable +
-
+
- Specification Sheet devernay.free.fr/hacks/chip8/C8TECH10.HTM +
2016: Dengine 2D engine for asteroids git.doylet.dev/doylet/dengine
+![]() |
+ ![]() |
+
+ Dengine is a solo project, 2D game engine developed with OpenGL and low-level libraries in + C. The main goal of Dengine is to facilitate learning from many aspects of Computer + Science. Alongside Dengine, Asteroids is being built which guides the development of + features for the game. Dengine is inspired by Handmade Hero, with a focus on developing as + many features with minimal libraries, such that it is not too time-consuming and + counter-productive to do so. +
+-
+
- Asset Management (load data into intermediate representations) +
- Audio API from OpenAL +
- Basic 2D Game Mathematics/Physics (Vector, Trig, Explicit Euler) +
- Collision Detection (Single Axis Theorem, Minkowski Sum/Diff, AABB) +
- Debug Services & Displays +
- Entity Component Systems +
- IMGUI Systems +
- Input Parsing +
- Push-Buffer Memory Systems +
- Small Size Array Optimisations +
- Standard Library Replacements (e.g. atoi, strlen, itoa, string) +
- Texture Atlas Support, Runtime Font Packing +
- OpenGL 2D Rendering Pipeline & Batching Render Calls +
-
+
- Handmade Hero handmadehero.org +











