Skip to content

Instantly share code, notes, and snippets.

@tmichel
Last active December 25, 2015 11:49
Show Gist options
  • Save tmichel/6972145 to your computer and use it in GitHub Desktop.
Save tmichel/6972145 to your computer and use it in GitHub Desktop.
Kir-Dev demó ötletek

Kir-Dev demó ötletek

Ide gyűjtjük össze a kivonulós demóval kapcsolatos ötleteket. Újat javasolni a következőképpen lehet:

  • clone-zd le ezt a gistet
  • módosítsd
  • küld el nekem a (tomi.michel [majomfarka] gmail [pont] com) a diffet

Multiplayer tower defense

Pont az, amit a neve sugall. Egy pályán több játékos tower defense szerű játékot játszik. Tehát meghatározott összegért lehet különféle tornyokat letenni, amik különböző képességekkel és támadóerővel bírnak. A megölt ellenségekért pénzt kap a játékos, amit aztán új tornyokra vagy a meglévő tornyok fejlesztésére költhet. Ahogy egyre több játékos száll be, úgy egyre több ellenség jön egy körben, így izgalmas marad a játék akkor is, ha sokan játsszák.

A játékosok csak a pálya megfelelő szakaszára tehetnek le tornyokat. A felosztás lehet statikus (így csak meghatározott számú játékos játszat) vagy dinamikus (szerintem ez a jobb), azaz újra osztjuk a pályát, amikor egy új játékos lép be. Kérdés csak az, hogy a már meglévő és mindenféle alakban terjeszkedő tornyokat hogy kezeljük.

  • a területek lesznek amőba alakúak
  • átkerülnek a tornyok a terület új tulajdonosához
  • kis szigetek lesznek a másik területének közepén

Pro:

  • viszonylag egyszerű megvalósítani
  • a UI kevés grafikával is jól nézhet ki
  • többen lehet játszani
  • hosszabb időre is le tud kötni (saját tapasztalat alapján :))

Kontra:

  • több embert kell bevonzani, bár a kivonuláson résztvevő körtagok beszállhatnak helyettesítőként
  • kevésbé megközelíthető egy standnál, mert saját gép lenne az ideális
  • telefonra, érintőkijelzőre optimalizált UI-t nehéz megvalósítani
    • itt megoldás lehet, ha kontextus függő menük vannak:
    • ha üres helyre kattint, akkor építeni tud a beúszó menüben
    • ha egy toronyra kattint, akkor fejleszteni tud
  • a fejlesztési idő megcsúszhat, ha túlbonyolítjuk

Snake(s)

Egy többszereplős, multiplayer kígyós játék. Az irányítás mobil eszközökről történne, egy projektoron vagy nagyobb kijelzőn tudnánk kivetíteni. A játék lényege, hogy az egyes játékosok minél több ételt érjenek el és be tudják keríteni egymást. A játék akkor ér véget, ha csak egy játékos marad életben.

Pro:

  • kliensek: lehet websocket vagy fallback ajax POST-ra
  • kliensek: csak egyirányú kommunikáció (send to server), ha nem akarunk tactical feedbacket ;) (sajnos böngészőből kétlem, hogy mukodik)
  • megjelenítés csak egy helyen: ez már mehet akár websockettel a szerver<->megjelenítő eszköz között
  • nagyon egyszeru felulet

Kontra:

  • túl mainstream a kígyós játék
  • mivel realtime ki kell mérni, hogy milyen válaszidőkkel tudunk dolgozni, milyen minimális "lépésközt" tudunk biztosítani (szvsz. 5-800ms lenne az optimális lépésköz)
    • mobilnet vs. bme wlan esetén is

Asteroids (szerűség)

Az Asteroids http://en.wikipedia.org/wiki/Asteroids_(video_game) valószínűleg ismerős. A játék alapjait megtarthatnánk. Némileg fel lehetne turbózni a játékmenetet. Lehetne belőle multiplayert csinálni. Legegyszerűbben úgy, hogy a játékosok egymást is látják a pályán, és ugyanúgy lehet egymást is lőni, mint a többi tárgyat.

Ez talán mobilon is jól játszható. Canvas vagy svg lehetne a megvalósítás. Attól függ melyiket támogatják jobban a mobilok böngészői. A navigáció az egyetlen kérdés, de akár lehetne az is, hogy a telefont kell döntögetni, ha ilyen API elérhető js-ből mobilon. Bár a forgatást ez nem oldaná meg pedig az fontos eleme a játéknak.

Pro:

  • viszonylag egyszerű kinézet
  • multiplayer
  • könnyen megérthető és játszható
  • technológiailag lehet érdekes dolgokat belevinni:
    • pl canvas vagy svg

Kontra:

  • fejlesztési időben lehet, hogy megszívjuk vele
  • kérdéses, hogy milyen apikat biztosítanak a (mobil)böngészők
  • mobil és desktop irányítás is kell
  • a válaszidők kritikusak lehetnek

Autóverseny kockás(!!!) papíron

Még általános iskolásként játszottuk ezt a játékot. Végtelenül egyszerű és egy kockás papíron is vígan játszható, de ez a mi szempontunkból most érdektelen.

Szabályok

Rajzolunk egy pályát, ami kellően kanyargós. Általában nem körverseny, mert elég lassú a játékmenet. A pályán nyilakkal jelöljük az autókat. Minden körben egymás után lépnek a játékosok egy meghatározott (előre eldöntendő) sorrendben. Minden körben egy játékos egy négyzetrácsnyit gyorsíthat vagy lassíthat és/vagy egyet kanyarodhat. Tehát a lehetséges új úticélokat a következő algoritmussal találhatjuk meg:

Vegyük a legutolsó lépést reprezentáló vektor és nézzük meg hova mutat. Ez lesz a kiinduló pontunk. Adjuk hozzá önmagához, az ekkor kapott pont körüli 8 pont bármelyikére lehet lépni. Az álló kocsi sebessége értelemszerűen 0, így 1-re lehet felgyorsulni egy kör alatt. Az álló kocsi bármelyik irányba indulhat.

Egy koordinátán egyszerre csak egy játékos tartózkodhat, így ha "bevágnak" eléd, akkor kénytelen vagy kikerülni vagy lassítani. Egymásnak menni nem lehet. Ha kicsúszol a pályáról, akkora kicsúszásod koordinátájában újraindulhatsz, de a sebességed 0-ra csökken.

A játék célja egyértelműen elsőként beérni.

Pro:

  • egyszerűbb felület
  • körökre osztott, így nem számít a latency
  • többen is játszhatják egyszerre
  • esetleg mobilra is lehet értelmes felületet rittyenteni
  • "elvihető" a játék és lehet órán, otthon folytatni.

Kontra:

  • kicsit lassú játékmenet
  • picit hosszabb játékidő (min. 10-15 perc)
  • legalább 2 ember kell hozzá, AI-t írni érdekes lenne, de időkeretbe nem fér bele
  • szabályok nem teljesen triviálisak, de egy jó UI-jal lehet talán enyhíteni ezt.

Torpedó

Klasszikus torpedó játék. Azzal bolondítjuk meg, hogy több játékos játszik egyszerre a szokásos 1v1 helyett. A játékba akármikor be lehet szállni, úgy mint egy igazi csatába. Egyszerre csak egy csata van.

Van egy központi kivetítő, amin követhető a csata menete. A kivetítőn csak a már publikus információk láthatóak. Ilyenek például a lövések helyei és a már elsüllyedt hajók. Az egyes játékosokat külön színnel jelöljük. Valamint esetleg némi statisztika is lehet a kivetítőn:

  • az adott csatáról: kinek mennyi hajója van még, mennyit talált el
  • összesített: high score lista

A játék kiegyensúlyozása érdekében a játékosok nem helyezhetik el a hajóikat, hanem egy viszonylag véletlen elhelyezést kapnak. Sőt a később csatlakozó játékosok csak egy csökkentett hajókészletet kapnak, hogy ne legyen akkora előnyük. A hajókhoz egy pontszámot rendelünk, ami a méretüktől függ. Minél nagyobb annál könnyebb eltalálni, de annál több körig él. Ebből a két tényezőből kell egy pontszámot alkotni és az újonnan csatlakozó játékosok a már bent lévő játékosok állapotának megfelelő leosztást kap.

A pálya viszonylag nagy lesz, de azért limitált. Esetleg lehet a játékosok számát maximálni, hogy még értelmes maradjon a játék és a vaktában lövöldözés ne legyen annyira kifizetődő.

Játék irányításra kép opció:

  • Minden játékos látja a teljes pályát a saját kijelzőjén. Így tehát lényegében nem kell jelen lennie, mert így is tudja követni.
  • A játékosok csak egy csökkentett felületet látnak, amin a következő lövést tudják leadni, de közben a csata jelenlegi állapotát csak a központi kijelzőn tudják követni.

Talán a második opció egyszerűbb és jobban elszeparálja az egyes részeket, így könnyebb lehet mobilra optimalizálni.

A végső cél, hogy jól lehessen mobilról játszani. Egy egyszerűbb mobil kliensnél kivédhetjük a felmerülő technikai problémákat (pl websocket hiánya). A központi "kivetítő" meg úgyis egy desktop böngészőben fut majd, így ott rendelkezésünkre áll minden jó (pl websocket nem lesz akadály).

Pro:

  • egyszerű megvalósítás
  • egyszerű felülettel is lehet "killer app"
  • a szabályok triviálisak és mindenki ismeri
  • a központi kivetítő egységgel a legtöbb technológiai limitációt ki tudjuk védeni
  • ötletes feature-ökkel elbonyolítható, ha szükséges

Kontra:

  • nem túl eredeti

Torpedó játék

TODO: leírást átemelni

Megvalósítandó oldalak

  • megjelenítő
    • tisztán csak megjelenítés, nincs interakció
    • tábla, de csak publikus információ
    • számláló
    • kivan éppen soron (pl kiemelve az aktív játékosok listájában)
  • csatlakozó oldal
    • név
    • robot-e vagy
  • irányító oldal
    • ez a kritikus pont, valami fasza UI megoldás kell
    • legyen tabletről/mobilról is jól elérhető
    • lásd a saját hajóidat
    • a még potenciális helyeket, ahova lőni lehet
      • ehhez lehet, hogy kell majd valami ajax polling
      • felesleges a websocket
      • körönként egyszer frissít
  • faq/szabályok

Ötletek:

  • lesz timeout egy körre, ha túlléped, akkor lép helyetted a gép (randomra)
  • timeout mondjuk 30 s
  • játékszervezés
    • központi kivetítőn látszik, hogy ki jön éppen
    • a soronkövetkező lőhet
    • ha más megpróbál, akkor nem engedjük neki és sok rossz próbálkozás után büntethetünk is
  • legyen gépi játékos
    • buta AI: random lő, nem néz semmit
    • így akkor is látványos lesz a játék, akkor is ha épp nem játszik senki.
  • lehetne hall of fame -> high score tábla
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment