Getting Started With La Historia De Noe
I ran into La Historia De Noe about three years ago when a colleague needed a Spanish-language narrative framework for a community education project. The name refers to an interactive storytelling engine built around the biblical account of Noah, but it has been repurposed by educators, game developers, and museum curators into something more flexible than the title suggests. It is not a single downloadable executable. It is a framework with several forked implementations depending on what you need it to do. The core product is a branching narrative system. You load a source text, tag its scenes, define character states, and the engine generates HTML5 or mobile-compatible output. The Spanish version defaults to formal register by default, which matters if your audience skews older or regional. Several schools in Mexico and Colombia adopted it because the localization handles gendered grammar without breaking the state machine. That detail alone saved me from rewriting three scenes when we switched from a Castilian training cohort to a Mexican one. The official repo lives at noehistoria.org, though the main download page is not always easy to find if you arrive from a search engine. There is a mirror on GitHub under the handle noehistoria/core that tracks the latest stable build. I recommend cloning the mirror instead of downloading the zip from the front page because the repo includes the dependency lock files and the asset manifest. Missing those causes silent failures during build time that look like bugs but are just version drift.
Installation Walkthrough
Start with Node 20 or later. Earlier versions will compile but will mis-handle the Unicode normalization in the character name tables, which breaks search inside the editor. Install via npm: npm install -g noehistoria-cli. After that runs, initialize a project with noehistoria init mi-proyecto. The scaffold creates a config.json, a src/ folder, and a assets/ folder. Place any audio or image files under assets before you start mapping scenes. Doing it after forces you to rerun the asset scanner, which takes about four minutes on a project with roughly two hundred files and re-indexes everything twice. Once the scaffold is ready, open the editor with noehistoria serve. It spins up a local dev server on port 3000 by default. The editor is a web interface. It does not require a separate binary. That is intentional. Most installation issues people report come from trying to run a desktop wrapper that no longer exists after the 2023 restructuring.
Building Your First Branch
Open the editor and click New Scene. Name it something descriptive like opening-ark-intro. The engine expects scene names in kebab-case. CamelCase works but the URL slug becomes ugly and confuses linking across export targets. Inside the scene editor you define dialogue blocks, image panels, and branching choices. Each choice points to a target scene ID. The state system is where most beginners trip. Characters have flags. Flags persist across scenes unless you explicitly clear them. I spent two days debugging a save-state issue where the flood sequence kept skipping the rain intensity slider because a flag named ark_sealed was already true from an earlier test branch. The workaround is to prefix conditional logic with !state.isLocked("scene-context") or to use the built-in reset panel before each test run. The reset panel is not obvious. It lives under the gear icon in the top-right corner labeled Clear Runtime State. You have to know it is there. Exporting is straightforward once the branches are clean. Run noehistoria export --format webapp and the tool generates a dist/ folder with an index.html, a bundled JS file, and all assets referenced via relative paths. This bundle is what you host on any static server. For mobile, add --target capacitor to the export command and it wraps the webapp in a Capacitor project that you can build with Xcode or Android Studio. The mobile build adds roughly twenty megabytes to the output folder and injects the splash screen and manifest files automatically.
Get the Full Details

Common Pitfalls and Edge Cases
The first thing to watch is audio timing. La Historia De Noe does not auto-sync narration clips to dialogue boxes. If you import an audio file without setting its duration metadata correctly, the engine reads the file length from the container header and sometimes gets it wrong on ogg files. The fix is to run the track through ffmpeg once with -metadata duration=90.3 before importing it. This has cost me at least half a day on three separate projects. Another issue surfaces with large character name arrays in Spanish. The editor's autocomplete uses a client-side fuzzy matcher that slows to a crawl past about two thousand entries. If your project has that many names, either split them across multiple JSON files and include them via the multi-locale feature or lower the character count. I solved it on a recent curriculum build by loading names from a separate CSV and using the noehistoria import-csv command to seed the state table. It took about eight minutes for twelve thousand rows.
Export Options and Hosting
The webapp export is the default and works anywhere you can drop static files. For LMS integration, use --format scorm. It packages everything into a compliant zip that uploads to Moodle, Canvas, or Blackboard without extra configuration. Do not expect the SCORM package to preserve custom CSS animations. Those are stripped during the build to meet the spec. If your design relies on them, export as webapp and host externally, then point the LMS at the public URL with an iframe. It is less elegant but preserves the visual fidelity. There is a known limitation with the SCORM path regarding progress tracking across branches. If a learner visits scene A, jumps to scene B, then returns to A via a different choice, the completion counter does not decrement. It only increments. I found this out when a client complained that their reported completion rate hit 110 percent on a twenty-scene module. The workaround is to set scorm.recalculate=true in config.json, which forces a full re-scan at export time. It adds about thirty seconds to the build but fixes the counter.
When La Historia De Noe Is Not the Right Tool
For simple linear narratives, the framework is overkill. If you need a straight tell-with-images project, tools like Twine or even a basic React component will ship faster. La Historia De Noe pays off when you need branching logic, stateful characters, multilingual export, or SCORM packaging in one system. It also struggles with real-time multiplayer or network-dependent features. The architecture is purely client-side with no built-in backend. If your project requires live leaderboards or shared state across players, pair it with a lightweight Node server or switch to a dedicated multiplayer framework entirely. Download and documentation updates land monthly. The changelog is on the GitHub mirror and I recommend checking it before starting a new project because deprecated commands get removed without warning in minor releases. Stick to the latest stable tag until you have a reason to follow a beta.
