james mayr
Switzerland
South Carolina
flag msg tools
mbmbmb
Hello guys

In a few weeks I will get my bachelor degree in computer sciene and I need new hobby:

I'm considering to design a board game. I have read a lot of tutorials and articles about the design process, and have already an abstract idea of the game (worker placement, card deck with actions).
But I find it very annoying to create PnP prototypes in the early design stage.

Computer based rapid Prototyping
What tools are you using for prototyping, or are there designer, they program your own game environment for prototyping? or using nice nice scripting framework for prototyping (e.g. for video games "unity" is really nice for prototyping).


Computer based game mecanic improvement
are there designers, they use computer algorithms / neuronal networks to find a proper game mecanic / optimize the game mecanics with algorithms / neuronal networks?


E.g:
I have read an artikle about a programmer that used "genetic programming" for balancing a tower defence game:
http://aigamedev.com/open/interview/evolution-in-cityconques...
I think this approach could be used for balacing a board game too.

tell me your experience with computer based game designing.

thank you in advance
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
B C Z
United States
Reston
Virginia
flag msg tools
designer
badge
Avatar
mbmbmbmbmb
What do you find annoying about PnP?
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
james mayr
Switzerland
South Carolina
flag msg tools
mbmbmb
byronczimmer wrote:
What do you find annoying about PnP?

In my opinion for brainstorming and idea finding it's the right choice, but for prototyping you have to cut out the cards, reprint it and cut out the cards againg for a new prototyp and so on. I think with a computer based approach the prototyping ist faster - but that is just a guess. (maybe I'm wrong)I

'm not an expert in game design (that's why I'm asking for advices): I created some PnP prototyps this summer and it seems a lot of work just for test some game mechanics.

And i think that with a PnP Prototyp it's more dificult to measure e.g. the success of each player. or to test if the worker placement actions are balanced.
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Lutz Pietschker
Germany
Berlin
flag msg tools
designer
badge
Avatar
mbmbmbmbmb
tscheims wrote:
… for prototyping you have to cut out the cards, reprint it and cut out the cards againg for a new prototyp and so on.

Depends on when you "go physical". Obviously you do it only when you are "theoretically" satisfied. And there are lots of shortcuts you can take: Don't overdo the prototype quality, use card sleeves, use material from other games.

Quote:
… it seems a lot of work just for test some game mechanics.

IMHO it is crucial. I could not decide whether I like a game or not without handling the physical objects. And I mean handling them physically, not in a virtual environment.
"Just to test" sounds funny, as it is one of the main parts of the process; so I guess you just need to give it its dues.

Quote:
i think that with a PnP Prototyp it's more dificult to measure e.g. the success of each player. or to test if the worker placement actions are balanced.

You assume that the virtual game software helps you with logging a game and evaluating the log? VASSAL does that to a minimal degree, but other platforms do not help at all. I used spreadsheet logs and Filemaker databaes for that.
Balance: Doing the math is part of the development process and should go before the PnP. I agree, however, that the games sometimes play with surprising twists on the pure mathematical view.
2 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
james mayr
Switzerland
South Carolina
flag msg tools
mbmbmb
PunTheHun wrote:

MHO it is crucial. I could not decide whether I like a game or not without handling the physical objects. And I mean handling them physically, not in a virtual environment.
"Just to test" sounds funny, as it is one of the main parts of the process; so I guess you just need to give it its dues.

I don't want "skip" the test phase. I just think that with a digital enviroment I can prototyp faster than with with PnP.

PunTheHun wrote:

You assume that the virtual game software helps you with logging a game and evaluating the log? VASSAL does that to a minimal degree, but other platforms do not help at all. I used spreadsheet logs and Filemaker databaes for that.


That's why I'm asking the experts if the virtual game software are a benefit for prototyping or just eye candy. maybe writing own scripts for simulating the game mecanics is the way to go or maybe PnP IS the fastest way to prototype.
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
B C Z
United States
Reston
Virginia
flag msg tools
designer
badge
Avatar
mbmbmbmbmb
Wrestling with a virtual environment can quickly take the focus away from the point of a play test session.

If modification of a card is not as simple as writing on the paper with a sharpie, you've lost time and focus.
5 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Jon Vallerand
Canada
St-Basile-Le-Grand
Quebec
flag msg tools
badge
Avatar
mbmbmbmbmb
byronczimmer wrote:
Wrestling with a virtual environment can quickly take the focus away from the point of a play test session.

If modification of a card is not as simple as writing on the paper with a sharpie, you've lost time and focus.


QFT!

Going computer-based and mastering it has value and is probably worth it in the long run. However, if it is a distraction so you don't have to start working on that first game just yet, it doesn't.
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
James Arias
United States
Sanford
FLORIDA
flag msg tools
Avatar
mbmbmbmbmb
I for one would LOVE a virtual tabletop that was truly user-friendly and as easy to iterate on as paper.

All of the tools I've experimented with are pretty heavyweight to edit and come with a learning curve ... great for later stage blind playtesting but slower / harder than paper on initial prototyping / development.
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Pelle Nilsson
Sweden
Linköping
flag msg tools
designer
badge
Avatar
mbmbmbmbmb
Leave a lot of blank space on cards and other components to easily pencil in changes.

EDIT: And of course print many more than needed of everything, plus have blanks or semi-blank templates as well to fill in aa you make up new ones without requiring a roundtrip to the computer.

Use simple thin paper with (not glued on) backing (magic cards) in card sleeves, so when/if you really must replace the entire card it is a simple quick operation.

I wrote an extension for inkacape to make it simple to quickly lay out sheets of cards from content in a spreadsheet.

http://www.boardgamegeek.com/thread/299033

For solitaire playtest just dragging around the components in Inkscape works. Next step is VASSAL, just import the graphics and you have a prototype to play alone or with others online. But I prefer playing ftf with real components.
3 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Jeff Warrender
United States
Averill Park
New York
flag msg tools
designer
publisher
badge
Avatar
mbmbmbmbmb
I can sympathize with your general distaste for printing and cutting but in my experience, virtual playtesting is vastly more time consuming. Keeping in mind that you first have to make the components in something like Inkscape anyway, the only time you're looking to eliminate is the time printing and cutting. But the time you will spend uploading the components into the program's preferred format is probably an order of magnitude greater than the time you'd spend printing and cutting, at least until you're very familiar with the tool or are able to write some shortcuts.

There are advantages to using these tools, of course, but I don't think saving the tedium of printing and cutting is one of them; you're just trading that for a different kind of tedium!

That said not all simulators are created equal. I used ZunTzu and mostly found it easy to use, whereas I tried uploading a game onto Tabletopia and hated it so much (you have to add each component one at a time unless I missed something) that I'll never use it again for a card-heavy game!

For prototyping one easy thing to do is use mailing labels stuck onto playing cards. You can use a spreadsheet for your card text fields and mail-merge the spreadsheet entries to populate the fields on the mailing labels. Or just writing with sharpie is an easy way to get started.
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
wayne mathias
United States
Niceville
Florida
flag msg tools
badge
Avatar
mbmbmbmbmb
The first stage is to write stuff down. Anything can be placeholder for graphics. Stick figures even.

Make it all work out on paper, then redo your notes one time (there will be changes that happen just from doing this).

Now you are ready to try to do a rules set for others to look at blindly (expect at least 2 more iterations will be needed) or to make a crude playtest prototype that needs you present to explain things.

--- You could always do it backwards like I did The Singularity Trap server/browser thing by writing code as each rules section becomes clear. Come on in, the spaghetti's fine. ---

The game will determine what method of making a prototype is best. I did Alchelemental as PnP but made a Vassal module also. I have no idea which version people used who voted for it in the 2 player PnP contest here earlier this year.

When I make page images for PnP I normally write (or modify) a PHP script to cobble together individual images for cards and chits into a full page image.

But first develop your game to the point where you could make an actual sketchy by hand prototype if you wanted to (unless you use freehand coding or such as part of your thinking process).

My 2 newest games are beyond what I would expect anyone to print and cut out anyway, and would need a big 2k display to show the entire board with details so digital is not a true alternative. But I have PnP versions of each so prototypes can be made.

Since Vassal is free, take a look at it and see if will work for your game. Tabletop Simulator and others are also widespread enough that a version using them would have a good sized pool of potential playtesters.

1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
james mayr
Switzerland
South Carolina
flag msg tools
mbmbmb
Thank you very much for your advices.

and what is with Computer based game mecanic improvement with genetic programming / neuronal networks? has everybody tried this approach in the design process?
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
J C Lawrence
United States
Campbell
California
flag msg tools
designer
badge
Avatar
Both require having a well defined (and well understood) fitness function -- something which is rarely present so clearly during game design.
4 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
JPotter - Bits77
United States
Tulsa
Oklahoma
flag msg tools
I enjoy designing / manufacturing game components and upgrades. Got a project? PM!
badge
Avatar
mbmbmbmbmb
Put less effort into those initial playtest copies. Like, next to zero effort.

Only a fairly refined game is worth the effort of a 'presentation' copy.

Because, like you said, it is a lot of work.
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
J C Lawrence
United States
Campbell
California
flag msg tools
designer
badge
Avatar
I use spreadsheets heavily during the design process. Everything from mock games to numerical simulations to fairly heavy formula work. After that I also use a fair bit of ad hoc Python bits to do much the same things but with more of a focus on iteration and range-of-expression.
2 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Virginia Milne
New Zealand
flag msg tools
mbmbmbmbmb
You can use LiveCode to do prototyping that feels like moving pieces of card board around on a board

You attach a script on the back of your "game piece".
On MouseDown
grab me
end MouseDown

The community edition of LiveCode costs nothing, but has a very infective copyleft license. You have to pass on everything if you wish to distribute your software.soblue

But prototyping at home or among a small group would not lead to any problems

You can have a paid up version for a subscription of about 499 dollars a year.

BTW, LiveCode will run on Windows, Mac and Linux.
You can generate standalones for all the platforms using a LiveCode on just one platform.

PS. LiveCode is a 17 year old grand Child of HyperCard

PS2 You can take photos of pieces and import the image as a control
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
wayne mathias
United States
Niceville
Florida
flag msg tools
badge
Avatar
mbmbmbmbmb
Have never bothered to use spreadsheets etc to run thru permutations of things myself. BUT, my games are symmetrical so far which vastly reduces such things as all players are affected equally by any changes.

Pretty sure I would find it simpler to write a quick PHP script vs wrestling with a spreadsheet anyway for a customized structure like game permutations.
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
james mayr
Switzerland
South Carolina
flag msg tools
mbmbmb
clearclaw wrote:
Both require having a well defined (and well understood) fitness function -- something which is rarely present so clearly during game design.


It depends what are you trying to achieve
Eg. for balancing the fitness function of a genetic algorithmus (or q-learning) could be: the score. that allows you to find and eliminate too strong tacics.

But unfortunately there is no measurement for "fun". so it's dificult to find out with a neuronal network if the prototyp has a nice game mecanic.

I know it's hard (I worded this year a lot with neuronal networks). but maybe someone use these technics in the game design process anyway.
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
james mayr
Switzerland
South Carolina
flag msg tools
mbmbmb
VirginiaMilne wrote:
You can use LiveCode to do prototyping that feels like moving pieces of card board around on a board

You attach a script on the back of you "game piece".
On MouseDown
grab me
end MouseDown

The community edition of LiveCode costs nothing, but has a very infective copyleft license. You have to pass on everything if you wish to distribute your software.soblue

But prototyping at home or among a small group would not lead to any problems

You can have a paid up version for a subscription of about 499 dollars a year.

BTW, LiveCode will run on Windows, Mac and Linux.
You can generate standalones for all the platforms using a LiveCode on just one platform.

PS. LiveCode is a 17 year old grand Child of HyperCode

PS2 You can take photos of pieces and import the image as a control



that sounds like a lot of fun. Thanks for the advice. I'll try it.
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Micheal Keane
United States
Washington
Dist of Columbia
flag msg tools
badge
Pictured: Rags Raggerson, successful businesscat
Avatar
mb
I've done Python scripts to see how outcomes change if I add or remove certain dice, tweak the rules for determining what happened, etc.

Quote:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

Basic package imports

Quote:
def simulate_rolls(dice, outcome=None, iterations=1000):
df = pd.DataFrame(index=np.arange(iterations))

unique_sides = set()
dice_rolls = []

for name, sides, rolls in dice:
unique_sides = unique_sides.union(sides)

for i in range(rolls):
col = '{}_{}'.format(name, i)
dice_rolls.append(col)

df[col] = np.random.choice(list(sides), iterations)

for s in unique_sides:
col = 'total_{}'.format(s)
rdf = pd.DataFrame({dr: (df[dr] == s).astype(int) for dr in dice_rolls})
df[col] = np.sum(rdf, axis=1)

if outcome:
df['outcome'] = df.apply(outcome, axis=1)

return df

The main function. It takes the set of dice that you're rolling, a function to evaluate the outcome and how many times it should simulate rolls.

It returns a pandas dataframe of all the rolls along with the outcome.

Quote:
dice = [
('attack', '211X##', 3),
('defense', 'X#####', 1),
]

Here's the set of dice we're passing in. Each set is a tuple consisting of a name, the sides (one character per side, can be any number of sides) and how many of that particular dice are in the set.

In this case, we're rolling 3 attack dice and 1 defense die. 1 = hit, 2 = crit, X = miss and # is a placeholder for blank side. But how do we know what the result of rolling these dice is?

Quote:
def outcome(row):
if row['total_X'] > 0:
return 'Miss'

elif row['total_2'] > 0:
return 'Crit'

elif row['total_1'] > 0:
return 'Hit'

return 'Miss'

This is the function that's passed in. This is called for each set of rolls. If there's an X, it's an automatic miss. If there's no X but a 2, then's it a crit. If there's no X, no 2 but a 1, it's a hit. Otherwise it's a miss.

Quote:
df = simulate_rolls(dice, outcome=outcome, iterations=1000000)

Let's go wild and simulate 1,000,000 dice rolls. This might take 30 seconds or so depending on your computer.

Quote:
df.head()

Quote:
index attack_0 attack_1 attack_2 defense_0 total_X total_1 total_# total_2 outcome
0 X 2 X # 2 0 1 1 Miss
1 1 # 2 # 0 1 2 1 Crit
2 2 # # # 0 0 3 1 Crit
3 # 1 X X 2 1 1 0 Miss
4 # # 1 # 0 1 3 0 Hit

The dataframe that comes back has columns for the roll of each individual die, totals for each side and the ultimate outcome. (obviously, this table doesn't translate well in the forum format but you get the idea.)

Quote:
df['outcome'].value_counts(normalize=True)

Quote:
Miss 0.549150
Crit 0.235112
Hit 0.215738
Name: outcome, dtype: float64

Probably close enough to whatever some mathematical calculation would come up with.

And of course you can do plots

Quote:
cols = [col for col in df.columns if str(col).startswith('total_')]
plt.hist(df[cols].values, bins=5, label=cols)
plt.legend(loc='best')
plt.show()

Wonder how removing the automatic miss from the attack die will change things? Or whether you should add another X to the defense roll? How do things change when there's 2 attack dice and 2 defense dice. Just change a couple characters and rerun.

You can do similar things with cards or whatever. It's no substitute for playtesting in the end but it'll help you avoid putting something horribly unbalanced out there because your gut feeling said it was fine.

Highly highly suggest playing around with python. Download the Anaconda distro, it comes with most packages you'll want to use and a handy browser based interactive editor to dink around in. It's what I used for this script.
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
james mayr
Switzerland
South Carolina
flag msg tools
mbmbmb
gxnpt wrote:
The first stage is to write stuff down. Anything can be placeholder for graphics. Stick figures even.

Make it all work out on paper, then redo your notes one time (there will be changes that happen just from doing this).

Now you are ready to try to do a rules set for others to look at blindly (expect at least 2 more iterations will be needed) or to make a crude playtest prototype that needs you present to explain things.

--- You could always do it backwards like I did The Singularity Trap server/browser thing by writing code as each rules section becomes clear. Come on in, the spaghetti's fine. ---

The game will determine what method of making a prototype is best. I did Alchelemental as PnP but made a Vassal module also. I have no idea which version people used who voted for it in the 2 player PnP contest here earlier this year.

When I make page images for PnP I normally write (or modify) a PHP script to cobble together individual images for cards and chits into a full page image.

But first develop your game to the point where you could make an actual sketchy by hand prototype if you wanted to (unless you use freehand coding or such as part of your thinking process).

My 2 newest games are beyond what I would expect anyone to print and cut out anyway, and would need a big 2k display to show the entire board with details so digital is not a true alternative. But I have PnP versions of each so prototypes can be made.

Since Vassal is free, take a look at it and see if will work for your game. Tabletop Simulator and others are also widespread enough that a version using them would have a good sized pool of potential playtesters.


what for a client side JavaScript frameworkare you using for user interaction?
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
james mayr
Switzerland
South Carolina
flag msg tools
mbmbmb
ffaristocrat wrote:
...
Highly highly suggest playing around with python. Download the Anaconda distro, it comes with most packages you'll want to use and a handy browser based interactive editor to dink around in. It's what I used for this script.


Thank for sharing your advice. I'm using python as well: the syntax is a little bit confusing, but you can very fast program and it has a nice dependency management. I think that for balancing a computer based approach is very efficient.

Anacoda looks nice, maybe I will give it a try. (At the moment i'm happy with pip [url]https://en.wikipedia.org/wiki/Pip_(package_manager)[/url] for the dependency management)

Thanks again for your very detailed post
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Micheal Keane
United States
Washington
Dist of Columbia
flag msg tools
badge
Pictured: Rags Raggerson, successful businesscat
Avatar
mb
The nice thing is that you can use both.

The main reason I mention Anaconda is that it comes with probably 99% of the non-standard libraries that you'd want to install anyways for light prototyping type stuff. And if you're on Windows, it sidesteps a lot of the issues that can pop up with separately installing the heavier C-based libraries (Numpy, Scipy, etc).

But really, the main reason is the Jupyter Notebooks (the browser based editor I mentioned). They're just really nice for trying out and playing around with things. I eventually move them into a normal script and use PyCharm from there.
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
wayne mathias
United States
Niceville
Florida
flag msg tools
badge
Avatar
mbmbmbmbmb
Quote:
what for a client side JavaScript framework are you using for user interaction?


If you mean the server/browser thing, I write code from scratch. Framework is whatever I happen to make. I do have a habit of using PHP to generate some of the Javascript code and assign variable values according to current game state when a page is loaded.
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
james mayr
Switzerland
South Carolina
flag msg tools
mbmbmb
ffaristocrat wrote:
The nice thing is that you can use both.

The main reason I mention Anaconda is that it comes with probably 99% of the non-standard libraries that you'd want to install anyways for light prototyping type stuff. And if you're on Windows, it sidesteps a lot of the issues that can pop up with separately installing the heavier C-based libraries (Numpy, Scipy, etc).

But really, the main reason is the Jupyter Notebooks (the browser based editor I mentioned). They're just really nice for trying out and playing around with things. I eventually move them into a normal script and use PyCharm from there.


I think, I will give it a try
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Front Page | Welcome | Contact | Privacy Policy | Terms of Service | Advertise | Support BGG | Feeds RSS
Geekdo, BoardGameGeek, the Geekdo logo, and the BoardGameGeek logo are trademarks of BoardGameGeek, LLC.