[HN Gopher] Odyc.js - A tiny JavaScript library for narrative games
___________________________________________________________________
Odyc.js - A tiny JavaScript library for narrative games
Author : achtaitaipai
Score : 166 points
Date : 2025-06-06 13:46 UTC (9 hours ago)
(HTM) web link (odyc.dev)
(TXT) w3m dump (odyc.dev)
| kevinsync wrote:
| The Magic Mushroom is incredible lol
|
| https://achtaitaipai.github.io/odyc-exemples/games/mushroom....
| chrisweekly wrote:
| This one's my fave so far https://achtaitaipai.github.io/odyc-
| exemples/games/vroum.htm...
| mNovak wrote:
| John Wick is an accurate summary of the recent movie
|
| https://achtaitaipai.github.io/odyc-exemples/games/john-wick...
| hahahacorn wrote:
| This is amazing and exactly what I needed as of ~12 hours ago.
|
| The coincidence is kinda insane though - quick personal story I
| think is worth a readers time. I was just working on assets to
| develop a very quick (3-levels, built for one person) narrative
| romance game until I fell asleep last night. I've never developed
| any game of any kind.
|
| I then wake up to a JS library for narrative games at the #1 spot
| on HN.
|
| FTR the game is a simp game I'm using it to ask someone I've been
| seeing to make things official.
| nartho wrote:
| If it's worth anything, this sounds very sweet and thoughtful,
| I don't think enjoying someone's company makes you a "simp"
| neither does showing attention.
| hahahacorn wrote:
| Text doesn't translate it well but that's just my sarcastic
| sense of humor :)
|
| I love trying and going a bit overboard because life is short
| and sweet and it's your responsibility as a human to make it
| fun.
|
| I do appreciate this comment though. I personally know a lot
| of my peers would be made better by internalizing your belief
| - I'm just not one of them :)
| achtaitaipai wrote:
| Love the idea! Wish I could've helped out sounds like the
| perfect use case :) Hope it works out!
| eldog_ wrote:
| Great use of typing in the editor, e.g., I like how it knows the
| references to template sprites so it can highlight the errors
| when calling functions with incorrect arguments.
| achtaitaipai wrote:
| Thanks! I put a lot of effort into the typing and getting the
| editor autocomplete to feel right. Happy to hear it shows :)
| c0nfused wrote:
| I really enjoy the way this is put together. I have written a
| number of javascript game engines, to play with over the years,
| and this hit a really nice spot between, I need to throw this
| whole thing to gether in the next 2 hours to entertain the kids,
| and the subsequent I really want to do a deep dive into the nitty
| gritty of this thing.
|
| Looking forward to slapping a few quick games into this and
| distract the kids in a low bandwidth type style.
| socalgal2 wrote:
| Why is the title '...for narrative games'? The library's front
| page itself doesn't say anything about 'narrative' games.
|
| For that matter, what is a "narrative game". None of the sample
| games would fit the definition in my head of "narrative game". If
| I google for "narrative game", the sample games certainly don't
| seem to fit.
|
| And, assuming there is a common definition of "narrative game",
| what does this library do special to facility making "narrative
| games" that other game engines do not?
| SamBam wrote:
| Indeed, I was assuming it was a text adventure engine.
| achtaitaipai wrote:
| You're right, there are only two more "narrative" examples
| accessible via the French version of the site. I used the term
| because the turn-based structure and focus on messages,
| prompts, and dialogues felt suited to narrative or text-driven
| games, but maybe that's not the best label. Happy to rethink
| it!
| WorldMaker wrote:
| "ZZT-like" would be the adjective/genre descriptor I'd use
| for this. It's a slowly forgotten genre these years (unlike
| "Rogue-like" and "Rogue-lite" you see being thrown around
| everywhere), but a classic genre of the early PC nonetheless.
|
| https://museumofzzt.com/
| achtaitaipai wrote:
| I didn't know about ZZT, but that makes a lot of sense now
| that I've looked into it. The format, simplicity, and
| screen-by-screen feel do seem closely related. Thanks for
| the reference. That museum is a great find!
| socalgal2 wrote:
| Was just curious if I was missing something that facilitated
| "narrative games" more than other engines.
|
| It's a cool project. I like that your examples use ASCII
| maps. So simple to prototype. No need to break out a map
| editor.
| 90s_dev wrote:
| I was kind of hoping it would be for text based adventures,
|
| since last night I had the idea for one,
|
| where you're an adult and you have to do adult things
|
| like file taxes and go to work and dust your house
|
| and the less you do these things the harder life gets,
|
| but the more you do them, the easier it gets,
|
| and the goal of the game is to die with no debt.
| hombre_fatal wrote:
| You've got an idea. Now for the hard part: make it fun. :D
| Especially in a text-only medium.
| 90s_dev wrote:
| My only plan for that was to add shadertoys effects to the
| text. Not great hence I hadn't started.
| hombre_fatal wrote:
| Speaking of, check out this shader ascii text game I saw
| on Steam: https://www.youtube.com/watch?v=dfe3VK7H6uI
|
| I kind of love the look.
|
| Maybe with a new set of ansi escapes we can get Zork to
| look like that. :D
| 90s_dev wrote:
| That is really cool and inspires me and makes me want to
| play it and make stuff like it, thanks for showing it to
| me. I really do live under a rock it seems.
| nihiven wrote:
| That is cool! I like the look of this one too:
| https://andreifomin.itch.io/effulgence
| hombre_fatal wrote:
| Ooh, that's actually the game I had in mind!
|
| It's so much more impressive. Those 3D effects are just
| insane. Just look at that 3D globe.
| hombre_fatal wrote:
| I think the idea is that it gives you a declarative way to
| build simple adventure games with text and dialogue.
|
| Its selling point isn't for building mechanics-first games like
| a more general engine (e.g. Pico-8).
|
| But what you can do is easily make maps, a character that walks
| between maps, NPCs, and triggers for dialogue/text.
|
| Consider other engines aimed at non-programmers like RPGMaker:
| the main games people make with it are "narrative games" where
| you walk around and read text/dialogue, usually with zero
| additional mechanics outside of the built-in map + trigger
| system. It's probably 90% of games built with it!
|
| So I'd reckon they're saying "you can build those games with
| this tool too".
| RodgerTheGreat wrote:
| A closer comparison than Pico-8 might Bitsy or PuzzleScript,
| but with all the power (and complexity) of arbitrary
| JavaScript code underneath.
| dicytea wrote:
| From the intro[^1]:
|
| > Odyc.js is a tiny JavaScript library designed to create
| narrative games by combining pixels, sounds, text, and a bit of
| logic.
|
| [^1]: https://odyc.dev/doc/getting-started/intro
| fudged71 wrote:
| game.prompt("Dude, you ran out of eggs!|Would you like to buy|an
| 80 pack of eggs?", "Yes", "No");
| achtaitaipai wrote:
| await game.openDialog("Dude, you ran out of eggs!|Would you
| like to buy|an 80 pack of eggs?") game.prompt( "Yes", "No")
| gatopingado wrote:
| That one egg was forty eggs?
| NotAnOtter wrote:
| Neat little thing. Feels like a great learning tool for kids,
| like a new age pygame.
|
| Scratch and the others in that style always felt like it went one
| step too far. It's designed for 5 yearolds, and 5 yearolds don't
| need to be learning about code.
|
| This is a good sweetspot for a ~10 year old. Reasonably simple
| string manipulation , a couple of syntax tricks to learn, and not
| much else. Just to get a basic side scroller with some NPC's.
| Then they can incorporate control flow when they are ready.
|
| Consider releasing a class for kids on this tool & investing in
| the playground. You could get some real sales.
|
| A different angle, you could do some basic procgen game assets
| with this tool.
| ryoshu wrote:
| I love this. Fits with a side project perfectly!
| sciolizer wrote:
| Reminds me of [puzzlescript][1].
|
| [1]: https://www.puzzlescript.net/editor.html
___________________________________________________________________
(page generated 2025-06-06 23:00 UTC)