Skip to content

KevinRusev/TransformArena

Repository files navigation

Transform Arena

A top-down, Souls-inspired roguelike arena built from scratch in C++17 with SFML 2.6no game engine.

Library Language Platform License Status

Overview

A personal project that pairs the “Transform” intake theme with combat that rewards reading enemy types and switching forms at the right moment. You clear procedurally stitched floors, spend coins on weapons, and learn three bosses that each punish the wrong shape — the same loop-driven mindset I use in my Unreal melee prototype, scaled down to 2D vector art and a single codebase you can read end-to-end.

Intake piece for BUas · Creative Media and Game Technologies (CMGT) — Bachelor’s programme, 2026–27 intake.
Same author as Medieval Combat Game (UE5 / C++) — different stack, same focus on feel, clarity, and systems you can extend.

Highlights

Player — three forms, one scroll wheel

  • Circle · fast · dash through enemies with i-frames
  • Triangle · ranged · mouse-aimed shots
  • Square · tank · ground-pound slam with knockback and shield-breaking utility
  • Form matchups: effective hits (1.5×), resisted on later floors (0.5×) — forces real-time decisions, not idle DPS
  • Buffs stack (up to 3) after each boss; weapons add a second layer of E-activated specials

Enemies & bosses

  • Five regular archetypes (chaser, shooter, brute, dasher, shielder) with distinct movement and pressure
  • The Guardian — frontal shield; Square’s slam shatters it
  • The Phantom — teleports; Circle’s dash deals bonus damage and stuns
  • The Hive — minion economy + ring patterns; Square clears crowds, Triangle picks the core

World & progression

  • Procedural floor graph (backtracking walker + branch rooms + guaranteed shop)
  • Room obstacle sets — hand-authored layouts + random fallback, doors stay passable
  • Shops: 8 weapons with unique effects (vortex, barrier, chain lightning, clone, etc.)
  • Save / load with Continue on the title screen; high-score fields persist across runs

Audio & presentation

  • Procedural SFX — sine sweeps and noise bursts into sf::SoundBuffer; no WAV/MP3 assets
  • Screen shake, particles, slow-motion death / zoom, letterboxed 800×600 view for any window size
  • Pause, tutorial overlay, fullscreen F11

Gameplay clip

Watch on YouTube

Form Colour Ability Strong vs
Circle Blue Dash (i-frames) Chasers
Triangle Orange Mouse-aim shot Shooters
Square Green Ground-pound Brutes

Tech

  • C++17 · SFML 2.6 (graphics, window, audio) — static link (SFML_STATIC) + bundled .lib / .dll
  • Visual Studio 2022 · x64 Debug and Release
  • Procedural vector rendering (sf::CircleShape, sf::ConvexShape, sf::RectangleShape) — no texture pipeline
  • Plain-text savegame next to the executable · zlib-licensed SFML headers in SFML/ (see SFML/license.md)

Roughly 3.5k lines across seven translation units + headers.

Project layout

TransformArena/
├── src/
│   ├── main.cpp           Entry: window, events, F11 fullscreen
│   ├── Game.{h,cpp}       Loop, maps, HUD, items, save/load, buffs, portals
│   ├── Player.{h,cpp}     Movement, forms, abilities, multipliers
│   ├── Enemy.{h,cpp}      Grunts + Guardian / Phantom / Hive
│   ├── Room.{h,cpp}       Tiles, doors, shops, obstacle layouts
│   ├── Projectile.h       Bullets + trails
│   ├── Particle.h         Particles, floaty damage text, pickups
│   ├── Item.h             Eight shop weapons & icon drawing
│   ├── SaveData.h         Key=value persistence + highs
│   └── Sound.h            Procedural buffers
├── SFML/                  Headers, static libs, runtime DLLs (vendored)
├── TransformGame.sln
├── TransformGame.vcxproj
├── readme.txt             Controls & features (assignment hand-in)
├── LICENSE                MIT (game code; SFML stays under its own license)
└── README.md              This file

Build

git clone https://github.com/KevinRusev/TransformArena.git
cd TransformArena
start TransformGame.sln
  1. Configuration Release | x64 (or Debug | x64).
  2. Build → Build Solution (Ctrl + Shift + B).
  3. Debug → Start Without Debugging (Ctrl + F5).

The post-build step copies openal32.dll into the output folder.

Requirements

  • Windows 10 / 11
  • Visual Studio 2022 with Desktop development with C++
  • No extra downloads — SFML is in the repo

Controls

Action Input
Move WASD / arrows
Transform Mouse wheel
Aim (Triangle) Mouse
Ability Space
Weapon special E
Shop buy 1 / 2 / 3
Pause Esc
Fullscreen F11
Restart (game over) R

License

Game sourceMIT. See LICENSE.

SFML ships under the zlib/libpng license — full text in SFML/license.md.


Kevin Rusev

Computer programming student · Bulgaria · gameplay in UE5 (C++) and products on the web.

Languages
C++ Python JavaScript TypeScript

Stack
Unreal Engine SFML React

Links
GitHub Profile README Medieval combat (UE5) Email

Also see · Medieval Combat Game — third-person Souls-style combat in Unreal Engine 5 (C++ only for combat, AI, and core systems).

About

Top-down roguelike arena shooter in C++17 / SFML 2.6. Three forms (Circle, Triangle, Square) switch mid-combat. Procedural floors, 3 unique bosses, 8 weapons, save/load, procedural audio.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors