Skip to content

yradwan147/edgame-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EdGame

Stealth-assessment learning games for K-12 — math, science, applied STEM, and SEL — in the browser.
Five KAPLAY.js games · Evidence-Centered Design analytics · 90,000+ telemetry event sample dataset · Built for KAUST.

games loc events dimensions license


What is EdGame?

EdGame is an EdTech platform that captures cognitive, behavioral, social, and affective signals during normal gameplay — not after a separate test. Where a traditional worksheet records only whether a student answered "correctly," EdGame records why they answered the way they did: the strategies tried, the time spent thinking, the hints requested, the patterns of guessing, the role taken in a team task. These signals translate into actionable, plain-English insights for teachers.

The platform ships five live KAPLAY.js browser games covering math, science, applied STEM, and SEL, all instrumented with the same analytics pipeline grounded in Evidence-Centered Design (ECD) and Bayesian Knowledge Tracing (BKT).

“Assign a 15-minute game, not a worksheet — and capture ~10× more process data per session.”


The five games

Game Genre Subject Primary ECD dimension
Pulse Realms 3v3 Team Arena Math & Science D4 — Social
Concept Cascade Tower Defense Mathematics D3 — Strategic
Knowledge Quest Turn-Based RPG Math & Science D5 — Affective / SEL
Lab Explorer Virtual Science Lab Chemistry & Physics D3 — Strategic
Survival Equation Cooperative Puzzle Applied STEM D4 — Social

Every game tracks all six dimensions (cognitive, engagement, strategic, social, affective, temporal); each has one primary lens.

Each game has:

  • A regular play mode (? no params)
  • A debug mode (?debug=1) that opens a second window streaming live ECD profile updates
  • A bot mode (?bot=1) that exposes window.__edgameBot for Puppeteer-driven test runs

Quick start

Option 1 — Open the public Railway demo

After deploying (see docs/DEPLOY-RAILWAY.md) you get a URL like https://edgame-production.up.railway.app/ with a landing page linking to all five games. Telemetry runs in offline (localStorage) mode on this static deploy — fine for showcasing, not for real classroom use.

Option 2 — Run everything locally

Requirements: Node 20+, pnpm 8+, Python 3.10+ for the doc-gen scripts.

git clone https://github.com/yradwan147/edgame-platform
cd edgame-platform

# 1. Static games only (no dashboard)
npx serve -l 8899 .
# → http://localhost:8899/apps/games/pulse-realms/index.html

# 2. Full stack (Next.js dashboard + games + SurrealDB)
pnpm install
pnpm dev
# → dashboard at http://localhost:3000

Option 3 — One-click Docker

docker build -t edgame .
docker run -p 8080:8080 edgame
# → http://localhost:8080

Repo tour

edgame-platform/
├── apps/
│   ├── games/                   # 5 KAPLAY.js game environments
│   │   ├── pulse-realms/        # 3v3 team arena
│   │   ├── concept-cascade/     # Tower defense
│   │   ├── knowledge-quest/     # Turn-based RPG
│   │   ├── lab-explorer/        # Virtual science lab
│   │   └── survival-equation/   # Cooperative puzzle
│   └── web/                     # Next.js 14 teacher dashboard + API routes
│
├── packages/
│   ├── shared/                  # types, validators, SurrealDB client
│   └── ui/                      # shadcn/ui shared components
│
├── db/
│   ├── migrations/              # SurrealQL schema migrations
│   └── seeds/                   # seed data for dev / pilot
│
├── docs/
│   ├── README.md                # docs index
│   ├── adr/                     # architecture decision records
│   ├── assessment/              # ECD docs + coverage matrix (one per game)
│   ├── plans/                   # design + execution plans
│   ├── ASSET-CHECKLIST.md       # per-game art/audio asset list
│   └── DEPLOY-RAILWAY.md        # one-click Railway deploy guide
│
├── reports/
│   ├── business-plan/           # 38-page DOCX + financial model + 12 figures + adversary reviews
│   ├── promo-videos/            # 5 game-promo MP4s (~30-45 s each)
│   ├── sample-telemetry/        # 5 CSVs, 90,593 total rows
│   └── progress-report/         # MD + PDF gameplay-screenshots report
│
├── tools/
│   ├── lib/bot-common.js        # shared Puppeteer infrastructure
│   ├── play-and-capture-*.js    # 5 game-specific bot drivers
│   ├── promo-sessions/          # per-game scripted UI flows for video capture
│   ├── record-promo-video.js    # CDP screencast → ffmpeg pipe
│   ├── business-plan/           # DOCX builder + figures + financial model
│   ├── final-submission/        # TIE 251 spec + TIE 204 impl docs
│   ├── validate-csv.py          # Concept Cascade telemetry sanity check
│   └── validate-csv-multi.py    # All 5 datasets at once
│
├── docs_markdown/               # editable markdown versions of the PDF specs
├── DesignGuide/                 # design language / branding
│
├── EdGame Analytics Blueprint.{md,pdf}   # 45 KB research foundation (read this first!)
├── EdGame_Living_Document.docx           # company-overview master doc
├── worklog.md                            # session-by-session engineering journal
├── spec-v1.0.pdf, bom-mvp.pdf, bom-v1.0.pdf, interface-table.pdf, estimation-reasoning.pdf
│
├── Dockerfile, serve.json, index.html    # one-click static deploy
├── package.json, pnpm-workspace.yaml, turbo.json, pnpm-lock.yaml
└── README.md (this file)

Key documents to read

If you only have time for four:

  1. EdGame Analytics Blueprint (45 KB) — the research foundation. ECD, BKT, stealth assessment, six dimensions, 50+ metrics.
  2. Business Plan (DOCX) (38 pages) — investor-ready plan with TAM/SAM/SOM, competitive analysis, 5-year financial model, two-round adversary review (Reach Capital + a16z personas).
  3. ADR-001: Phase-1 Architecture — the binding tech decisions (KAPLAY, Next.js, SurrealDB, Railway).
  4. Implementation Details Document — technical deep-dive across all 5 games + analytics engine.

Per-game ECD models live in docs/assessment/ecd/, one PDF + MD per game.


How the analytics works in 30 seconds

  1. Each game emits xAPI events (Actor → Verb → Object) every time a student does something meaningful — answers a question, places a tower, casts a spell, types in chat, completes a puzzle step.
  2. Events are batched every 10 seconds and POSTed to /api/sessions/<id>/events.
  3. The server validates + stores in SurrealDB; invalid events go to a dead-letter queue.
  4. A daily cron job rolls up the raw events into per-student aggregate metrics across six ECD dimensions: cognitive, engagement, strategic, social, affective, temporal.
  5. Bayesian Knowledge Tracing updates per-skill mastery probability after every observed answer. Students with p(L) < 0.4 get scaffolding; 0.4 ≤ p(L) ≤ 0.8 get targeted practice; p(L) > 0.8 advance to the next concept.
  6. The teacher dashboard surfaces top-3 weekly insights per student in plain English: "Maria has mastered Newton's Second Law but shows persistent misconceptions about momentum conservation."

See the Analytics Blueprint for the full framework.


Sample telemetry datasets

reports/sample-telemetry/ contains five CSVs with 90,593 telemetry events captured by automated Puppeteer bots driving each game through realistic play sessions across six personas (strong_student, average_student, struggling_student, risk_taker, methodical, guesser).

Game File Rows Sessions
Concept Cascade telemetry_events.csv 50,432 543
Pulse Realms pulse_realms_events.csv 10,018 604
Knowledge Quest knowledge_quest_events.csv 10,044 287
Lab Explorer lab_explorer_events.csv 10,019 490
Survival Equation survival_equation_events.csv 10,075 146

All five share the same 37-column flat schema; analytics code can pivot freely across games. To regenerate any dataset, run node tools/play-and-capture-<game>.js. To validate, python3 tools/validate-csv-multi.py.


Promo videos

reports/promo-videos/ contains a ~30–45 s MP4 per game (1280×720, h.264, ~30 fps), captured by tools/record-promo-video.js using Chrome DevTools Page.startScreencast piped to ffmpeg. The game UI is driven in real-time by tools/promo-sessions/<game>.js.

# Re-record any promo
node tools/record-promo-video.js --game pulse-realms --duration 45

Architecture in one diagram

┌─ Tier 1 — Game clients (KAPLAY.js v3001) ──────────────────────────────────┐
│  Pulse Realms  ·  Concept Cascade  ·  Knowledge Quest  ·  Lab Explorer  ·  Survival Equation
└──────────────────────────────────────┬──────────────────────────────────────┘
                                       │ xAPI events (Actor-Verb-Object), batched every 10 s
                                       ▼
┌─ Tier 2 — Application server (Next.js 14 App Router) ──────────────────────┐
│  /api/sessions  ·  /api/events  ·  /api/analytics  ·  /api/auth (NextAuth)  │
│  ECD Engine + BKT models + metric rollups (cron)                             │
│  SurrealDB (multi-model, built-in permissions, KSA data-residency-ready)     │
└──────────────────────────────────────┬──────────────────────────────────────┘
                                       │
                                       ▼
┌─ Tier 3 — Dashboards (React Server Components) ────────────────────────────┐
│  Teacher dashboard   Admin console   Live ECD-profile viewer   Bot drivers │
└──────────────────────────────────────────────────────────────────────────────┘

Full architecture in ADR-001.


Course context

EdGame was built as a KAUST capstone project in spring 2026 for:

  • TIE 251 — Project Management for Engineers (spec, business plan, financial model)
  • TIE 204 — Embedded & Software Systems (implementation details, code, repo)

The final TIE 251 specification + TIE 204 implementation document and this repo are the three official course submissions. Source documents live in docs/ and reports/.


Citation

If you reference EdGame in academic or research work:

@misc{edgame2026,
  author = {Radwan, Yousef and TIE Venture Team},
  title  = {EdGame: Stealth-Assessment Learning Games for K-12 Built on Evidence-Centered Design},
  year   = {2026},
  url    = {https://github.com/yradwan147/edgame-platform},
  note   = {KAUST TIE Venture capstone}
}

License

MIT. See LICENSE.


Contact

Built with KAPLAY.js, Next.js, SurrealDB, Railway, and a lot of coffee at KAUST.

About

EdGame — stealth-assessment learning games for K-12. 5 KAPLAY.js games, ECD analytics, 90k+ event sample dataset, business plan.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors