Git Product home page Git Product logo

demo-within-the-mesh's Introduction

Within the mesh (of Eryx)

A PC Demo released at the Evoke 2013 demoparty in Koeln, Germany

Eryx Hero Image

Within the Mesh is demoscene production inspired by a Lovecraft & Sterling short story and an iconic demoscene production, using some of their "open" 3D files. Winner of the 2nd place at the Evoke 2013, in the "PC Demos" competition. Here I have tried to communicate the emotions suggested by the reading of the novel through a subjective sequence shot. Produced with the help of Jean-Marie Lamarche-Deminal, 3D artist and Mathieu Alkama Moncharmont, musician.

What does the source look like ?

Squirrel scripts

The main demo structure is written in Squirrel, an interpreted language (similar to LUA), running inside the GameStart engine.

Even though the demo uses a custom version of the engine, it should run without too many changes with the public alpha release of GameStart.

The main loop of the demo is handled by the SceneManager class, that invokes several object updates. The whole demo is driven by a single clock, normalized between 0 and 1.

Most of the 3D objects displayed by the demo are controlled by single scripts whose OnUpdate() callback is called automatically by the engine. Each of these controllers exclusively relies on the distance to the main camera. Thus, the viewer of the demo can seek forward or backward.

Shaders

The visual aspect of the demo relies on shaders, written in ustom and platform agnostic shading language that it very close to the GLSL.

Tree of the classes calls

project.nut
	|
	+-preloader.nut
	|
	+-scene_manager.nut
		|
		+-intro_handler.nut
		|	|
		|	+-title_handler.nut
		|	+-subtitles_handler.nut
		|
		+-camera_ride.nut
		|
		+-holographic_camera.nut
		|
		+-utils/block_activator.nut

Description of the classes

  • base_animator.nut
    • Base class to handle the distance of an item to the camera and evaluate the subsequent animation coefficient.
  • base_scene.nut
  • camera_ride.nut
    • Core of the ride scene. Collects the keyframes items, creates a smooth path and moves the camera along this path.
  • crystal_animator.nut
    • Animation routine of the crystal items.
  • floating_wall_animator.nut
    • Animation routine of the floating wall items.
  • fog_animator.nut
    • Controls the fog along the time.
  • gate_iris_animator.nut
    • Open the iris gate according to its distance to the camera.
  • holographic_camera.nut
    • Handle the "render to texture" routine and provided the framebuffers to the shader that displays the "holographic" items of the demo.
  • intro_handler.nut
    • Handles the timings of the introduction.
  • laser_writer.nut
    • Routine that draws 3D texts on the screen. Initialy create for the "greets" part, ultimately rejected for performance reasons.
  • light_animator.nut
  • logo_handler.nut
    • Handle the display of the whole logo sequence, the light and the sound.
  • machine_animator.nut
  • mesh_cycler.nut
    • Loads a series of (50) meshes, and replays them as an animated sequence.
  • music.nut
  • neon_writer.nut
    • Routine that draws 3D texts on the screen. Replaced the laser routine for performance sake.
  • plant_animator.nut
    • Recursively grows a plant according to the distance to the camera.
  • preloader.nut
    • Preload the main assets.
  • project.nut
    • Main project routine. Basically, loads the main scene.
  • scene_manager.nut
    • Main scene that drives the demo. Load the assets & scenegraph of the logo screen and the introduction screen and add them into the main scenegraph.
    • Switch from a screen to another, according the the main clock of the demo, and enable/disable the parts of the scenegraph that are not relevant to the current screen.
    • Use a dispatch variable to handle the different updates required by each part of the demo.
  • subtitles_handler.nut
    • Handles the timing & displays the subtitles of the demo.
  • synchro-track_beeps.nut
    • Timecode track extracted from the main music, used to sync an FX with the music.
  • temple_animator.nut
  • temple_hat_animator.nut
  • title_handler.nut
    • Handled the title items (2D sprites, 3D billboards) of the intro screen.
  • ui.nut
  • ui_demo.nut

Directory of within-the-mesh-demoscene-project\gs_project\scripts\utils

  • block_activator.nut
    • Distance culling on the static items of the main scene. Evaluated at low frequency.
  • item_play_motion.nut
    • Unused.
  • utils.nut
    • Misc utility functions and classes.

demo-within-the-mesh's People

Contributors

astrofra avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.