Upload
brian-davis
View
621
Download
0
Embed Size (px)
Citation preview
B E S T P R A C T I C E S F O R C O L L A B O R A T I O N
B R I A N D A V I S
Spreadsheet Design
Why?
My Background
My Background
My Background
T O O L O P T I O N S
S P R E A D S H E E T S A S A B A L A N C I N G T O O L
M A K I N G M O R E R E A D A B L E S P R E A D S H E E T S
C O L L A B O R A T I O N A N D E X P O R T
I M P R O V I N G P R O F I C I E N C Y
Topics
Tool Options
Building Systems in Excel
Balancing Without Spreadsheets
Playtest
Repeat
Guess
Balancing With Spreadsheets
Game Values
Game Data
.XLSX
Formulae
Balancing With Spreadsheets
Good for
Games with lots of content
Complex interplay
Games as a service
Not great for
Small games
Curated experiences
Games without currencies
Manual Automatic
Set Values
PlaytestRecord Income
Income per
session
Expected Play
Patterns
Income Estimates
Calculating Incomes
Manual Automatic
Guess
PlaytestRevise
Cost Formula
Compare with
income
Automatic Pricing
Calculating Costs
Application
Income
• Players make 10 coins per minute
Behaviour
• Players play 3 minute sessions
• Three times per day
Formula
• A shield should take 2 days to earn
Cost• A shield costs 180 Coins
Income
• Players deal 5 damage per punch
Behaviour
• Players can punch twice per second
Formula
• A dragon should take 15 seconds to K.O.
Cost
• Dragons have 150 health
Formatting for readability
Don’t exceed your screen width
Horizontal scrolling can be tricky
If each row is an item, you should see all of it’s attributes at once.
Hiding rows can make it hard to write formulae
Hidden rows also complicates error detection
Watch out for…
Only have one data type per column
This example is readable
Whitespace is the enemy
Makes it difficult to compare items
Useless Whitespace
Never merge cells
Lookup functions break
Formatting becomes more difficult
Only use as a last resort
Only for presentation documents
Formulas which break
=COLUMN()
=HLOOKUP()
=INDEX()
=LOOKUP()
=OFFSET()
=ROW()
=TRANSPOSE()
=VLOOKUP()
Never wrap text
Text wrapping on one column doubles your whitespace
Consider text keys or a separate document for long text strings
Comments
Comments can be placed in a cell by clicking Insert>New
Comment
These are good for long comments to describe a column
Comments can also be made in a formula using +N(“”) This formats the text as a number
which it reads as +0 so it will not change the outcome
[ A L T ] + [ ↵R E T U R N ]- O R -
[ C T R L ] + [⌘C M D ] + [ ↵R E T U R N ]
Writing Readable Formulas
S H E E T R E F E R E N C E S
• K e e p y o u r t a b n a m e s s h o r t
• 5 characters or fewer allows more tabs to appear on the bottom of the screen
• I u s u a l l y c r e a t e a c o n t r o l p a n e l s h e e t n a m e d “ C ” t o k e e p f o r m u l a s s h o r t
Nested IFs are hard to read
Above is a formula for rounding to 2 Significant Figures
Below is a more elegant solution
Formula
Intuitive formula building
=B8*86400/M8
=B8/M8*86400
=(B8/M8)*86400
=(B8/M8)*(60*60*24)
=(value/time)*day
=Income per day
Named Tables
A warning about names
Named Ranges != Named Tables
Names cannot be reused in Excel
Tables are obvious, ranges are hard to see and easy to break
Color Code Titles and Tabs
Color cell A1 to match the tab
A unique font turns it into a logo
Turn Titles Sideways
Use conditional formatting to hide useless data
Turning useless values white makes this table easier to read
The same can be done with expected error values
VS
Vertical Monitors
Collaboration
Data Validation as Spellcheck
Tokens
Exporting
Design .xlsx
• Standalone
Game Values
• Imports on build
Exporting
Design .xlsx
• Standalone
Export .xlsx
• References Design.xlsx
• Contains no formulas
Game Values
• Imports the export values
Game Values
Override.json
Export.xlsx Design.xlsx
B U I L D A C H A R A C T E R G E N E R A T O R
M A K E A F O R M U L A R E F E R E N C E S H E E T
B U I L D R E C I P E S
Improving spreadsheet proficiency
Build a Character Generator
Build a Character Generator
Make a Formula Reference Sheet
Build Recipes
When you find something that works make a recipe
=INDIRECT(“R”&MATCH($A1,Sheet!$1:$1,FALSE)&”C”&MATCH(A$1,Sheet!$A:$A,FALSE),FALSE)
=LINEST(knownXs,knownYs^{1,2,3})
=“x3”*lvl^3+”x2”*lvl^2+”x”*lvl+”b”*(max-min)+min
=Indirect Match Recipe
Contact Me
@BrianDavisM
briandavism.com
The End