Skip to main content Accessibility Feedback

Kitchen Table Adventures

Last week, I created a simplish kitchen table RPG to play with my family. It’s called Adventure.

All you need are some dice, a notebook, and your imagination.

Explore the forest, battle pirates and ogres, and rescue a wizard trapped in a castle. Use magic and skill (and a little luck) to save the day. Go on epic adventures!

Explore Farfaria

Adventure takes place in the fictional land of Farfaria.

A map of the fictional land of Farfaria, with important locations and landmarks marked and labeled

I wanted something that was a bit like Dungeons & Dragons, but with simpler rules and faster, shorter games.

I ended up building a website for the game, with information about the rules, premade characters, some adventures to get you started, and a bunch of downloads to aid in the gameplay. I even made a map of Farfaria!

The whole thing is Creative Commons licensed, so feel free to remix and adapt to suit your needs. If you come up with any cool adventures of your own, I would love if you shared them with me so I can put them on the site for others to play, too.

What’s this got to do with JavaScript?

Honestly, nothing really. But…

One of the things on my list of “fun JS projects to work on” for a while has been a JavaScript RPG. If you’re looking for a fun, more advanced project to work on, this might be a great place to start!

Let players pick their character, and then guide them through an adventure with on screen prompts.

This would involve DOM manipulation, state management, and lots of well structured code. Decide outcomes based on random die rolls (you can use an array shuffle helper function for that). You can add graphics if you want (I used some free ones from FlatIcon), and even animate them if your CSS skills are better than mine.

If you do make this into an app, I would love to see it. Send me an email and let me know.

And if you just play it as a real life table top game, that’s cool, too. I’d love to hear what works and what doesn’t it.