A C++ Behavior Tree implementation and FFI bridging to an Electron app allowing editing and previewing a simulated BT in real-time
C++ Builder API example
auto behaviorTree = BehaviorTree::build()
.select()
.conditon(PlayerVisible)
.conditon(CanFire)
.task(FireAtPlayer)
.sequence()
.task(MoveToPlayer)
.task(Wait)
.close()
.task(Idle)
.close()
.end();
Electron editor app
![Behavior Tree Editor](https://private-user-images.githubusercontent.com/1648852/252392768-c9946b7c-4bbb-43b7-a400-ab6d2fbb8df6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQwNTQzNjAsIm5iZiI6MTcyNDA1NDA2MCwicGF0aCI6Ii8xNjQ4ODUyLzI1MjM5Mjc2OC1jOTk0NmI3Yy00YmJiLTQzYjctYTQwMC1hYjZkMmZiYjhkZjYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTlUMDc1NDIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NGFjNDc3YTBmOTk5ZTUzZWE2NTIxOWJlNzFlNjJhZjQ1NDI3NmFkNTk0ZTk2Y2YyZjlhNTk1MGYyOTUwZDY2MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.YcutV2I2z9yXGTJKco9qINb94HWq6N6e2IFMogyhcpM)
![Behavior Tree Editor](https://private-user-images.githubusercontent.com/1648852/252392890-4e8affbb-10c0-473a-8329-2e5121039cda.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQwNTQzNjAsIm5iZiI6MTcyNDA1NDA2MCwicGF0aCI6Ii8xNjQ4ODUyLzI1MjM5Mjg5MC00ZThhZmZiYi0xMGMwLTQ3M2EtODMyOS0yZTUxMjEwMzljZGEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTlUMDc1NDIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YTJlNjdkZGVmOTE3MzUyNDFlM2UxMDc1ZjU0YzYwYThhNDAyZDU0NzVmNGNhNmM4ZDcyYjIyMWI3NDk3YmIyNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.hqycd7p7_dgWUfyQXKIXjgMQrUkTUUvc9mVqdWSzwLQ)
Submission for the GMTK 2023 Game Jam with the theme: "Roles Reversed", developed in about ~8h using Unity
![Ball knocking out a player](https://private-user-images.githubusercontent.com/1648852/252416589-54effef4-6045-47b9-ae9f-66b100bd8037.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQwNTQzNjAsIm5iZiI6MTcyNDA1NDA2MCwicGF0aCI6Ii8xNjQ4ODUyLzI1MjQxNjU4OS01NGVmZmVmNC02MDQ1LTQ3YjktYWU5Zi02NmIxMDBiZDgwMzcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxOSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MTlUMDc1NDIwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjZkYzhkZWZiMThhY2JhYjZiZTE3OGM0N2I2NzY5YjA3NDQyYjc0MTljOTE3YzY3OTllMmM1MTljOTRhZWVkYSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.S9wN9PqsUkr-Bev9skP3wzCiYM2t2AZ7KzjP7TNdl_0)
An AI using Unreal's Behavior Tree for a dog that follows you, explores areas around and takes a nap when tired
A game prototype based on curling using OpenGL
curling-around-demo-1.mp4
A Game Boy emulator written in C++, can only run the bootrom
gabboy-demo-1.mp4
A n-body simulation running on the GPU using Metal
stardust-demo-1.mp4
A C++ implementation of goal-oriented action planning
Screen.Recording.2023-03-01.at.10.24.20.PM.mov
A 2D exploration game prototype based on stealth and puzzle solving, written in C# using Unity
Enemy waypoint, patrolling and chasing mechanic
Screen.Recording.2023-01-12.at.10.10.00.PM.mov
A 2D game prototype about controlling a lander and finding crystals, written in Swift using SpriteKit
lander-demo-1.mp4
A 2D platformer made in 48 hours with a team of 4 for the GMTK Game Jam 2021, using custom TypeScript engine built during the jam.
magnet-soul-demo-2.mov
An augmented reality graffiti iOS app, written in Objective-C, using Vuforia
Conway's Game of life written in Haskell using OpenGL
game-of-life-demo-1.mov
A 2D visualization of the Dragon Curve L-system written in Hashell using OpenGL
A 2D game prototype à la Asteroids but where bullets ricochet, written C++ using SFML