A general view regarding Web game development, including most important aspects, architecture, and examples. This presentation is written in Romanian language.
For more details, see http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
10. Dr.SabinBuragawww.purl.org/net/busaco
“A game is a form of art in which participants,
termed players, make decisions in order to
manage resources through game tokens
in the pursuit of a goal.”
Greg Costikyan
11. Dr.SabinBuragawww.purl.org/net/busaco
“A game is a system in which players engage
in an artificial conflict, defined by rules,
that results in a quantifiable outcome.”
Katie Salen & Eric Zimmerman
12. Dr.SabinBuragawww.purl.org/net/busaco
“Game design is the process by which
a game designer creates a game, to be encountered
by a player, from which meaningful play emerges.”
Katie Salen & Eric Zimmerman
Rules of Play: Game Design Fundamentals,
MIT Press, 2004
14. Dr.SabinBuragawww.purl.org/net/busaco
număr de jucători
solitare ori în grup (echipă)
scop
câştig (gambling), dobândire de skill-uri,…strategie
obiectiv
scor maxim, primul clasat, top 10, unic supravietuitor,…
tematică
racing, lingvistice, deducţie, sportive, acţiune etc.
mijloc/echipament
tablă, teren, consolă, mediu virtual etc.
categorie de jucători
copii, adulţi, persoane cu nevoi speciale
17. Dr.SabinBuragawww.purl.org/net/busaco
Alte tipuri clasice
card games – precum Bridge, Hearts, Poker, Whist,…
chance games – Bingo, Lottery, Roulette
dice games
paper & pencil – de exemplu, Tic-tac-toe (X & 0)
puzzles
target games – e.g., Bowling, Darts, Paintball
tile games – de exemplu, Mah Jongg
18. Dr.SabinBuragawww.purl.org/net/busaco
Jocuri electronice
se bazează pe un mijloc electronic
(arcade machine, dispozitiv miniaturizat, sistem
conectat la TV, computer, dispozitiv mobil,…)
pentru a facilita desfășurarea unuia sau
mai multor jocuri cu oponenţi umani
și/sau contra calculatorului
21. Dr.SabinBuragawww.purl.org/net/busaco
Stiluri/genuri de jocuri electronice
(Rollings & Morris, 2004)
Acțiune lots of frantic button pushing
Aventură the story matters
Strategie non-trivial choices
Simulare optimization exercises
Puzzle hard analytic thinking
Amuzament software you just have fun with
Educațional learning by doing
22. Dr.SabinBuragawww.purl.org/net/busaco
Clasificare a jocurilor destinate dispozitivelor mobile
(Hojin Cho & Jin-Seok Yang, 2010)
mobile
game
stil de
jucat
turn-based
real-time
scenario-based
conec-
tivitate
permanenta
partiala
inexistenta
gen
arcade
jump & run
shooting
puzzle
fight
racing
simulare
construction
history
flight
strategie turn-based
real-time
hibridaRPG
32. Dr.SabinBuragawww.purl.org/net/busaco
puncte de vedere (POV – points of view)
first-person POV
jucătorul observă acţiunea prin “ochii” avatarului
third-person POV
utilizatorul poate vedea avatarul pe parcursul acţiunii
detalii in
supliment
39. Dr.SabinBuragawww.purl.org/net/busaco
utilizarea inteligenței artificiale
(Rouse, 2005)
provocarea jucătorului challenge the player
modelarea comportamentului NPC not do dumb things
realizarea impredictibilității be unpredictable
suport în derularea narațiunii assist storytelling
crearea unei lumi credibile create a living world
40. Dr.SabinBuragawww.purl.org/net/busaco
Clasificarea datelor (classification)
rețele neuronale, logici fuzzy, data mining etc.
Simularea sistemelor biologice (life systems)
algoritmi genetici, algoritmi sistolici,…
Găsirea drumului (pathfinding)
BFS, DFS, Dijkstra, euristici – e.g., metoda A*
Luarea de decizii (decision making)
automate, arbori de decizie, sisteme bazate pe reguli,…
48. Dr.SabinBuragawww.purl.org/net/busaco
Componente (sub-sisteme) primare ale unui joc
(Rollings & Morris, 2004)
User interface
Bidirectional event handler
Data engine (graphics, level, miscellaneous data)
Dynamics system (collisions & general physics)
Logic engine (the heart of the game)
Graphics engine
Sound engine
Hardware abstraction layers
(interfaces with graphics, sound & controller hardware)
51. Dr.SabinBuragawww.purl.org/net/busaco
Necesitatea unui nucleu (game kernel)
abordari:
vizand exclusiv clientul – uzual, navigatorul Web
single-threaded, monolithic
multi-threaded, co-operative/pre-emptive
(e.g., folosind WebWorkers)
adaptare dupa Marcin Chady (2011)
52. Dr.SabinBuragawww.purl.org/net/busaco
// bucla principala a unui joc Web
while (true) {
// preluam date de la utilizator si/sau de pe retea
input_data_from_user_and_network ();
// actualizam starea jocului (simulam lumea lui),
// inclusiv verificand conditiile de victorie/esec
simulate_game_world ();
// redam continutul vizual 2D ori 3D
render_content ();
// generam efecte sonore conform starii
generate_sound_effects ();
}
adaptare dupa Marcin Chady (2011)
53. Dr.SabinBuragawww.purl.org/net/busaco
Necesitatea unui nucleu (game kernel)
abordari:
recurgand la paradigma client/server
(Ajax/Comet, server-side events, WebRTC, paralelism,…)
exemple tipice:
jocuri multi-user, MMORPG
adaptare dupa Marcin Chady (2011)
58. Dr.SabinBuragawww.purl.org/net/busaco
Bucla principala de procesare:
pe baza interactiunii cu utilizatorul
si conform unor evenimente privind transferul de date
via retea/Web,
se actualizeaza starea jocului si
se genereaza un cadru (frame) de redare a continutului,
eventual anumite efecte sonore
adaptare dupa Marcin Chady (2011)
mouse, tastura, touch, webcam,…
Ajax/Comet, notificari,
WebSockets, WebRTC,…
JS clasic, WebWorkers,…
DOM, <canvas>,
<video>, SVG, WebGL,…
<audio>, WebAudio API
60. Dr.SabinBuragawww.purl.org/net/busaco
Alte activitati ce pot avea loc:
initializarea/terminarea aplicatiei
managementul la nivel inalt al starii jocului
(la nivel de client, in-game, paused)
controlul fluxului jocului la nivel global
actualizarea sub-sistemelor primare/secundare
adaptare dupa Marcin Chady (2011)
61. Dr.SabinBuragawww.purl.org/net/busaco
conceptualizarea jocului la nivel inalt
(high level game logic)
nucleul jocului
(game engine)
componente aditionale
(game frameworks & libraries)
sistem de redare
(rendering engine)
sistem audio
(audio engine)
grafica
(2D/3D graphics libs)
sunet
(low-level sound libs)
interactiune
I/O
platforma de executie
(browser Web)
infrastructura – cloud, masina virtuala, OS, hardware
64. Dr.SabinBuragawww.purl.org/net/busaco
Aspecte referitoare la ingineria jocurilor Web
flexibilitate – independenta de navigatorul Web,
maniere multiple de interactiune, responsive Web design
performanta – alocarea memoriei, flux de date, baterie,…
extindere – noi niveluri, personaje, scheme vizuale,…
scalabilitate – de pilda, in contextul jocurilor multi-user
securitate – e.g., acces la date personale, troieni Web etc.
maturitate software
66. Dr.SabinBuragawww.purl.org/net/busaco
D. Moore, No Tears Guide to HTML5 Games (2011)
http://www.html5rocks.com/en/tutorials/canvas/notearsgame/
A. Rodrigues, Build your First Game with HTML5 (2011)
http://net.tutsplus.com/tutorials/html-css-techniques/build-your-first-game-with-html5/
Gyrostorm, HTML5 Game Development Series (2012)
https://www.youtube.com/playlist?list=PL290A4D2398C97186
G. Rodsavas, How to Make A Simple HTML5 Game
with Enchant.js (2012)
http://www.raywenderlich.com/23370/how-to-make-a-simple-html5-game-with-enchant-js
Mozilla Game On Resources (2013)
https://gameon.mozilla.org/en-US/resources/
E. McGrath, Design A Mobile Game with HTML5 (2012)
mobile.smashingmagazine.com/2012/10/19/design-your-own-mobile-game/
tutoriale