SlideShare une entreprise Scribd logo
1  sur  106
Télécharger pour lire hors ligne
Interacțiune om‐calculator       2.0




       Dr. Sabin‐Corneliu Buraga

     Facultatea de Informatică
Universitatea “A.I.Cuza” Iaşi, România


   Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




ingineria dezvoltării jocurilor




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Never show fools unfinished work.

             Michael Schrage




   Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0



 Productivity Software Goals                       Game Goals
Task completion                         Entertainment
Eliminate errors                        Fun to beat obstacles
External reward                         Intrinsic reward
Outcome‐based rewards                   Process is its own reward
Intuitive                               New things to learn
Reduce workload                         Increase workload
Assumes technology needs                Assumes humans need
to be humanized                         to be challenged

                    Lazzaro & Keeker, 2004
              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Game creative design vs. game software design




      cerințe, procese, așteptări diferite



         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0


     Game creative design                    Game software design
Livrabile: documente privind             Livrabile: descrieri ale 
proiectarea (producerea)                 etapelor/proceselor de 
artefactelor creative                    proiectare a software‐ului 
ale jocului ce va fi dezvoltat           de tip joc
Analog planului de producție             Specific dezvoltării de 
a unui film                              software tradițional
Oferă viziunea artistică                 Reduce caracteristicile jocului 
a jocului                                la un set de cerințe specifice
Implică dezvoltarea                      Specifică maniera de 
software‐ului aferent                    implementare a cerințelor
         adaptare după (John P. Flynt & Omar Salem, 2005)
               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Caracter interdisciplinar al colectivelor de dezvoltatori




             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Abordări (Michael Mateas & Jim Whitehead, 2007):

focalizate pe aspecte tehnologice (computer science, maths)

                           interdisciplinare

  focalizate pe factori artistici (artistic design, visual arts)



               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Necesitatea folosirii diverselor studiilor de caz
                 (use cases)




         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




 Recurgerea la aplicații, API‐uri, biblioteci, 
instrumente, componente etc. specializate




           implică variate cunoștințe
    ale diverselor arii din computer science

        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




conform John P. Flynt, Omar Salem, Software Engineering 
         for Game Developers, Thomson, 2005
         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                Livrabile: 
software requirements specification (SRS)
                    +
                use cases

              traceability matrix
                   test plan


      Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Informații ce pot fi folosite în stabilirea cerințelor:
                  utilizatorii‐țintă ai jocului
     experiențele anterioare în dezvoltarea de jocuri
     aspectele privind designul grafic & marketingul
jocurile ce pot fi modificate (mods) pentru a crea noul joc
   existența proiectanților și nivelul lor de cunoștințe
             structura echipei de programatori



             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Un aspect important este stilul/genul jocului ce va fi dezvoltat
                  (Rollings & Morris, 2004):
            Action—lots of frantic button pushing
                Adventure—the story matters
                 Strategy—nontrivial choices
             Simulation—optimization exercises
                Puzzle—hard analytic thinking
           Toys—software you just have fun with
               Educational—learning by doing

               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Cele mai bune practici în specificarea cerințelor:
                  completitudinea
                   corectitudinea
      considerarea doar a cerințelor necesare
                    fezabilitatea
               stabilirea priorităților
             eliminarea ambiguităților
              verificarea & validarea
                   managementul

          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dezvoltarea jocului recurge la o documentație de proiectare 
                  game design document

                          sumarul jocului:
                          game summary

    narațiunea jocului (sixty‐seconds‐of‐play sequence):
                       play narrative


              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




            Exemplu de sumar al unui joc (John Rose):
      “Ankh follows the quest for vengeance undertaken by Sekhem, 
   an Egyptian warrior determined to destroy those who defeated and 
   killed his father. The game focuses on the battles fought by Sekhem
and his party of rebel warriors on their journey to the Egyptian capital of 
  Thebes. These conflicts escalate from skirmishes to bloody clashes as 
     the band of adventurers cross the desert sands of ancient Egypt. 
  Along the way, additional characters join the band and new enemies 
 attempt to stop Sekhem’s advance. Interaction involves tactical control 
    of the small army during Ankh’s many mêlées, including strategic 
           maneuvers, hand‐to‐hand combat, and spell casting.”
                  Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




           Exemplu de sumar al unui joc (John Rose):
 “The player is faced with winning battle after glorious battle, driving 
  Sekhem toward his final confrontation with Uheset, the bloodthirsty 
 Queen of Egypt. Conflicts take place in real time, stressing the tactical 
 and chaotic aspect of warfare. Each level possesses its own ambiance 
 and strategy, from the barren plains of Thebes to the lush splendor of 
   the Dashur gardens. The graphics of Ankh illustrate the varied and 
stylish architecture and landscapes of ancient Egypt. The game’s music 
     varies from haunting chants to blood‐quickening battle drums. 
       All aspects of the game’s art and sound immerse the player 
                  in the primal rage of ancient warfare.”
                 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          Deducții pornind de la sumarul jocului:
 un unic personaj – Sekhem – corespunzând utilizatorului

celelalte personaje sunt inamici simulați de software (NPCs)

       există un voiaj ce implică crearea unor scene 
       în care vor avea loc conflicte armate (bătălii)

           stilul artistic al jocului este unul antic

              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Tipul jocului este un RPG de strategie




    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          Descriere (Flynt & Salem, 2005):

   “Ankh is a single‐player turn‐based strategy game. 
  The game incorporates features that are common to 
PC games, but it also introduces a variety of innovations: 
 advanced resource management, the use of map and 
   character editors, saving/loading of game states.”



            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   Fiecare componentă este referită prin termenul stripe
 specificând atât structura/tipul componentei din punct de 
vedere software – e.g., clase, obiecte COM, servicii Web,…  –, 
    cât și locul în care dezvoltarea componentei îl ocupă 
                 în ciclul de dezvoltare a jocului




               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Componente funcționale preliminarii, detaliate în secțiunea 
      Functional Requirements Component View:

                        Stripe 1: Game Opening
    2a: Tile Map, 2b: GUI Elements, 2c: Map Editor, 2d: Save Level, 
     3: Level Template (modeled on 1st level), 4: Character Editor, 
           5: Game Physics, 6: Inventory, 7: Combat, 8: Skills, 
       9: Outside World Management, 10: Skills Interface, 11: AI, 
12: Remaining Levels, 13: Saving & Loading, 14: Options, 15: Revisions


                Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




             User Characteristics:
jocul este destinat utilizatorilor de orice vârstă




       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                Assumptions & Dependencies:
jocul poate fi rulat după instalare via programul livrat pe CD

necesită DirectX 9.c pe un sistem Pentium IV sau echivalent, 
        placă grafică având suport pentru Direct3D, 
               rezoluție: 1024x768, TrueColor, 
             interacțiune via mouse & tastatură

 la cererea utilizatorului, pot fi efectuate actualizări online

              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




     Primary List of Functional Requirements (fragment):
    <R1> Software shall have the capability to save the game state
   <R2> Software shall have the capability to return to a saved state 
                            by loading a file
<R5> Software shall have an auto‐save feature that automatically saves 
                          the game constantly
  <R6> Software shall have a timer mechanism that will flush memory 
                 to disk periodically (every S seconds)
 <R7> Software shall provide the option to save a Replay after a battle
 <R11> Software shall allow the player to play back at variable speeds
                                    …
                 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Functional Requirements Component View (fragment):

  Stripe 1: Opening – requirements 8, 14‐18, 38, 57
    Stripe 2b: GUI Objects – requirements 18, 52
                            …
        Stripe 2d: Save Level – requirement 4
                            …
        Stripe 10: Skills – requirements 14‐21
        Stripe 11: AI – requirements 24‐26, 37
                            …
          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                    Design Constraints:

      constrângerile de proiectare iau în calcul 
disponibilitatea, securitatea, mentenabilitatea jocului




           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




           exemplu de use case
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




     Use case‐urile pot fi folosite pentru a facilita
descrierea scopului jocului, conform descrierii narative




           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




              Software Design Specification:
ipostazele jocului (sistemului) sunt prezentate via view‐uri
         desemnate de diagrame UML ori de liste

                           requirements
                            conceptual
                            behavioral
                              logical
                            component

             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




De la un scenariu descris de un use case 
      la interacțiuni inter‐obiecte




    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Documentația de specificare a designului jocului are structura
  unui document de tip SDD (Software Design Document):

  1. Introduction: purpose, scope, definitions & acronyms
                      2. References
         3. Conceptual view: use case, diagram,…
           4. Behavioral view: object diagrams
              5. Logical view: class diagrams
              6. Component view: diagrams
                   7. Deployment view
               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




conceptual view – exemplificare
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




  component view – componentele implicate
în acțiunea de deplasare a unui personaj de joc
       Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




component view – exemplificare la nivel de stripe
        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Aspecte de considerat la redactarea documentului de design:




              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Structura generală a unui game design document (Rouse, ‘05)
                      Table of Contents 
                   Introduction/Overview 
                      Game Mechanics 
                     Artificial Intelligence 
                       Game Elements 
                        Story Overview 
                      Game Progression 
                        System Menus

              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Șabloane comune ce pot fi aplicate la dezvoltarea de jocuri:
                       Singleton
                      Composite
                Chain of Responsibility
                          State
                       Strategy
                       Observer
                        Façade
                      Memento
                      Command
              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Recurgerea la Strategy pattern pentru a simplifica schimbările 
           de atitudine la personajele de tip NPC:




               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Command pattern pentru implementarea comenzilor:




         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Proiectarea iterativă (iterative design)

  uzual, are loc la nivel de fiecare stripe 

 de la stabilirea cerințelor la componente




     Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




activitățile realizate la o iterație la nivel de stripe
         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Exemplu de proiectare vizuală a stripe‐ului Level Template




             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Exemplu de proiectare a personajelor




  Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Reguli de proiectare a jocurilor puzzle (Rollings & Morris, ‘04)

                      Don’t be too cute
                  Avoid “serious” violence
            Keep it abstract, but not too abstract
                 Give rewards for progress

                exemplu de succes: Lemmings


               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Componente (subsisteme) primare (Rollings & Morris, ‘04):
                       User interface
                Bidirectional event handler
     Data engine (graphics, level, miscellaneous data)
     Dynamics system (collisions and general physics)
           Logic engine (the heart of the game)
                      Graphics engine
                       Sound engine
               Hardware abstraction layers
(interfaces with graphics, sound, and controller hardware)
             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




      Subsisteme secundare:
    Game configuration system
          Menuing system
Online instructions and help system
           Music system




 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Criterii de reutilizare a componentelor/bibliotecilor existente:
                           disponibilitate
                           corectitudine
                             actualitate
                         utilizare imediată

                           mentenabilitate
                             licențiere
                           compatibilitate

               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   Software engineering risk assessment

prevenirea, reducerea, managementul (controlul) 
               problemelor critice




        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator      2.0

              Risc extern                               Risc intern
Probleme legale                             Timpul alocat dezvoltării jocului
(copyright, licentiere,…)
Prețul jocului                              Structura colectivelor
                                            implicate în dezvoltare
Drepturi (royalties) acordate               Gradul de inovare tehnică
dezvoltatorilor & altora
Costul punerii la dispoziția                Gradul de creativitate artistică
consumatorului
Timp alocat marketing‐ului                  Tipul tehnologiilor implicate
Suportul organizațional                     Maniera de înțelegere a cerințelor
Atingerea stadiului de maturitate           Metodologia de dezvoltare 
dorit                                       adoptata
Susținătorii proiectului                    Alte tipuri de risc
                  Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




    Aspecte de interes privind riscurile externe:
                           finanțarea
               suportul la nivel de organizație
           resursele disponibile – e.g., transport
       suportul acordat clienților (customer support)
creativitatea – e.g., artiști grafici, suport muzical & vocal,…




              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Aspecte de interes privind riscurile interne:
           echipamentele (logistica)
       membrii echipelor de dezvoltatori
      tehnologia – e.g., cea de ultimă oră
           inspirația (creative input)
       durata de dezvoltare a produsului




        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                  Depinde de scopuri
                     exemple tipice:
                reduce lost productivity
                  increase productivity
     increase opportunities for aesthetic expression
     increase opportunities for technical innovation
    create a safer environment for experimentation
reduce the number of errors the game has when it ships
   add to the quality of the development experience
           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Paradigma clasică (Robert N. Charette, 1989)




        Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          conform Andrew Rollings & Dave Morris, 
Game Architecture and Design: A New Edition, New Riders, 2004
             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Poate fi divizată în activități de verificare, validare & explorare




                Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Planificarea fazelor testării jocului (Flynt & Salem, 2005)
            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Planificarea dezvoltării unui joc
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




 Jucătorul poate avea la dispoziție un ghid de utilizare

                     strategy guide
         oferă descrierea interacțiunii cu jocul, 
          inclusiv regulile & maniera de jucat

             aspecte ce trebuie menționate: 
skills, key combinations, options, characters, character 
powers, effects, spells, healing, maps of levels, help etc.

            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          modelarea la nivel înalt a unor jocuri
        crearea unui joc simplu de tip MMORPG
dezvoltarea unui joc sportiv de simulare pentru vârstnici
            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




      Modelarea jocurilor Pong & Pac‐Man

  problemă: cum pot fi modelate entitățile unui joc?




A. Rollings & D. Morris, Game Architecture and Design: 
            A New Edition, New Riders, 2004

           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




    Orice joc interacționează cu măcar 1 jucător uman

Toate jocurile prezintă elemente discrete – numite tokens –
              manipulate (in)direct de jucător

      Token‐urile sunt gestionate intern de software

            Conceptual, un joc poate fi descris
            în termeni de jucători + token‐uri

             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Token‐urile pot fi clasificate specificarea unei ierarhii




                                                                  cazul Pong




            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Pot exista diverse interacțiuni între token‐uri – e.g., coliziuni –
     ce sunt specificate uzual via token interaction matrix
     interacțiuni simetrice versus interacțiuni asimetrice
                Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




     Anumite interacțiuni pot conduce la producerea 
     unor evenimente ce vor fi tratate la nivel de cod

 Interacțiunile dintre diverse token‐uri pot fi simplificate 
          dacă se recurge la token‐uri intermediare 
 (e.g., însăși lumea jocului, agenți cu rol de broker‐i etc.)

Comportamentul token‐urilor poate fi descris via automate


             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




modelarea comportamentului NPC‐urilor de tip ghost
                  la Pac‐Man
          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




      automatul specific token‐ului
reprezentând lumea jocului (world game)
    Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




  Crearea unui joc simplu de tip MMORPG

ilustrează învățarea conceptelor de baze de date 
              via game development

după o prezentare de Greg Wadley & Jason Sobell,
     The University of Melbourne, Australia
          în cadrul Academic Days 2007


         Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   Un MMORPG este un sistem software informațional

       starea jocului se stochează central (pe un server)
                    datele sunt persistente
                 accesul la date este concurent
  utilizatorii posedă identități, trebuind să fie autentificați
interacțiunea se realizează la client via o interfață‐utilizator



              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          Mediul (lumea) jocului poate fi modelat(ă)
printr‐o matrice de locații, fiecare având diverse caracteristici


jucătorii – umani sau generați de calculator – se pot deplasa 
    în cadrul caroiajului, putând concura unul cu celălalt




               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




                                                              99 100




Y, 1 to 10
             11 12      13 14 15           16 17 18 19 20
             1 2        3 4 5              6 7 8     9 10

                             X, 1 to 10
             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Folosind o imagine de fundal, poate fi realizat designul vizual




               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




    Locația curentă a jucătorului va trebui redată diferit

     Etichetele specifică sănătatea & punctajul curent

Via diverse mijloace de interacțiune, vor fi afișate obiectele 
     aflate în posesia fiecărui jucător + mesajele jocului

     Se oferă și posibilitatea de a observa/interacționa
                         cu alți jucători

              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




proiectare & implementare minimală a interfeței jocului
          (aplicația‐client la nivel de desktop)
           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




  modelarea datelor via tabele
Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Partea de procesare e implementată de proceduri stocate

              facilitează accesul la date
    (concurența este rezolvată pe baza tranzacțiilor)

  descriu comportamentul fiecărui control de interfață 

  pot fi apelate periodic via un timer existent la client


            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0

  Procedure                         Inputs                              Outputs
   spLogin                 PlayerName, Password              1 row from Player table
spMovePlayerTo                  PlayerId, X, Y                     ‘Success’ = 1 or 0
 spGetPlayer                       PlayerId                  Player and room details
  spGetItems                       RoomId                         list from Item table
 spGetPlayers                 PlayerId, RoomId                 list from Player table
spGetInventory                     PlayerId                       list from Item table
 spPickUpItem                  PlayerId, ItemId                         (none)
 spDropItem                    PlayerId, ItemId                         (none)
   spAttack              PlayerId, VictimId, ItemId          Message about damage
spGetAllPlayers                     (none)                 list of PlayerId, PlayerName
  spAddChat              Text, PlayerId1, PlayerId2                     (none)
  spGetChat                        PlayerId                list of PlayerName, ChatText
 spAddEvent                 PlayerId, EventDetail                       (none)
   spLogout                        PlayerId                             (none)
                  Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




spMovePlayerTo (@PlayerID integer, @NewX integer, @NewY integer)

IF EXISTS (SELECT * FROM Room WHERE X=@NewX AND Y=@NewY)
BEGIN
 UPDATE Player SET RoomID =
   (SELECT RoomID FROM Room WHERE X=@NewX AND Y=@NewY)
   WHERE PlayerID = @PlayerID
 SELECT 1 As 'Success'
END
 ELSE
SELECT 0 As 'Success'

                 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




 Fiecare acțiune a unui jucător afectează vizualizarea datelor
                  de către ceilalți utilizatori

Starea jocului poate fi specificată via modele simple de date:
               jucători, obiecte, evenimente,…

          Recurgând la un sistem de baze de date, 
      se poate simplifica problema accesului concurent

Separarea clară a prezentării de procesare & stocare a datelor
               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   Această abordare este folosită și de jocurile comerciale

   “Almost nothing about any object in Age of Empires is hard coded 
         into the program. Huge tables of information describe 
     every characteristic of every object that appears in the game. 
 The game designers used a system of over 40 Paradox database tables
to control and shape the game. As a result, they were able to constantly 
        update and tweak the game, and then test their changes 
                without having to involve a programmer.”

               Game Developer Magazine, martie 1998
                 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




           Dezvoltarea unui joc de simulare 
      dedicat persoanelor vârstnice – Pentanque

  procesul de proiectare este controlat de utilizatorii finali:
                human‐driven design process

                 Vero Vanden Abeele et al., 
A Soft Approach to Computer Science: Designing & Developing 
     Computer Games for and with Senior Citizens, 2006
               Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




1. Ethnographic
 Observations                                                 5. Evaluation




  2. Participatory                                            4. Development
      Design

                  3. Presentation of Concepts
              Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          Specificarea caracteristicilor jocului:
                     sports‐simulation
                          2 players
               intuitive, consistent controls
            not competitive, but “feel good”
                 practice and play modes
            visual and auditory explanations
compose a team of unique characters with individual skills
      consistent 2D and 3D, with matching sound

             Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Instrument de dezvoltare: Virtools (Dassault Systems)




          Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




          Prototipizare timpurie
în vederea testării de către utilizatorii finali
      Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Stadiul actual al industriei jocurilor (Rollings & Morris)
            Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Posibil model viitor (Rollings & Morris)
   Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




   Un tot mai mare accent pus pe jocuri sociale
disponibile la nivel de Web & de dispozitive mobile

                 social game computing




           Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




               game computing
aspecte privind ingineria dezvoltării de jocuri
      Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
Interacțiune om‐calculator       2.0




Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco

Contenu connexe

En vedette

OGP Taiwan 提案
OGP Taiwan 提案OGP Taiwan 提案
OGP Taiwan 提案TH Schee
 
Lyn Hopson and Lesley Hurworth - Local Book Award: A Match Made in Heaven
Lyn Hopson and Lesley Hurworth - Local Book Award: A Match Made in HeavenLyn Hopson and Lesley Hurworth - Local Book Award: A Match Made in Heaven
Lyn Hopson and Lesley Hurworth - Local Book Award: A Match Made in HeavenSLA
 
hopen.data logo
hopen.data logohopen.data logo
hopen.data logoTH Schee
 
Sabin Buraga: Open Web Application Development, Mozilla, and You
Sabin Buraga: Open Web Application Development, Mozilla, and YouSabin Buraga: Open Web Application Development, Mozilla, and You
Sabin Buraga: Open Web Application Development, Mozilla, and YouSabin Buraga
 
當下即知:城市脈動與巨量資料 Big Data
當下即知:城市脈動與巨量資料 Big Data當下即知:城市脈動與巨量資料 Big Data
當下即知:城市脈動與巨量資料 Big DataTH Schee
 
Recicla l’Escola
Recicla l’EscolaRecicla l’Escola
Recicla l’EscolaIgnasi.Pilar
 

En vedette (8)

Social media
Social mediaSocial media
Social media
 
Bloggen Met Vertrouwen
Bloggen Met VertrouwenBloggen Met Vertrouwen
Bloggen Met Vertrouwen
 
OGP Taiwan 提案
OGP Taiwan 提案OGP Taiwan 提案
OGP Taiwan 提案
 
Lyn Hopson and Lesley Hurworth - Local Book Award: A Match Made in Heaven
Lyn Hopson and Lesley Hurworth - Local Book Award: A Match Made in HeavenLyn Hopson and Lesley Hurworth - Local Book Award: A Match Made in Heaven
Lyn Hopson and Lesley Hurworth - Local Book Award: A Match Made in Heaven
 
hopen.data logo
hopen.data logohopen.data logo
hopen.data logo
 
Sabin Buraga: Open Web Application Development, Mozilla, and You
Sabin Buraga: Open Web Application Development, Mozilla, and YouSabin Buraga: Open Web Application Development, Mozilla, and You
Sabin Buraga: Open Web Application Development, Mozilla, and You
 
當下即知:城市脈動與巨量資料 Big Data
當下即知:城市脈動與巨量資料 Big Data當下即知:城市脈動與巨量資料 Big Data
當下即知:城市脈動與巨量資料 Big Data
 
Recicla l’Escola
Recicla l’EscolaRecicla l’Escola
Recicla l’Escola
 

Similaire à Game computing: inginerie

Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...Sabin Buraga
 
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de cazCLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de cazSabin Buraga
 
Incursiune prin... interactiunea om-calculator
Incursiune prin... interactiunea om-calculatorIncursiune prin... interactiunea om-calculator
Incursiune prin... interactiunea om-calculatorSabin Buraga
 
Interactiune om-calculator -- Prezentarea programului (la nivel de desktop)
Interactiune om-calculator -- Prezentarea programului (la nivel de desktop)Interactiune om-calculator -- Prezentarea programului (la nivel de desktop)
Interactiune om-calculator -- Prezentarea programului (la nivel de desktop)Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #7): Proiectarea apli...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #7): Proiectarea apli...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #7): Proiectarea apli...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #7): Proiectarea apli...Sabin Buraga
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...Sabin Buraga
 
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de cazCLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de cazSabin Buraga
 
Open Data in contextul Web 3.0
Open Data in contextul Web 3.0Open Data in contextul Web 3.0
Open Data in contextul Web 3.0Sabin Buraga
 
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...Sabin Buraga
 
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...Sabin Buraga
 
Dezvoltarea jocurilor Web (o introducere)
Dezvoltarea jocurilor Web (o introducere)Dezvoltarea jocurilor Web (o introducere)
Dezvoltarea jocurilor Web (o introducere)Sabin Buraga
 
Design (Web) responsiv
Design (Web) responsivDesign (Web) responsiv
Design (Web) responsivSabin Buraga
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSabin Buraga
 
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...Sabin Buraga
 
Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Sabin Buraga
 
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Sabin Buraga
 
Ce înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebCe înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebSabin Buraga
 

Similaire à Game computing: inginerie (18)

Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #1): Interacţiune Web...
 
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de cazCLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
CLIW 2014—2015 (1/12): Interacţiune Web: concepte, context, studii de caz
 
Incursiune prin... interactiunea om-calculator
Incursiune prin... interactiunea om-calculatorIncursiune prin... interactiunea om-calculator
Incursiune prin... interactiunea om-calculator
 
Interactiune om-calculator -- Prezentarea programului (la nivel de desktop)
Interactiune om-calculator -- Prezentarea programului (la nivel de desktop)Interactiune om-calculator -- Prezentarea programului (la nivel de desktop)
Interactiune om-calculator -- Prezentarea programului (la nivel de desktop)
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #7): Proiectarea apli...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #7): Proiectarea apli...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #7): Proiectarea apli...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #7): Proiectarea apli...
 
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #3): Design Web. Inte...
 
Ss1
Ss1Ss1
Ss1
 
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de cazCLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
CLIW 2015-2016 (1/13) Interacțiune Web: concepte, context, studii de caz
 
Open Data in contextul Web 3.0
Open Data in contextul Web 3.0Open Data in contextul Web 3.0
Open Data in contextul Web 3.0
 
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
Dezvoltarea aplicațiilor Web (11/12): Inginerie ontologică: Management de cun...
 
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
CLIW 2017-2018 (1/12) Interacţiune Web: de la concepte & utilizabilitate la d...
 
Dezvoltarea jocurilor Web (o introducere)
Dezvoltarea jocurilor Web (o introducere)Dezvoltarea jocurilor Web (o introducere)
Dezvoltarea jocurilor Web (o introducere)
 
Design (Web) responsiv
Design (Web) responsivDesign (Web) responsiv
Design (Web) responsiv
 
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor WebSTAW 01/12: Arhitectura aplicaţiilor Web
STAW 01/12: Arhitectura aplicaţiilor Web
 
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
CLIW 2014—2015 (3/12): Design Web. Interacţiune, utilizabilitate & metodologi...
 
Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)Dezvoltator Web?! (varianta 2015)
Dezvoltator Web?! (varianta 2015)
 
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
Dezvoltarea aplicațiilor Web (1/12): Dezvoltarea de aplicaţii Web: Concepte &...
 
Ce înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator WebCe înseamnă să fii dezvoltator Web
Ce înseamnă să fii dezvoltator Web
 

Plus de Sabin Buraga

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSabin Buraga
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.Sabin Buraga
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSabin Buraga
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSabin Buraga
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSabin Buraga
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)Sabin Buraga
 

Plus de Sabin Buraga (20)

Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturaleWeb 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 01/12: World Wide Web – aspecte arhitecturale
 
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebWeb 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
 
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebWeb 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
 
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
 
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
 
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelWeb 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
 
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
 
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
 
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma RESTWeb 2020 09/12: Servicii Web. Paradigma REST
Web 2020 09/12: Servicii Web. Paradigma REST
 
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
 
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
 
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeWeb 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
 
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţialeSTAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
 
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
 
STAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.jsSTAW 04/12: Programare Web: Node.js
STAW 04/12: Programare Web: Node.js
 
STAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului WebSTAW 05/12: Arhitectura navigatorului Web
STAW 05/12: Arhitectura navigatorului Web
 
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSTAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
 
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScriptSTAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
 
STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5STAW 08/12: Programare Web. Suita de tehnologii HTML5
STAW 08/12: Programare Web. Suita de tehnologii HTML5
 
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
 

Game computing: inginerie

  • 1. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga Facultatea de Informatică Universitatea “A.I.Cuza” Iaşi, România Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 2. Interacțiune om‐calculator 2.0 ingineria dezvoltării jocurilor Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 3. Interacțiune om‐calculator 2.0 Never show fools unfinished work. Michael Schrage Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 4. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 5. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 6. Interacțiune om‐calculator 2.0 Productivity Software Goals Game Goals Task completion Entertainment Eliminate errors Fun to beat obstacles External reward Intrinsic reward Outcome‐based rewards Process is its own reward Intuitive New things to learn Reduce workload Increase workload Assumes technology needs Assumes humans need to be humanized to be challenged Lazzaro & Keeker, 2004 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 7. Interacțiune om‐calculator 2.0 Game creative design vs. game software design cerințe, procese, așteptări diferite Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 8. Interacțiune om‐calculator 2.0 Game creative design Game software design Livrabile: documente privind  Livrabile: descrieri ale  proiectarea (producerea)  etapelor/proceselor de  artefactelor creative  proiectare a software‐ului  ale jocului ce va fi dezvoltat de tip joc Analog planului de producție  Specific dezvoltării de  a unui film software tradițional Oferă viziunea artistică  Reduce caracteristicile jocului  a jocului la un set de cerințe specifice Implică dezvoltarea  Specifică maniera de  software‐ului aferent implementare a cerințelor adaptare după (John P. Flynt & Omar Salem, 2005) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 9. Interacțiune om‐calculator 2.0 Caracter interdisciplinar al colectivelor de dezvoltatori Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 10. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 11. Interacțiune om‐calculator 2.0 Abordări (Michael Mateas & Jim Whitehead, 2007): focalizate pe aspecte tehnologice (computer science, maths) interdisciplinare focalizate pe factori artistici (artistic design, visual arts) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 12. Interacțiune om‐calculator 2.0 Necesitatea folosirii diverselor studiilor de caz (use cases) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 13. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 14. Interacțiune om‐calculator 2.0 Recurgerea la aplicații, API‐uri, biblioteci,  instrumente, componente etc. specializate implică variate cunoștințe ale diverselor arii din computer science Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 15. Interacțiune om‐calculator 2.0 conform John P. Flynt, Omar Salem, Software Engineering  for Game Developers, Thomson, 2005 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 16. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 17. Interacțiune om‐calculator 2.0 Livrabile:  software requirements specification (SRS) + use cases traceability matrix test plan Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 18. Interacțiune om‐calculator 2.0 Informații ce pot fi folosite în stabilirea cerințelor: utilizatorii‐țintă ai jocului experiențele anterioare în dezvoltarea de jocuri aspectele privind designul grafic & marketingul jocurile ce pot fi modificate (mods) pentru a crea noul joc existența proiectanților și nivelul lor de cunoștințe structura echipei de programatori Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 19. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 20. Interacțiune om‐calculator 2.0 Un aspect important este stilul/genul jocului ce va fi dezvoltat (Rollings & Morris, 2004): Action—lots of frantic button pushing Adventure—the story matters Strategy—nontrivial choices Simulation—optimization exercises Puzzle—hard analytic thinking Toys—software you just have fun with Educational—learning by doing Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 21. Interacțiune om‐calculator 2.0 Cele mai bune practici în specificarea cerințelor: completitudinea corectitudinea considerarea doar a cerințelor necesare fezabilitatea stabilirea priorităților eliminarea ambiguităților verificarea & validarea managementul Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 22. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 23. Interacțiune om‐calculator 2.0 Dezvoltarea jocului recurge la o documentație de proiectare  game design document sumarul jocului: game summary narațiunea jocului (sixty‐seconds‐of‐play sequence): play narrative Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 24. Interacțiune om‐calculator 2.0 Exemplu de sumar al unui joc (John Rose): “Ankh follows the quest for vengeance undertaken by Sekhem,  an Egyptian warrior determined to destroy those who defeated and  killed his father. The game focuses on the battles fought by Sekhem and his party of rebel warriors on their journey to the Egyptian capital of  Thebes. These conflicts escalate from skirmishes to bloody clashes as  the band of adventurers cross the desert sands of ancient Egypt.  Along the way, additional characters join the band and new enemies  attempt to stop Sekhem’s advance. Interaction involves tactical control  of the small army during Ankh’s many mêlées, including strategic  maneuvers, hand‐to‐hand combat, and spell casting.” Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 25. Interacțiune om‐calculator 2.0 Exemplu de sumar al unui joc (John Rose): “The player is faced with winning battle after glorious battle, driving  Sekhem toward his final confrontation with Uheset, the bloodthirsty  Queen of Egypt. Conflicts take place in real time, stressing the tactical  and chaotic aspect of warfare. Each level possesses its own ambiance  and strategy, from the barren plains of Thebes to the lush splendor of  the Dashur gardens. The graphics of Ankh illustrate the varied and  stylish architecture and landscapes of ancient Egypt. The game’s music  varies from haunting chants to blood‐quickening battle drums.  All aspects of the game’s art and sound immerse the player  in the primal rage of ancient warfare.” Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 26. Interacțiune om‐calculator 2.0 Deducții pornind de la sumarul jocului: un unic personaj – Sekhem – corespunzând utilizatorului celelalte personaje sunt inamici simulați de software (NPCs) există un voiaj ce implică crearea unor scene  în care vor avea loc conflicte armate (bătălii) stilul artistic al jocului este unul antic Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 27. Interacțiune om‐calculator 2.0 Tipul jocului este un RPG de strategie Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 28. Interacțiune om‐calculator 2.0 Descriere (Flynt & Salem, 2005): “Ankh is a single‐player turn‐based strategy game.  The game incorporates features that are common to  PC games, but it also introduces a variety of innovations:  advanced resource management, the use of map and  character editors, saving/loading of game states.” Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 29. Interacțiune om‐calculator 2.0 Fiecare componentă este referită prin termenul stripe specificând atât structura/tipul componentei din punct de  vedere software – e.g., clase, obiecte COM, servicii Web,…  –,  cât și locul în care dezvoltarea componentei îl ocupă  în ciclul de dezvoltare a jocului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 30. Interacțiune om‐calculator 2.0 Componente funcționale preliminarii, detaliate în secțiunea  Functional Requirements Component View: Stripe 1: Game Opening 2a: Tile Map, 2b: GUI Elements, 2c: Map Editor, 2d: Save Level,  3: Level Template (modeled on 1st level), 4: Character Editor,  5: Game Physics, 6: Inventory, 7: Combat, 8: Skills,  9: Outside World Management, 10: Skills Interface, 11: AI,  12: Remaining Levels, 13: Saving & Loading, 14: Options, 15: Revisions Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 31. Interacțiune om‐calculator 2.0 User Characteristics: jocul este destinat utilizatorilor de orice vârstă Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 32. Interacțiune om‐calculator 2.0 Assumptions & Dependencies: jocul poate fi rulat după instalare via programul livrat pe CD necesită DirectX 9.c pe un sistem Pentium IV sau echivalent,  placă grafică având suport pentru Direct3D,  rezoluție: 1024x768, TrueColor,  interacțiune via mouse & tastatură la cererea utilizatorului, pot fi efectuate actualizări online Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 33. Interacțiune om‐calculator 2.0 Primary List of Functional Requirements (fragment): <R1> Software shall have the capability to save the game state <R2> Software shall have the capability to return to a saved state  by loading a file <R5> Software shall have an auto‐save feature that automatically saves  the game constantly <R6> Software shall have a timer mechanism that will flush memory  to disk periodically (every S seconds) <R7> Software shall provide the option to save a Replay after a battle <R11> Software shall allow the player to play back at variable speeds … Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 34. Interacțiune om‐calculator 2.0 Functional Requirements Component View (fragment): Stripe 1: Opening – requirements 8, 14‐18, 38, 57 Stripe 2b: GUI Objects – requirements 18, 52 … Stripe 2d: Save Level – requirement 4 … Stripe 10: Skills – requirements 14‐21 Stripe 11: AI – requirements 24‐26, 37 … Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 35. Interacțiune om‐calculator 2.0 Design Constraints: constrângerile de proiectare iau în calcul  disponibilitatea, securitatea, mentenabilitatea jocului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 36. Interacțiune om‐calculator 2.0 exemplu de use case Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 37. Interacțiune om‐calculator 2.0 Use case‐urile pot fi folosite pentru a facilita descrierea scopului jocului, conform descrierii narative Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 38. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 39. Interacțiune om‐calculator 2.0 Software Design Specification: ipostazele jocului (sistemului) sunt prezentate via view‐uri desemnate de diagrame UML ori de liste requirements conceptual behavioral logical component Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 40. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 41. Interacțiune om‐calculator 2.0 De la un scenariu descris de un use case  la interacțiuni inter‐obiecte Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 42. Interacțiune om‐calculator 2.0 Documentația de specificare a designului jocului are structura unui document de tip SDD (Software Design Document): 1. Introduction: purpose, scope, definitions & acronyms 2. References 3. Conceptual view: use case, diagram,… 4. Behavioral view: object diagrams 5. Logical view: class diagrams 6. Component view: diagrams 7. Deployment view Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 43. Interacțiune om‐calculator 2.0 conceptual view – exemplificare Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 44. Interacțiune om‐calculator 2.0 component view – componentele implicate în acțiunea de deplasare a unui personaj de joc Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 45. Interacțiune om‐calculator 2.0 component view – exemplificare la nivel de stripe Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 46. Interacțiune om‐calculator 2.0 Aspecte de considerat la redactarea documentului de design: Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 47. Interacțiune om‐calculator 2.0 Structura generală a unui game design document (Rouse, ‘05) Table of Contents  Introduction/Overview  Game Mechanics  Artificial Intelligence  Game Elements  Story Overview  Game Progression  System Menus Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 48. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 49. Interacțiune om‐calculator 2.0 Șabloane comune ce pot fi aplicate la dezvoltarea de jocuri: Singleton Composite Chain of Responsibility State Strategy Observer Façade Memento Command Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 50. Interacțiune om‐calculator 2.0 Recurgerea la Strategy pattern pentru a simplifica schimbările  de atitudine la personajele de tip NPC: Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 51. Interacțiune om‐calculator 2.0 Command pattern pentru implementarea comenzilor: Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 52. Interacțiune om‐calculator 2.0 Proiectarea iterativă (iterative design) uzual, are loc la nivel de fiecare stripe  de la stabilirea cerințelor la componente Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 53. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 54. Interacțiune om‐calculator 2.0 activitățile realizate la o iterație la nivel de stripe Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 55. Interacțiune om‐calculator 2.0 Exemplu de proiectare vizuală a stripe‐ului Level Template Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 56. Interacțiune om‐calculator 2.0 Exemplu de proiectare a personajelor Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 57. Interacțiune om‐calculator 2.0 Reguli de proiectare a jocurilor puzzle (Rollings & Morris, ‘04) Don’t be too cute Avoid “serious” violence Keep it abstract, but not too abstract Give rewards for progress exemplu de succes: Lemmings Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 58. Interacțiune om‐calculator 2.0 Componente (subsisteme) primare (Rollings & Morris, ‘04): User interface Bidirectional event handler Data engine (graphics, level, miscellaneous data) Dynamics system (collisions and general physics) Logic engine (the heart of the game) Graphics engine Sound engine Hardware abstraction layers (interfaces with graphics, sound, and controller hardware) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 59. Interacțiune om‐calculator 2.0 Subsisteme secundare: Game configuration system Menuing system Online instructions and help system Music system Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 60. Interacțiune om‐calculator 2.0 Criterii de reutilizare a componentelor/bibliotecilor existente: disponibilitate corectitudine actualitate utilizare imediată mentenabilitate licențiere compatibilitate Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 61. Interacțiune om‐calculator 2.0 Software engineering risk assessment prevenirea, reducerea, managementul (controlul)  problemelor critice Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 62. Interacțiune om‐calculator 2.0 Risc extern Risc intern Probleme legale  Timpul alocat dezvoltării jocului (copyright, licentiere,…) Prețul jocului Structura colectivelor implicate în dezvoltare Drepturi (royalties) acordate Gradul de inovare tehnică dezvoltatorilor & altora Costul punerii la dispoziția  Gradul de creativitate artistică consumatorului Timp alocat marketing‐ului Tipul tehnologiilor implicate Suportul organizațional Maniera de înțelegere a cerințelor Atingerea stadiului de maturitate  Metodologia de dezvoltare  dorit adoptata Susținătorii proiectului Alte tipuri de risc Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 63. Interacțiune om‐calculator 2.0 Aspecte de interes privind riscurile externe: finanțarea suportul la nivel de organizație resursele disponibile – e.g., transport suportul acordat clienților (customer support) creativitatea – e.g., artiști grafici, suport muzical & vocal,… Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 64. Interacțiune om‐calculator 2.0 Aspecte de interes privind riscurile interne: echipamentele (logistica) membrii echipelor de dezvoltatori tehnologia – e.g., cea de ultimă oră inspirația (creative input) durata de dezvoltare a produsului Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 65. Interacțiune om‐calculator 2.0 Depinde de scopuri exemple tipice: reduce lost productivity increase productivity increase opportunities for aesthetic expression increase opportunities for technical innovation create a safer environment for experimentation reduce the number of errors the game has when it ships add to the quality of the development experience Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 66. Interacțiune om‐calculator 2.0 Paradigma clasică (Robert N. Charette, 1989) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 67. Interacțiune om‐calculator 2.0 conform Andrew Rollings & Dave Morris,  Game Architecture and Design: A New Edition, New Riders, 2004 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 68. Interacțiune om‐calculator 2.0 Poate fi divizată în activități de verificare, validare & explorare Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 69. Interacțiune om‐calculator 2.0 Planificarea fazelor testării jocului (Flynt & Salem, 2005) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 70. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 71. Interacțiune om‐calculator 2.0 Planificarea dezvoltării unui joc Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 72. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 73. Interacțiune om‐calculator 2.0 Jucătorul poate avea la dispoziție un ghid de utilizare strategy guide oferă descrierea interacțiunii cu jocul,  inclusiv regulile & maniera de jucat aspecte ce trebuie menționate:  skills, key combinations, options, characters, character  powers, effects, spells, healing, maps of levels, help etc. Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 74. Interacțiune om‐calculator 2.0 modelarea la nivel înalt a unor jocuri crearea unui joc simplu de tip MMORPG dezvoltarea unui joc sportiv de simulare pentru vârstnici Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 75. Interacțiune om‐calculator 2.0 Modelarea jocurilor Pong & Pac‐Man problemă: cum pot fi modelate entitățile unui joc? A. Rollings & D. Morris, Game Architecture and Design:  A New Edition, New Riders, 2004 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 76. Interacțiune om‐calculator 2.0 Orice joc interacționează cu măcar 1 jucător uman Toate jocurile prezintă elemente discrete – numite tokens – manipulate (in)direct de jucător Token‐urile sunt gestionate intern de software Conceptual, un joc poate fi descris în termeni de jucători + token‐uri Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 77. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 78. Interacțiune om‐calculator 2.0 Token‐urile pot fi clasificate specificarea unei ierarhii cazul Pong Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 79. Interacțiune om‐calculator 2.0 Pot exista diverse interacțiuni între token‐uri – e.g., coliziuni – ce sunt specificate uzual via token interaction matrix interacțiuni simetrice versus interacțiuni asimetrice Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 80. Interacțiune om‐calculator 2.0 Anumite interacțiuni pot conduce la producerea  unor evenimente ce vor fi tratate la nivel de cod Interacțiunile dintre diverse token‐uri pot fi simplificate  dacă se recurge la token‐uri intermediare  (e.g., însăși lumea jocului, agenți cu rol de broker‐i etc.) Comportamentul token‐urilor poate fi descris via automate Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 81. Interacțiune om‐calculator 2.0 modelarea comportamentului NPC‐urilor de tip ghost la Pac‐Man Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 82. Interacțiune om‐calculator 2.0 automatul specific token‐ului reprezentând lumea jocului (world game) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 83. Interacțiune om‐calculator 2.0 Crearea unui joc simplu de tip MMORPG ilustrează învățarea conceptelor de baze de date  via game development după o prezentare de Greg Wadley & Jason Sobell, The University of Melbourne, Australia în cadrul Academic Days 2007 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 84. Interacțiune om‐calculator 2.0 Un MMORPG este un sistem software informațional starea jocului se stochează central (pe un server) datele sunt persistente accesul la date este concurent utilizatorii posedă identități, trebuind să fie autentificați interacțiunea se realizează la client via o interfață‐utilizator Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 85. Interacțiune om‐calculator 2.0 Mediul (lumea) jocului poate fi modelat(ă) printr‐o matrice de locații, fiecare având diverse caracteristici jucătorii – umani sau generați de calculator – se pot deplasa  în cadrul caroiajului, putând concura unul cu celălalt Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 86. Interacțiune om‐calculator 2.0 99 100 Y, 1 to 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 X, 1 to 10 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 87. Interacțiune om‐calculator 2.0 Folosind o imagine de fundal, poate fi realizat designul vizual Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 88. Interacțiune om‐calculator 2.0 Locația curentă a jucătorului va trebui redată diferit Etichetele specifică sănătatea & punctajul curent Via diverse mijloace de interacțiune, vor fi afișate obiectele  aflate în posesia fiecărui jucător + mesajele jocului Se oferă și posibilitatea de a observa/interacționa cu alți jucători Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 89. Interacțiune om‐calculator 2.0 proiectare & implementare minimală a interfeței jocului (aplicația‐client la nivel de desktop) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 90. Interacțiune om‐calculator 2.0 modelarea datelor via tabele Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 91. Interacțiune om‐calculator 2.0 Partea de procesare e implementată de proceduri stocate facilitează accesul la date (concurența este rezolvată pe baza tranzacțiilor) descriu comportamentul fiecărui control de interfață  pot fi apelate periodic via un timer existent la client Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 92. Interacțiune om‐calculator 2.0 Procedure Inputs Outputs spLogin PlayerName, Password 1 row from Player table spMovePlayerTo PlayerId, X, Y ‘Success’ = 1 or 0 spGetPlayer PlayerId Player and room details spGetItems RoomId list from Item table spGetPlayers PlayerId, RoomId list from Player table spGetInventory PlayerId list from Item table spPickUpItem PlayerId, ItemId (none) spDropItem PlayerId, ItemId (none) spAttack PlayerId, VictimId, ItemId Message about damage spGetAllPlayers (none) list of PlayerId, PlayerName spAddChat Text, PlayerId1, PlayerId2 (none) spGetChat PlayerId list of PlayerName, ChatText spAddEvent PlayerId, EventDetail (none) spLogout PlayerId (none) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 93. Interacțiune om‐calculator 2.0 spMovePlayerTo (@PlayerID integer, @NewX integer, @NewY integer) IF EXISTS (SELECT * FROM Room WHERE X=@NewX AND Y=@NewY) BEGIN UPDATE Player SET RoomID = (SELECT RoomID FROM Room WHERE X=@NewX AND Y=@NewY) WHERE PlayerID = @PlayerID SELECT 1 As 'Success' END ELSE SELECT 0 As 'Success' Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 94. Interacțiune om‐calculator 2.0 Fiecare acțiune a unui jucător afectează vizualizarea datelor de către ceilalți utilizatori Starea jocului poate fi specificată via modele simple de date: jucători, obiecte, evenimente,… Recurgând la un sistem de baze de date,  se poate simplifica problema accesului concurent Separarea clară a prezentării de procesare & stocare a datelor Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 95. Interacțiune om‐calculator 2.0 Această abordare este folosită și de jocurile comerciale “Almost nothing about any object in Age of Empires is hard coded  into the program. Huge tables of information describe  every characteristic of every object that appears in the game.  The game designers used a system of over 40 Paradox database tables to control and shape the game. As a result, they were able to constantly  update and tweak the game, and then test their changes  without having to involve a programmer.” Game Developer Magazine, martie 1998 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 96. Interacțiune om‐calculator 2.0 Dezvoltarea unui joc de simulare  dedicat persoanelor vârstnice – Pentanque procesul de proiectare este controlat de utilizatorii finali: human‐driven design process Vero Vanden Abeele et al.,  A Soft Approach to Computer Science: Designing & Developing  Computer Games for and with Senior Citizens, 2006 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 97. Interacțiune om‐calculator 2.0 1. Ethnographic Observations 5. Evaluation 2. Participatory 4. Development Design 3. Presentation of Concepts Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 98. Interacțiune om‐calculator 2.0 Specificarea caracteristicilor jocului: sports‐simulation 2 players intuitive, consistent controls not competitive, but “feel good” practice and play modes visual and auditory explanations compose a team of unique characters with individual skills consistent 2D and 3D, with matching sound Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 99. Interacțiune om‐calculator 2.0 Instrument de dezvoltare: Virtools (Dassault Systems) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 100. Interacțiune om‐calculator 2.0 Prototipizare timpurie în vederea testării de către utilizatorii finali Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 101. Interacțiune om‐calculator 2.0 Stadiul actual al industriei jocurilor (Rollings & Morris) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 102. Interacțiune om‐calculator 2.0 Posibil model viitor (Rollings & Morris) Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 103. Interacțiune om‐calculator 2.0 Un tot mai mare accent pus pe jocuri sociale disponibile la nivel de Web & de dispozitive mobile social game computing Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 104. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 105. Interacțiune om‐calculator 2.0 game computing aspecte privind ingineria dezvoltării de jocuri Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco
  • 106. Interacțiune om‐calculator 2.0 Dr. Sabin‐Corneliu Buraga – www.purl.org/net/busaco