Welcome, Guest. Please login or register.


Author Topic: Hogyan írjunk kalandjátékot? (Read 1205 times)

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 836
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Opera 12.17 Opera 12.17
    • View Profile
Re: Hogyan írjunk kalandjátékot?
« Reply #15 on: 2017.December.28. 23:23:09 »
De mondom, csak magamból kiindulva gondolom így. Pl. a pacman játékban is programozás közben is többször változtattam a pályát, itt is ilyesmi lenne. Na persze akinek megy, az előtte megtervezi az egész történetet és utána csak leprogramozza, ez nekem nem menne, közben is alakulna. És ehhez áttekinthetőbb, ha ott a térkép a programban és ott lehet egyszerűen módosítani.
Ebben a műfajban ez a fejlesztési stílus nagyjából az önt*k*nszúrás szintjén mozog. A parancsértelmezőt leszámítva egy szöveges kalandjátékban nincs szerintem semmi akár csak félig is érdekes programozni való. Amíg nincs meg a történet és a megoldás menete, addig felesleges hozzákezdeni az adatfeltöltéshez. Szerintem.

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 62.0.3202.94 Chrome 62.0.3202.94
    • View Profile
    • Honlapom
Re: Hogyan írjunk kalandjátékot?
« Reply #16 on: 2017.December.29. 00:12:04 »
Ebben a műfajban ez a fejlesztési stílus nagyjából az önt*k*nszúrás szintjén mozog. A parancsértelmezőt leszámítva egy szöveges kalandjátékban nincs szerintem semmi akár csak félig is érdekes programozni való. Amíg nincs meg a történet és a megoldás menete, addig felesleges hozzákezdeni az adatfeltöltéshez. Szerintem.

haha, ha tudnád hogy a magyar játékfejlesztésben ez az *nt*k*nszúrás az elterjedt fejlesztési stílus. :D :D :D azaz: semmit se tervezni meg, csak csinálni durrbele... :(
nem csoda hogy lassan kihal az összes magyar játékfejlesztő cég. ilyen módszerekkel nem lehet versenyezni a nyugattal... :(
szinte minden munkahelyemen brutális küzdelmem volt hogy megértessem: tervezni kell...
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8068
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 57.0 Firefox 57.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Hogyan írjunk kalandjátékot?
« Reply #17 on: 2017.December.29. 10:42:34 »
Az biztos, hogy könnyebb leprogramozni mindent, ha már előre megvan, milyen tárgyak lesznek és hol. De ez alakulhat közben is, lehetnek újabb ötletek, stb.
Belegondolva, ha sok művelet van egy kalandprogramban és ezek össze is függenek (pl. ha még nem volt a pincében, nem tudja kinyitni a padlásajtót), akkor nagyon sok változót, tömböt kell létrehozni. Pl. egy változó értéke 0-ról 1-re vált, ha a pincébe megy a krapek, a padlásnál pedig meg kell vizsgálni ennek a változónak az értékét, hogy 0 vagy 1, ettől függően engedi be.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 62.0.3202.94 Chrome 62.0.3202.94
    • View Profile
    • Honlapom
Re: Hogyan írjunk kalandjátékot?
« Reply #18 on: 2017.December.29. 11:47:10 »
én olyan rendszert csináltam amiben minden változó egységesítve volt. azaz a tárgyakat használtam változókra is. pl az 1-es tárgy egy kulcs. a 2-es tárgy nem tárgyként van használva, hanem valami flag, ami jelez valamit.

mindezt a miniscript rendszer kezeli. ennek az a lényege hogy az utasítások 1 betű, utána jön egy-két paraméter. tehát pl: "T0102-L01"

a játék minden történése ilyen utasításokkal van leírva, tehát a basic kód nem tartalmaz egyedi, csak az adott játékra vonatkozó if-then dolgokat.

a minisciptnek ilyen utasításai lehetnek:
U - utasítás. az utána írt szám. ezzel vizsgáljuk meg hogy milyen utasítást írt be.
u - az utasítás után írt második szó vizsgálata.
T - megadott tárgyat megadott pályára rakja
t - megvizsgálja hogy a megadott tárgy adott pályán van-e
M - üzenet kiírása

A következő miniscript például azt csinálja hogy ha beírtad hogy "VIZSGÁLD SZEKRÉNY" akkor megkaptad a benne lévő kulcsot és egy üzenetet:
U01-u10-t0199-T0200-M10

azaz
U01 : 1-es utasítás a VIZSGÁLD
u10 : 10-es szó a "SZEKRÉNY"
t0199 : a 01-es tárgy (kulcs) a 99-es pályán van? (99-es pálya jelzi hogy a szekrényben van még)
T0100 : tedd a 01-es tárgyat a 00-ás pályára (ami a játékos hátizsákja)
M10: írd ki a 10-es üzenetet ("A szekrényben találtál egy kulcsot.")

Vigyázat! Szektás vagyok! :)

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 62.0.3202.94 Chrome 62.0.3202.94
    • View Profile
    • Honlapom
Re: Hogyan írjunk kalandjátékot?
« Reply #19 on: 2017.December.29. 11:49:05 »
itt a mutant test kódjából egy kis részlet, láthatóak a miniscriptek.
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8068
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 57.0 Firefox 57.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Hogyan írjunk kalandjátékot?
« Reply #20 on: 2017.December.29. 12:06:35 »
M10: írd ki a 10-es üzenetet ("A szekrényben találtál egy kulcsot.")
Minden egyes művelethez külön van mondat? Attól jó hosszú a kód. Én így csinálnám talán: A következőben kerestél: szekrény. Ezt találtad benne: kulcs. Ha a teljes mondat meg van adva, oké, csak hosszú minden lehetséges művelethez külön mondatot írni. Vagy pedig figyelni kell, hogy a kulcs végére azt írja, hogy "ot", a "könyv" végére meg "et". Tudom, ennek most nem ez volt a lényege, de akkor te az összes lehetséges mondatot letároltad mondatonként, amiket a gép kiírhat?
Ennyiből egyszerűbb angolra csinálni meg, mert akkor nem kell figyelni, hogy "kulcsot", de már nem "könyvot".
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 62.0.3202.94 Chrome 62.0.3202.94
    • View Profile
    • Honlapom
Re: Hogyan írjunk kalandjátékot?
« Reply #21 on: 2017.December.29. 12:28:27 »
Minden egyes művelethez külön van mondat? Attól jó hosszú a kód. Én így csinálnám talán: A következőben kerestél: szekrény. Ezt találtad benne: kulcs. Ha a teljes mondat meg van adva, oké, csak hosszú minden lehetséges művelethez külön mondatot írni. Vagy pedig figyelni kell, hogy a kulcs végére azt írja, hogy "ot", a "könyv" végére meg "et". Tudom, ennek most nem ez volt a lényege, de akkor te az összes lehetséges mondatot letároltad mondatonként, amiket a gép kiírhat?
Ennyiből egyszerűbb angolra csinálni meg, mert akkor nem kell figyelni, hogy "kulcsot", de már nem "könyvot".

sosem foglalkoztam azzal hogy magyarul helyes legyen, mert akkor ennek a lekezelése bonyolultabb lenne mint az egész játék :D (sokkal!)
kezelhetőbb, egyszerűbb, felhasználóbarátabb a "vizsgál szekrény" és társai :)
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 8068
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 57.0 Firefox 57.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Hogyan írjunk kalandjátékot?
« Reply #22 on: 2017.December.29. 16:31:37 »
sosem foglalkoztam azzal hogy magyarul helyes legyen, mert akkor ennek a lekezelése bonyolultabb lenne mint az egész játék :D (sokkal!)
Érdekes kihívás lenne ezt is megcsinálni. Az a vicc, a Facebook még mindig nem tud ragozni rendesen, a múltkor is volt valami "könyvot"-hoz hasonló szó.

Az aktuális szobát hogyan tárolod? Mint a karakteres képernyőn X és Y koordinátában?
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 62.0.3202.94 Chrome 62.0.3202.94
    • View Profile
    • Honlapom
Re: Hogyan írjunk kalandjátékot?
« Reply #23 on: 2017.December.29. 17:14:29 »
Érdekes kihívás lenne ezt is megcsinálni. Az a vicc, a Facebook még mindig nem tud ragozni rendesen, a múltkor is volt valami "könyvot"-hoz hasonló szó.

Az aktuális szobát hogyan tárolod? Mint a karakteres képernyőn X és Y koordinátában?

a pálya csak 1 szám, nem kell x y térben gondolkodni.

amúgy, vannak olyan szövegesek is ahol nem kell beírni a szöveget hanem menüből választani (mondjuk a mutant test is ilyesmi).
pl ebben még ügyesnek is kell lenni hogy elkaphassuk a megfelelő szót :D
https://youtu.be/p-HBvzvIWLo?t=1710
Vigyázat! Szektás vagyok! :)

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 836
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Opera 12.17 Opera 12.17
    • View Profile
Re: Hogyan írjunk kalandjátékot?
« Reply #24 on: 2017.December.29. 17:33:08 »
Az aktuális szobát hogyan tárolod? Mint a karakteres képernyőn X és Y koordinátában?

Ha akarod, elképzelheted az egészet egy DATA sorokba rögzített listaként, ahol mondjuk minden helyhez tartozik egy sor, ami meghatározza, hogy az adott helyet megadott irányba el lehet-e hagyni, illetve az adott irányban hová jutsz. Például van 100 helyszíned, egytől százig sorszámozva. Ekkor lesz száz DATA sorod, amik mondjuk tartalmazzák sorban az északi, észak-keleti, keleti, dél-keleti, déli, dél-nyugati, nyugati és észak-nyugati irányba, valamint a felfelé és lefelé eső szomszédos helyek sorszámát, illetve mondjuk nullát, ha az adott irány tiltott.