SlideShare a Scribd company logo
1 of 15
Minjoo Cha
0
Minjoo cha | comp 396 | April 19, 2016
More than Meets the Eye: The
Complexity of the Game
Infrastructure
COMP 396 RESEARCH PAPER
UNITY 3D – SPEED OF SOUND GAME IMPLEMENTATION
Minjoo Cha
1
Contents
Abstract ............................................................................................................................................................................2
Introduction....................................................................................................................................................................3
Speed of sound (purpose) .......................................................................................................................................3
Programming/contributions ......................................................................................................................................4
Player.cs (interaction)..............................................................................................................................................4
Contributions .........................................................................................................................................................7
buren.cs (interaction) ..............................................................................................................................................7
Contributions .........................................................................................................................................................7
Level design.................................................................................................................................................................7
PlaneBehaviour.cs.................................................................................................................................................8
StageFormation.cs................................................................................................................................................8
GameWall.cs ..........................................................................................................................................................8
UI - Player implementation (visual) ....................................................................................................................8
Contributions ........................................................................................................................................................10
Next level ................................................................................................................................................................10
Problems/Lesson and result ......................................................................................................................................10
purpose – point of the game .................................................................................................................................10
interaction – key to success....................................................................................................................................11
level design –how to keep players addicted .....................................................................................................12
visual/Audio – making the game “pleasing to the eyes and ears”..............................................................12
Conclusion......................................................................................................................................................................13
References.......................................................................................................................................................................14
Minjoo Cha
2
Abstract
The gamingindustryisa verybig and competitive fieldintechnologyandentertainment.
Amongstthe copiousamountsof gamesdistributed,onlyafew,namelythe top20 (1 - pg. 11)
are noticedanddeemed “popular”.Eveninthe popularpool of games,there are specificgenres
whichare more preferredandbettersoldforthe consumersorgamers. Accordingto the
statisticsforthe USA populationpublishedinthe year2015, the ESA (Entertainment Software
Association) concludedthat the best-sellingconsolevideogame genresare Action: 28.2%,
Shooter:21.7%, and Sports: 13.3%, takingup more than half of total game revenue.(1– pg. 10)
The top genresforcomputergameswere Strategy: 37.7%, Casual:24.8, andRole-Playing:20.2%
takingup more than 70% of the computergame revenue.Mostunpopularorlesssoldgame
genresare Arcade: 0.1% forboth areas(computerandconsole).
Althoughitis good informationforpeople new togaming,itcomestono surprise for
currentgamers whythese are the mostpopular.CounterStrike (shooter),League of Legends
(strategy),StartCraft(strategy),Assassin’sCreed (Action) all fall underthese categories.We play
thembecause we categorize these gamesas“fun”,“addictive”,anditstarts to getinthe wayof
our jobs/school toapointwhere we purposelyrestrictthe amountof time we spendinthese
games.Ironicallyspeaking,thisiswhatasuccessful game strivesfor.Butwhatfeaturesof these
gamesmake themso popular?Whatmakesa game “fun”?“Addicting”? Tothe pointof view of
a developer,thisquestionmightseemsimple toanswer,butatthe same time be hard, hence
the gamesthat couldn’tsurvive the competition beingsoldless.Withateamof 8 I decidedto
researchthese aspectsof whatmakesan enticinggame throughcompetingforthe Ubisoft
Game Lab Competition.
Eventuallythroughthe wholeprocessof ateam-basedgame development,there were
several importantfeaturesthataffectedthe outcome andquality of the game ensuringthe
enticement.Specifically, purpose, cooperation (furtherexplainedlaterinthe paper),level
design,visual quality/queues are the determiningqualitiesinwhatmakesagame popular.The
more well plannedthe previous fewtraitswere the more of the “fun”and “addicting”factors
were showninthe game.
There ismore topopulargamesthan “goodideas”and throughoutthispaperI will be
emphasizingthe factthat there is more than meetsthe eye tomakinga “fun”and “addictive”
game.
Minjoo Cha
3
Introduction
Withthe helpof 7 othermembers,we were able toenroll forthe UbisoftGame Lab
Competition. We had8 weekstodevelopagame withthe restrictionthatitwouldpertaintothe
word“ocean”. There were otherrestrictionsandcriteriathatwere mandatorytomeet,butas
the purpose of thispaper only focusesonthe developmentof the game,itdoesnotaffectthe
factors to a “fun”game inquestion.
The team consistedof twoartists, one narrative writer,one level designer,andfour
programmers,of whichI wasone of the fourprogrammersresponsible forthe backbone of the
game development. The game we made wascalled“Speedof Sound”.
SPEED OF SOUND (PURPOSE)
The designof thisgame both itsflaws
and attributeshave made tobe a greatasset
inhelpingme determine whatanideal “fun”
game wouldbe bothas a playerandas a
developer. Itisa two-playergame inwhich
each playerhasthe followingcontrolsready
for them:catch, throw and the abilityto
move around. The playersare essentially
birdstryingto reach a certainvelocity while
dodgingobstacles tofinishthe game. The
max velocitytobe reachedfor the game to
finishis4500 and the game starts off with
900. Every level isbasedoff of velocityfor
example whenvelocity hits3000 the game reacheslevel 2. Inorderfor an increase invelocity,
eitherplayerhastobe inholdof a burden.Inthe game thisis a ball with randomlychanging
colors:blue,red,green. The burdenisself-explanatoryinthateverytime the burdenis inheld
by a playerthatplayer’sstaminadecreasesataconstant rate.Each playerhasa maximum
staminaof 50, and thisiswhere the playersmustthrow and catch the burden witheachother
so that theirstaminadecreasesata minimal rate whilekeepingthe velocityincreasingto
complete the level. Once there comesapoint
where eitherplayerrunsoutof stamina,the
currentvelocityishalved. Ontopof that they
needtofocuson dodgingthe obstacles. The
colorcodedburdenwhenheldbythe player
withmatchingcolors,can activate a speed-up
protocol where bothplayersare boostedonly
if theypass througha wall withthe same
color.For example:if the burdenisgreen,
and the greenplayerholdsitandpasses
Figure 1 Burden (blue) and players (green and red)
Figure 2 Red player in hold of red burden, going
through speed up protocol
Minjoo Cha
4
throughthe green wall,the speedupisactivated(same appliesfor red,whereasbluehasno
effect).
Anotherimportantfeature tobe mentioned aboutthisgame isthe factthat there isno
“game over”.We wantedtomake itso that the game onlyrewardsthe playersfor
accomplishingacertainmilestone:reachingmax velocity.Withthissense of onlyrewardno
punishmentwe hadhopedtointrigue the playermore sothat he/she wouldnothave toworry
aboutthe failingaspectoftenused inconventional gamesthat players generallystress about.
Note howeverthatthisrewardisn’tsoeasyto obtain;there mustbe a complete
synchronizationwitheachof the playerssothatstaminadoesnotdecrease,the burdenis
alwaysheldbya player,and that obstaclesmustbe dodgedandonlythrough the successof
these three requirementscanthe playerreceive the reward.
Withthisgame design,I wasable to experimentwithseveralfactorsthat were crucial in
definingagame’spopularity. Whythe purpose of thisgame makesitso important,how
importantinteractingwithinthe game andwitheachplayerincreasesthe amountof focus
towardsthe game,howmuch and how fast shouldeachlevel increase indifficultyandthe
amountof varietyineachlevel soplayersare introducedtonew settings,and how important
visualsqueues/graphicsare in keepingthe players’attention.
Programming/contributions
While eachmemberwasresponsible forone aspectof the implementationof the game,
we helpedeachothertoreachingthe final stage indevelopmentof the game. The whole design
was createdandimplementedthroughcode/scripts inC#.Withthe scriptswe designatedthe
purpose,the UI interactions,the cooperationbetweentwoplayersandthe rewardsystemwith
the burden. Of these scripsthe mostsignificantonesworthmentioningare Player.csresponsible
for the twoplayersinthe game,Burden.csresponsible forthe burdeninteractionsof the game,
PlaneBehaviour.cs,StageFormation.csandGameWall.cs responsible forthe levelspawningand
designof the game and lastbut not least,the UI/audiointeractions coded through
PauseManager.cs,MainMenu.csand Player.cs.Inadditiontothese scriptsinclude severalothers
but are not as relevantasthe oneslistedabove. The algorithmsandimplementationswill be
highlightedinthe followingheadingscorrespondingtoeachscriptaforementioned.
PLAYER.CS (INTERACTION)
Withmore focustowardsfunctionalitythanoptimization,thisscriptcontains800 lines
of code,mostmightbe redundantandcan be shortened,butwe chose tobe safe and keepthe
codebase asis to inhibitpossible compile/runtimeerrors. Of course,thisstyle of codingwillbe
of hindrance asthe game getsmore complex,andasthe interactionsbetweenscripsare
increased. Anotheraspecttobe lookeduponwhencreatinga“fun” game. To start the player
scripthas several variablesto determinethe followingattributes: (i) Tellitself apartfromthe
otherplayer,(ii) Totell whetherithasthe burdenor not,whetheritiswithinreachof the
Minjoo Cha
5
burdento be able to catch and lastlyif the otherplayerhasthe burden,(iii) Someconstant
values determiningthe velocityof thisplayer,(iv) The staminathatdecreaseswhenburdenis
held, (v) The Maximumdistance onscreenit’sable totravel soit doesn’tstrayawayfromthe
otherplayerandso that the camera isable to see bothplayers.
To effectivelydescribeeachof the functionsimplementedinthisgame script Iwill
describe whatfunctionsare calledduringgame play. The Start() methodinitializesall the
necessaryvariableslike itsvelocity,max screenreach,staminaandseveral booleansdescribing
itsstate withthe burden:isBearer,isEscortetc. Italsosetsthe key-bindingsforthe player. One
algorithmtohighlighthere isatthe endof thismethod;the co-routine algorithmisusedoftenin
gameswhere we needsomethingtohappeninconstanttime,like staminadecreaseevery
secondif thisplayerisholdingthe burden.We use this InvokeRepeating() method toimplement
decreasingstaminapersecond. Now thateverything’sinitializedduringthe startof the game,
we nowmove forwardwiththe interactionsbetweenthe following:(i) playerinteractions,
(ii) burden handling,(iii)collisionhandling,(iv) cameraconstraints,and(v) staminaall
implementedinthisPlayer.csscript.
The playerinteractionsare relatively
simple inthatitonlyinitiatesonce eitherof the
playershave the burdeninhand. The player
withthe burdenwouldessentially be slower
due to the weight,andif thisplayeriswithin
range of the otherburden-free player’s
“slipstream”itisable tokeepupwiththe
currentspeedwiththe helpof the burden-free
player.Thisisimplementedinthe
activateSlipStream() anddeactivateSlipStream() activationrequiresthateitherhasthe burden
and deactivationhappenswhenneitherare inholdof the burden. The colliderattribute isused
to determine the range andwhetherthe burdened-playeriswithinreach. we have abooleanto
determine whetherthisplayerisinthe slipstreamtohandle the necessaryvelocitychanges.
(figure 4:whenplayerisinand out of slipstream(skyblue cone)).
Figure 4 in (right) and out (left) of slipstream
Figure 3 no one holds burden, no slipstream
Minjoo Cha
6
The burdenhandlinginthe playerscriptisrelativelysimple,itcallsthe methodsof the
burdenscriptbasedon the player’sactionandstate. The state of the playerisdeterminedby
the booleansisNeither,isBearer,etc. (Player.cs –line 61-65),just like asthe name implies,the
burdencan be caught whenplayerisEscort,itcan be thrownwhenthe playerisBearer,the
isNeitheristosignifythatbothplayersare notin holdof the burden. There are methodswhich
run basedoff of these initializedstates. catchBurden() changesthe burden’spositiontothe
playerthatcaught, changesthe statesaccordingly,andcallsthe Burden.cstoupdate the burden
object,alsoslowingdownthe player. The throwBurden() releasesthe burdenfromthe holder,
updatesstatesandcallsBurden.csto throw and update the burden’snew locationalso
activatingitsslipstream.
Note the otherpurpose of thisgame is to dodge obstacles,andwe needcollision
handlingforthisimplementationtowork. Since we designedthisgame sothatthere isn’ta
“game over” we decidedthere mustbe apunishmentforthe player whenitcollideswith
obstaclesnotthreateningenoughtoendthe game. For thiswe usedthe collisionhandlerbuilt
inUnity.We add a special flickeringeffecttosignifythe collision(Player.cslines677 – 737) and
alsodecrease the stamina. Whenwe have a collisionwithadifferentgame objectnotablythe
pushartefact,thenwe increase the speedof the twoplayersincreasingtheirvelocity(the AI
feature of thisgame).Inorderfor the pushartefact to work,the playermustas the same color
as the burdenitsholding (Player.cslines739 – 776). The collisionhandlingalsotakescare of the
slipstreaminthatwhenthe burdenedplayerisincollisionwiththe slipstreamitentersit.
(Player.cslines778 – 804)
The camera constraintsbetweenthe twoplayersisimportantingameswhere we have
twoplayersnotin splitscreens. The problemariseswhenthe payersmove toofaraparteach
othermakingbothhard to see. To solve thisproblemwe addedcameraconstraints torefrain
frombeingtoofar apart from eachother. We do thisbyclampingthe playerstothe camera
(Player.cslines304 -325), thisis explainedinlessdetail because althoughanimportantaspectto
the game I didnotget to contribute tothisfeature. However,itwasimportantthatI understand
thisto geta betterpicture of the playerinteractions.
The last butcertainlynotthe leastimplementationof the Player.csscriptisthe stamina.
Usingthe co-routine,simplydecreasingsomethingperconstanttime,the staminaiswhatgives
the sense of penaltyandlossto the game.The playerwiththe burdenhastheirstamina
decreasingoveraperiodof time andso must tossto the otherplayerto stopitsstaminafrom
reachingzero. Whenplayedright,bothplayerswillbe able toreachthe final level withstamina
left,howeverwhenplayedwithoutcooperationthe playerswouldbothhave nostaminaand
will notbe able to reachthe nextstage because atstamina= 0 velocityishalvedthusunable to
reach the nextstage (velocityat3000). The state inwhicha playerisalsodependsonhow much
staminatheyhave,the booleanisFatiguedsignifieswhetherthisplayerisoutof stamina.
UpdateStaminaisinvokedevery secondbythe “InvokeRepeating”function(Player.cs –line 221)
inwhichcallsthe UpdateStamina() methodupdatingthe staminabasedoff of the necessary
Minjoo Cha
7
state of the playersuchas checkingif isholdingthe burdenorif it’sfatiguedrenderingitunable
to holdthe burden.
Contributions
The specificimplementationsthatIhave done to thisPlayerscriptisthe staminaco-
routine, playerinteractions,andthe burdenhandling.
BUREN.CS (INTERACTION)
While the playerscript dealswithmanipulatingthe burden’slocation andcallingthe
functioninburden, the Burden.csscriptdealswiththe actual handlingof interactionsbetween
the playeranditself. Tobe able to have the parabolathrowingeffect,gravityisimplemented
inside burdenthroughthe gravity() method(Burden.cs –line 91),alsocheckingtodisable
gravitywhenheldbya playerinthismethod. Ittakesas inputthe twoplayerobjects,the wall it
mustcollide with(pushartefact),anditspre-setpositionsfordifferentstates. Itisresponsible
for changingitsstate basedon the actioncalledbythe playerthroughthese methods:(i)
inPosession(Burden.cs –line 117),(ii) notInPosession(Burden.cs –line 134),(iii) restorePosition
(Burden.cs – line 142). While the firsttwoare self-explanatory,the restorePositioniscalledonce
neitherplayerisinholdof the burden.Thiswill happenfortwocases:1.When bothplayerrun
out of staminamakingbothunable tocatch the burdenand2. Whena playerthrowsbutthe
othermissedcatchingthe burden. Inthese cases,the burdenwouldsimplyupdate the players’
statesand move itself toitsinitial spawnlocation. Thisscriptisalsoresponsiblefor
implementingthe throwingactionof itself throughthe thrown() methods(Burden.cs –line
150).
Contributions
I was responsible forimplementingthe state changesforthe burdenspecificallythe
headings(i – iii).
LEVEL DESIGN
While Ididn’tcontribute tothisscriptthiswas ourlevel designimplementationandisa
veryimportantattribute tothisgame designand game playas well. Thisscriptor aspectinthe
game was the hardestto balance.Notablythe difficultyperlevel,the increase of difficultyas
levelsincreasedand the lengthof time neededtocomplete eachlevel weresome of the
problemswe hadwhen implementingthisscript. Highlightingone of the fourattributesthat
make a game enticing, leveldesigniscreatedthrough interactionsbetweenthree scripts.
The three scriptsusedto implementlevel designare:StageFormation.cs,
PlaneBehaviour.csandGameWall.cs.The basiclogicbehindhavingthree separatescriptsto
make the levelsisdue tothe fact that: 1. Stagesmust be movingtogive the illusionthatthe
playersare moving,2.Stagesthemselvesmustbe initialized(premadeprefabs)3.A scripthat
randomizesstage spawningandlevel designbasedoff of maxVelocitymustbe made.
Respectivelythe three scriptsare PlaneBehaviour.cs,StageFormation.csandGameWall.cs.
Minjoo Cha
8
PlaneBehaviour.cs
Thisclass movesplanesforwardstogive the impressionof motioninthe game state.
Whena plane movesoutof viewingbehindthe playercamera,itwill be snappedbackintoa
positioninfrontof the camera to be loopedagain.MaxVelocityexistsinthisclass.MaxVelocity
increasesincrementallythroughoutgameplayanditnevergoesdown,butitcan stay constantif
neitherplayerisholdingthe burden. Thisscriptalsocontainsthe velocityUIelement
StageFormation.cs
Thisclass containsthe stage formationinformationmeaningitholdsall of the pre-made
stages.
GameWall.cs
Thisscript controlsmostof the stage movementandspawning.Itcontainsknowledge of
whichstageFormationwill nextbe released,appliesartefactstostage formations,whichsimply
are the coloredwallsincreasingplayer’sspeed.Italsohandlesthe evolutionaryprogression
curve in difficulty.
Withthe interactionsbetweenthesethree scripts,we are able to keeprecordof and
testthe level designof the game state andbalance the enticingfactor thatapplies. The
questionsthatshouldbe askedwhile modifyingthesescriptsis,“Dowe have the rightamount
of time spentoneachlevel sothe playersdon’tgettired?”“How repetitive iseachlevel
progression?”“Isthere avarietyto these levelsthatwe designed?”byadheringtothese
questions,the smallestchangesdone toeachlevel canmake or possiblybreakthe
concentrationfactorof the playertowardsthe game.
UI - PLAYER IMPLEMENTATION (VISUAL)
While the othergame state implementationswerebasedoff of scriptsof theirown this
implementationdoesn’t have ascriptof itsown,rather,and usesthe valuesof stamina,
MaxVelocityandplayerstate tovisualizea HUD (head-updisplay) sothe playershave asense of
how well they’re doingandhow far
they’ve come. Basedoff of buildstates
of the game,there isalsoa start screen
and a pause screen to alsogive the
playersthe sense thatthey’re playing
an actual game as opposedtoa
prototype withoutthe abilitytoeither
pause or start the game. However,
start menuand pause menusare both
trivial inourimplementationof the
game and because of this,ourgame
sadlylosesitsenticingfactor.Figure 5 Stamina top corners, velocity bottom right corner
Minjoo Cha
9
How the HUD displayisimplementedisthroughthe panel andsliderattributes
embeddedintoUnity. Iusedthistophysicallydesignthe layoutof where the factorsshouldbe
and these slidersretrieve the necessaryvariableswhetheritbe the staminaof each playeror
the velocityof eachplayerfromtheir respectivescripts. The valuesare thenupdatedeverytime
the valuesintheirscriptsare updated. The staminaisupdatedinthe Player.csscriptspecifically
on line 542, 580, 589, 594, and itsimplyjustchangesitsvalue towhateverthe currentstamina
of thatplayeris. The Velocitydisplaythattellshow farthe playersare inthe level isalso
implementedthe same way. InPlaneBehaviour.csline87– 88 the velocityslidervalueis
changedbasedoff of current velocityof the level.
The pause menu howeveris
done a little differently. Itimplementsits
ownscript. It usesthe HUD features
givenbyUnity,but itdisablesitself until
a certainbuttonis pressed.Inthiscase it
wouldbe the “p” buttonfor pause. This
buttonpressinvokesthe pauseGame ()
method(pauseManager.cs –line 42) and
it changesitsstate basedoff of whether
it wasalreadypause or not. It then
freezesthe game time soitstopall
animationfromrunningif itwasn’t
pausedbefore anddoesthe opposite if
alreadypaused.
The last feature of UI implementedis
the mainmenu,the screenthat shows
before the game starts. Thisis done
withouta scriptand solely withUnity
assets. Thiswasmore designthan
codingas were othervisual cues.
Throughoutthe processof makinga
game,I have come to realize thatthe UI
and visual elementsare equally
importantto the codingaspectof game
development.This alsohighlightsthe
fact that developingagame although
requiresprogrammingskills,alsoneed
an equallyexperiencedartisticbase toit to make the complete populargame. Clearly,ourgame
lackedthe latterand thuslostinterestof ourgamers. ‘
Figure 6 Pause Menu
Figure 2 Main Menu screen
Minjoo Cha
10
Contributions
I was responsible forthe UIdesignspecificallyeverythingmentionedabove.
Next level
As ourteam came closerto finishingupourgame developmentandintothe final build,
whatwe thoughtwasa job well done wasprovedotherwiseaswe builtandplayedthe game. By
constantlyreplayingthe game,alsoknownasplay-testing,we were abletodelve deeper into
the understandingof playerinteractions,level design andUIdesign;muchmore detailed than
the linesof code we wrote and intothe perspective of the game players.
Problems/Lesson and result
The questionof whatmakesa game so popularwas answeredwith the acronymPILV
(Purpose InteractionLevel designVisuals) withall these fourattributeswellbalancedand met,
we can make a successful andpopulargame,the followingreasoningexplainswhyandhow that
mightbe the case withour game. Throughconstantplay-testingandobservingthe players’
focustowardsthe game duringthe Ubisoftevent,Iwasable to observe the problemsthatwe
had foreach attribute andalsothe necessarysolutionsthatwouldimprove the game
experience.While manydeductionsmayprove tobe obvious afterthe play-testbefore play-
testing,we weren’tabletorealize suchfactorsthatcouldimprove ourgame implementation.
PURPOSE – POINT OF THE GAME
The purpose of the game defineswhat ideathe game isbeingrunby. Thismeans the
level of creativity of this game toattract playersbefore theyevengettoplay.If the ideadoesn’t
appeal thennoone would be interested, muchlike how the coverof a magazine mustbe
interestingforreaderstobuy. Out approachto this was to developagame withnoloss,it’s
eitheryougetrewardedorget noreward,no death,nogame overandour goal here was
ultimatelynostress. We builtourgame aroundthisidea andcreateda game where the game
wouldneverend until youreachthe end.Toreach the end,the playersmustbe well
coordinatedwitheachother tokeepuptheirstamina. Normallywhenbothplayers’stamina
goesto 0 the game wouldessentiallybe overorwheneitherplayerdropsthe burden.This
wouldbe the ideal game,but we give the playersachance to pick the burdenbackup aftertheir
staminareplenishes.Noloss,butnoprogresswhenthe burdenisnotinpossession. Butthe
mostimportantpurpose of thisgame was to give the playersasense of accomplishment atthe
endof the game.
Our purpose wasclearand unique inthatwe broke the conventional game over/death
routine thatall gamesconventionallyfollow, howeverwe were toopreoccupiedintryingtobe
unconventional thatwe forgottoconsiderthe case where the playermightnotbe able to
complete the game. If they aren’table toreach the endof the game, the whole purpose of
givingthe sense of greataccomplishment losesitsmeaning. Initiallyaswe play-testedduringthe
Minjoo Cha
11
Ubisoftevent,we were oblivioustothisbecause we were able tocomplete the game aftersome
practice, howeverpeople firstplayingthisgame especiallythe oneswhocouldn’tcomplete the
game leftto playanothergame. Thiswasmainlybecause velocity (sincethisiswhatlevelsare
basedoff of) issomethingthatneedstobe maintainedasopposedtosomethingthatcumulates
withouta possibilityof reduction.Thiswill withoutadoubtbe stuckin an infiniteloopif players
are unable tokeeptheirstaminafromreachingzero,anditgeteveneasiertodo soafter the
firsttime ithappens.
Some of the possible changesthatcouldhave beenmade withthe currentgame still
keepingthe mainunconventional values wastolessenthe punishmentof whenstaminareaches
zero. The way inwhich the punishmentwith0staminawasimplemented (halvingvelocity) was
too extreme andmade noroomfor mistakeswhentryingtocomplete orreachthe nextlevel.
Insteadof directlyhalvingthe velocity,the game couldbe made sothat for everytime stamina
hitszerofor eitherplayer,velocitydecreasesconstantfactorusingco-routines andcumulates
againas burdenisheldand staminadoesn’tequal zero. Thatway,mistakesalthoughstill
punished,ispunishedwithadegree of recuperation. Of course,the mostideal change thatwe
couldmake to thisgame is to go aboutthe conventional waywhere game finisheswhenstamina
hits0. The conventional high-scoretablescanbe implementedand the purpose of the game is
to beatthe highscore and showoff to theirfriends.Assweetasitsounds,ourgoal inthisgame
developmentcompetitionwastomake anunconventional game andmake itwork.
Thishighlightsthe factthatsettingandbalancing outa well-plannedoutpurpose forthe
game is reallyimportantwhenitcomestogame development.
INTERACTION – KEY TO SUCCESS
Like reality,everythingisbetterwhenyoudosomethingwithothersasopposedtoby
yourself. Thisappliestogamesaswell whetheritbe withotherplayers,othernon-player
characters,or tosome extentwithobjects/obstacles. The lackof such will make itharderforany
game to be popular. We tookthisintoaccount and made itmultiplayer, andalsoincludedthe
attribute thatthe two playersmustcooperate to successfully beatthe game. Althoughthe
approach itself wasnoteworthy, andtosome extentworkedbeautifully,there wasaproblem
where a lackof communicationmade the game harderforthe twoplayers,meaningthe success
of the game directlycorrelatedtohow muchthe playerscommunicatedwitheachother. As
intentionalthiswas,if the twoplayerwere eithernotfriendsorif bothprefernotto
communicate,the game usuallyendedup endlesslyloopingbecauseof the depletedstamina
and halvingvelocity thus,givingabad impressiontowardsthose players.
For thisaspectof our game, we saw bothsidesof the game output,the one where
playerscommunicatedandeventuallyfinishedthe game andthe otherside where the players
lackedcommunicationthus lackingcooperationendlesslystuckinone levelof the game. We
had an experimentrunninginthe game itself unintentionally,andIbelievethatthisshowsthat
thisgame is well balancedintermsof integratingthe interactionfactor. Thisgame isheavily
Minjoo Cha
12
basedoff of how muchyou communicate andinteracttoleadto betterresults. The lessof it,the
lowerthe chancesof reachingthe final level.
LEVEL DESIGN –HOW TO KEEP PLAYERS ADDICTED
Anotherfactorthat isheavilybased onplay-testing. Level designingameswithlevels
meanthe designandoperationof eachlevel. Withgamesthatdonot have level-format
structure,itmeansgradual evolution of the maincharacteror the sceneryor eventhe player
him/herself.The mostimportantfactorinlevel designisthe varietyandcreativityof eachlevel.
Let’stake the example of MarioKartfor example,we cansee eachlevel asbeingthe racetrack
and whatwe also knowiseveryracetrackis different,hasitsownobstaclesanditsown
shortcutsand Eastereggs. It wouldbe safe to conclude thatthe basisof whichlevel design
succeedsisinitsvariety, andcreativity (the actof givingeachlevel itsowncolor),something
playerscanlookforwardto see unexpectedlyateachlevel theypass. Unfortunately,ourteam
realizeditonlyafterdevelopingthe game.Ourleveldesignwas implementedthrough the three
scriptsmentionedabove (pg.6),we made variousdesignsof the level toaccountforthe variety
factor of our level design;eachlevelhad5 different layoutsof the obstacles andsome contained
the push artefactsfor the speedupprotocol.We were successful in includingvarietyof levels,
but failedtoaddcreativitytoeachlevel. Everylevel therewasonlythe basisof passingthrough
the obstacles. Theylookeddifferent, andwe didaddsome pushartefactswithspeedup
protocolsto enlightenthe levelstosome extent, butitdidn’thave enoughimpactforplayersto
be preoccupiedtothe game.
Some possible solutionstothisproblemistoaddcreativity.Buthow wouldwe add
creativitysothatthe main purpose of dodgingobstaclesisnotovershadowed?Soforexample
addingthe abilitytoshootobstaclesdown will definitelyovershadow dodging:whydodge when
youcan shootthemdown? Soto keepthe dodgingasa prioritybutstill addcreativitytoeach
level,we can addanotherburdenor addmore playerssoitgetsharder withcooperationbut
still withthe basisthatthe obstaclesmustbe dodged.We couldalsomake the obstaclesmove
for some levels.These addcolortoeachlevel,butdoesn’tcompletelyredraw whatourinitial
purpose of the game was.
Level designwasasimple problemtosolve theoreticallywith ideas,butitwasmore
difficulttoimplement.The importance inthe amountof varietyandcreativity implementedin
level designingdetermineshowaddicted playersare tothe game albeitthe same oldroutine of
tryingto dodge obstacles.
VISUAL/AUDIO – MAKING THE GAME “PLEASING TO THE EYES AND EARS”
The last attribute thatsignifiesthe funandaddictivenessof gamesisthe visual aspect
renderedinagame. Unlessthe game was solelybasedoff of sound,playersneed visualsto
make thisvirtual realityfeellikereality. Simplyput,the betterthe visuals,the betterthe game
quality andexperience of game play. Due tosome of our teammatesleavingespeciallyour
artistsdue to personal andeducational reasons, ourteamlackedthe talentevenbeforewe tried
to make thisattribute successful. Whatwaswithinourreachof talenthoweverwasthe HUD,
Minjoo Cha
13
and audio.The staminaHUD were lockedintotopcornersof the screen,andthisprovedto be a
problembecause the staminaandthe playergame objectwere toofarapart. Thismade the
playersunable toconstantlychecktheirstaminabars hinderingthem inkeepingtrackof their
stamina.Audiowasaddedtoqueue certainactionsinthe game such as low stamina,wall
collision,throwingandcatchingthe burdentoincrease interactionwiththe game.
One solutionforthe HUD clarificationwastoput eachstaminabar whereverthe player
game objectswere to give lessstraintoconstantlycheckthe endof the screen. Anotherthing
we could’ve includedintoourgame toincrease userexperience wouldbe animationsorbetter
designsof the burden,andeachplayer. We didto our extenttryto representthe twobirdsbut
lackedthe knowledgeinartto implementitsuccessfully. Addinganimationstothatwouldbe
beyondourcapabilities.
What I learnedaboutthe visualsandaudioingames isthat it’sequallyimportanttothe
gameplayitself. Skyrim, Assassin’screed,Call of duty,andevenFIFA everyyearhave improved
visual qualitiesand thisinturn make everyyearthat these gamesare releasedamore
anticipatedone because of the visual previouslyshownonadvertisements. Realistically,players
wouldwantto playa more recentversionof FIFA thanthe olderversionsmainlybecauseof
theirgraphics.The soccer game itself andruleshave notchangedsince then.Asimportantthis
attribute isingame development,itisalsoadifferentpractice and Ihave come to realize to
become a game developerone musthave experience inbothgraphicdesignandprogramming
to fulfillall fourattributesinwhatmake agame fun andaddicting.
Conclusion
To players,videogamesare justamere form of entertainment,anescape fromreality
and somethingtokill time. However,throughdevelopingagame for the Ubisoftcompetition, I
have come to realize it ismore than meetsthe eye. Itrequirescopiousamountsof planning
before the game evenstartsthe developmentstage,correctlydefining andrefiningthe purpose
to attract players.Nextthe developmentstage,where the teamof developersmust includein
theirgame a way to interactwithbothplayersandgame objects givingthemasense of reality.
Define everylevel in theirgame withcreativityandvariety,apersonalitythateachlevel can
resonate butkeepingthemrelatedtoeachother. Lastly,topackage all these features intothe
complete game,the designimplementationsincorporatingthe five sensesasmuchas theycan
fitto a computer/television screen. Thatisnotall however, there mustbe abalance of these
attributes (Purpose InteractionLevel designVisuals) sothateachdoesn’tstrayawayfrom the
other.Thisis whatmakesa game fun to itscore,the balance and redefinitionof PILV.Withthe
helpof the Ubisoftgame lab competition andcountlessplay-testing,Irealized whatmakesa
game funand addictive isitsclearpurpose,flawlesslevel design,realisticinteractions,and
visualsthatcome to life onscreen:a formof art withoutpaperandpencil.
Minjoo Cha
14
References
(1) ESA (EntertainmentSoftwareAssociation).(n.d.). EssentialFactsaboutthecomputer
and video gameindustry.RetrievedfromESA:http://www.theesa.com/wp-
content/uploads/2015/04/ESA-Essential-Facts-2015.pdf

More Related Content

Similar to ResearchProject

On the Explicit and Implicit Effects of In-Game Advertising
On the Explicit and Implicit Effects of In-Game AdvertisingOn the Explicit and Implicit Effects of In-Game Advertising
On the Explicit and Implicit Effects of In-Game AdvertisingSimon Usiskin
 
TIṬAL – Asynchronous multiplayer shooter with procedurally generated maps
TIṬAL – Asynchronous multiplayer shooter with procedurally generated mapsTIṬAL – Asynchronous multiplayer shooter with procedurally generated maps
TIṬAL – Asynchronous multiplayer shooter with procedurally generated mapsAnand Bhojan
 
FMP Research
FMP ResearchFMP Research
FMP ResearchJayWood13
 
Super thornypigeon stir
Super thornypigeon stirSuper thornypigeon stir
Super thornypigeon stirzaxxor1
 
FMP Research
FMP ResearchFMP Research
FMP ResearchJayWood13
 
MSc Software Development Go Program Dissertation
MSc Software Development Go Program DissertationMSc Software Development Go Program Dissertation
MSc Software Development Go Program DissertationTom Reed
 
Research Proposal
Research ProposalResearch Proposal
Research ProposalYashIyengar
 
MIND GAME ZONE - Abhijeet
MIND GAME ZONE - AbhijeetMIND GAME ZONE - Abhijeet
MIND GAME ZONE - AbhijeetAbhijeet Kalsi
 
The lost testreport_1115
The lost testreport_1115The lost testreport_1115
The lost testreport_1115Joshua Inzer
 
Deus Ostium Game Design Document
Deus Ostium Game Design DocumentDeus Ostium Game Design Document
Deus Ostium Game Design DocumentWilliam Cunico
 
The complete srs documentation of our developed game.
The complete srs documentation of our developed game. The complete srs documentation of our developed game.
The complete srs documentation of our developed game. Isfand yar Khan
 
Playtika Bets on Big Data Analytics to Deliver Captivating Social Gaming Expe...
Playtika Bets on Big Data Analytics to Deliver Captivating Social Gaming Expe...Playtika Bets on Big Data Analytics to Deliver Captivating Social Gaming Expe...
Playtika Bets on Big Data Analytics to Deliver Captivating Social Gaming Expe...Dana Gardner
 
Final Joined
Final JoinedFinal Joined
Final JoinedAung Linn
 
Perfecting A Video Game with Game Metrics
Perfecting A Video Game with Game MetricsPerfecting A Video Game with Game Metrics
Perfecting A Video Game with Game MetricsTELKOMNIKA JOURNAL
 
ARENA - Dynamic Run-time Map Generation for Multiplayer Shooters [Full Text]
ARENA - Dynamic Run-time  Map Generation for Multiplayer Shooters [Full Text]ARENA - Dynamic Run-time  Map Generation for Multiplayer Shooters [Full Text]
ARENA - Dynamic Run-time Map Generation for Multiplayer Shooters [Full Text]Anand Bhojan
 
Video game proposal
Video game proposalVideo game proposal
Video game proposalkieran Beal
 
Turn Up The Fun (Gamifying Education)
Turn Up The Fun (Gamifying Education)Turn Up The Fun (Gamifying Education)
Turn Up The Fun (Gamifying Education)All Things Open
 

Similar to ResearchProject (20)

On the Explicit and Implicit Effects of In-Game Advertising
On the Explicit and Implicit Effects of In-Game AdvertisingOn the Explicit and Implicit Effects of In-Game Advertising
On the Explicit and Implicit Effects of In-Game Advertising
 
TIṬAL – Asynchronous multiplayer shooter with procedurally generated maps
TIṬAL – Asynchronous multiplayer shooter with procedurally generated mapsTIṬAL – Asynchronous multiplayer shooter with procedurally generated maps
TIṬAL – Asynchronous multiplayer shooter with procedurally generated maps
 
Glow_rapport
Glow_rapportGlow_rapport
Glow_rapport
 
FMP Research
FMP ResearchFMP Research
FMP Research
 
Super thornypigeon stir
Super thornypigeon stirSuper thornypigeon stir
Super thornypigeon stir
 
FMP Research
FMP ResearchFMP Research
FMP Research
 
Game analysis
Game analysisGame analysis
Game analysis
 
MSc Software Development Go Program Dissertation
MSc Software Development Go Program DissertationMSc Software Development Go Program Dissertation
MSc Software Development Go Program Dissertation
 
Research Proposal
Research ProposalResearch Proposal
Research Proposal
 
MIND GAME ZONE - Abhijeet
MIND GAME ZONE - AbhijeetMIND GAME ZONE - Abhijeet
MIND GAME ZONE - Abhijeet
 
The lost testreport_1115
The lost testreport_1115The lost testreport_1115
The lost testreport_1115
 
Deus Ostium Game Design Document
Deus Ostium Game Design DocumentDeus Ostium Game Design Document
Deus Ostium Game Design Document
 
The complete srs documentation of our developed game.
The complete srs documentation of our developed game. The complete srs documentation of our developed game.
The complete srs documentation of our developed game.
 
Playtika Bets on Big Data Analytics to Deliver Captivating Social Gaming Expe...
Playtika Bets on Big Data Analytics to Deliver Captivating Social Gaming Expe...Playtika Bets on Big Data Analytics to Deliver Captivating Social Gaming Expe...
Playtika Bets on Big Data Analytics to Deliver Captivating Social Gaming Expe...
 
Final Joined
Final JoinedFinal Joined
Final Joined
 
Perfecting A Video Game with Game Metrics
Perfecting A Video Game with Game MetricsPerfecting A Video Game with Game Metrics
Perfecting A Video Game with Game Metrics
 
ARENA - Dynamic Run-time Map Generation for Multiplayer Shooters [Full Text]
ARENA - Dynamic Run-time  Map Generation for Multiplayer Shooters [Full Text]ARENA - Dynamic Run-time  Map Generation for Multiplayer Shooters [Full Text]
ARENA - Dynamic Run-time Map Generation for Multiplayer Shooters [Full Text]
 
Final Report
Final ReportFinal Report
Final Report
 
Video game proposal
Video game proposalVideo game proposal
Video game proposal
 
Turn Up The Fun (Gamifying Education)
Turn Up The Fun (Gamifying Education)Turn Up The Fun (Gamifying Education)
Turn Up The Fun (Gamifying Education)
 

ResearchProject

  • 1. Minjoo Cha 0 Minjoo cha | comp 396 | April 19, 2016 More than Meets the Eye: The Complexity of the Game Infrastructure COMP 396 RESEARCH PAPER UNITY 3D – SPEED OF SOUND GAME IMPLEMENTATION
  • 2. Minjoo Cha 1 Contents Abstract ............................................................................................................................................................................2 Introduction....................................................................................................................................................................3 Speed of sound (purpose) .......................................................................................................................................3 Programming/contributions ......................................................................................................................................4 Player.cs (interaction)..............................................................................................................................................4 Contributions .........................................................................................................................................................7 buren.cs (interaction) ..............................................................................................................................................7 Contributions .........................................................................................................................................................7 Level design.................................................................................................................................................................7 PlaneBehaviour.cs.................................................................................................................................................8 StageFormation.cs................................................................................................................................................8 GameWall.cs ..........................................................................................................................................................8 UI - Player implementation (visual) ....................................................................................................................8 Contributions ........................................................................................................................................................10 Next level ................................................................................................................................................................10 Problems/Lesson and result ......................................................................................................................................10 purpose – point of the game .................................................................................................................................10 interaction – key to success....................................................................................................................................11 level design –how to keep players addicted .....................................................................................................12 visual/Audio – making the game “pleasing to the eyes and ears”..............................................................12 Conclusion......................................................................................................................................................................13 References.......................................................................................................................................................................14
  • 3. Minjoo Cha 2 Abstract The gamingindustryisa verybig and competitive fieldintechnologyandentertainment. Amongstthe copiousamountsof gamesdistributed,onlyafew,namelythe top20 (1 - pg. 11) are noticedanddeemed “popular”.Eveninthe popularpool of games,there are specificgenres whichare more preferredandbettersoldforthe consumersorgamers. Accordingto the statisticsforthe USA populationpublishedinthe year2015, the ESA (Entertainment Software Association) concludedthat the best-sellingconsolevideogame genresare Action: 28.2%, Shooter:21.7%, and Sports: 13.3%, takingup more than half of total game revenue.(1– pg. 10) The top genresforcomputergameswere Strategy: 37.7%, Casual:24.8, andRole-Playing:20.2% takingup more than 70% of the computergame revenue.Mostunpopularorlesssoldgame genresare Arcade: 0.1% forboth areas(computerandconsole). Althoughitis good informationforpeople new togaming,itcomestono surprise for currentgamers whythese are the mostpopular.CounterStrike (shooter),League of Legends (strategy),StartCraft(strategy),Assassin’sCreed (Action) all fall underthese categories.We play thembecause we categorize these gamesas“fun”,“addictive”,anditstarts to getinthe wayof our jobs/school toapointwhere we purposelyrestrictthe amountof time we spendinthese games.Ironicallyspeaking,thisiswhatasuccessful game strivesfor.Butwhatfeaturesof these gamesmake themso popular?Whatmakesa game “fun”?“Addicting”? Tothe pointof view of a developer,thisquestionmightseemsimple toanswer,butatthe same time be hard, hence the gamesthat couldn’tsurvive the competition beingsoldless.Withateamof 8 I decidedto researchthese aspectsof whatmakesan enticinggame throughcompetingforthe Ubisoft Game Lab Competition. Eventuallythroughthe wholeprocessof ateam-basedgame development,there were several importantfeaturesthataffectedthe outcome andquality of the game ensuringthe enticement.Specifically, purpose, cooperation (furtherexplainedlaterinthe paper),level design,visual quality/queues are the determiningqualitiesinwhatmakesagame popular.The more well plannedthe previous fewtraitswere the more of the “fun”and “addicting”factors were showninthe game. There ismore topopulargamesthan “goodideas”and throughoutthispaperI will be emphasizingthe factthat there is more than meetsthe eye tomakinga “fun”and “addictive” game.
  • 4. Minjoo Cha 3 Introduction Withthe helpof 7 othermembers,we were able toenroll forthe UbisoftGame Lab Competition. We had8 weekstodevelopagame withthe restrictionthatitwouldpertaintothe word“ocean”. There were otherrestrictionsandcriteriathatwere mandatorytomeet,butas the purpose of thispaper only focusesonthe developmentof the game,itdoesnotaffectthe factors to a “fun”game inquestion. The team consistedof twoartists, one narrative writer,one level designer,andfour programmers,of whichI wasone of the fourprogrammersresponsible forthe backbone of the game development. The game we made wascalled“Speedof Sound”. SPEED OF SOUND (PURPOSE) The designof thisgame both itsflaws and attributeshave made tobe a greatasset inhelpingme determine whatanideal “fun” game wouldbe bothas a playerandas a developer. Itisa two-playergame inwhich each playerhasthe followingcontrolsready for them:catch, throw and the abilityto move around. The playersare essentially birdstryingto reach a certainvelocity while dodgingobstacles tofinishthe game. The max velocitytobe reachedfor the game to finishis4500 and the game starts off with 900. Every level isbasedoff of velocityfor example whenvelocity hits3000 the game reacheslevel 2. Inorderfor an increase invelocity, eitherplayerhastobe inholdof a burden.Inthe game thisis a ball with randomlychanging colors:blue,red,green. The burdenisself-explanatoryinthateverytime the burdenis inheld by a playerthatplayer’sstaminadecreasesataconstant rate.Each playerhasa maximum staminaof 50, and thisiswhere the playersmustthrow and catch the burden witheachother so that theirstaminadecreasesata minimal rate whilekeepingthe velocityincreasingto complete the level. Once there comesapoint where eitherplayerrunsoutof stamina,the currentvelocityishalved. Ontopof that they needtofocuson dodgingthe obstacles. The colorcodedburdenwhenheldbythe player withmatchingcolors,can activate a speed-up protocol where bothplayersare boostedonly if theypass througha wall withthe same color.For example:if the burdenisgreen, and the greenplayerholdsitandpasses Figure 1 Burden (blue) and players (green and red) Figure 2 Red player in hold of red burden, going through speed up protocol
  • 5. Minjoo Cha 4 throughthe green wall,the speedupisactivated(same appliesfor red,whereasbluehasno effect). Anotherimportantfeature tobe mentioned aboutthisgame isthe factthat there isno “game over”.We wantedtomake itso that the game onlyrewardsthe playersfor accomplishingacertainmilestone:reachingmax velocity.Withthissense of onlyrewardno punishmentwe hadhopedtointrigue the playermore sothat he/she wouldnothave toworry aboutthe failingaspectoftenused inconventional gamesthat players generallystress about. Note howeverthatthisrewardisn’tsoeasyto obtain;there mustbe a complete synchronizationwitheachof the playerssothatstaminadoesnotdecrease,the burdenis alwaysheldbya player,and that obstaclesmustbe dodgedandonlythrough the successof these three requirementscanthe playerreceive the reward. Withthisgame design,I wasable to experimentwithseveralfactorsthat were crucial in definingagame’spopularity. Whythe purpose of thisgame makesitso important,how importantinteractingwithinthe game andwitheachplayerincreasesthe amountof focus towardsthe game,howmuch and how fast shouldeachlevel increase indifficultyandthe amountof varietyineachlevel soplayersare introducedtonew settings,and how important visualsqueues/graphicsare in keepingthe players’attention. Programming/contributions While eachmemberwasresponsible forone aspectof the implementationof the game, we helpedeachothertoreachingthe final stage indevelopmentof the game. The whole design was createdandimplementedthroughcode/scripts inC#.Withthe scriptswe designatedthe purpose,the UI interactions,the cooperationbetweentwoplayersandthe rewardsystemwith the burden. Of these scripsthe mostsignificantonesworthmentioningare Player.csresponsible for the twoplayersinthe game,Burden.csresponsible forthe burdeninteractionsof the game, PlaneBehaviour.cs,StageFormation.csandGameWall.cs responsible forthe levelspawningand designof the game and lastbut not least,the UI/audiointeractions coded through PauseManager.cs,MainMenu.csand Player.cs.Inadditiontothese scriptsinclude severalothers but are not as relevantasthe oneslistedabove. The algorithmsandimplementationswill be highlightedinthe followingheadingscorrespondingtoeachscriptaforementioned. PLAYER.CS (INTERACTION) Withmore focustowardsfunctionalitythanoptimization,thisscriptcontains800 lines of code,mostmightbe redundantandcan be shortened,butwe chose tobe safe and keepthe codebase asis to inhibitpossible compile/runtimeerrors. Of course,thisstyle of codingwillbe of hindrance asthe game getsmore complex,andasthe interactionsbetweenscripsare increased. Anotheraspecttobe lookeduponwhencreatinga“fun” game. To start the player scripthas several variablesto determinethe followingattributes: (i) Tellitself apartfromthe otherplayer,(ii) Totell whetherithasthe burdenor not,whetheritiswithinreachof the
  • 6. Minjoo Cha 5 burdento be able to catch and lastlyif the otherplayerhasthe burden,(iii) Someconstant values determiningthe velocityof thisplayer,(iv) The staminathatdecreaseswhenburdenis held, (v) The Maximumdistance onscreenit’sable totravel soit doesn’tstrayawayfromthe otherplayerandso that the camera isable to see bothplayers. To effectivelydescribeeachof the functionsimplementedinthisgame script Iwill describe whatfunctionsare calledduringgame play. The Start() methodinitializesall the necessaryvariableslike itsvelocity,max screenreach,staminaandseveral booleansdescribing itsstate withthe burden:isBearer,isEscortetc. Italsosetsthe key-bindingsforthe player. One algorithmtohighlighthere isatthe endof thismethod;the co-routine algorithmisusedoftenin gameswhere we needsomethingtohappeninconstanttime,like staminadecreaseevery secondif thisplayerisholdingthe burden.We use this InvokeRepeating() method toimplement decreasingstaminapersecond. Now thateverything’sinitializedduringthe startof the game, we nowmove forwardwiththe interactionsbetweenthe following:(i) playerinteractions, (ii) burden handling,(iii)collisionhandling,(iv) cameraconstraints,and(v) staminaall implementedinthisPlayer.csscript. The playerinteractionsare relatively simple inthatitonlyinitiatesonce eitherof the playershave the burdeninhand. The player withthe burdenwouldessentially be slower due to the weight,andif thisplayeriswithin range of the otherburden-free player’s “slipstream”itisable tokeepupwiththe currentspeedwiththe helpof the burden-free player.Thisisimplementedinthe activateSlipStream() anddeactivateSlipStream() activationrequiresthateitherhasthe burden and deactivationhappenswhenneitherare inholdof the burden. The colliderattribute isused to determine the range andwhetherthe burdened-playeriswithinreach. we have abooleanto determine whetherthisplayerisinthe slipstreamtohandle the necessaryvelocitychanges. (figure 4:whenplayerisinand out of slipstream(skyblue cone)). Figure 4 in (right) and out (left) of slipstream Figure 3 no one holds burden, no slipstream
  • 7. Minjoo Cha 6 The burdenhandlinginthe playerscriptisrelativelysimple,itcallsthe methodsof the burdenscriptbasedon the player’sactionandstate. The state of the playerisdeterminedby the booleansisNeither,isBearer,etc. (Player.cs –line 61-65),just like asthe name implies,the burdencan be caught whenplayerisEscort,itcan be thrownwhenthe playerisBearer,the isNeitheristosignifythatbothplayersare notin holdof the burden. There are methodswhich run basedoff of these initializedstates. catchBurden() changesthe burden’spositiontothe playerthatcaught, changesthe statesaccordingly,andcallsthe Burden.cstoupdate the burden object,alsoslowingdownthe player. The throwBurden() releasesthe burdenfromthe holder, updatesstatesandcallsBurden.csto throw and update the burden’snew locationalso activatingitsslipstream. Note the otherpurpose of thisgame is to dodge obstacles,andwe needcollision handlingforthisimplementationtowork. Since we designedthisgame sothatthere isn’ta “game over” we decidedthere mustbe apunishmentforthe player whenitcollideswith obstaclesnotthreateningenoughtoendthe game. For thiswe usedthe collisionhandlerbuilt inUnity.We add a special flickeringeffecttosignifythe collision(Player.cslines677 – 737) and alsodecrease the stamina. Whenwe have a collisionwithadifferentgame objectnotablythe pushartefact,thenwe increase the speedof the twoplayersincreasingtheirvelocity(the AI feature of thisgame).Inorderfor the pushartefact to work,the playermustas the same color as the burdenitsholding (Player.cslines739 – 776). The collisionhandlingalsotakescare of the slipstreaminthatwhenthe burdenedplayerisincollisionwiththe slipstreamitentersit. (Player.cslines778 – 804) The camera constraintsbetweenthe twoplayersisimportantingameswhere we have twoplayersnotin splitscreens. The problemariseswhenthe payersmove toofaraparteach othermakingbothhard to see. To solve thisproblemwe addedcameraconstraints torefrain frombeingtoofar apart from eachother. We do thisbyclampingthe playerstothe camera (Player.cslines304 -325), thisis explainedinlessdetail because althoughanimportantaspectto the game I didnotget to contribute tothisfeature. However,itwasimportantthatI understand thisto geta betterpicture of the playerinteractions. The last butcertainlynotthe leastimplementationof the Player.csscriptisthe stamina. Usingthe co-routine,simplydecreasingsomethingperconstanttime,the staminaiswhatgives the sense of penaltyandlossto the game.The playerwiththe burdenhastheirstamina decreasingoveraperiodof time andso must tossto the otherplayerto stopitsstaminafrom reachingzero. Whenplayedright,bothplayerswillbe able toreachthe final level withstamina left,howeverwhenplayedwithoutcooperationthe playerswouldbothhave nostaminaand will notbe able to reachthe nextstage because atstamina= 0 velocityishalvedthusunable to reach the nextstage (velocityat3000). The state inwhicha playerisalsodependsonhow much staminatheyhave,the booleanisFatiguedsignifieswhetherthisplayerisoutof stamina. UpdateStaminaisinvokedevery secondbythe “InvokeRepeating”function(Player.cs –line 221) inwhichcallsthe UpdateStamina() methodupdatingthe staminabasedoff of the necessary
  • 8. Minjoo Cha 7 state of the playersuchas checkingif isholdingthe burdenorif it’sfatiguedrenderingitunable to holdthe burden. Contributions The specificimplementationsthatIhave done to thisPlayerscriptisthe staminaco- routine, playerinteractions,andthe burdenhandling. BUREN.CS (INTERACTION) While the playerscript dealswithmanipulatingthe burden’slocation andcallingthe functioninburden, the Burden.csscriptdealswiththe actual handlingof interactionsbetween the playeranditself. Tobe able to have the parabolathrowingeffect,gravityisimplemented inside burdenthroughthe gravity() method(Burden.cs –line 91),alsocheckingtodisable gravitywhenheldbya playerinthismethod. Ittakesas inputthe twoplayerobjects,the wall it mustcollide with(pushartefact),anditspre-setpositionsfordifferentstates. Itisresponsible for changingitsstate basedon the actioncalledbythe playerthroughthese methods:(i) inPosession(Burden.cs –line 117),(ii) notInPosession(Burden.cs –line 134),(iii) restorePosition (Burden.cs – line 142). While the firsttwoare self-explanatory,the restorePositioniscalledonce neitherplayerisinholdof the burden.Thiswill happenfortwocases:1.When bothplayerrun out of staminamakingbothunable tocatch the burdenand2. Whena playerthrowsbutthe othermissedcatchingthe burden. Inthese cases,the burdenwouldsimplyupdate the players’ statesand move itself toitsinitial spawnlocation. Thisscriptisalsoresponsiblefor implementingthe throwingactionof itself throughthe thrown() methods(Burden.cs –line 150). Contributions I was responsible forimplementingthe state changesforthe burdenspecificallythe headings(i – iii). LEVEL DESIGN While Ididn’tcontribute tothisscriptthiswas ourlevel designimplementationandisa veryimportantattribute tothisgame designand game playas well. Thisscriptor aspectinthe game was the hardestto balance.Notablythe difficultyperlevel,the increase of difficultyas levelsincreasedand the lengthof time neededtocomplete eachlevel weresome of the problemswe hadwhen implementingthisscript. Highlightingone of the fourattributesthat make a game enticing, leveldesigniscreatedthrough interactionsbetweenthree scripts. The three scriptsusedto implementlevel designare:StageFormation.cs, PlaneBehaviour.csandGameWall.cs.The basiclogicbehindhavingthree separatescriptsto make the levelsisdue tothe fact that: 1. Stagesmust be movingtogive the illusionthatthe playersare moving,2.Stagesthemselvesmustbe initialized(premadeprefabs)3.A scripthat randomizesstage spawningandlevel designbasedoff of maxVelocitymustbe made. Respectivelythe three scriptsare PlaneBehaviour.cs,StageFormation.csandGameWall.cs.
  • 9. Minjoo Cha 8 PlaneBehaviour.cs Thisclass movesplanesforwardstogive the impressionof motioninthe game state. Whena plane movesoutof viewingbehindthe playercamera,itwill be snappedbackintoa positioninfrontof the camera to be loopedagain.MaxVelocityexistsinthisclass.MaxVelocity increasesincrementallythroughoutgameplayanditnevergoesdown,butitcan stay constantif neitherplayerisholdingthe burden. Thisscriptalsocontainsthe velocityUIelement StageFormation.cs Thisclass containsthe stage formationinformationmeaningitholdsall of the pre-made stages. GameWall.cs Thisscript controlsmostof the stage movementandspawning.Itcontainsknowledge of whichstageFormationwill nextbe released,appliesartefactstostage formations,whichsimply are the coloredwallsincreasingplayer’sspeed.Italsohandlesthe evolutionaryprogression curve in difficulty. Withthe interactionsbetweenthesethree scripts,we are able to keeprecordof and testthe level designof the game state andbalance the enticingfactor thatapplies. The questionsthatshouldbe askedwhile modifyingthesescriptsis,“Dowe have the rightamount of time spentoneachlevel sothe playersdon’tgettired?”“How repetitive iseachlevel progression?”“Isthere avarietyto these levelsthatwe designed?”byadheringtothese questions,the smallestchangesdone toeachlevel canmake or possiblybreakthe concentrationfactorof the playertowardsthe game. UI - PLAYER IMPLEMENTATION (VISUAL) While the othergame state implementationswerebasedoff of scriptsof theirown this implementationdoesn’t have ascriptof itsown,rather,and usesthe valuesof stamina, MaxVelocityandplayerstate tovisualizea HUD (head-updisplay) sothe playershave asense of how well they’re doingandhow far they’ve come. Basedoff of buildstates of the game,there isalsoa start screen and a pause screen to alsogive the playersthe sense thatthey’re playing an actual game as opposedtoa prototype withoutthe abilitytoeither pause or start the game. However, start menuand pause menusare both trivial inourimplementationof the game and because of this,ourgame sadlylosesitsenticingfactor.Figure 5 Stamina top corners, velocity bottom right corner
  • 10. Minjoo Cha 9 How the HUD displayisimplementedisthroughthe panel andsliderattributes embeddedintoUnity. Iusedthistophysicallydesignthe layoutof where the factorsshouldbe and these slidersretrieve the necessaryvariableswhetheritbe the staminaof each playeror the velocityof eachplayerfromtheir respectivescripts. The valuesare thenupdatedeverytime the valuesintheirscriptsare updated. The staminaisupdatedinthe Player.csscriptspecifically on line 542, 580, 589, 594, and itsimplyjustchangesitsvalue towhateverthe currentstamina of thatplayeris. The Velocitydisplaythattellshow farthe playersare inthe level isalso implementedthe same way. InPlaneBehaviour.csline87– 88 the velocityslidervalueis changedbasedoff of current velocityof the level. The pause menu howeveris done a little differently. Itimplementsits ownscript. It usesthe HUD features givenbyUnity,but itdisablesitself until a certainbuttonis pressed.Inthiscase it wouldbe the “p” buttonfor pause. This buttonpressinvokesthe pauseGame () method(pauseManager.cs –line 42) and it changesitsstate basedoff of whether it wasalreadypause or not. It then freezesthe game time soitstopall animationfromrunningif itwasn’t pausedbefore anddoesthe opposite if alreadypaused. The last feature of UI implementedis the mainmenu,the screenthat shows before the game starts. Thisis done withouta scriptand solely withUnity assets. Thiswasmore designthan codingas were othervisual cues. Throughoutthe processof makinga game,I have come to realize thatthe UI and visual elementsare equally importantto the codingaspectof game development.This alsohighlightsthe fact that developingagame although requiresprogrammingskills,alsoneed an equallyexperiencedartisticbase toit to make the complete populargame. Clearly,ourgame lackedthe latterand thuslostinterestof ourgamers. ‘ Figure 6 Pause Menu Figure 2 Main Menu screen
  • 11. Minjoo Cha 10 Contributions I was responsible forthe UIdesignspecificallyeverythingmentionedabove. Next level As ourteam came closerto finishingupourgame developmentandintothe final build, whatwe thoughtwasa job well done wasprovedotherwiseaswe builtandplayedthe game. By constantlyreplayingthe game,alsoknownasplay-testing,we were abletodelve deeper into the understandingof playerinteractions,level design andUIdesign;muchmore detailed than the linesof code we wrote and intothe perspective of the game players. Problems/Lesson and result The questionof whatmakesa game so popularwas answeredwith the acronymPILV (Purpose InteractionLevel designVisuals) withall these fourattributeswellbalancedand met, we can make a successful andpopulargame,the followingreasoningexplainswhyandhow that mightbe the case withour game. Throughconstantplay-testingandobservingthe players’ focustowardsthe game duringthe Ubisoftevent,Iwasable to observe the problemsthatwe had foreach attribute andalsothe necessarysolutionsthatwouldimprove the game experience.While manydeductionsmayprove tobe obvious afterthe play-testbefore play- testing,we weren’tabletorealize suchfactorsthatcouldimprove ourgame implementation. PURPOSE – POINT OF THE GAME The purpose of the game defineswhat ideathe game isbeingrunby. Thismeans the level of creativity of this game toattract playersbefore theyevengettoplay.If the ideadoesn’t appeal thennoone would be interested, muchlike how the coverof a magazine mustbe interestingforreaderstobuy. Out approachto this was to developagame withnoloss,it’s eitheryougetrewardedorget noreward,no death,nogame overandour goal here was ultimatelynostress. We builtourgame aroundthisidea andcreateda game where the game wouldneverend until youreachthe end.Toreach the end,the playersmustbe well coordinatedwitheachother tokeepuptheirstamina. Normallywhenbothplayers’stamina goesto 0 the game wouldessentiallybe overorwheneitherplayerdropsthe burden.This wouldbe the ideal game,but we give the playersachance to pick the burdenbackup aftertheir staminareplenishes.Noloss,butnoprogresswhenthe burdenisnotinpossession. Butthe mostimportantpurpose of thisgame was to give the playersasense of accomplishment atthe endof the game. Our purpose wasclearand unique inthatwe broke the conventional game over/death routine thatall gamesconventionallyfollow, howeverwe were toopreoccupiedintryingtobe unconventional thatwe forgottoconsiderthe case where the playermightnotbe able to complete the game. If they aren’table toreach the endof the game, the whole purpose of givingthe sense of greataccomplishment losesitsmeaning. Initiallyaswe play-testedduringthe
  • 12. Minjoo Cha 11 Ubisoftevent,we were oblivioustothisbecause we were able tocomplete the game aftersome practice, howeverpeople firstplayingthisgame especiallythe oneswhocouldn’tcomplete the game leftto playanothergame. Thiswasmainlybecause velocity (sincethisiswhatlevelsare basedoff of) issomethingthatneedstobe maintainedasopposedtosomethingthatcumulates withouta possibilityof reduction.Thiswill withoutadoubtbe stuckin an infiniteloopif players are unable tokeeptheirstaminafromreachingzero,anditgeteveneasiertodo soafter the firsttime ithappens. Some of the possible changesthatcouldhave beenmade withthe currentgame still keepingthe mainunconventional values wastolessenthe punishmentof whenstaminareaches zero. The way inwhich the punishmentwith0staminawasimplemented (halvingvelocity) was too extreme andmade noroomfor mistakeswhentryingtocomplete orreachthe nextlevel. Insteadof directlyhalvingthe velocity,the game couldbe made sothat for everytime stamina hitszerofor eitherplayer,velocitydecreasesconstantfactorusingco-routines andcumulates againas burdenisheldand staminadoesn’tequal zero. Thatway,mistakesalthoughstill punished,ispunishedwithadegree of recuperation. Of course,the mostideal change thatwe couldmake to thisgame is to go aboutthe conventional waywhere game finisheswhenstamina hits0. The conventional high-scoretablescanbe implementedand the purpose of the game is to beatthe highscore and showoff to theirfriends.Assweetasitsounds,ourgoal inthisgame developmentcompetitionwastomake anunconventional game andmake itwork. Thishighlightsthe factthatsettingandbalancing outa well-plannedoutpurpose forthe game is reallyimportantwhenitcomestogame development. INTERACTION – KEY TO SUCCESS Like reality,everythingisbetterwhenyoudosomethingwithothersasopposedtoby yourself. Thisappliestogamesaswell whetheritbe withotherplayers,othernon-player characters,or tosome extentwithobjects/obstacles. The lackof such will make itharderforany game to be popular. We tookthisintoaccount and made itmultiplayer, andalsoincludedthe attribute thatthe two playersmustcooperate to successfully beatthe game. Althoughthe approach itself wasnoteworthy, andtosome extentworkedbeautifully,there wasaproblem where a lackof communicationmade the game harderforthe twoplayers,meaningthe success of the game directlycorrelatedtohow muchthe playerscommunicatedwitheachother. As intentionalthiswas,if the twoplayerwere eithernotfriendsorif bothprefernotto communicate,the game usuallyendedup endlesslyloopingbecauseof the depletedstamina and halvingvelocity thus,givingabad impressiontowardsthose players. For thisaspectof our game, we saw bothsidesof the game output,the one where playerscommunicatedandeventuallyfinishedthe game andthe otherside where the players lackedcommunicationthus lackingcooperationendlesslystuckinone levelof the game. We had an experimentrunninginthe game itself unintentionally,andIbelievethatthisshowsthat thisgame is well balancedintermsof integratingthe interactionfactor. Thisgame isheavily
  • 13. Minjoo Cha 12 basedoff of how muchyou communicate andinteracttoleadto betterresults. The lessof it,the lowerthe chancesof reachingthe final level. LEVEL DESIGN –HOW TO KEEP PLAYERS ADDICTED Anotherfactorthat isheavilybased onplay-testing. Level designingameswithlevels meanthe designandoperationof eachlevel. Withgamesthatdonot have level-format structure,itmeansgradual evolution of the maincharacteror the sceneryor eventhe player him/herself.The mostimportantfactorinlevel designisthe varietyandcreativityof eachlevel. Let’stake the example of MarioKartfor example,we cansee eachlevel asbeingthe racetrack and whatwe also knowiseveryracetrackis different,hasitsownobstaclesanditsown shortcutsand Eastereggs. It wouldbe safe to conclude thatthe basisof whichlevel design succeedsisinitsvariety, andcreativity (the actof givingeachlevel itsowncolor),something playerscanlookforwardto see unexpectedlyateachlevel theypass. Unfortunately,ourteam realizeditonlyafterdevelopingthe game.Ourleveldesignwas implementedthrough the three scriptsmentionedabove (pg.6),we made variousdesignsof the level toaccountforthe variety factor of our level design;eachlevelhad5 different layoutsof the obstacles andsome contained the push artefactsfor the speedupprotocol.We were successful in includingvarietyof levels, but failedtoaddcreativitytoeachlevel. Everylevel therewasonlythe basisof passingthrough the obstacles. Theylookeddifferent, andwe didaddsome pushartefactswithspeedup protocolsto enlightenthe levelstosome extent, butitdidn’thave enoughimpactforplayersto be preoccupiedtothe game. Some possible solutionstothisproblemistoaddcreativity.Buthow wouldwe add creativitysothatthe main purpose of dodgingobstaclesisnotovershadowed?Soforexample addingthe abilitytoshootobstaclesdown will definitelyovershadow dodging:whydodge when youcan shootthemdown? Soto keepthe dodgingasa prioritybutstill addcreativitytoeach level,we can addanotherburdenor addmore playerssoitgetsharder withcooperationbut still withthe basisthatthe obstaclesmustbe dodged.We couldalsomake the obstaclesmove for some levels.These addcolortoeachlevel,butdoesn’tcompletelyredraw whatourinitial purpose of the game was. Level designwasasimple problemtosolve theoreticallywith ideas,butitwasmore difficulttoimplement.The importance inthe amountof varietyandcreativity implementedin level designingdetermineshowaddicted playersare tothe game albeitthe same oldroutine of tryingto dodge obstacles. VISUAL/AUDIO – MAKING THE GAME “PLEASING TO THE EYES AND EARS” The last attribute thatsignifiesthe funandaddictivenessof gamesisthe visual aspect renderedinagame. Unlessthe game was solelybasedoff of sound,playersneed visualsto make thisvirtual realityfeellikereality. Simplyput,the betterthe visuals,the betterthe game quality andexperience of game play. Due tosome of our teammatesleavingespeciallyour artistsdue to personal andeducational reasons, ourteamlackedthe talentevenbeforewe tried to make thisattribute successful. Whatwaswithinourreachof talenthoweverwasthe HUD,
  • 14. Minjoo Cha 13 and audio.The staminaHUD were lockedintotopcornersof the screen,andthisprovedto be a problembecause the staminaandthe playergame objectwere toofarapart. Thismade the playersunable toconstantlychecktheirstaminabars hinderingthem inkeepingtrackof their stamina.Audiowasaddedtoqueue certainactionsinthe game such as low stamina,wall collision,throwingandcatchingthe burdentoincrease interactionwiththe game. One solutionforthe HUD clarificationwastoput eachstaminabar whereverthe player game objectswere to give lessstraintoconstantlycheckthe endof the screen. Anotherthing we could’ve includedintoourgame toincrease userexperience wouldbe animationsorbetter designsof the burden,andeachplayer. We didto our extenttryto representthe twobirdsbut lackedthe knowledgeinartto implementitsuccessfully. Addinganimationstothatwouldbe beyondourcapabilities. What I learnedaboutthe visualsandaudioingames isthat it’sequallyimportanttothe gameplayitself. Skyrim, Assassin’screed,Call of duty,andevenFIFA everyyearhave improved visual qualitiesand thisinturn make everyyearthat these gamesare releasedamore anticipatedone because of the visual previouslyshownonadvertisements. Realistically,players wouldwantto playa more recentversionof FIFA thanthe olderversionsmainlybecauseof theirgraphics.The soccer game itself andruleshave notchangedsince then.Asimportantthis attribute isingame development,itisalsoadifferentpractice and Ihave come to realize to become a game developerone musthave experience inbothgraphicdesignandprogramming to fulfillall fourattributesinwhatmake agame fun andaddicting. Conclusion To players,videogamesare justamere form of entertainment,anescape fromreality and somethingtokill time. However,throughdevelopingagame for the Ubisoftcompetition, I have come to realize it ismore than meetsthe eye. Itrequirescopiousamountsof planning before the game evenstartsthe developmentstage,correctlydefining andrefiningthe purpose to attract players.Nextthe developmentstage,where the teamof developersmust includein theirgame a way to interactwithbothplayersandgame objects givingthemasense of reality. Define everylevel in theirgame withcreativityandvariety,apersonalitythateachlevel can resonate butkeepingthemrelatedtoeachother. Lastly,topackage all these features intothe complete game,the designimplementationsincorporatingthe five sensesasmuchas theycan fitto a computer/television screen. Thatisnotall however, there mustbe abalance of these attributes (Purpose InteractionLevel designVisuals) sothateachdoesn’tstrayawayfrom the other.Thisis whatmakesa game fun to itscore,the balance and redefinitionof PILV.Withthe helpof the Ubisoftgame lab competition andcountlessplay-testing,Irealized whatmakesa game funand addictive isitsclearpurpose,flawlesslevel design,realisticinteractions,and visualsthatcome to life onscreen:a formof art withoutpaperandpencil.
  • 15. Minjoo Cha 14 References (1) ESA (EntertainmentSoftwareAssociation).(n.d.). EssentialFactsaboutthecomputer and video gameindustry.RetrievedfromESA:http://www.theesa.com/wp- content/uploads/2015/04/ESA-Essential-Facts-2015.pdf