Where we've been
It's been far too long since anything was prototyped in it rains fish. A long time ago, some paper prototyping was done; but it was pretty painful, even for simple games. Lots of calculations, easy to make mistakes, and the game was supposed to be realtime. It was still very helpful. But it didn't give a feel for what the game would be like.
We should be doing this more, but, Some problems have been surprisingly time consuming to solve. I've also spent a lot of time (probably too much), getting comfy with the tools, and ecosystem in node js. But we're finally near a milestone where many gameplay mechanics are going to be "played", and I'm hopeful crucial decsions will be made.
What we have
Two people can connect to the game, and interact with a board. They can:
- Move pieces around
- Change stats on existing pieces
- Call commands
All of these actions are GUI driven, minus the calling of commands.
Moving pieces is fairly straightforward, we don't limit where someone can place something, we'll manually have to be aware of what we're allowed to do. That's fine, this gives us plenty of leway for experimentation
Stats are basically name/value pairs on existing pieces. They affect appearance, and are used as data for the commands to act on.
Commands get invoked and affect the board. They can have parameters, which can include particular pieces, or sides of the board. This is where much of the meat is. We have commands that automate the painful parts of protoyping. And we intend to use them as the basis of how the actual implementation works as well.
What we're going to do
We're going to try our best to simulate the game. We'll both have prompts to execute commands. We'll respect the rules manually, and see what gameplay works looks like while trying many of our ideas. Hopefully as we tighten the game up, maybe we can start getting more people involved in this process. That would be ideal.
Something interesting… REPL Jack
To aid in running commands, and general flexibilty while playing, I built a tool. It lets you 'jack' into a running node application with one or more REPLs. You run the server and the client application can connect (over the network). Giving it a context gives your REPL clients easy access to important references. If this sounds impressive, you may be interested in the node REPL documentation. Most of this application is just built in node.js's standard libary. It wasn't a lot of work. I decided to package it up a little and put it on github, if you're interested.