I’ve recently begun building a new board game design web app. It started as a bit of an experiment with AI development. As an experienced software engineer with extremely limited spare time, I was hopeful that I could use AI tooling to enable me to build something that I just didn’t have the time to do manually, and I’m about a month in and so far I’m absolutely thrilled. The code isn’t always perfect - I’m trying to keep at least half an eye on it to ensure it doesn’t go too off the rails, but I’m much more focused on building features rather than worrying too much about refactoring and writing immaculate code.
The new project is called Deckle, you can view it over at app.deckle.games right now, although it’s still very early in development so missing a lot of features.
Prior art
I’m somewhat familiar with some existing design tools - such as Dextrous, nanDECK, and Component Studio - and these are excellent tools, but I believe that there’s space for another option too and I hope I can carve out a niche in what I appreciate is already a pretty niche community.
Right off the bat, I’m going to admit that I’ve never actually used Component Studio. I’ve heard people rave about it, but since the free trial is only 3 days I simply can’t be bothered to try it out. Perhaps when I have a block of time to really make the most of exploring it then I’ll try it out and check out how they’re doing things, but for now I can’t say much more about it. The main thing I know is that I personally find the $9.99 per month price point offputting.
nanDeck is a neat tool, as a software dev I appreciate the power of it’s code-driven style, however for simple prototypes it feels like overkill to me, and is a lot to learn for newcomers. It’s free to use, which represents pretty good value for money as far as I’m concerned, however since it’s not a web-based tool it’s not particularly accessible to me (I rarely use my personal laptop unless it’s late in the evening, ideally I’d like something that I can check on from any computer or device by simply logging in and not having to bother with installing software).
Dextrous is by far my favourite of the bunch. It’s a web-based tool, so easily accessible when out and about, the free-tier is generous, and the paid offerings are more affordable than Component Studio. It has an excellent graphical editor for designing cards and tokens, and I can see how people could create not only basic prototypes, but also gorgeous, production-ready games (especially now they’re supporting CMYK exports). It seems to have an excellent community on Discord, great for getting help and requesting/discussing new features, however the source itself is closed so Dextrous users cannot assist the project by contributing code, which I totally understand but also find a little frustrating/disappointing. Dextrous has been a heavy source of inspiration for much of what I’ve built in the early stages of Deckle, they do a lot right, but there are also some definite areas where I can see Deckle diverging.
So why bother creating something new?
Initially like I mentioned before, it was only really an experiment. At work I’d recently built a prototype graphical interface for building email templates, and I wondered if I could do something similar for building game components. However as I started working on it, I realised a few key things where I felt my needs didn’t really align with the pre-existing tools so much. Also, I’ve recently had a game idea that I really feel has some actual promise, so I’m finding that I’m able to dogfood Deckle, to really ensure I’m builing something with exactly the utility that I require without any of the extra stuff that just isn’t so important to me.
I don’t care about building beautiful components
When I began this project I thought that building a component editor to rival Dextrous would be a key goal; however I’ve found for my own uses I simply don’t care that much. However when I actually started to use it to draft some ideas, I realised that I’d much rather build simple, functional prototypes, rather than getting bogged down in the minutae of beautiful design. I’ll certainly continue making improvements and enhancements to the component editor in the future, but this is not a key goal for the project. I was fairly quickly able to build something that works well enough to position text and images on a card, with basic merge field functionality, and for me right now that’s ample. I’ll expand on this below, but I’m not personally interested in crafting cards chock full of beautiful artwork, which - while necessary for a production-ready product - increase costs and aren’t necessarily necessary for prototypes.
Great mobile experience
This is a newer goal, really only one that’s come about since I got the MVP app live and stumbled across a game idea that I feel strongly about, so right now this isn’t actually something I’ve built yet; however a very high priority is to design the component editor to make it as easy as possible to design on my phone on the go. I often find myself sitting in the car waiting to pick the kids up from school or a club, and that seems to be the time that I dive into my notes app and start jotting down ideas. While at home I’m mostly focused on the family, the house, and work. It’s when I’m out and about that I find myself thinking about games the most, and so I want to be able to knock up prototype card designs as easily as I can scribble notes down on my phone. I can’t speak for Component Studio, but nanDECK and Dextrous just don’t work for this particular scenario.
Playtesting / design tools
This is a pretty broad scoped aim, but is one of the primary things I hope to achieve with Deckle - not just a component editor, but a full tool to help with the overall design. Features like playtest journals, especially those that tie into versioned component edits, would allow designers to see not only what had changed, but to tie it back to specific reasons for the changes, easily reviewable in the future when those memories are not so fresh. Other tools allow easy exports to TTS for digital playtesting, but this doesn’t fit with my rarely on an actual computer workflow, and so I’d love to build a way to be able to create actual playable versions of the games, that can be easily playtested on mobile as easily as playing a game on BGA (obviously this is a huge goal, and one that I don’t yet have a vision for how I’ll achieve, but I’m determined to do something). Once I have playable prototypes, there’s a huge raft of design aids that could be developed: rapid iteration allowing designers to quickly playtest the concept to ensure it makes sense and seems to be find; modes for playtesting against bots coded to allow solo playtesting and exploring different strategies within the gamespace; monte carlo sims to identify degenerate strategies and under/overpowered cards + functionality.
Cheap-as-chips Pricing
I want to keep Deckle’s prices as cheap as absolutely possible for users. A key strategy to keep hosting costs low is that I plan to do as little as possible on the server. Functionality that requires heavier processing - such as component exports and handling data sources for merge fields, is intentially handled client-side. Data sources, which could potentially be very large and require costly storage, are stored by third parties (Google Sheets).
Images - which will be low priority for me anyway - are obviously more expensive to store. As a baseline comparison, Dextrous currently offers a free tier allowing users to create 2 projects, 10 layouts (card/component designs) and 100MB storage; and then it’s cheapest plan is currently $48 a year for 10 projects, 25 layouts (card/component designs) and 1GB file storage on it’s cheapest paid plan. I don’t want to restrict people on the number of projects or components they can create, the cost of storing those is almost negligable, so I plan to offer a much more restricted free storage allowance, but with dynamic pricing based on how much the user is actually storing, meaning Deckle should stay free for users only interested in creating basic functional prototypes. I have yet to determine how the pricing will work, but I’d hope that a user storing a GB of data wouldn’t end up paying more than a pound or two a month. This would ideally be just enough to cover the image storage costs as well as contributing a little to the general hosting costs. I’d like to think that a handful of paying users would be enough for Deckle to be self-sufficient. Time will tell though, this isn’t something I have any real experience of.
Source available
Deckle isn’t fully open-source: although I’m trying to build Deckle in a way that’s as flexible with my time as possible, it’s already proving to be a substantial time committment, not simply in dev time, but also in thinking/planning which I’m doing in snatches of free time throughout the day. I do however want people to be able to download the project, run it locally completely for free, in the hopes that they will be able to contribute improvements and functionality for the benefit of all Deckle users. For that reason I have published the code under the BSL licence, which gives the flexibility for people to contribute while assuring some commercial security over the project. After two years the code will revert to the Apache licence, meaning that older versions of the codebase will eventually be fully open source. I hope that this balance will be enough to encourage people to contribute to the project.
What’s next?
For now, I’m just going to keep building. You can check out Deckle at app.deckle.games, the project documentation at docs.deckle.games. I’ll keep this blog around and may intermittently post updates, but github.com/jordanwallwork/deckle is the place to go to see how the development is progressing, to submit issues etc. Right now I’m working on whatever feels most important/interesting to me at the moment with no predetermined roadmap, but as the project matures I’m sure that’ll change.
I’m finding it really exciting still, and I very much hope it can offer value to others.