Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

933 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dataspiracy Banner

Dataspiracy — ALTERA 2050 (WebGL & C4D Project)

Nuxt 4 Three.js

Assigned Department: The Digital Memory Conservatory
User Target: Resilience Design Students


📖 Experience Pitch & Context

This project was developed as part of the WebGL/C4D master's module (ECNI Master's Program). It is set in the world of ALTERA 2050, a post-capitalist society focused on sobriety, resource sharing, and the governance of the Commons.

The experience is designed as an interactive "citizen onboarding". The user takes on the role of a Resilience Design Student arriving for their first day of integration at the Digital Memory Conservatory. Their goal is to audit and optimize the conservatory's data flows, balancing servers to minimize the neighborhood's carbon footprint.

The user journey spans a multi-day progression (Day 1 & Day 2) split into two distinct gameplay phases:

  1. Exploration & Narrative (Real-Time 3D): Navigate the office environment in a First-Person view (FPS), interact with various NPCs (Gary, Thomas, Jia, John, Secretary) via a sequential dialogue system, and learn about post-growth issues.
  2. Simulation & Decision Making (Strategy Gameplay): Access a workstation terminal that runs a card-based resource game. Users must assign incoming Data Cards to server slots, decrypt encrypted files using energy cards, and maintain equilibrium across three core metrics: Stability, Population Well-being, and CO2 Emissions.

🛠️ Project Structure

The project is located in:

  • nuxt/: The main interactive WebGL game built with Vue 3, Nuxt 4, and Three.js.

💻 Technical Architecture

The client architecture cleanly decouples HTML/DOM overlay management from real-time WebGL rendering:

  • Custom ECS (Entity Component System): The core 3D engine is powered by a custom-built ECS. Scene entities (player, NPCs, interactive desks) contain modular components (MeshComponent, PhysicsComponent, InteractableComponent, ConversationComponent) updated in real time by dedicated systems.
  • Cinema 4D Asset Pipeline: Environmental spaces and assets are modeled and textured in Cinema 4D, exported in GLTF/GLB formats, and dynamically rendered, animated, and lit in Three.js.
  • Strategy-Driven Onboarding: A strategy-patterned OnBoardingManager (Day1Strategy, Day2Strategy) drives progression, ensuring player task completion (e.g., movement checks, dialogue triggers, data decryption) before advancing days or changing game modes.
  • Advanced Post-Processing: Built using Three.js EffectComposer incorporating UnrealBloomPass, OutputPass, and custom transition shaders.
  • Custom Material Shaders: Implements custom paper texture shaders (map_paper_main.frag, map_paper_pars.frag) to give the UI terminal a distinct tactical, textured aesthetic.
  • Interactive Footstep & SFX Engine: Dynamically generates footsteps depending on surface movement, combined with immersive interface trigger sound effects.

🚀 Quick Start

🎮 Running the WebGL App

Ensure you have Node.js (v18 or higher) installed.

  1. Navigate to the project directory:
    cd nuxt
  2. Install the project dependencies:
    npm install
  3. Boot up the development server:
    npm run dev
  4. Open your browser and navigate to http://localhost:3000.

👥 Development Team

  • Emmanuel Moulin — Developer
  • Ethan Carollo — Developer
  • Médéric Chapiseau — Designer

Releases

Packages

Contributors

Languages