9 ms·
Show HN: Initiative.sh, an in-browser command line for D&D
- jwithington 5y agoThis is amazing! I dungeon master for a online D&D experience (https://www.haze-saltborne.com/ https://www.haze-saltborne.com/). Look forward to using this when I'm generating NPCs and such.
- mikkelpaulson 5y agoThank you! The best complement I receive is when I hear that people are actually using this at the table. I'd appreciate if you stopped by the Discord (linked on the homepage) to share your experiences using it.
- peterkos 5y agoTo learn Rust, I started building a D&D character-management CLI tool just last week. (Might rename to "terminal roll", eh?) Cool to see a fully featured one from the DM side! [0] https://github.com/peterkos/calcdnd https://github.com/peterkos/calcdnd
- mikkelpaulson 5y agoAwesome! Looks like a great way to learn a new programming language. I suggest attempting to recompile to WebAssembly as part of the learning process - it can be a bit frustrating, but very cool to see your code running in browser! I use Caith[0] to handle dice parsing and rolling, although if this is a learning project you may want to reimplement that part yourself. [0] https://crates.io/crates/caith https://crates.io/crates/caith
- mikkelpaulson 5y agoThis project has been my full-time for the past six months or so (coming up on a year since I joined the Great Resignation and decided to try my hand at self-employment). I release somewhere between 2 and 10 times per week. I set out to build something that I could use as a game master at the table without having to put the game on hold as I navigated through menus and bookmarks for the various references and generators I use. My general design principle is that everything in the app should be available at any time, with no need to navigate menus on one extreme, or read documentation on the other. The core is written entirely in Rust with a couple of hundred lines of JS glue. I was running it as a command-line app for the first month of development, and it still works as such. However, since I added autocomplete to the web interface, the web version is now more feature-complete than the command line. I don't see much value in the extra work of backporting features to the command line at this point. (Turns out Rust was the wrong choice for this particular project, but the die is cast for the moment, and it has been fun.) I've barely scratched the surface of the feature that I'm most excited by, namely context. Soon it will be possible to tell the app where the party is and what they're doing, and the demographics of suggestions (and ultimately music, lighting, and other integrations) will be updated accordingly. In a seedy bar in the docks district? You're more likely to run into sailors down on their luck. Pick a fight? Cue the epic music. Sun sets? Dim the lights. More details are available on my blog: https://mikkel.ca/blog/introducing-initiative-sh/ https://mikkel.ca/blog/introducing-initiative-sh/ I do have plans to monetize this project in the future, charging for the server-side features (integrations and cloud sync) while keeping the client-side features free. Everything that is currently implemented will always be free.
- johnm_io 5y agoThis is an interesting tool and I could easily see it becoming a great add-on to campaigns as-is, and hopefully become more usable and feature-rich as you develop it further. Reading your replies to other comments about what you want to add to it and the ability to make changes to the world based upon input sounds awesome. Keep up the great work!
- kyrra 5y agoSuper awesome! Feature request: up-arrow support (like bash shell has). IE: I want to reply the last command, or fix something in it (because I typed it wrong). Being able to up-arrow through my command history is something I use regularly on my normal command line, and would be cool to have here.
- jvalencia 5y agoAgree with this 100%
- mikkelpaulson 5y agoYup, that's planned for the next milestone. :)
- mikkelpaulson 5y agoUpdate: done!
- klik99 5y agoWow, this is one of those elegant solutions that seems so obvious in retrospect - I tried developing a custom iPad app for DMing and found the huge amount of complexity of DMing really difficult to design around - a text interface is a really fantastic idea Surprised noone has asked - any plans to make it open source and/or a self-hosted option? Would love to hack away at it, and would love to see the source or at the very least an API for integrations
- 5y ago
- bovermyer 5y agoI love this. You should be in the RPG generator authors Discord, send me an email if you're interested and I'll get you an invite.
- mikkelpaulson 5y agoSounds great, I didn't know that was a thing! I don't see a public email address on your profile, though. You can reach out to me at support@initiative.sh.
- bovermyer 5y agoYou would have had to go through my personal website to get the email. I'll send you an email.
- Dibes 5y agoThis is super cool! I love it overall but couldn't help but want for it to let me link NPCs/things to locations and just generally add more metadata for when campaigns progress and the world fleshes out more
- mikkelpaulson 5y agoYup, notes and relationships are high on my list! I've been mulling those over this morning. I added a ton of place types yesterday, and another high priority is to give them name generators to get rid of that clunky error message about needing to name your kingdoms.
- brightstep 5y agoI will start using this for my group immediately after this feature is released.
- sdmike1 5y agoHave you considered any level of FoundryVTT[0] integration? That could be a really cool plugin! [0] https://foundryvtt.com https://foundryvtt.com
- mikkelpaulson 5y agoAgreed! The first integration I build will be webhooks to allow people to extend it however they see fit. Currently my built-in integrations are planned to skew simpler, like switching Spotify playlists when the location changes. However, it really comes down to a time investment/feature desirability tradeoff. If users are really excited about something like that, I'm not going to argue!
- deleted 5y ago[deleted]
- onion2k 5y agoOne small bug - clicking on the "Roger is a non-binary halfling" example says it's unable to interpret the command, and neither of the suggested interpretations work either.
- mikkelpaulson 5y agoMore of a miscommunication than a bug, but still something that needs fixing. Since the command renames an existing NPC, you already need to have created a `character named Roger`. Once that's done, the command should work as expected.
- thesuitonym 5y agoOne suggestion I would love is to see a command like 'inn 10', giving the GM a list of 10 names to choose from. Very cool project!
- Dolo 5y agoYou can seemingly say "inn" and then follow it with "more" to do exactly what you're after.
- JimWestergren 5y agoVery cool. What about support for the metric system in measurements for weight, size etc? Perhaps specify both formats in the ouput.
- mikkelpaulson 5y agoI would dearly love that. The D&D ruleset speaks imperial, so so do I. (I'm assuming that's because they're trying to be old timey.) Adding metric alongside is easy enough, though!
- ExtraE 5y agoI think it's because Wizards of the Coast is an American company.
- deleted 5y ago[deleted]
- ping00 5y agoJust wanted to chime in and say that I think this is a beautiful piece of software: fast, responsive, and intuitive. It's a pleasure to use, and your tutorial did a great job walking me through it. Congratulations! I've already tossed this into our DnD Discord, and our DM may use it in the next session.
- dunefox 5y agoIt seems the commands like 'next' are case sensitive. Is this intended?
- mikkelpaulson 5y agoIt was a deliberate design choice, but one that I've come to regret. (A lot of people are also commenting on this.) I'll be switching to case-insensitive in an upcoming release.
- mikkelpaulson 5y agoUpdate: done.
- eminence32 5y agoVery nice. Small suggestion: The commands are case-sensitive, and that's not immediately obvious. For example, entering "dagger" does nothing, as you have to instead enter "Dagger"
- mikkelpaulson 5y agoI've been hearing that one a lot. It's next on my to-do list.
- mikkelpaulson 5y agoUpdate: this is now done.
- armoredkitten 5y agoThis looks really cool! One small suggestion -- I found it difficult to read the text that I was typing. The black text on dark grey is hard to read. The dark theme is nice, but I could only read what I was typing when there was a tooltip showing possible commands.
- mikkelpaulson 5y agoOops, that's a bug! The site responds to your browser's dark mode preferences, and apparently I've been using it exclusively in light mode for a while. I'll get a fix out this afternoon. :) Edit: Fixed now.
- armoredkitten 5y agoMuch better :)
- jedimastert 5y agoHas there been any community consensus towards what to replace "game master" with?
- wrp 5y agoGMs develop the narrative that players work through, so why not call them story tellers or narrators. That would be a more literal description of their role.
- jedimastert 5y agoI like story teller, but I feel like it doesn't involve the players enough. After thinking about it, I've settled on "narrative guide" for now
- mikkelpaulson 5y agoI've wondered about that myself. I did swap out "race" for "species", but I don't know of a preferred term there.
- diablerouge 5y agoIf you want an alternative to GM (I can see why you might want to, but I'd be curious to know how many people see it as a problem), "referee" works well. Has an old-school flavor, and because it's an old term it won't really raise any eyebrows or "why don't you just use game master?" questions.
- jefurii 5y agoI'm curious as to the reasoning here. I know the word "master" has some seriously negative associations when opposite the word "slave", but that's not the case here. Nobody that I'm aware of calls D&D or other RPG players "slaves". If anything, a good GM is there to serve the players, not the other way around. Edit: I support replacing usages of the paired words "master" and "slave" so as not to reference the very real history of slavery. I'm also totally fine with using "referee" instead of "game master". But I'm concerned that other senses of "master", like "master craftsman" or "gold master" or "game master" which refer to mastery (of a craft or some such) and don't (to my knowledge) connote "master/slave" are being lumped in here.
- david2ndaccount 5y agoDespite being named initiative.sh, I can’t find any commands to help track initiative?
- mikkelpaulson 5y agoNope, ironically that's one feature that I don't have and is filed in the "maybe someday" bucket on my roadmap. Improved Initiative[0] is one of the few tools out there that I use at every session. It does just about everything I need it to do, and its interface doesn't make life harder for me. [0] https://improved-initiative.com/ https://improved-initiative.com/
- pugworthy 5y agoI'd love to link things in the journal. Here's an example of what I mean. First I create some entries... character named "Rocky" city named Snootville bar named "Drunken Pug" character named "Nick" But then I want to do some little associations like this... Drunken Pug is noisy <arbitrary attribute, not just gender related> Drunken Pug at Snootville Rocky likes perfume <another arbitrary attribute> Rocky likes Drunken Pug <Show character and location associations> Nick likes Drunken Pug Nick hates Rocky This lets me define relationships as well as attributes, and doesn't limit me to just gender related ones. Gender is just one of many attributes one may have, and may or may not have any relation at all to gameplay. Rocky's gender is secondary to the fact that they like perfume for example. And by showing that Nick hates Rocky, but they both like the Drunken Pug (which is noisy), we've got a whole scenario defined for a DM. And given Rocky likes perfume, well there's the reason for the conflict right there if you want. "Nick didn't hear Rocky enter the Drunken Pug, but his nostrils flared at the scent of their cheap perfume..." You could do a lot with a sort of "contains" relationship too. Create an island, which contains a city, which contains a district, which contains a neighborhood, which contains an inn.
- mikkelpaulson 5y agoI love the idea of cataloguing (and presumably generating) a lot of attributes about a character, but in general I'm not anticipating leaning too heavily into the generator side of things, so much as general campaign and world management. It's still up to the DM to breathe life into the world. That said, I definitely intend to add relationships (initially hierarchical, which will be reflected in the journal view). It seems like it would be valuable to support arbitrary user-defined relationships between entities, although syntax and interpretation start to get fuzzy the more user-provided terms you throw into the mix. If you tell me "nick is at war with rocky", does that define a relationship between Nick and Rocky or does it tell me that Nick is at a place called "War With Rocky"?
- dibujante 5y agoThis is really cool! One thing though - case sensitivity? I think that should go away; having to get capitalization right slows down typing a lot. I look forward to an integration with dndbeyond!
- mikkelpaulson 5y agoThat's coming up (or going away) in the next few days. I currently have no plans for D&D Beyond integration, or maybe more to the point they have no interest in integrating with me.
- mikkelpaulson 5y agoUpdate: this is now done.
- ravedave5 5y agoCan you give a log of using this product in a real session or such? I'm playing with it some but I'm finding it hard to find much use other than generating character and place names. An example of commands you entered would do a great job of demonstrating what it does.
- mikkelpaulson 5y agoI suggest walking through the `tutorial` for a hands-on example of the various features and how they might be used in a game scenario. It does jump around a little bit, as there are some important features that haven't been implemented yet.
- ndarilek 5y agoThis is cool. I just posted the link on a blind gamers' Discord. I don't do much D&D--really want to change that at some point--but they're frequently complaining about D&D Beyond being an accessibility dumpster fire and looking for something else. I poked it a bit, and really appreciate that command output is automatically spoken under NVDA. I don't imagine that is accidental. :) Thank you. Now you have me wondering what web-based command lines I might build. Maybe a crazy idea, but have you thought about adding external command support somehow? Accessible map representation is vastly unexplored, and it'd be fun to build that in the context of initiative.sh somehow. Maybe a web service, or a wasm module if you want to be one of the cool kids. I could also see this being an embeddable widget in something like a Matrix room. Give everyone a shared context that all their commands can reference, maybe with different permission levels. The context might share all characters with the DM, each character with its own player, a representation of the map which they could move their character on in turn, etc. I've probably just scope creeped the hell out of your project, but this is really neat and I'm intrigued.
- mikkelpaulson 5y ago> I poked it a bit, and really appreciate that command output is automatically spoken under NVDA. I don't imagine that is accidental. :) Thank you. I'm gratified to hear that. It occurred to me early on in development that this could either be fantastic or an absolute disaster from an accessibility standpoint, so I made a particular point of getting the aria tags correct. However, I'll confess that I haven't actually tested it with a screen reader yet, so perhaps it's better to say that it's not entirely accidental. You're right that there's plenty of scope creep in what you're suggesting, and it's probably beyond what I'll be able to handle. However, you've given me a strong motivation for open-sourcing the frontend. It's an absolute disaster from a code standpoint, but it's very simple and could be used as a jumping-off point for just about anything that simulates a screen reader experience.
- lazzlazzlazz 5y agoWould be incredible to source spells and maybe other data from Grimoire[1]. [1]: https://github.com/thebombzen/grimoire/ https://github.com/thebombzen/grimoire/
- mikkelpaulson 5y agoI've included all of the spells that are available under the Open Game License. In the future, I'll introduce the ability to upload your own reference material, but I'm being careful to avoid copyright infringement in this project.