Skip to content

EmmanuelTheCreator/BlingoEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

BlingoEngine

BlingoEngine is a modern, cross-platform C# runtime designed to emulate Macromedia Director's Lingo scripting language. It enables playback of original Lingo code and behaviors on top of modern rendering backends like Godot, SDL2, Unity, and Blazor, allowing legacy projects to be revived or reimagined with full flexibility.

GodotSDLBlazorUnity


Director.NET

Director full screenshot

Property inspector

Property InspectorTempo Change

Easy Lingo to C# conversion

File by file or in batch with the lingo importer. Lingo vs C# Differences Easy Lingo to C# conversion

Remote Terminal

An easy way to debug your game, run the Remote Terminal through pipes or SignalR.

RNetTerminal1RNetTerminal2RNetTerminal3

โœจ Key Features of the engine

  • โœ… Lingo Script Execution โ€“ Runs legacy Macromedia Director scripts directly in C#.
  • ๐Ÿ”Œ Pluggable Rendering Backends โ€“ Clean architecture supporting:
  • ๐Ÿง  Director application โ€“ Offers basic movie, cast, and score compatibility and can run standalone or as a library in your project.
  • ๐Ÿงฉ Modular Runtime Architecture โ€“ Clear separation of concerns: input, rendering, audio, system services, and script execution.
  • โš™๏ธ Service-Oriented Initialization โ€“ Uses dependency injection and service collections for clean setup.
  • ๐ŸŒ Cross-Platform Compatibility โ€“ Works anywhere the .NET SDK is available.

Help making this project!

โš ๏ธ Can you help us make this dream project come true?

This project is still under heavy development, and we can use some help. Reach out if you want to contribute.

๐Ÿšง Warning: The Director SDL integration is still under heavy development and is not yet functional. . .


๐ŸŽ‰ Standing on the Shoulders of Giants

Macromedia Director and its Lingo language were revolutionary in their time, like John Henry Thompson and Marc Canter who created them. They empowered an entire generation of artists, educators, and game developers to create interactive experiences long before today's engines existed.

Director pioneered ideas that shaped the future of digital creativity:

  • The stage, cast, and score metaphor made multimedia authoring approachable
  • The Lingo scripting language gave non-programmers the power to create interactivity
  • A vibrant global community pushed the boundaries of art, education, and entertainment

BlingoEngine is not here to replace Director, but to honor its spirit โ€” carrying those ideas forward into the modern era so they can continue to inspire.

Director's Legacy โœจ BlingoEngine's Contribution ๐Ÿš€
First accessible multimedia authoring tool for creatives Keeps Lingo projects alive on modern platforms
Introduced the stage, cast, score, and Lingo scripting concepts Brings those concepts into C# and today's engines
Enabled art, education, and indie game communities worldwide Opens them again for exploration, study, and reuse
Inspired countless developers and later tools (Flash, Unity, etc.) Bridges history with modern ecosystems like Godot, SDL2, Unity, Blazor

๐Ÿงก To the Director developers and community:
we applaud your achievements, and BlingoEngine exists thanks to the foundation you built.


โญ Why Use BlingoEngine?

  • ๐Ÿš€ Port legacy Director projects to modern engines
  • ๐Ÿ” Reuse existing assets, scripts, and logic
  • ๐Ÿ› ๏ธ Build hybrid projects that combine old logic with new rendering
  • ๐Ÿ•น๏ธ Explore the inner workings of Director games using readable C# code
  • ๐Ÿ’พ Preserve interactive media history with a modern toolset

The Lingo Verbose Language

Looking for a more expressive C# syntax? The BlingoEngine.VerboseLanguage package offers a fluent API that mirrors classic Lingo statements.

// Lingo : put the Text of member "Paul Robeson" into member "How Deep"

// C# with BlingoEngine.VerboseLanguage
Put(The().Text.Of.Member("Paul Robeson")).Into.Field("How Deep");

๐Ÿš€ Running the Demo

  1. Clone the repository:

    git clone https://github.com/EmmanuelTheCreator/BlingoEngine.git
    cd BlingoEngine
  2. Run installer with prerequisites Ensure the .NET 8 SDK is available. You can install it using the helper script:

Linux:

./setup-linux.sh

Windows:

setup-windows.bat
  1. Open the solution Open BlingoEngine.sln in your preferred C# IDE (Visual Studio / Rider).

  2. Build a demo Navigate to Demo/TetriGrounds and run one of the included platform integrations.

๐Ÿ‘‰ Use the dedicated guides for full setup instructions:

VS Code Setup

  1. Install the .NET SDK and Godot 4.5 with C# support.
  2. Open the repository folder in VS Code and accept the recommended extensions.
  3. Press Ctrl+Shift+B to build the solution.
  4. From the Run and Debug panel choose Launch Demo SDL2 or Launch Demo Godot.

๐ŸŽฎ Getting Started with Development

Need a concrete reference? Check the Sample Projects overview for minimal SDL2 and Godot setups.

Both the SDL2 and Godot frontends share the same backend logic. Here's an example of how to bootstrap the SDL2 engine:

var services = new ServiceCollection();
services.RegisterBlingoEngine(cfg => cfg
    .WithBlingoSdlEngine("TetriGrounds", 640, 460)
    .SetProjectFactory<TetriGrounds.Core.TetriGroundsProjectFactory>()
    .BuildAndRunProject());

var provider = services.BuildServiceProvider();
provider.GetRequiredService<SdlRootContext>().Run();

The window dimensions above create a Director window larger than the 640ร—480 stage configured in the project factory.

Swap to the Godot backend by using .WithBlingoGodotEngine(...).

๐Ÿ“„ See the Getting Started guide, Godot Setup, SDL2 Setup, and Blazor Demo for exact details.


๐Ÿ“š Documentation

Guides

API Reference

Documentation generated from the source code is available using DocFX. Run scripts/build-docs.sh (or scripts/build-docs.ps1 on Windows) to produce the site in docs/docfx/_site. The pages include "View Source" links back to the repository.


๐Ÿงญ Roadmap

๐ŸŸฃ BlingoEngine Runtime โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–‘ 70%

The core runtime that executes Lingo scripts and connects to backends.

Core

Feature Status / Progress
Lingo Script Execution โœ… Stable
Lingo โ†’ C# Conversion โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–Œโ–‘โ–‘ 75%
Lingo bytecode (dcode) interpreter โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ Experimental

Backends

Backend Status / Progress
Godot Backend โœ… Tested, working
SDL2 Backend โœ… Tested, working
Unity Backend โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 70% (written, not fully tested)
Blazor Backend โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 70% (written, not fully tested)

Features

Feature Status / Progress
FilmLoops โœ… Done
Transitions โœ… Done
Audio Playback โœ… Done
Sprites2D โœ… Done
Video Playback โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘ 90%
Macromedia Flash Integration โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ Far future (0%)
BlingoEngine 3D โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ Early idea (2%)

๐ŸŸ  Director Application โ–“โ–“โ–“โ–‘โ–‘โ–‘โ–‘โ–‘ 35%

A modern reimplementation of Director's movie, cast, and score system on top of the runtime.

Backends

Backend Status / Progress
Godot Frontend โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 65%
SDL2 Frontend โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 15%
Unity Frontend โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ Planned
Blazor Frontend โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ Planned

Core Systems

Feature Status / Progress
Score โœ… Done
Cast โœ… Done
Tempo โœ… Done
Property Inspector โœ… Done
Text Editing โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘ 70%
Picture Painter (Godot) โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 30% (๐ŸŽจ experimental / fun)
Shape Painter โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 0% (todo)
Color Palettes โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 5%
Orion Skin โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 0% (planned)
Behavior Code Library โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 0% (planned)
.dir File Importer โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 50%

โœ… = ready and tested
โณ = in progress
๐Ÿงช = experimental
๐ŸŽจ = playful / for fun


๐Ÿค Contributing

We welcome contributions from the community!

To get started:

  1. Fork this repository
  2. Create a feature branch
  3. Write your code and tests
  4. Submit a pull request

Please include examples or documentation when appropriate.

Please also read our Code of Conduct.


Architecture overview.

graph TD

%% Top-level flow
A[Your game] --> B[BlingoEngine Runtime Core]
B --> C[Services]
B --> D[Rendering Abstraction Layer]
D --> E1[Godot]
D --> E2[SDL2]
D --> E3[Unity]
D --> E4[Blazor]

Loading

๐Ÿ“„ License

Licensed under the MIT License.

Note: The TetriGrounds demo's assets are not covered by the MIT License. See Demo/TetriGrounds/LICENSE.assets.txt for details.


๐Ÿ™‹โ€โ™‚๏ธ Questions or Feedback?

Feel free to open an issue or start a discussion. We're happy to help, and open to ideas!

About

A library to port old games from Macromedia Director Lingo to c#

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published