Zach Laster University of Helsinki
University of Helsinki Pen and Paper Dice, Cards, Rough boards, - - PowerPoint PPT Presentation
University of Helsinki Pen and Paper Dice, Cards, Rough boards, - - PowerPoint PPT Presentation
Zach Laster University of Helsinki Pen and Paper Dice, Cards, Rough boards, stand-in play elements Excel Simple scripted games (Lve2D) Experimental Gameplay Project Group that made Tower of Goo (amongst other things) Each person in
Pen and Paper Dice, Cards, Rough boards, stand-in play elements Excel Simple scripted games (Löve2D)
Experimental Gameplay Project
Group that made Tower of Goo (amongst other
things)
Each person in the group built a game
prototype in a week
They bounced ideas off each other and used each
- ther for feedback, but otherwise worked
independently
Rules:
Each game must be made in less than seven days Each game must be made by exactly one person Each game must be based around a common theme
i.e. "gravity", "vegetation", "swarms", etc.
Failure
Embrace the possibility of failure
Don’t just accept it Take risks!
The thing about rapid prototyping is you
are SUPPOSED to fail sometimes
It wouldn’t be a prototype if it was
guaranteed to work
If you fail you probably still learn
something valuable
Prototyping is for SCIENCE!
Do it fast
The point of rapid prototyping is it is And throwing more time at the problem
doesn’t make the solution better
There isn’t typically a correlation
between time and prototype quality
Limits
Building prototypes is easier when
You know the question you are trying to answer You have defined limits for what you are building
It don’t have to be exact or highly specific,
just limiting
The EGP benefited from focusing on themes like
“gravity” or “swarming”
They also seem to have all used the same
theme at the same time (at least initially)
Team of Individuals
One of the stronger tactics that EGP used was
that they don’t work together.
Producing prototypes individually spreads out
the risk
At least one of them is likely to be good
It improves competition
Especially if everyone is working with the same
constraints
Gives more to share
Code, ideas, concepts, methods, etc All the stuff you learn individually can now be taught
to others!
The value of the team in
this context is primarily helping to provide ideas and competition
EGP found that the
team was most useful at the start and the end of prototyping
Bouncing ideas off each
- ther
Competing with final
products
In the middle of
development, it just messed with them being in the zone
http://www.gamasutra.com/view/feature/130848/how _to_prototype_a_game_in_under_7_.php
Brainstorming – How not to do it
Formal Brainstorming doesn’t work (at
least, not on schedule)
Mostly, you just want to get something
running in your head, bounce some stuff around
If inspiration doesn’t hit you at first, keep it in the
back of your head
Your brain does a lot of background processing
Brainstorming IS useful for hammering
things out
Feedback on ideas Helping to solve stuff
Concept Art from Others
One method to help get the initial
idea/setting/mood for your game is to collect and put together music and/or art which is somehow significant to you
Tower of Goo, Gravity Head, and On a
Rainy Day all used this method to build their atmospheric moods
Thought Experiments
Or, prototype your prototype Simulate it in your head first, don’t just
get half an idea and start coding
Consider how the player is playing and if
they are enjoying it
Is everything playing nicely together?
Paper prototypes can help a lot here!
Toy First
Generally, games have some core
mechanics that make them what they are
When prototyping, build that first, and make sure
it’s worthwhile
If it isn’t, you can save yourself the time of
building the rest.
○ This is knowing when to cut and run
The toy is the mechanic that’s fun to play
with just by itself, without actual gameplay
Super Tummy Bubble Tower of Goo
Fake it
Whenever possible (and it’s usually
possible), it’s cheaper and faster to fake things
Correct AI doesn’t come up often in AAA games,
because fake AI is faster to make, easier to tweak, and works basically as well.
This can also make your game faster One of those lessons taught by the
programming gurus: Learn to slack of with style
Also known as “Hobbits would be fantastic
coders”
Shoot it. Shoot it now.
Sometimes, it just isn’t working
Sometimes the toy just never crystalizes Sometimes the toy just refuses to become a
game
You also can’t just add polish to it
People see through this kind of thing quickly,
though it may catch their eye initially
Art Matters
Despite not being a good cover for crappy
design, art and music very much improve a game
Sets atmosphere Can greatly improve immersion! Sometimes just a few simple things put
together well can make a strong aesthetic
Build an art style for the game, and that will
cover most of it
A standard industry method for music is to build
basic themes for things
Engineering only sort of matters
EGP found that “correct” and “reusable”
are not really targets
I’d argue that “reusable” is always good, but I
can definitely see not making it a requirement here
If you make parts of your base reusable, later
prototypes can benefit!
The big thing is: The user will never see
your fantastic architecture
Badly architected games can be fun (Minecraft) If it works, and works fast, then it works; that’s
all they care about
Building Games from Primitives
Many mechanics can be reduced to similar
mechanics
Dice rolls vs card draws
Often possible to simulate mechanics using
- ther means
Most games have highly similar elements,
such as drawing or rolling to determine allocation of resources or success. When building a new mechanic, it's probably wise to compare against other similar mechanics
Complexity != Fun
We don’t need a lot
Dice, cards, bouncy balls We’re pretty easy to entertain
So perhaps all you need are a few basic
primitives and a neat idea
This also ties back to “the polish won’t
save it”
Similarly, experimental != complex
Goals and Bounce
When converting a toy to a game, we want
to try to use any implicit goals
What would you want to do with this even
without game mechanics?
Avoid things that feel randomly tacked on
Keep the game bouncy!
Things which are responsive and bounce to
user input will help the user
Super Tummy Bubble The Swarm Mario Minecraft (in some aspects)
The Hero with a Thousand Faces
Joseph Cambell determined this trend in
most mythic literature; The Hero’s Journey
Many ancient tales from all over the world use
this formula
○ Nigeria, Finland, North America, China, … ○ The Odyssey, Inferno, Sleeping Beauty, Faust, …
Also known as the monomyth
Cambell suggested that this trend is rooted
in a human need or psyche
Once it was identified, it was obviously
everywhere
It was used to build Star Wars And has been used to explain Harry Potter
and the Sorcerer’s Stone
Some virtual worlds (Shadowbane) use
it when building their quests
The Quest for Self
The Hero’s Journey is a process of self
discovery, from ignorance to mastery
The hero travels from a mundane world to
an “other world” of danger and the unknown
Once they succeed there, they return to
their own world, armed with new knowledge and a new sense of self, ready to tackle whatever drove them to the other world to begin with
Sounds a lot like the story line from Ultima,
doesn’t it?
With most cases of the formula (books,
movies, myths), it’s not the reader who goes on the journey, it’s the main character (whom they hopefully identify with)
While this does provide some similar growth in
self, it’s not the same
Virtual Games are the exception to this.
You are the character, you control their actions.
The more freedom you have in the game world,
the more room you have to explore your self.
You are the hero.
Phases
Departure – The hero leaves their world Initiation – Takes place in the world of
myth
Return – The hero returns to their world,
a hero indeed.
The steps that make up these phases
can occasionally be reordered or skipped, but not the phases
Departure
The call to adventure Something gets you to look at the game Refusal of the call “Nope, not gonna play. Not enough <fill in the blank>.” Some people go no further Supernatural aid Someone’s promised to help (maybe you found a guide).
Feel more confident.
Crossing the first threshold You downloaded and installed the game The belly of the whale You create a character. This is a formal “rebirth.”
Initiation
The road of trials
You become an opportunist (or griefer) and begin to
find your way.
Meeting with the goddess
Metaphor for knowledge You know what you must do Some drop out here Scientist/Networker stage
The temptress
The old world, it beckons you to return (your world) Are you content knowing what you need to know, or
are you going to apply it?
Boundary into Planner/Politician
Atonement
Working to “win”
○ To be accepted in the world’s own terms
Planner/Politician The world must actually acknowledge you have won
Apotheosis
Hackers/Friends A period of rest; the challenged have been met, and
new ones are not as important
All is at peace
The ultimate boon
And this is where it falls apart (partially)
The boon? Please?
In the formula, the boon is the token of
completion which has value to them (perhaps in the real world)
It may even be why they came in the first place
Many MMOs won’t or can’t actually give
their players the boon.
Because they don’t want you to leave But mostly because nothing in the game is real
So many players are left hanging
Return
Refusal to Return
Why would you want to leave the other world? You
have power and friends.
The Magic Flight
Usually there is something to prompt the hero to
leave, like someone trying to take the boon back. Since that’s not going to happen, we lose that trigger.
Rescue from Without
Something rescues the hero back to the real world.
In our case, a friend, family member, or colleague
Actually more of an excuse to leave Kind of reversed with the previous step
Crossing the threshold back Returning is a shock; must reconcile old self and new self The world has carried on without you (buy don’t we know
it) and we must address these challenges
In myth, the boon is often a tool to enable this Not really stopped playing, just stopped needing to play Master of two worlds You accept your destiny; you are both your real and virtual
selves
You can return to the other world, but it’s just a place now,
not so mythical
Freedom to live You can be yourself
Problems with this
One the one hand, it sounds like the story line from
Ultima.
Unfortunately, it breaks down in execution much of
the time
The boon is just one of the problems The atonement step often doesn’t get played out, as the
MMO doesn’t want you to go
○ These leave players frustrated, and they leave without
wanting to, seeking other sources of validation
If games actually provided this acknowledgement,
players would actually probably stay anyway
We might get better retention rates just by allowing
players to leave
Immersion and the Hero’s Journey
Immersion is an emergent property from this
It shows up everywhere because we crave it; it’s
imbedded in our psyche
Whatever the player needs to do right now in
- rder to progress along their journey will
generally be what they regard as “fun” at that point
In order to keep players immersed and
playing, we want to help them through the points where they are most likely to fall out of the journey
Refusal/Supernatural aid The temptress
We should also try our best to ensure that
the player is properly acknowledged as having “won”
Originally, this was “atonement with the father” This enables the players to continue playing as
winners, rather than quitting in frustration
Enabling players to be the master and
helping them to leave and return will probably also improve immersion later on
We can lengthen the Journey, but we
shouldn’t cheat the player of their prize
We’ve noted that the ability to automate
- ur tests greatly reduces the time spent
balancing
Additionally, having a system which
automatically looks at our relationships can allow us to quickly check new values or changes to values
Excel
I’ve suggested Excel be a part of a
game designer’s toolbox
Really, any spreadsheet software would
work about as well
I use Excel because it has some of the best
power and the macro language is the best documented (VBA)
Open and Libre Office can have macros, but
the documentation for making them is rubbish
Basic functions
Sum – Sums the given range Concatenate – Joins text from inputs, but cannot
take a range
The ‘&’ symbol also conjoins text like the ‘+’ symbol adds
numbers
Indirect – Maps a reference as text back to the cell
reference
Unlocks a lot of power of Excel when you know it VLookup – Matches the value given from the
leftmost column of a range; returns the value in the specified column on that row
See also: HLookup Match – Matches a value in an array (range) and
returns the index in the array
Notes on Lookup
One of the things Excel excels at is lookup
It’s a giant datatable system
Matching defaults to trying to find the specified
value in an ordered list
If the list is not ordered, it may not find it (it uses
binary search)
The function will actually return the location that the
value should be in the list, assuming it is ordered
You can set matching to be exact, meaning it
will find only the exact value given, wherever it is
This uses a more linear search If the value is not found, the function errors
String Parsing
Left – Characters from the left of a text
string
Right Mid
LEN – Length of a text string Find – Starting position of a text string
within a text string
Substitute – Replaces all instances of a
given text string with another text string in a text string
Other Useful Functions
IF
AND OR
IFERROR RANDBETWEEN
Lua
While Excel is a tool, Lua is a language,
meaning we’ll need some way to execute it
Suggested Tool: Love2D
Already ready to go for building games Lots of available pre-fab systems Easy to set up and use
You could of course use anything which
can compile or execute Lua
Hello World
- -A Hello World Program in Lua
print('Hello World!')
If, Then, else, end
- -Quick Example of an If statement
local var = 0 if var == 0 then
var = 2
else
var = 1
end
Comparisons
==
is equal
~=
Not equal
>=, >, <, <=
while do
local var = 0 while var < 10 do var = var + 1
- - Note that Lua lacks a +=
end
for
- -All three expression are evaluated at the
beginning of the loop for i = 2, 10, 0.5 do print(i) end for i,v in ipairs(t) do print(v) end for k,v in pairs(t) do print(v) end
variables, nil, “arrays”, tables
local foo = “bar” foo = 3 foo = nil foo = {}
- -foo[0] is an error!
foo[1] = 10 --ipairs foo[“bar”] = 12 --pairs
Inclusion
When the lua script is executed, it’s
possible to include other files
local ProcessMgr = require
"util.processmanager"
The example here uses a “best practice”
(there are other ways to do this)
require forces the script to be included and
run on the spot
The file itself can have a return, and that
return is here put into local ProcessMgr
Things you can do with Lua
Check out the Love2d website for some
complete games
MariO Not Tetris
I’ll try to present some more examples in
the lab
Project
You will work in teams of 2 to 5 If you want to do an individual project, that’s on you. I
won’t stop you, but you need to be aware of the choices you are making, and that the project will be harder for you.
And I’m not grading based on member count. The basic project is to build a game. The genre isn’t fixed The style isn’t fixed Theme, concept, mechanics, core, etc. All up to you. If you want to build a card-based FPS, cool. The only requirement of your game is it have
mechanics (of sufficient complexity) which you need to balance
Use your best judgment on sufficient complexity
Report
The actual grading for the projects will
be conducted using a report system. Each group will write a project report containing:
Game Concept Balance Goals Game Design How the balance goals were achieved and
any known issues
Postmortem
Alternate Projects
If the basic project doesn’t float your boat, try doing
- ne of these (and then writing the report on it)
Analyze the balance of an existing game You don’t have to do the whole game if it is very complex Though you will need to get a general overview so you
can discuss how the part you looked at fits in
Rebalance an existing game You could dissect Minecraft, for example, and build a total
conversion mod for it.
○ Rather than looking at the (missing) balance, you’d use
what’s there to construct a new balance system
You can also do something in the middle, where you
analyze the existing balance and suggest changes to it
Postmortem
What went wrong, what went right, how
we’d do it differently next time
Really, any time you do a project you
should write one of these
It’s largely a review of the project as a
whole
Use it as a lessons learned document
and try to get something out of it!
Individual Reports
In addition to the group report, each
member of a group will return an individual report with:
Personal impressions and lessons Commented contribution breakdown out of
100%
○ From a total of 100%, give each member of
the group a value for how much work they contributed.
○ Explain why for each percentage. Large