Skip to content

hikawi/cc-sakura

Repository files navigation

Sakura and the Clow Cards

A self-designed, built from the ground up 2D platformer game, using C and SDL3

GitHub repo size GitHub branch check runs GitHub Actions Workflow Status Lines count Codacy Badge

Table of Contents

Overview

A passion project where Kinomoto Sakura (from Cardcaptor Sakura) traverses the 2D platforming world, collecting Clow Cards to unlock new platforming abilities. The game is inspired by popular platformer games such as Super Paper Mario, Celeste, Super Mario Bros. Wonder, etc. (even though I never played the latter two). The engine is inspired by my friend, who works in Graphics and Physics Programming, specializing in raytracing and sampling lighting systems.

  • C/C++ + SDL3 – I decided to go fully hands on with engine making and designing, one part as a passion project, and one as a way to learn the internal workings of popular game engines like Unity or Unreal.
  • Custom Collision System – Supports AABB, OBB, Circle, and Capsule colliders, partially.
  • Fixed & Variable Tick System – Smooth physics (60 FPS) + flexible animations.

Public Wiki is available here.

Getting Started

Prerequisites

  • C++ Compiler (GCC or Clang): I do not recommend MSVC as MSVC is a lot more behind compared to GCC and Clang (unless you're on Windows). Make sure your compiler supports C++23 features.
  • CMake
  • vcpkg (Package manager for C/C++ projects):
    • ZStandard
    • GoogleTest
    • SDL3
    • SDL3_image
    • SDL3_ttf

Clone this repository.

git clone https://github.com/hikawi/cc-sakura

Pre-build the project

cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE="path/to/vcpkg/buildsystems/vcpkg.cmake" -DCMAKE_CXX_COMPILER="path/to/cxx/compiler"
cmake --build build -j

You can run it directly (via double-clicking the binary file or through the command line), on the binary file generated in build/bin.

Progress

This is to show videos, or screenshots of what is being done as days passed.

Month 1

Day 3 - July 2, 2025 (Sprite Rendering and Movement)
001_spr_movement.mov
Day 5 - July 4, 2025 (Simple Collisions)
002_collision.mov
Day 7 - July 6, 2025 (Gravity)
003_gravity.mov
Day 10 - July 9, 2025 (Map Load and Autotile) Map loading from file
Day 12 - July 11, 2025 (Scenes, Scene Manager & Scene Transitions)
004-scene-transitions.mov
Day 14 - July 13, 2025 (Revamped scenes manager)
2025-07-14.1.06.06.mov
Day 18 - July 17, 2025 (Signals system in scenes)
006_collisions_in_scenes.mov
Day 21 - July 20, 2025 (Centralized Loading Screen)
loading_screen.mov
Day 24 - July 23, 2025 (Doxygen Documentation)

https://cc-sakura.luny.dev/

About

A 2D platformer game with Sakura Kinomoto as the main character. Mostly for SDL and C learning purposes.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors