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?
90s_dev [3 hidden]5 mins ago
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 [3 hidden]5 mins ago
You've got an idea. Now for the hard part: make it fun. :D Especially in a text-only medium.
90s_dev [3 hidden]5 mins ago
My only plan for that was to add shadertoys effects to the text. Not great hence I hadn't started.
It's so much more impressive. Those 3D effects are just insane. Just look at that 3D globe.
NetOpWibby [3 hidden]5 mins ago
That’s sick af
90s_dev [3 hidden]5 mins ago
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.
spencerflem [3 hidden]5 mins ago
Ink language & their IDE make it very easy to get started with choice games ! And it exports to HTML/Js where you can add further visual effects via custom JavaScript.
Highly reccomend, its so good that it takes all the fun out of designing my own janky custom system.
shakna [3 hidden]5 mins ago
Unfortunately Inky has a showstopping bug I and a few others have hit. [0]
And it breaks the IDE until you somehow uninstall it and every dependency. And kill all its temporary files.
Awww, rip. Hadn't hit that one while I was playing with it.
90s_dev [3 hidden]5 mins ago
Thanks for the recommendation, I never would have guessed someone made something like this! But of course they did.
I was definitely wondering how I would do this outside of Excel, but I have so many projects going on right now that figuring this one out didn't sound fun :D
dunham [3 hidden]5 mins ago
There is also twinery or inklewriter for simple text stories with an online authoring option. And Inform7 for full on text adventures, where you write the stories in a declarative manner as plain english.
I like squiffy as well, though its not as popular or elegant. Possibly just nostalgia.
& Evennia is very cool if you want to make a multiplayer one!
One of these days I'll try out Inform7 it seems so cool but haven't had an idea for a game that could use it yet
hombre_fatal [3 hidden]5 mins ago
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 [3 hidden]5 mins ago
A closer comparison than Pico-8 might Bitsy or PuzzleScript, but with all the power (and complexity) of arbitrary JavaScript code underneath.
dicytea [3 hidden]5 mins ago
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.
Indeed, I was assuming it was a text adventure engine.
achtaitaipai [3 hidden]5 mins ago
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 [3 hidden]5 mins ago
"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.
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!
WorldMaker [3 hidden]5 mins ago
I recall Anna Anthropy's book on ZZT doing a great job of capturing the feel of the early PC ZZT scene and some of its AOL/CompuServe/Prodigy communities in the early 90s. Might serve as other bits of inspiration, if you like short history books: https://www.amazon.com/Boss-Fight-Books-Anna-Anthropy/dp/194...
socalgal2 [3 hidden]5 mins ago
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.
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.
NotAnOtter [3 hidden]5 mins ago
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.
fudged71 [3 hidden]5 mins ago
game.prompt("Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?", "Yes", "No");
achtaitaipai [3 hidden]5 mins ago
await game.openDialog("Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?")
game.prompt( "Yes", "No")
gatopingado [3 hidden]5 mins ago
That one egg was forty eggs?
matkurianski [3 hidden]5 mins ago
That's a truly inspiring project, thanks for sharing!
I noticed it's open source but is missing a license. Could you add one so developers can understand to what extent they can modify and publish their forks?
For example, it occurred to me that I could translate it into my native language and publish a fork of it (with credits, of course), since less than 5% of my country speaks English. Would that be okay with you?
achtaitaipai [3 hidden]5 mins ago
Ohh thank you, I’d be thrilled! I’ll add an MIT-style license a bit later today.
What’s your native language? Right now it’s fairly easy to add translations to the site for left-to-right languages.
In any case, feel free to fork, send a pull request, or reach out if you'd like to help make it more accessible!
hahahacorn [3 hidden]5 mins ago
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.
janoelze [3 hidden]5 mins ago
its a thoughtful idea – and been there too, just recently did a faithful html recreation of the 2005 MSN chat interface to surprise someone with teenage nostalgia. it was sweet.
achtaitaipai [3 hidden]5 mins ago
Love the idea! Wish I could’ve helped out sounds like the perfect use case :)
Hope it works out!
nartho [3 hidden]5 mins ago
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 [3 hidden]5 mins ago
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 :)
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 [3 hidden]5 mins ago
Thanks! I put a lot of effort into the typing and getting the editor autocomplete to feel right. Happy to hear it shows :)
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?
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.
I kind of love the look.
Maybe with a new set of ansi escapes we can get Zork to look like that. :D
It's so much more impressive. Those 3D effects are just insane. Just look at that 3D globe.
Highly reccomend, its so good that it takes all the fun out of designing my own janky custom system.
And it breaks the IDE until you somehow uninstall it and every dependency. And kill all its temporary files.
[0] https://github.com/inkle/inky/issues/522
I was definitely wondering how I would do this outside of Excel, but I have so many projects going on right now that figuring this one out didn't sound fun :D
https://twinery.org
https://inklewriter.com
https://ganelson.github.io/inform-website/
& Evennia is very cool if you want to make a multiplayer one!
One of these days I'll try out Inform7 it seems so cool but haven't had an idea for a game that could use it yet
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".
> 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
https://museumofzzt.com/
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.
https://achtaitaipai.github.io/odyc-exemples/games/mushroom....
https://achtaitaipai.github.io/odyc-exemples/games/john-wick...
Looking forward to slapping a few quick games into this and distract the kids in a low bandwidth type style.
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.
I noticed it's open source but is missing a license. Could you add one so developers can understand to what extent they can modify and publish their forks?
For example, it occurred to me that I could translate it into my native language and publish a fork of it (with credits, of course), since less than 5% of my country speaks English. Would that be okay with you?
In any case, feel free to fork, send a pull request, or reach out if you'd like to help make it more accessible!
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.
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 :)
[1]: https://www.puzzlescript.net/editor.html