Skip to content

ocean-view-games/educational-gamification-systems-unity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Educational Gamification Systems for Unity

A collection of open-source C# utility scripts for building curriculum-aligned educational games in Unity. These systems handle learning outcome tracking, adaptive difficulty, and WebGL memory management, covering the core technical challenges of deploying educational games to schools on web, mobile, and desktop. Built and maintained by Ocean View Games, a UK studio specialising in educational game development.

Features

  • LearningOutcomeTracker: tracks student attempts against curriculum-coded objectives (e.g. KS2.EN.R.3.1), calculates mastery levels, and generates structured reports for LMS export.
  • AdaptiveDifficultyController: dynamically adjusts game difficulty based on recent student performance, keeping learners in their zone of proximal development.
  • WebGLMemoryOptimiser: memory budget tracking, runtime texture downscaling, and asset bundle helpers for WebGL builds targeting low-end school Chromebooks.
  • Editor tooling: a custom Editor window for viewing learning objectives, monitoring mastery progress during play mode, and exporting reports as JSON.
  • Architecture documentation: detailed docs covering data flow, component interaction, and WebGL deployment considerations.

Quick Start

  1. Copy the Runtime/ and Editor/ folders into your Unity project's Assets/ directory (or a subfolder of your choice).
  2. Add a LearningOutcomeTracker component to a GameObject in your scene.
  3. Add an AdaptiveDifficultyController component and assign the tracker reference.
  4. Optionally add a WebGLMemoryOptimiser for WebGL builds.
  5. Register learning objectives and start recording attempts from your game code:
using OceanViewGames.EdTech;

// Register an objective.
var tracker = GetComponent<LearningOutcomeTracker>();
tracker.RegisterObjective(new LearningObjective
{
    objectiveId = "KS2.EN.R.3.1",
    description = "Retrieve and record information from non-fiction texts",
    subject = "English",
    masteryThreshold = 0.85f
});

// Record a student attempt.
tracker.RecordAttempt("KS2.EN.R.3.1", correct: true, responseTimeSeconds: 4.2f, activityId: "reading-comprehension-01");

// Evaluate difficulty after recording attempts.
var difficultyController = GetComponent<AdaptiveDifficultyController>();
difficultyController.Evaluate();

// Export a mastery report as JSON.
string reportJson = tracker.GenerateReportJson();
  1. Open the Editor window via Ocean View Games > Learning Outcome Viewer to inspect objectives and export reports during play mode.

Architecture

The system separates game mechanics from learning analytics, allowing designers to iterate on gameplay without breaking the educational measurement layer.

flowchart LR
    A[Gameplay Event] --> B[LearningOutcomeTracker]
    B --> C[AdaptiveDifficultyController]
    C --> D[Gameplay Systems]
    B --> E[MasteryReport]
    E --> F[LMS API]
Loading

LearningOutcomeTracker sits at the centre. It receives gameplay events, stores attempt records, and calculates mastery levels using UK assessment terminology (NotStarted, Emerging, Developing, Secure, Mastered). The AdaptiveDifficultyController reads this mastery data and adjusts a difficulty value between 0 and 1, firing UnityEvents that gameplay systems subscribe to. At any point, the tracker can generate a MasteryReport suitable for JSON serialisation and REST API export to a school's Learning Management System.

For a full architectural breakdown, component diagrams, and WebGL deployment guidance, see docs/architecture.md.

Use Cases

These systems were designed based on production experience building educational games for major UK institutions.

The Fire of London project for the Museum of London required a WebGL rebuild of an existing educational game that could run reliably on school Chromebooks. The WebGLMemoryOptimiser patterns in this repository grew directly from the memory management challenges encountered during that project, where the game needed to run within a 384 MB heap while rendering 3D historical environments.

Navigo, a multilingual educational game that won a Serious Games Society award, used curriculum-aligned learning outcome tracking to report progress across multiple languages and skill areas. The LearningOutcomeTracker follows the same data model, mapping each gameplay interaction to a specific curriculum code and calculating mastery against configurable thresholds.

The Vocab Builder EdTech project demonstrated how adaptive difficulty keeps language learners engaged. The AdaptiveDifficultyController implements the same sliding-window accuracy analysis used in that title, adjusting word complexity and hint availability based on recent performance.

Requirements

  • Unity 2021.3 LTS or later
  • WebGL Build Support module (for WebGL deployment)
  • No third-party dependencies

Related Reading

About Ocean View Games

Ocean View Games is a London-based Unity development studio founded by Jagex alumni with over 10 years of experience each. We build educational games, serious games, and interactive experiences for clients including the BBC, Cambridge University Press, and the Museum of London. Our work has been recognised by the Serious Games Society and we maintain a 5-star rating on Clutch. Find us on LinkedIn.

Licence

MIT. See LICENSE for details.

About

Unity-based architecture for curriculum-aligned educational games. Specialized in WebGL & Mobile for EdTech clients (BBC, Cambridge University Press).

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages