Game engine visualizer

Tags:    jquery css javascript flash

Hej Udviklere,

Jeg er i forb. med at lære et nyt programmerings sprog gået igang med at lave et lille spil hvor jeg faldt over en lille udfordring.

Jeg skal lave en 2d (set oppefra) fodbold kamp simulator. Jeg har en nogen lunde ide om hvordan min engine skal skrues sammen, det bliver noget med at kampene udregnes 1 time før de spilles eller noget, og så er dataen klar til at blive præsenteret til brugeren.

Jeg ville gerne undgå at bruge flash da jeg aldrig har udviklet i det før, men jeg respektere også at det fortsat er den førende flade til grafiske animationer osv.

Jeg forestiller mig lidt at en kamp bliver en lang string af events ala. event_id#team_id#player1#player2#player3||event_id#team_id#player1#player2#player3 osv.

Er her nogle som har leget med noget ala dette før? Skal jeg udregne positionering konstant eller kan man lave noget med at de blot løber til en position der hvor man eventen sker? Det bliver jo en massiv mængde data at gemme hvis jeg skal gemme positioner på samtlige spillere ved hvert event.

Any ideas appreciated!

/Frankie



3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Umiddelbart, eftersom det ligner at du vil implementerer det i JavaScript, vil jeg foreslå dig at præsentere din data i JSON, et elegant og bredt understøttet transport format, som er de-facto data standard for JavaScript. (Kig selv på det, jeg vil foreslå et array af events, med diverse data i et "event" object).

Altså om du skal udregne positioner handler vel om hvor meget data der ligger i dine "event" og hvad dine såkaldte "events" er? Hvis kampen skal være bare nogenlunde interessant at se på skal der jo, ligesom i rigtige kampe, være en del events. Det betyder vel at du bliver nød til at lave et event for hver spilning, for hver tackling, for hver skudforsøg osv. - altså rigtig meget data. Men hvis du har regnekraften til dette så vil jeg da sige at det lyder som et rigtig spændende projekt!

Jeg vil foreslå dig at kigge på enten <canvas> eller <svg> frameworket, hvoraf jeg umiddelbart ville foretrække Canvas API'et, til et FPS spil.

Du skal vel kun gemme positioner for spillerer der er impliceret i eventet, altså har en rolle. De andre kan du bare generere real-time, med lidt randomness og en "kom-ikke-for-tæt-på" algoritme? :)



Vil da nok anbefale dig at gå med plan b, da der nok ikke er mange fodboldnørder der vil se 2x45 min. simuleret computerspil, uden selv at kunne deltage. :)

Og hvis det så kun er highlights du viser, kan du nøjes med at forhåndsprogrammerer disse highligts. F.eks kan du tegne boldens forløb, og så vil alle spillere løbe mod bolden i en eller anden given hastighed ifht. til deres relevans til det område bolden er i. Enkelte spillere vil så løbe en anden retning eller stå stille hhv. grundet en taktik eller grundet holdets formation.



Ja havde også regnet med at bruge JSON. Der vil nemlig være rigtigt meget data.

Hvert hold har en standard formation så man kan evt lave noget med at det kun er de nærmeste spillere som forsøger at interagere lidt med spillet, og resten af holdet så forsøger at holde sig til formationen sådan nogen lunde hvertfald, måske lige med undtagelse af frispark, hjørne og andre defensive situationer.

Det vil nok tage lidt af data mængden af hvis man kan lave en algoritme til at styre det.

De events jeg taler om er som du siger alt fra pasninger, tacklinger, scoring, skudforsøg osv. Samtidigt skal der dog være hastighed involveret både på boldens fart, samt spilleren. Den tror jeg nu ikke bliver så slemt da det jo blot er at sætte hastigheden på animationen, dvs spiller x løber til punkt x,y på z antal sekunder.

En anden mulighed er blot at lave det som highlights så istedet for at udregne alt så kan man nøjes med at tage situationer omkring mål eller skudforsøg.. det er dog en plan-b for now :-)

Takker mange gange for dine idéer. Skal helt sikkert tage et kig på canvas. Ved også at der findes nogle jQuery game's api'er. Det kunne også være værd at se på :-)

Tager forsat imod forslag og idéer med kyshånd :-)



t