Transcript Slide 1
More Than
“Just a Game”
No homework! (It’s much much worse)
We’re a small company doing contract
programming
Our customer knows next to nothing about
software
We must interpret the customer’s wants and
needs and compromise when his desires are
not feasible to implement
Comp410 is designed to teach students
How to be professional
How to deal with a large software project
How to work as a team
How to use popular industry technologies
How to design enterprise class systems
We came into the class with green thumbs
and big smiles
Giacomo
Paul
Justin
Nick
J.D.
Eric
The warm-up project came and went
We thought we:
Had learned all there was to know about
working as a software development team
Wouldn’t repeat the mistakes we made
The Deceit project started
Still smiling =)
We met with the customer, Dr. Nguyen
Got a sense for the degree of professionalism
we were supposed to bring to the class
We started developing
Still smiling =)
We experienced working under deadlines
Weekly journal progress reports
Bi-weekly milestone reports
Weekly customer meetings
Each journal and milestone ~800 words
6 people * 800 words * 15 journals =
72,000 words over the course of the semester
We could write a small book
We quickly stopped
smiling
Our customer
Didn’t care if half the
team was out for the
week
Still demanded some
visible measure of
progress
We pushed ourselves to develop something
significant for every week
Under this pressure, we often had to
Compromise good code
by making hacks to have
something to show at
the customer meetings
Weeks passed
Then months
Our “hack” base grew larger and larger
Due to our mountains of hacks and
sophomoric designs, we were making
negative progress with every new line of code
Dr. Wong attempted to show us how to get
back on the right track
We listened
Sometimes
Heeding Dr. Wong’s advice, we got somewhat
back on track by
Critically analyzing our design
Refactoring our code
Revamping our team structure
Political satire
“… war and deceit…”
Allies become foes
Enemies masquerade as
friends
Online in real-time
Essentially an MMORPG
Massively Multiplayer
Online Role Playing Game
Blending gaming with reality
Google Maps in-game to help players navigate
Local weather is reflected by the in-game weather
Etc…
Turning His Vision into Reality:
Formalizing Expectations
Potential names:
Spy Games
Unending War
Specification
Introduction
Game World
Game Interactions
Factions
Players
Objects
Environment
Real-Time Interactions
Faction Interactions
Quests to improve player
Additional Constraints
Introduction:
Triangular conflict with bad translation and varying degrees of cheating, ranging from in-game botting and terms of use violations to federal offenses like credit card fraud.
The client would like a MMORPG that allows for continuous play, has no start or end, and engages the player’s character even when the player is not logged in. The game will have
multiple factions that the players will choose to join initially, and these factions will influence their style of gameplay by offering unique opportunities in the game world.
Most factions may be pitted against each other, although some may be aligned. Players can either run free or join factions. Once a player has joined a faction, there is some game
mechanism that prevents whimsical
Game should be a satirical reflection of today's political scene where enemies may not be as obvious as "the guys wearing the other color" and where friends are sometimes hard to
find.
Game Play
Player Objectives
Survive. This may require eliminating the opposition.
End Game Conditions
There is no "final level" or "boss" to defeat in order to win the game. The player's goal should be to best all other players in comparative rankings.
Starting Out
When a player creates a new character, do they start off as an independent? Or can they choose from a list of already created factions? Maybe we have two standard factions that have no
real abilities where people can start off?
Game World
Factions
Factions are named groups of players that form a "team". The game application never explicitly indicates to which faction a player belongs (e.g. there is no text label floating above a
player's avatar with the faction name in a graphical client or there is no mention of the player's faction in the description text in a text-based client). A key element of gameplay is
determining whether or not other players are friendly.
Faction Membership
Players may be a member of exactly 1 faction or may not belong to a faction. Players that are not members of factions are called Independents.
How hard is it to change factions? Is there time involved, like... you can't join another faction
Membership Benefits
Once a member of a faction, a process exists whereby the player can acquire (with varying amounts of effort and time) "abilities" from the faction's knowlege, e.g. learning "languages"
or how to use spells or weapons or mine for certain resources.
Another key benefit of faction membership is protection. Faction members can band together and help protect each other when outside of faction territory.
Inter-faction Relations
The factions may form allegiances.
Should we specify different types of allegiances? Certainly there will be full-blown allegiances where "fully aligned" factions can enter each other's "territory" and utilize allies'
bases/towns/outposts and where killing friendly (belonging to a fully-aligned faction) players decreases the player score/elicits penalties. But maybe there can be lesser alliances such as
trade alliances. Maybe in a trade alliance factions trade resources with each other or allow allies to move around on their land without attacking them.
Faction Merging
Entire factions can be captured by rival factions or absorbed by larger friendly factions. The old faction ceases to exist. Collective knowledge should flow in both directions.
Relative Power of Factions
The strength of a faction can be measured by size of influence (number of members) and by wealth (amount of resources in store).
Resources
Factions gain some resources by gathering/mining them. They can be found throughout the game world. Factions can also steal resources from other factions. The prizes of some
quests are resources.
Key to the City
Each faction has a "treasure chest" of sorts that it wants to protect from enemy discovery. The object or secret knowledge should be significant enough that should an enemy discover
the object and use it or learn the secret then the victim faction should be significantly affected, perhaps by being disbanded entirely, losing its collective knowledge, losing its leader (if
there is such a game construct), or losing its resources.
It has been suggested that to find out the location of the treasure chest, maybe a faction member that wants to know the secret has to solve a puzzle or riddle.
Leadership
Should every faction have a single Faction Leader, initially the creator of the faction and then perhaps elected by vote? Leader knows location of the treasure chest.
Faction points vs loyalty points
Resources – Quests achieve them
Game masters release resources and quests for the players to go after
Player Interactions
Game Masters
Game masters act as Gods:
Influence levels of resources
Quests
Illnesses
Objects:
Environment
The game world is persistent. When the player is logged out, the world progresses around him.
Time
The game world cycles through periods of daylight (where visibility is normal) and nighttime (when players have difficulties seeing).
Time-based events can be based on this cycle. Quests and the like may require players to wait a certain number of days before progressing.
Weather
Weather can affect many things in the game world. Flooding from rain can make rivers impassable. Storms can reduce visibility even during the day.
Static abilities
Dynamic environment
Notion of locality
Resources
Money, energy
When you’re weak, you probably need to join a faction
Interactions:
Real-time
Faction Interactions
You change factions when you get captured
Different languages
Acquire new abilities at runtime (short term abilities)
When you’re captured,
Quests
Additional Constraints
Audience
Tablet no xbox login from anywhere
Application
The game world is persistent.
Realtime
Use standard libraries
Don’t make anything new unless it’s new
Mostly text-based is fine, no emphasis on graphics. Extensible so that graphics can be added later.
Run third party programs to alter data (e.g. find a text document and open it with external software)
Factions
Players
Tags
Quests
Abilities
Named teams
Players may be a member of up to one
faction
Any player can create a faction and invite
others to join their faction
Never explicitly revealed to other players
Can form political agreements
Strength measured by number of members,
territory controlled, or resources collected
Initially controlled by its creator
Leadership can be changed democratically
Membership benefits
Faction’s knowledge
▪ Use spells, weapons, or foreign languages
Ability to use faction resources
Responsibility, including faction management
Protection
Have an inventory
Carry items
More or less depending on size or weight
Resources
Gathered or mined
Awarded for completing quests
Stolen
Map
Players have a mini-map that shows their position
and immediate surroundings
Players can attack each other
Use items and abilities to weaken the others
After incurring enough damage, a player goes
“unconscious”
Players can tag items in the game world
Claimed faction of another player
Location of hidden treasure
Players can view all their tags
Players are notified when they come across
items they’ve tagged
Puzzles and tasks that players can complete
Once completed, help the player
Can award resources or abilities to player or
player’s faction
Quest journal
Players can check their progress completing
quests
Examples
Move
Pick up
Speak Russian
Gaining abilities
Learn from other players
Complete quests
Assigned by admin
Formal tools to help us understand our design
Deployment diagrams
System diagrams
Subsystem diagrams
TODO
THE DEMO
We’ve created an extensible game engine
You’ve seen just a few examples of what it
makes possible
Looking forward
Additional game content
Additional features
Enhanced graphical user interface
Extended use of tagging
Non-player characters
More quests
Player generated
Auto-generated
▪ Faction
▪ Items (NPCs)
▪ Time
▪ Tag
More game worlds
Different game worlds for different genres
▪ Western
▪ Space Opera
▪ Cyberpunk
▪ Fantasy
▪ Medieval
▪ Etc.
Larger and more complex
In-game weather based on current local
weather conditions
Game maps based on real-world maps via
web services such as Google Maps
More player abilities
Enhanced graphics
Currently tags just store text
Share tags with faction members
Copy
Share live
Potential to generate game content and
events based on tags’ contents
If many people tag a particular player as a leader,
that player’s status and abilities may change
Potential to generate tags from game events
If two parties engage in combat, witnesses can
have tags generated for them identifying the
parties as enemies
Tags can be used to represent incomplete
knowledge that is still useful
NPCs would add life to the game world
Characters without users to control them
would use default behavior scripts
They keep interacting with the world when the
gamer is not online
▪ Mining resources
▪ Protecting the faction from enemies
Introduced us to software engineering on a
scale such that no individual has knowledge
of the entire system
Forced to work together and rely on each
other
We’ve learned how to be better
communicators, programmers, and team
members
Contrary to our preconceived notions, we
knew next to nothing when it came to
software development
Nothing beats raw experience!
We all have a much better appreciation for
Time management
Tasking
Communication skills
Good design
Better appreciation!
We still have room to improve
What have I taken away?
How has this course changed how I learn?
How has this course affected me personally?
Ask Away!
Thank You!
You
for listening
The team
members
for all their hard work!
The TA’s
for giving guidance
The CS
department
for providing us with matching laptops
All of our friends
and professors
for understanding when we were busy
Schlumberger
and Microsoft
for feeding us! =)
Dr. Wong &
Dr. Nguyen
for caring and putting up with us
Related Design Classes
Comp 415
Comp 460
Experience real customers, software, and
situations
Class will be contracted by an industrial
customer to design build, and deliver a product
Negotiate to finalize specifications, updates, and
delivery schedules
Encounter real-life issues such as team
management, intellectual property, and
vagueness and specification changes
Develop a state-of-the-art software application
Project-based class
Teams of 2-4 CS and Visual Arts students
Design and build computer games suitable
for Xbox Live Arcade using C# and XNA
Comp 260 or Comp 360 is recommended as a
prerequisite for CS students
Previous experience drawing in Photoshop is
recommended for Visual Arts students
More Than
“Just a Game”