Suuntaa RPG asioissa
Suuntaa RPG asioissa
Njoo, elikkäs juttu on nyt sillee et tarttisin vähän apua parin jutskan kanssa . Kun näitä ropeja ny tännekki on tullu niin tahtoisin erityisesti teiltäkin tietää (muutkin tietävät saavat vastata ofc) että miten olisi parasta/helpointa lähtä toteuttamaan inventoryä, taistelutsydeemi ja miksei questejakin? En kuitenkaan ottaisi mielellään mitään valmiitakoodinpätkiä, vaan vain neuvoja miten kannattaisi lähtä toteuttaan, koska tahtoisin itse kuitenkin tehdä ne silleen ja tälleen
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: Suuntaa RPG asioissa
Inventory ainakin kannattaa toteuttaa joko taulukoilla tai typeillä. Laitan taulukko version, vaikka typet ovat ehkä parempia.
Sitten teet funktion joka testaa onko tietty asia inventoryssä vai ei. Palautuarvona voisi olla esiintymän sijainti.
Ja sitten käytät niitä pelissäsi
Voit myös lisätä muita funktioita, esim sellaisen joka nollaa tietyn inventoryn jäsenen kaikki arvot, eli "poistaa" sen. Nuo koodit olivat vain siksi koska olen huono selittämään, eivätkä ne toimi.
Code: Select all
paikkoja = 10
dim esine$(paikkoja)
dim hinta(paikkoja)
// jne ...
Code: Select all
Function on_inventoryssä(nimi$,st=1,ed=10) // nimi = mitä haetaan, st = aloitus, ed = lopetus
For i=st To ed
If esine(i)=nimi$ Then
Return i // Monesko se oli?
Exit
Else
If i=ed Then Return 0 // ei löydy
EndIf
Next i
EndFunction
Code: Select all
if pudotan_omenan then
testpaikka = on_inventoryssä("omena")
if testpaikka<>0 then
esine(testpaikka)="none"
hinta(testpaikka)=0
endif
endif
-
- Advanced Member
- Posts: 349
- Joined: Mon Aug 27, 2007 9:00 pm
- Location: Lapinjärvi, Finland
- Contact:
Re: Suuntaa RPG asioissa
Sanotaanko että on monta ihan hyvää tapaa, kaikista tärkeintä olisi saada noista nopeat ja tarkoitukseen sopivat.
Aloitetaan inventorysta.
Mikäli pelissä käytetään paljon erilaisia esineitä on järkevää tehdä kunnon systeemi jolla tavaroita voi hallita. Täytyy myös valita että onko inventory vain yhdellä henkilöllä vai jopa kaikilla. Ensimmäisessä tapauksessa tekisin esineille tyyppikokoelman, jossa yhtenä muuttujana olisi että onko se inventoryssä ja sitten toisessa tapauksessa tekisin samoin, mutta siinä samaisessa muuttujassa olisi sen hahmon tunniste (numero tai nimi) jonka, inventoryssa se on. Nolla jos ei ole kenenkään invetoryssa.
Sitten tuohon itse inventoryn järjestelyyn, inventoryjähän on monenlaisia, on ruudukkoa, listaa ja varmaan muitakin. Ruudukkoinventorysta ei itselläni ole hirveästi kokemusta, joten sen käsittelyn jätän jollekin asiaan paremmin perehtyneelle.
Esineiden tyyppikokoelmassa voisi myös olla muuttuja, joka kertoo kuinka monta samanlaista esinettä on siinä "kasassa", ja kun esine poimitaan inventoryyn ja siellä on jo vastaavanlainen esine niin poistetaan poimittu esine ja kasvatetaan inventoryssa olevan samanlaisen esineen lukumäärää sen poimitun esineen lukumäärällä.
Olen myös kokeillut sellaista vaihtoehtoa, jossa inventory olisi erillinen tyyppikokoelma, johon poimitut esineet sitten lisättäisiin, mutta itselläni se on ainakin aiheuttanut vain harmaita hiuksia kun esineiden kaikki tiedot täytyy aina kopioda uudelleen toiseen tyyppikokoelmaan.
Mitään absoluuttisen oikeaa vastaustahan tähän ei ole, mutta kokeilemalla oppii.
Ja sitten taistelusysteemiin
Riippuen paljolti roolipelisi luonteesta ja taistelusysteemin voi tehdä hyvin monella tavalla, useimmiten se tavallisin tapa ei ole paras, koska se ei tarjoa mitään uutta.
Otetaan muutama esimerkki
Final Fantasy-tyylinen taistelusysteemi
Jokaiselle hahmolle tarvitaan nyt mahdollisten iskujen (ja taikojen) tiedot ja animaatiot. Itse kun suosin tyyppikokelmia niin laittaisin kaikki taisteluun osallistuvien hahmojen tiedot yhteen tyyppikokoelmaan, jossa olisi sitten kaikki mahdolliset tiedot. Sitten hahmot tekevät vuoroittain iskuja ja tallennetaan muuttuujiin että onko hahmo jo iskenyt tällä kierroksella (iskuja voi myös olla useita per kierros). Sitten vaan tarkistellaan että onko energiat lopussa ja poistetaan kuolleita hahmoja. Sitten taistelun lopuksi annetaan esineita ja kokemuspisteitä.
Reaaliaikainen taistelu
Tämä oikeastaan voidaan tehdä niin monella tavalla, että en ala niitä luettelemaan. Yleisesti ottaen pelaaja vain nappeja painamalla tekee suoraan tai kombojen avulla iskuja, taikoja, väistöjä yms. Vihollisilla jokin tekoäly hoitaa samaa virkaa.
Ja vielä vähän questeista
Nuo tehtävät on aika vaikea pala, mutta periaattessa se on vain niin että jonkaisella tehtävällä on joku ehto (voi olla monia), jonka täyttyessä tehtävä on valmis, voi olla myös negatiivisia ehtoja joiden täyttyessä tehtävä on epäonnistunut. Tekisin näistäkin tyyppikokoelman ja sitten täytyisi tehdä eri tehtävätyypeille erilaisia ehtojen tarkistussysteemejä. Ja sitten toisekseen noita tehtävien ehtojen tarkistuksia ei välttämättä kannata tehdä kokoajan, ettei peli hidastu liikaa. Esimerkiksi muutaman sekunnin välien (ja vaikkapa tärkeille henkilöille puhuttaessa) tapahtuva tarkistus riittänee.
EDIT: Kerroppa vähän tarkemmin roolipelistäsi, niin sinua voidaan auttaa paremmin.
Aloitetaan inventorysta.
Mikäli pelissä käytetään paljon erilaisia esineitä on järkevää tehdä kunnon systeemi jolla tavaroita voi hallita. Täytyy myös valita että onko inventory vain yhdellä henkilöllä vai jopa kaikilla. Ensimmäisessä tapauksessa tekisin esineille tyyppikokoelman, jossa yhtenä muuttujana olisi että onko se inventoryssä ja sitten toisessa tapauksessa tekisin samoin, mutta siinä samaisessa muuttujassa olisi sen hahmon tunniste (numero tai nimi) jonka, inventoryssa se on. Nolla jos ei ole kenenkään invetoryssa.
Sitten tuohon itse inventoryn järjestelyyn, inventoryjähän on monenlaisia, on ruudukkoa, listaa ja varmaan muitakin. Ruudukkoinventorysta ei itselläni ole hirveästi kokemusta, joten sen käsittelyn jätän jollekin asiaan paremmin perehtyneelle.
Esineiden tyyppikokoelmassa voisi myös olla muuttuja, joka kertoo kuinka monta samanlaista esinettä on siinä "kasassa", ja kun esine poimitaan inventoryyn ja siellä on jo vastaavanlainen esine niin poistetaan poimittu esine ja kasvatetaan inventoryssa olevan samanlaisen esineen lukumäärää sen poimitun esineen lukumäärällä.
Olen myös kokeillut sellaista vaihtoehtoa, jossa inventory olisi erillinen tyyppikokoelma, johon poimitut esineet sitten lisättäisiin, mutta itselläni se on ainakin aiheuttanut vain harmaita hiuksia kun esineiden kaikki tiedot täytyy aina kopioda uudelleen toiseen tyyppikokoelmaan.
Mitään absoluuttisen oikeaa vastaustahan tähän ei ole, mutta kokeilemalla oppii.
Ja sitten taistelusysteemiin
Riippuen paljolti roolipelisi luonteesta ja taistelusysteemin voi tehdä hyvin monella tavalla, useimmiten se tavallisin tapa ei ole paras, koska se ei tarjoa mitään uutta.
Otetaan muutama esimerkki
Final Fantasy-tyylinen taistelusysteemi
Jokaiselle hahmolle tarvitaan nyt mahdollisten iskujen (ja taikojen) tiedot ja animaatiot. Itse kun suosin tyyppikokelmia niin laittaisin kaikki taisteluun osallistuvien hahmojen tiedot yhteen tyyppikokoelmaan, jossa olisi sitten kaikki mahdolliset tiedot. Sitten hahmot tekevät vuoroittain iskuja ja tallennetaan muuttuujiin että onko hahmo jo iskenyt tällä kierroksella (iskuja voi myös olla useita per kierros). Sitten vaan tarkistellaan että onko energiat lopussa ja poistetaan kuolleita hahmoja. Sitten taistelun lopuksi annetaan esineita ja kokemuspisteitä.
Reaaliaikainen taistelu
Tämä oikeastaan voidaan tehdä niin monella tavalla, että en ala niitä luettelemaan. Yleisesti ottaen pelaaja vain nappeja painamalla tekee suoraan tai kombojen avulla iskuja, taikoja, väistöjä yms. Vihollisilla jokin tekoäly hoitaa samaa virkaa.
Ja vielä vähän questeista
Nuo tehtävät on aika vaikea pala, mutta periaattessa se on vain niin että jonkaisella tehtävällä on joku ehto (voi olla monia), jonka täyttyessä tehtävä on valmis, voi olla myös negatiivisia ehtoja joiden täyttyessä tehtävä on epäonnistunut. Tekisin näistäkin tyyppikokoelman ja sitten täytyisi tehdä eri tehtävätyypeille erilaisia ehtojen tarkistussysteemejä. Ja sitten toisekseen noita tehtävien ehtojen tarkistuksia ei välttämättä kannata tehdä kokoajan, ettei peli hidastu liikaa. Esimerkiksi muutaman sekunnin välien (ja vaikkapa tärkeille henkilöille puhuttaessa) tapahtuva tarkistus riittänee.
EDIT: Kerroppa vähän tarkemmin roolipelistäsi, niin sinua voidaan auttaa paremmin.
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
Runoblogi, vuodatusta ja sekoiluja.
Re: Suuntaa RPG asioissa
Jaahas jaahas, kiitoksia vastauksista, voisinkin tässä alkaa yrittämään jonkinlaista inventorya ensin.
Ja ajattelin vain tehdä sellaisen klassisen, FF tyylisen ropen. Kuitenkin ennen kuin alamme tekemään kyseistä isompaa projektia, ajattelimme tehdä jonkinlaisen pienehkön kokeilun, jossa olisi inventoryä, random battleja ja parit questit
Ja ajattelin vain tehdä sellaisen klassisen, FF tyylisen ropen. Kuitenkin ennen kuin alamme tekemään kyseistä isompaa projektia, ajattelimme tehdä jonkinlaisen pienehkön kokeilun, jossa olisi inventoryä, random battleja ja parit questit
I'm gonna be the Pira... CoolBasic King!
D. Adams wrote:The knack of flying is learning how to throw yourself at the ground and miss.
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: Suuntaa RPG asioissa
Jollei ole kokemusta koodaamisesta tai timanttisen kovia hermoja ( tai niin mahtavaa asennetta kuin vaikka Monkey D. Luffyllä ;D ) kannattaa ensin todella tehdä PIENI kokeilu. ("pieni" -sana hämäävästi isolla..) Eli vaikka opetella tekemään tekstipohjaisena tuo taistelusysteemi, sitten vastaavasti testipohjaisena inventory ja questejä voi koittaa vääntää jollain ylhäältäpäin kuvatulla perusenginellä, tyyliin "mene ensin hakemaan questi ukolta, hae esine jonka hän haluaa/tapa monsu joka ahdistelee kyläläisiä ( XD ) ja mene taas puhumaan hänelle". Mutta onnea vaan, roolipelejä on aina kiva nähdä ^^Rufi wrote:Jaahas jaahas, kiitoksia vastauksista, voisinkin tässä alkaa yrittämään jonkinlaista inventorya ensin.
Ja ajattelin vain tehdä sellaisen klassisen, FF tyylisen ropen. Kuitenkin ennen kuin alamme tekemään kyseistä isompaa projektia, ajattelimme tehdä jonkinlaisen pienehkön kokeilun, jossa olisi inventoryä, random battleja ja parit questit