[TFUI] Agile Game Development
Phlip <[email protected]>
| Newsgroups | gmane.comp.programming.test-first-user-interfaces |
|---|---|
| Message-ID | <[email protected]> |
TFUI:
In my research into TDD for business GUIs, the most advanced principle
is "Broadband Feedback". That refers to using tests to escalate
feedback and review of graphical situations.
Here is an example:
http://www.c2.com/cgi/wiki?BroadbandFeedback
That's a Wiki that transcludes XML as test cases. Each test fixture
takes a picture of its case's target, and stores this image in the
Wiki.
Now how can we use this technique in game development? Start by
describing game projects in Agile terms.
A game project's Customer Team are "designers". I'l refer to the
"gameplay designers" to distinguish them from implementation
designers.
Designers collaborate with producers (gold owners) to identify a
target audience and a genre. Games rarely fall outside their genres:
First person shooter, Level Game, Role Playing Game, Driving Game,
etc. Naturally, modern hardware advances are permitting mixed genres
depending on play activity. Game development typically proceeds until
everyone has completely filled the minimum capacity of the user's
computer.
Designers then select a theme, and use it to script out a game's plot,
and commission sketches and renderings of its art for approval. This
activity closely resembles BigRequirementsUpFront. However, users
don't have any real "needs" for a program to miss. They only have
"wants", based on our theme and genre.
But collecting requirements before implementation still denies those
requirements the opportunity to benefit from the feedback of
implementation. I propose that to enjoy more of Agility's benefits,
game projects should harness BroadbandFeedback to systems that allow
gameplay designers to author Customer Tests.
Game projects typically use a tiny, dynamic OO language called "Lua"
for their scripting layer. (Some games have delivered with 150 KLOC of
C++, and 100 KLOC of Lua driving them.)
A game project should store a suite of tests, written in Lua, with two
skins. One skin is the BroadbandFeedback technique in a Wiki. The
other technique would be a Lua console built into the PC version of a
game engine, like this:
http://www.rubygarden.org/ruby?FractalLifeEngine/FleaOpenGl
(Both those examples use Ruby script to model a fractal, not a game.)
A designer would write Lua code to walk the main character thru a
little scenario, such as kicking a door or triggering a monster.
If the designer wrote failing Lua tests into the left text area, then
they could write the Lua gameplay scripts into another editor to pass
the tests.
All these behaviors leave a trail of tests as part of the design
process. Whenever any such test fails, designers pass it to
programmers and request them to improve the engine and the Lua layer
to pass the test.
Programmers' jobs could, _in_theory_, reduce to making each test in
the backlog pass. They would add unit-level tests to their engine, and
they would run _all_ of these tests before integration.
Careful emphasis on tests and their tuning would lead to an engine
that compressed time (and elided graphics) to make most gameplay tests
run quickly and quietly.
Producers, marketeers, artists, and designers would use the
BroadbandFeedback technique as a gallery of screenshots of the game in
action. This would allow art and design to stretch out over the entire
game development, instead of bunching up at the front.
And all the tests would allow a game project to run with virtually
zero bugs, thru its entire lifecycle. Chronic feedback, from
production, could allow the best possible gameplay script to emerge.
--
Phlip
------------------------ Yahoo! Groups Sponsor --------------------~-->
$4.98 domain names from Yahoo!. Register anything.
http://us.click.yahoo.com/Q7_YsB/neXJAA/yQLSAA/nhFolB/TM
--------------------------------------------------------------------~->
To unsubscribe, email:
TestFirstUserInterfaces-unsubscribe-hHKSG33TihhbjbujkaE4pw@public.gmane.org
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/TestFirstUserInterfaces/
<*> To unsubscribe from this group, send an email to:
TestFirstUserInterfaces-unsubscribe-hHKSG33TihhbjbujkaE4pw@public.gmane.org
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/