An anime-guided C# and Unity tutor for people who want to build the game, not just talk about it.
She doesn't teach syntax. She teaches you how to ship a vision.
Built by Omega Mu Gamma Studio ยท the team behind SeeDS, KMapX, EG Suite, GateLab, Java-chan, and Sharp-chan.
Sharp-chan is a browser-based C# and Unity learning app where a visionary, creative mascot character teaches game development like she's pitching you her next project โ because in a sense, she is. Every lesson is framed as a step toward something you'll actually want to show people: a level, a mechanic, a published game.
The curriculum runs straight through Unity game development โ MonoBehaviour lifecycle isn't abstract, it's the heartbeat of your game loop. Coroutines aren't a trick, they're how your boss fight breathes. By the end of all 75 lessons, you've designed, built, polished, and shipped a complete 2D game to Itch.io.
No dry syntax drills. No "trust the process" without a payoff. Just C#, taught by someone who's already imagining what you'll build with it.
๐ Try it live โ sharp-chan.vercel.app
Every single lesson โ all 75 of them โ follows this exact structure:
| Phase | Name | What Happens |
|---|---|---|
| 1 | See It Work | Sharp-chan shows working code, the in-editor result, and explains what's happening line by line |
| 2 | See It Break | Same code, deliberately broken โ she explains the error, what caused it, and what it would've done to your game |
| 3 | You Try | Student writes code or fills in blanks; pattern-based validation gives immediate feedback |
Validation is regex/pattern-based โ no code execution in the browser. For full scripts, students run them in their own Unity Editor.
All five units are complete, published, and available from day one.
| Unit | Topic | Lessons |
|---|---|---|
| 1 | C# and Unity Foundations | 15 |
| 2 | OOP and Unity Scripting | 15 |
| 3 | 2D Game Systems | 15 |
| 4 | Polish and Advanced C# | 15 |
| 5 | Final Game Project | 15 |
๐ View all 75 lessons
Unit 1 โ C# and Unity Foundations 1.1 Why C# for Game Dev ยท 1.2 Installing Unity and Android Studio Tour ยท 1.3 The Unity Editor โ Panels and Workflow ยท 1.4 GameObjects and Components ยท 1.5 Your First C# Script ยท 1.6 Variables and Data Types in C# ยท 1.7 Operators and Expressions ยท 1.8 Conditionals ยท 1.9 Loops ยท 1.10 Functions and Methods ยท 1.11 MonoBehaviour Lifecycle ยท 1.12 Start and Update ยท 1.13 Transform and Movement ยท 1.14 Time.deltaTime and Frame Independence ยท 1.15 Mini Challenge โ Move an Object
Unit 2 โ OOP and Unity Scripting 2.1 Classes and Objects in C# ยท 2.2 Constructors ยท 2.3 Inheritance ยท 2.4 Interfaces in C# ยท 2.5 Access Modifiers ยท 2.6 ScriptableObjects ยท 2.7 The Component Pattern ยท 2.8 Singleton Pattern ยท 2.9 Event Systems ยท 2.10 Game Manager Design ยท 2.11 Input System ยท 2.12 Rigidbody and Forces ยท 2.13 Colliders ยท 2.14 OnCollisionEnter and OnTriggerEnter ยท 2.15 Mini Challenge โ Pick Up Items
Unit 3 โ 2D Game Systems 3.1 2D vs 3D in Unity ยท 3.2 Sprites and SpriteRenderer ยท 3.3 2D Physics ยท 3.4 Tilemaps ยท 3.5 Camera Setup and Follow Script ยท 3.6 Raycasting ยท 3.7 Animator Component ยท 3.8 Animation Clips and States ยท 3.9 Transitions and Parameters ยท 3.10 Scripting Animations ยท 3.11 Canvas and UI Basics ยท 3.12 Buttons and UI Events ยท 3.13 Health Bars and Progress UI ยท 3.14 Menus and Scene Transitions ยท 3.15 Mini Challenge โ Build a 2D Platformer Level
Unit 4 โ Polish and Advanced C# 4.1 AudioSource and AudioClip ยท 4.2 Playing SFX on Events ยท 4.3 Background Music and Looping ยท 4.4 Particle Systems ยท 4.5 Screen Shake and Game Feel ยท 4.6 Post Processing Effects ยท 4.7 Cinemachine Camera ยท 4.8 PlayerPrefs ยท 4.9 JSON Serialization ยท 4.10 Saving and Loading Game State ยท 4.11 Generics in C# ยท 4.12 Delegates and Events ยท 4.13 Coroutines ยท 4.14 LINQ Basics ยท 4.15 Mini Challenge โ Add Save System to Your Game
Unit 5 โ Final Game Project 5.1 Game Design Document ยท 5.2 Prototyping the Core Loop ยท 5.3 Building the Player Controller ยท 5.4 Enemy AI and NavMesh Basics ยท 5.5 Level Design Principles ยท 5.6 UI and HUD Implementation ยท 5.7 Audio and Polish Pass ยท 5.8 Playtesting and Iteration ยท 5.9 Performance Optimization Basics ยท 5.10 Shader Basics ยท 5.11 Building and Exporting ยท 5.12 Publishing to Itch.io ยท 5.13 Project โ Core Loop Complete ยท 5.14 Project โ Full Playthrough Ready ยท 5.15 Project โ Ship It
- Three-phase lesson structure โ See It Work โ See It Break โ You Try, on every lesson, no exceptions
- Game-dev context throughout โ every script is part of one growing 2D game project
- Contextual hint escalation โ hint appears at 2 wrong attempts, solution unlocks at 5
- Pattern-based validation โ instant feedback without a server or code execution engine
- Full lesson navigation โ collapsible sidebar with per-lesson completion tracking
- XP system โ earn XP on lesson completion; bonus XP for first-attempt success and hint-free runs
- 10 levels โ clear thresholds (100 XP per level) with a persistent progress bar
- Level-gated cosmetics โ new rewards unlock as you level up, alternating themes and outfits
- localStorage persistence โ no account needed, progress is saved in the browser
App Themes (equippable backgrounds):
| Level | Item | Style |
|---|---|---|
| 1 | Sketchbook Studio ๐จ | Concept art pinned to a corkboard โ the default |
| 3 | Pixel Sunset ๐ | Hand-placed pixel-art clouds drifting over a warm gradient |
| 5 | Editor Viewport Violet ๐ช | Unity's own scene-view purple-grey, but dressed up |
| 7 | Game Jam Neon ๐ | Hot pink and electric blue, 48 hours on the clock |
| 9 | Release Day Gold โจ | Warm gold light, the splash screen finally has her name on it |
Character Outfits (equippable; all with full 6-expression sprite art):
| Level | Outfit | Vibe |
|---|---|---|
| 1 | Artist's Smock ๐จ | Paint-flecked, sleeves rolled. Her signature look, always equipped |
| 2 | Indie Dev Hoodie ๐น๏ธ | Game Dev Mode โ ON. Coffee in one hand, tablet pen in the other |
| 4 | Concept Artist's Beret ๐๏ธ | She's already three concepts ahead of where you are |
| 5 | Game Jam Crunch Tee ๐ | 4am. The build still compiles. Somehow |
| 6 | Pixel Sorceress ๐ชโจ | Sprites bend to her will. The animator believes her |
| 7 | Director's Jacket ๐ฌ | Cinemachine Mode โ ON. She's framing the next cutscene in her head |
| 7 | Idol โ Frame Perfect โจ | She already performs a Celebration. Naturally, it has a particle effect |
| 8 | Showcase Blazer ๐ | She's pitching this build to a publisher. It's going well |
| 8 | NPC Cosplay ๐ค | She dressed as her own boss-fight enemy. For testing purposes |
| 10 | Shipped Game Crown ๐ | It's live on Itch.io. Wear the crown |
| 10 | Off the Clock ๐๏ธ | The build is exported. She is, finally, playing someone else's game |
Downloadable Wallpapers (phone/desktop art, save to your device):
| Level | Wallpaper | Vibe |
|---|---|---|
| 3 | First Build Sunrise ๐ | The editor finally hit Play without an error |
| 3 | Cherry Blossom Concept Art ๐ธ | Watercolor sketch, her game's protagonist mid-sketch |
| 5 | The Sprite Atlas ๐ฐ | Every frame of animation laid out like a stained-glass window |
| 5 | Mountain Summit โ Core Loop Complete ๐๏ธ | She made it to the top. The flag is a checkpoint flag from her own game |
| 5 | Pixel Library ๐ | Retro shelves, an open game design document |
| 7 | Rainy Studio Window ๐ง๏ธ | Even on a slow day, the prototype keeps running |
| 7 | Rooftop Garden Jam ๐ฟ | City skyline, the sign reads // TODO: ship it |
| 7 | Neon Arcade Cabinet ๐น๏ธ | Her own game, glowing on a cabinet between two classics |
| 9 | Shrine Steps โ Release Day ๐ฎ | Stone steps, dawn lanterns, the calmest the launch day gets |
| 9 | Vacation Build ๐ | Even the longest crunch ends with a sunset and a finished game |
Sharp-chan has 6 distinct expressions that fire contextually throughout lessons:
| State | Trigger |
|---|---|
idle |
Phase 1 โ explaining working code |
thinking |
Hint mode; waiting for input |
surprised |
Correct answer |
happy |
Phase transitions and encouragement |
sad |
Wrong answer (first few times) |
idle-sleep |
Idle between interactions |
Each equipped outfit has its own full set of 6 expression sprites โ swapping outfits changes Sharp-chan's entire look, not just a filter.
Domain Expansion โ a fullscreen celebration effect fires on milestone level-ups, complete with confetti (and, fittingly, a particle system she'd be proud of).
| Layer | Choice | Why |
|---|---|---|
| Frontend | React 19 + Vite 8 | Fast HMR, ES modules, modern JSX transform |
| Styling | Plain CSS + Framer Motion 12 | No CSS framework overhead; animations via Motion |
| State | Zustand 5 | Minimal boilerplate, works with persist middleware out of the box |
| Data | JSON files + localStorage | Zero backend for Phase 1; data adapter ready for Phase 2 |
| Routing | React Router v7 | File-level page components |
| Hosting | Vercel | Zero-config deployment |
- Node.js 18+
- npm or yarn
# Clone the repo
git clone https://github.com/Omega-Mu-Gamma-Studio/Sharp-Chan.git
cd Sharp-Chan
# Install dependencies
npm install
# Start the dev server
npm run devThe app runs at http://localhost:5173 by default.
# Build for production
npm run build
# Preview the production build locally
npm run previewThis repo is Vercel-ready with no configuration needed. Connect the repo in the Vercel dashboard and it'll detect the Vite setup automatically. No environment variables required for Phase 1.
Sharp-Chan/
โโโ public/
โ โโโ sprites/ # Character expressions (Artist's Smock โ base outfit)
โ โ โโโ teaching.png
โ โ โโโ excited.png
โ โ โโโ frustrated.png
โ โ โโโ thinking.png
โ โ โโโ oops.png
โ โ โโโ idle.png
โ โ โโโ uniforms/ # Outfit-specific sprite sets (6 expressions each)
โ โ โโโ indie-dev-hoodie/
โ โ โโโ concept-beret/
โ โ โโโ jam-crunch-tee/
โ โ โโโ pixel-sorceress/
โ โ โโโ directors-jacket/
โ โ โโโ idol/
โ โ โโโ showcase-blazer/
โ โ โโโ npc-cosplay/
โ โ โโโ shipped-crown/
โ โ โโโ off-the-clock/
โ โโโ wallpapers/ # Downloadable device wallpapers (10 total)
โ โโโ sharpchan-first-build.png
โ โโโ sharpchan-sakura-concept-art.png
โ โโโ sharpchan-sprite-atlas.png
โ โโโ sharpchan-core-loop-summit.png
โ โโโ sharpchan-pixel-library.png
โ โโโ sharpchan-rainy-studio.png
โ โโโ sharpchan-rooftop-jam.png
โ โโโ sharpchan-neon-arcade.png
โ โโโ sharpchan-shrine-release.png
โ โโโ sharpchan-vacation-build.png
โ
โโโ src/
โ โโโ components/
โ โ โโโ character/SharpChan.jsx # Sprite renderer; reads spriteOverrides from equipped outfit
โ โ โโโ layout/AppLayout.jsx # Root layout; applies theme + background
โ โ โโโ lesson/ # LessonCanvas, CodeBlock, PhaseIndicator
โ โ โโโ ui/ # Sidebar, BottomBar, XPDisplay, ProgressBar
โ โ
โ โโโ data/
โ โ โโโ lessons/ # 75 JSON lesson files (unit1โ5, lessons 1โ15)
โ โ โโโ units/ # 5 unit JSON files (id, title, lesson list)
โ โ โโโ shopItems.js # All cosmetic definitions (outfits, themes, downloadables)
โ โ
โ โโโ hooks/
โ โ โโโ useLesson.js # Lesson phase state machine
โ โ โโโ useProgress.js # Progress store bindings
โ โ โโโ useSound.js # Sound effect hooks
โ โ
โ โโโ pages/
โ โ โโโ Home.jsx # Dashboard / unit selection
โ โ โโโ UnitPage.jsx # Lesson list for a unit
โ โ โโโ LessonPage.jsx # The actual lesson experience
โ โ โโโ Shop.jsx # Cosmetics shop
โ โ
โ โโโ services/
โ โ โโโ lessonService.js # JSON loader + lesson data access
โ โ โโโ storageService.js # localStorage adapter (Phase 2: swap for API)
โ โ
โ โโโ store/
โ โ โโโ progressStore.js # Zustand store: XP, level, outfits, progress
โ โ โโโ lessonStore.js # Zustand store: active lesson state
โ โ
โ โโโ utils/
โ โโโ xpCalculator.js # XP thresholds, level math, earned XP calculation
โ โโโ patternMatcher.js # Regex-based answer validation engine
โ โโโ csharpHighlighter.js # C# syntax highlighting for code blocks
Lesson JSON files live at src/data/lessons/unit{N}/{N}.{M}.json. Each file follows this structure:
{
"id": "1.5",
"title": "Your First C# Script",
"xp": 10,
"phases": [
{
"phase": 1,
"title": "See It Work",
"dialogue": "Sharp-chan's explanation text here",
"code": "void Start() {\n Debug.Log(\"Hello, Player!\");\n}",
"output": "Hello, Player!"
},
{
"phase": 2,
"title": "See It Break",
"dialogue": "Here's what happens when...",
"code": "void Start() {\n Debug.Log(\"Hello, Player!\")\n}",
"error": "CS1002: ; expected"
},
{
"phase": 3,
"title": "You Try",
"dialogue": "Your turn โ let's see what you'd build.",
"prompt": "What MonoBehaviour method runs once when a GameObject is first activated?",
"answer": "Start()",
"hint": "It happens once, right at the beginning.",
"solution": "Start()"
}
]
}- Create a folder under
public/sprites/uniforms/<outfit-name>/ - Drop in 6 PNGs named:
teaching.png,idle.png,oops.png,thinking.png,frustrated.png,excited.png - Add an entry to
src/data/shopItems.jswithspriteOverridesmapping each expression state to the correct file path - That's it โ
SharpChan.jsxandShop.jsxboth readspriteOverridesautomatically
In the Shop page, triple-click the Shop title to toggle the dev cheat:
- First triple-click โ instantly sets XP to 9999 and level to 10 (unlocks everything)
- Second triple-click โ resets XP and level back to 0 / 1
- All 75 lessons authored and published
- Full cosmetics system (11 outfits, 5 themes, 10 downloadable wallpapers)
- XP/leveling, shop, expressions, domain expansion
- localStorage persistence, no account required
- PostgreSQL + Express API backend
- User accounts and cross-device sync
- Progress stored server-side (the store already has a
_resetForMigrationhook and storage adapter pattern ready for this) - Instructor view: class-wide completion dashboards
- No frontend rewrite required โ only the storage layer changes
Character Art: Sharp-chan's sprites were generated using AI tools and hand-curated for expression consistency by the Omega Mu Gamma Studio team. All character designs are proprietary to Omega Mu Gamma Studio.
Note: As a free, open-source educational tool, we prioritized shipping a complete learning experience over commissioning custom art. If you're an artist interested in contributing official character designs, reach out โ we'd love to collaborate.
Sharp-chan is part of a student-built suite of open-source engineering and CS education tools from Omega Mu Gamma Studio.
| Tool | What it does |
|---|---|
| SeeDS | 3D data structure visualizer with drag-and-drop Playground mode |
| KMapX | Karnaugh map simplifier with don't-care support |
| EG Suite | 3D Engineering Graphics simulator for ME22201 |
| GateLab | 2D digital logic schematic playground (CS22303) |
| Java-chan | Anime-guided Java tutor for CS22301 |
| Sharp-chan | Anime-guided C# tutor for aspiring game developers |
| Sharp-chan | Anime-guided C# and Unity tutor for game developers โ this repo |
The source code for this project is released under the MIT License.
The character art, sprites, and visual assets for Sharp-chan are proprietary. They are not covered by the MIT License and may not be reproduced, redistributed, or used outside this project without explicit permission from Omega Mu Gamma Studio.
ยฉ 2026 Omega Mu Gamma Studio