Project Information

  • Category: Tools & Educational Games
  • Languages: C++20 & Python 3 (Scripting)
  • Project Date: Apr. 2025 โ€“ July 2025
  • Studio: Steel Minions
  • Team:
  • Daniel Turner
  • Sebastiรกn Valdรฉs Sรกnchez

๐Ÿšง Page in Development โ€“ project, content and visuals are still evolving.

โš”๏ธ๐Ÿ–ฅ๏ธ Battle Coder ๐ŸŽฎ

A 2D vectorial game and scripting app to teach programming.

Written in C++ 20 and powered by embedded Python 3 scripting, Battle Coder turns first-year computing lessons into fast-paced coding duels. Students tackle level-based challenges by writing Python that directly manipulates game objects and logic.

Thanks to Pybind11, key C++ classes, functions and entities are surfaced to Python, delivering a smooth bridge between native gameplay and user scripts. Progression, scores and content drops are delivered via Firebase (JSON), giving lecturers live oversight and automated grading.

Our goal: an engaging educational tool that motivates learning through gameplay, scoring, and automated code tests.

Features

๐Ÿ๐Ÿ–ฅ๏ธ

Embedded Python Scripting

Players write and execute Python code that manipulates game objects and mechanics in real time.

๐Ÿงฉ๐ŸŽฏ

Interactive Coding Challenges

Fun, competitive puzzles designed to teach core programming concepts.

โ˜๏ธ๐Ÿ“Š

Firebase Backend & Progress Management

Remote storage for levels, student progress and leaderboards, all in JSON.

๐Ÿ‘ฉโ€๐Ÿซ๐Ÿ“

Lecturer Controls

Content release, automated exercises and detailed analytics to monitor and motivate learners.

๐Ÿ–ผ๏ธ๐Ÿ“‹

Raylib User Interface

Custom raylib-based UI for login, registration and scoreboard display, keeping the experience smooth and consistent.

My Role in the Project

๐Ÿ๐Ÿ–ฅ๏ธ

Python Scripting

Designed and built the scripting core system that lets students write, "compile" and run Python code in-game, handling parsing, execution and game-side callbacks.

๐Ÿ”—๐Ÿงฉ

Pybind11 Integration

Exposed essential C++ functions, methods and game objects to Python via Pybind11, enabling seamless interaction between native code and scripts.

๐Ÿ–ฅ๏ธโŒจ๏ธ

Script Editor UI

Built an in-game ImGui editor with save, compile, run and stop controls. Includes a status indicator: ๐Ÿ”ด Error
๐ŸŸก IDLE
๐ŸŸข Running

โš ๏ธ๐Ÿ’กโณ

Error Handling & User Feedback

Implemented real-time error detection with highlighting and feedback. Added safeguards to prevent hangs and crashes like infinite loops (while, for) during script execution.

๐Ÿ“โœ๏ธ

Vector Shape Editor

Built an in-game editor inspired by GeoGebra, allowing users to โž• add, โŒ remove, and ๐Ÿ‘† drag points to build custom vector shapes used alongside default game figures.


MainMenu

Running Program

My Vector Figure Editor

List of Identifiers, Keywords, Members and Sub-Members

Error feedback and highlighting

Vector Shape Editor