Live data from Hacker News

Squib: A Ruby DSL for prototyping card and board games

andymeneely.github.io

21–30 of 45 posts

Re: Squib: A Ruby DSL for prototyping card and board games

#22
post #18
post #11

I shared it with my colleague who's not into programming but loves board games, that got him quite excited. So I thought that this project can be used as a motivator to teach kids programming :) because it's like look kids, with this simple code, you can generate these awesome cards, isn't it great?

This is a pretty excellent idea. It seems like a good idea in general to have code create something physical as a motivation. Another cool project would be a treasure map DSL or something similar...heh your comment got me thinking :) Maybe a DSL for describing simple 3D printable stuff would be an option if a printer is available.

3D printing is great because it's something physical and useful.

Other physical alternative is, quite obviously, Arduino. I have no experience teaching kids but I think that it would be a really solid option too given they implement something useful (to some extent), and that's a really important point.

I mean a blinking LED is cool for the first time but then you just forget about it. But for playing cards, or 3D printed stuff, it's something you can actually use it and you can keep improving it, driving more learning.

Given the adoption of Arduino, I'd be surprised if no one has developed a solid course for kids yet.

Re: Squib: A Ruby DSL for prototyping card and board games

#23
post #9

Oh, I was hoping for a DSL for prototyping the rules to play these kind of games on a computer (and perhaps train a neural network as an AI opponent). I've been working out how to do these things recently.

Actually, sounds interesting. You could use it to discover flaws in the game play, given you can quantify 'bad / boring gameplay'.

Re: Squib: A Ruby DSL for prototyping card and board games

#24

Thanks for sharing, this looks really nice. Does anyone know similar projects that help with developing card- and/or boardgames?

There's our project, Paperize: http://paperize.io (spoiler alert: we're still invite only/early access!)

It's a web app, not a code library, but we're solving similar problems. We love Squib though, keep up the good work!

Re: Squib: A Ruby DSL for prototyping card and board games

#25
I've never used it, and believe I'd prefer a text-based declarative framework like Squib for this task, but just an FYI for everyone, there is a GUI program called nanDeck [1] that is often used for this purpose.

For what it's worth, I've occasionally used a little LaTeX framework derived from [2] to create fairly high-quality prototype cards. Perhaps a LaTeX or PS output from Sqiub would be a useful extension.

From a quick skim though, I think I'll be giving Squib a try the next time I want to do something like this.

[1] http://www.nand.it/nandeck/

[2] http://tex.stackexchange.com/questions/47924/creating-playin...

PS: If you are looking to promote Squib, as might already be obvious to you, I'd recommend /r/boardgamedesign [3] and somewhere (I'm not sure where) on BoardGameGeek [4]. The latter might be especially interested as many people seem to create custom "fan decks" for existing board games. For example, the game Love Letter is frequently re-skinned or re-themed as seen at [5].

[3] http://www.reddit.com/r/boardgamedesign

[4] https://boardgamegeek.com/

[5] https://boardgamegeek.com/files/thing/129622

Re: Squib: A Ruby DSL for prototyping card and board games

#26
What I like:

- Data driven

- High-quality output

- Raster and vector output

What I don't like:

- Complicated to set up (install Ruby, install multiple dependencies, compile code). This will scare away many potential users.

- Complicated to use (edit text files and run command line scripts). While I like this workflow personally, I feel this will again scare away some people.

- There's already many generic tools where you can write scripts to produce images from input data. Maybe you could explain why your tool is better suited for designing cards, given how complicated it is?

Re: Squib: A Ruby DSL for prototyping card and board games

#27
post #26

What I like: - Data driven - High-quality output - Raster and vector output What I don't like: - Complicated to set up (install Ruby, install multiple dependencies, compile code). This will scare away many potential users. - Complicated to use (edit text files and run command line scripts). While I like this workflow personally, I feel this will again scare away some people. - There's already many generic tools where…

I simply made a thing that I wanted to use. And then made it open source in case anyone else wanted to contribute. I've used a ton of tools for this task for nearly 10 years now - most notably nanDeck, but trying out just about everything else. I kept saying, "this is cool, but I want to do it in Ruby".

I also wanted an open source alternative to nanDeck. I love nanDeck, and Andrea Nini has been amazingly responsive at fixing bugs quickly, and at pushing out new features frequently. But open source projects (if done right) build more of the user-developer community that I'm looking for.

Regarding being complicated. Personally, I made Squib to match the way I think. Doing rapid prototyping on card games is both complicated tedious no matter which way you slice it. Squib helps with the tedious part. Ruby provides so much to take complex tasks and condense them to readable code - I wanted to leverage that for a very specific task.

Yes, I know some people are scared away by the fact that it's programming. Or the fact that it's Ruby with some native dependencies. But (and this I know from my day job as a software engineering professor) Ruby is among the easiest programming languages to learn. Already, I've seen some folks over at BoardGameGeek enthusiastically pick up Ruby and learn it just for Squib (http://www.boardgamegeek.com/article/19640981). That's awesome and already more than I had hoped for.

Re: Squib: A Ruby DSL for prototyping card and board games

#28

Thanks for sharing, this looks really nice. Does anyone know similar projects that help with developing card- and/or boardgames?

There's our project, Paperize: http://paperize.io (spoiler alert: we're still invite only/early access!) It's a web app, not a code library, but we're solving similar problems. We love Squib though, keep up the good work!

I'm really excited about Paperize. I can't wait to see more of what you're up to.

Re: Squib: A Ruby DSL for prototyping card and board games

#29
post #17

Very interesting. I'm interested in the same space alas I focus on prototyping the physical game virtually not generating physical prototyping materials. My vision is building a GUI where you can define game objects which generates JSON (I had something like a game DOM in mind). However I've been pondering how to get the actual rules system done/integrate it. It would be a lot nicer if one could define the rules via…

Ok, so this is something I also want to do someday. It's not what Squib is at all, but I feel like we need better tools board game simulation and machine learning. In particular, I'd like to simulate the game with very basic AI, then analyze the games to look for overpowered moves (e.g. if 75% of all winners used Black Lotus).

I'm trying to do this in an ad hoc way on my own games, but progress is slow :(

Re: Squib: A Ruby DSL for prototyping card and board games

#30
post #17

Very interesting. I'm interested in the same space alas I focus on prototyping the physical game virtually not generating physical prototyping materials. My vision is building a GUI where you can define game objects which generates JSON (I had something like a game DOM in mind). However I've been pondering how to get the actual rules system done/integrate it. It would be a lot nicer if one could define the rules via…

I'd recommend talking with the VASSAL people if you haven't already. I was looking into something similar (defining pieces and rules in a DSL that would spit out an engine suitable for AI) a few months ago when I was all motivation and no outlet.
Post reply on HN