Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Se kommentarer (2)
Emner Udviklingsværktøjer, Python, Spiludvikling

Brutalt hjerneindgreb forvandlede mordere til nuttede ninjaer

It-udfordringen: Fredag rammer det nye spil fra danske IO Interactive, Mini Ninjas, butikkerne i Europa. Undervejs i projektet måtte programmørerne blandt andet genskabe karakterernes kunstige intelligens fra bunden.

Af Mikkel Meister Fredag, 11. september 2009 - 15:08

Et hold på omkring 30 udviklere har arbejdet 3,5 år på at få Hitman-producenten IO Interactives nye barn, Mini Ninjas, på gaden.

Mini Ninjas er et actionspil, hvor spilleren styrer én af flere mulige ninjaer, som skal kæmpe mod horder af forhenværende nuttede dyr, som en ond krigsherre uheldigvis har forvandlet til samuraikrigere.

Fredag d. 11. september 2009, rammer Mini Ninjas butikkerne i Europa, og producer Jonas Lind og spilprogrammør Simon Veith Reinholt fortæller her, hvilke udfordringer projektet givet IO Interactive.

Hvad går projektet ud på?

Jonas Lind: Mini Ninjas skulle være et actionspil, som hele familien kan spille. Det betyder, at det er designet til børn, men at det også indeholder elementer, der giver deres forældre lyst til at tage controlleren i hånden og spille.

Spillet adskiller sig fra vores tidligere spil ved, at store dele af det foregår udendørs, i modsætning til den mere klaustrofobiske indendørsstemning i for eksempel Hitman.

Hvad har din rolle været i projektet? Jonas Lind: Jeg har været producer på Mini Ninjas og har dermed fungeret som bindeled mellem programmører, grafikere, leveldesignere og så videre.

Simon Veith Reinholt: Jeg har stået for at programmere meget af den nye AI (den kunstige intelligens, red.) og OSD'et (spillets menusystemer, red.).

Hvilke teknologier er der brugt i projektet?

Simon Veith Reinholt: Vi bruger C++ til alt, hvad der har med selve spillet at gøre. Compilerne er platformspecifikke, hvilket vil sige, at vi for eksempel bruger Xbox' compiler til den platform.

Vi har brugt Python og C++ til at lave vores egne værktøjer. For eksempel har vi selv skrevet leveleditoren og de automatiserede build scripts i Python. Der er en enorm mængde data, der skal leveres som input til spillet. Det gælder for eksempel al grafikken, der består af trekanter som data, der skal indlæses.

Hvilke problemer stødte I på undervejs?

Jonas Lind: Vi har haft nogle udfordringer med AI'en. Tidligere har vi kun lavet skydespil, og vi regnede med, at vi kunne ommodellere AI'en fra Kane & Lynch (actionspil fra IO Interactive, red.) til Mini Ninjas. Men hele bevægemønsteret, man sætter op for figurer med rifler, er markant anderledes end det, man finder når hos ninjaer, der skal stikke hinanden med sværd.

Det viste sig at kræve en komplet omskrivning af AI'en, hvor vi smed næsten al koden ud og begyndte forfra. Det fandt vi ud af to år efter præproduktionen begyndte, hvilket var lige efter vores first playable (første spilbare udgave af Mini Ninjas, red.) var klar. Udviklerne var lettede over beslutningen, for de var utilfredse med, at de skulle sidde og slås med nogle problemer, som de ikke kunne få til at virke med de værktøjer, de havde på forhånd. Fra et produktionsynspunkt betød det, at det hele blev forsinket et par mandemåneder, hvilket igen forsinkede implementeringen af Save-load-funktionen og OSD'et.

Simon Veith Reinholt: Det var enormt rart at tage det skridt tilbage i produktionsprocessen.

Hvis man sammenligner med andre af vores spil, er der større og mere væsentlige forskelle på fjenderne, og derfor blev vi nødt til at oprette en fjendetype for hver fjende.

Der er for eksempel nogle fjender, der skal gå i formation med spyd, og andre skal kunne være usynlige. I det tidligere AI skulle vi kun håndtere figurer, som alle har menneskelignende kvaliteter og bevæger sig enkeltvis. I Mini Ninjas skal flere fjender kunne bevæge sig som en gruppe, men stadig reagere på hændelser individuelt, og det krævede en koordinationsmekanisme med en slags usynlig hånd, eller 'master', der styrer gruppen overordnet.

For at løse det problem har vi implementeret et minitrådsystem, som gør, at vi for eksempel kan give en figur kommandoen 'gå derover og vent på, at du er kommet frem'. Ministrådsystemet understøtter frivillige processkift mellem trådene i systemet, hvilket betyder, at en tråd først afbrydes, når den er færdig med at udføre sin opgave. Det står i modsætning til det, man kender fra et operativsystem, hvor scheduleren kan bryde ind i en tråds udførsel. Det stiller så også krav til parallelprogrammeringen, fordi vi som programmører skal sikre, at processkiftene sker ofte nok, så en tråd rent faktisk bliver afbrudt og ikke står og hænger.

Vi genbrugte nogle af Kane & Lynch's generelle AI-systemer helt nede i bunden, men vi følte i sidste ende, at det var nødvendigt at skrive AI'en helt om, fordi vi hele tiden stødte på problemer i den daglige implementering.

Klassehierarkierne i Kane & Lynch-AI'en kunne ikke indfange de nye AI-typer og deres adfærd, og det nye klassehierarki er også blevet væsentligt større og mere kompliceret.

Jonas Lind: OSD'et var også en lang iterativ, lige fra menusystemet i starten af spillet, og til den måde, man viser health-baren på skærmen. Det var primært en lang proces, fordi vi ændrede ambitioner undervejs om, hvordan man for eksempel går ind i en inventory-skærm og vælger en trylleformular og så er ude igen og kan kaste den mod fjenden. Der skal helst ikke være så mange skridt i at udføre den slags handlinger i spillet.

På det tidspunkt, hvor vi burde være færdig med OSD'et i alpha-udgaven, som i udgangspunktet skal være featurecomplete, havde vi kun et mangelfuldt OSD på det tidspunkt. Det hang også sammen med, at vi havde svært ved at finde en person, der kunne stå for opgaven.

Hvilke gode råd kan du give videre?

Jonas Lind: Da vi startede projektet, var det meningen, at det skulle vare 2-2,5 år, og det endte med at vare 3,5 år. Men det skal så siges, at ambitionsniveauet undervejs blev markant anderledes, end det var i begyndelsen.

Blandt andet besluttede vi, at Mini Ninjas også skulle være fængende for voksne, hvor det i udgangspunktet bare skulle have været et rent børnespil. Derudover blev vi enige om, at vi også ville rulle ud på PS3-platformen, og ikke kun nøjes med Nintendo Wii og Xbox.

Set ud fra det nye ambitionsniveau har vi holdt tidsplanen rimeligt godt. Men vi kunne have overholdt vores deadlines, de såkaldte vertical slices, bedre, end vi gjorde undervejs.

Vi havde sat vores vertical slice til at indeholde 15 procent af det endelige spilindhold, og tanken var så, at man ud fra den første vertical slice skulle kunne parallelproducere resten af spillet. På den måde fungerer den som en slags skabelon for, hvordan resten af spillet skal produceres rent mandskabsmæssigt og tidsmæssigt.

Men det kræver, at den første vertical slice så er færdig nok til, at den kan fungere som en målestok for udviklingen af resten af spillet.

Det viste sig, at vores vertical slice ikke var færdig nok, og det betød blandt andet, at vi senere måtte redesigne de 'bosser', som skal bekæmpes ved slutningen af hver bane. De var simpelthen ikke færdige nok ved den første vertical slice, og der var nok for meget ønsketænkning hos os om, de var færdige.

Vi havde et designdokument for, hvordan en boss skal nedkæmpes, og når man så implementerer de ting, man har designet, kan det ske, at det slet ikke var så sjovt eller svært, som man troede. Så prøver man nogle nye ting af, og jeg havde regnet med, at det ville tage tre iterationer per boss, men i nogle tilfælde tog det nærmere fem-seks iterationer.

Derfor handler det om at gå mere ind til benet og være hårdere ved sig selv. Der kan være alle mulige grunde til, at man har den der ønsketænkning, men det nytter bare ikke noget. Hvis man vil bruge noget som en målestok, så skal den også være i orden. Det lyder som om, det siger sig selv, men sådan er det desværre ikke altid i praksis.

Send Tweet
Udskriv

IT-job & karriere

  • Se alle it-job
  • Importer din kompetenceprofil fra LinkedIn
SAP/ABAP Systems Developer (7244)
Udgivet 23. apr 12.25
Microsoft Dynamics AX Technical Consultant/Developer
Udgivet 27. apr 10.39
Software Developer
Udgivet 21. maj 8.06
SAP PP Senior-konsulent
Udgivet 8. feb 8.56

Kommentarer (2)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Sidsel Jensen 11. sep. 2009 - 23.53
 
Fedt spil!

Mini Ninjas er et fedt spil - super flot grafisk på PS3 og fin historie - thumbs up :-)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Normann P. Nielsen 18. sep. 2009 - 19.24
 
Dejligt at se at se fra den danske scene...

Ikke for at reklamere men jeg kan iøvrigt anbefale spillet http://tribaltrouble.com/, et fantastisk mindre spil - også fra DANSK side der er det eneste virkeligt, vikeligt velkørende jeg har set på Java platformen [på Windows anyway...] - det kører bare smukt! Og findes også til Linux + Mac OS

Mine unger er vilde med det :-)

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Voxpop: GOTO giver inspiration

Udgivet 22. maj 11.26Opdateret 22. maj 11.26

Studerende taler ud om kæmpehul: Pærelet at hacke 100.000 danske routere

Udgivet 22. maj 10.44Opdateret 22. maj 10.56

Datamatikere i Skive får gratis smartphone til .Net-udvikling

Udgivet 22. maj 10.28Opdateret 22. maj 10.28

Københavns Kommune satser 50 millioner på Drupal-platform

Udgivet 22. maj 10.06Opdateret 22. maj 10.06

EMC: Derfor brugte vi 2,5 mia. på flash-firma uden produkter

Udgivet 22. maj 9.25Opdateret 22. maj 9.25

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Whitepapers

Kick-start your master data management initiative

Affecto Denmark

Affecto Data Quality Assessment: Er din indsigt og beslutning baseret på validt data?

Affecto Denmark

Framework til datamigrering i SAP miljøer - spar op til 50% på dine Data Migration udgifter

Affecto Denmark

Få et Data Warehouse (DW) review hos Affecto

Affecto Denmark

Ressourcehåndtering

Projectplace
  • Flere whitepapers

Branchenyheder

Konica Minoltas stand på drupa 2012 slog besøgsrekord

Konica Minolta Business Solutions Denmark

Komplex it er blevet Brocade Premier Partner

Komplex IT

Øg din effektivitet og produktivitet med bizhub C654/C754

Konica Minolta Business Solutions Denmark

Brugerfjendtlige it-løsninger gør brugerne til en sikkerhedstrussel

Projectplace

Athena IT-Group A/S med solid indtjening

Athena IT-Group

Seneste debat

  1. Studerende taler ud om kæmpehul: Pærelet at hacke 100.000 danske routere

    5 comments.
    Last update 12 minutter 33 sekunder
    Skrevet af Mikkel Andreasen
  2. Microsoft fjerner umoderne bling-effekter i Windows 8

    10 comments.
    Last update 23 minutter 37 sekunder
    Skrevet af Andrew Rump
  3. Dart-pilen sidder lige midt i skiven

    14 comments.
    Last update 32 minutter 10 sekunder
    Skrevet af Torben Mogensen
  4. Københavns Kommune satser 50 millioner på Drupal-platform

    2 comments.
    Last update 43 minutter 4 sekunder
    Skrevet af Jens Beltofte Sørensen
  5. Partner solgte Netgroups 'test-platform' med overskriften 'fuld redundans'

    9 comments.
    Last update 45 minutter 52 sekunder
    Skrevet af Patrick Theander
  6. ITU-studerende kan støvsuge alle danskeres CPR-numre

    19 comments.
    Last update 58 minutter 27 sekunder
    Skrevet af Frithiof Andreas Jensen
  7. Das NemID trojaner - paranoia eller rettidig omhu?

    14 comments.
    Last update 1 time 5 minutter
    Skrevet af Troels Møller
  8. Enhedslisten bider sig fast: VIL have svar på, om NemID er spionsoftware

    21 comments.
    Last update 1 time 14 minutter
    Skrevet af Troels Møller

Mere debat »

It-virksomheder

Contest
|
EVRY Danmark A/S
|
Visma
|
Raxco Scandinavia
|
Scanarmor
|
Siblingsoft
|
Deltek Danmark
|
TOPdesk Danmark
|
Magenta
|
ITX
|
Computerfriend.DK
|
Redpill Linpro
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Download Windows 8
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Mountain Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300