Suuntaa RPG asioissa

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
User avatar
Rufi
Member
Posts: 50
Joined: Fri Dec 21, 2007 12:12 pm

Suuntaa RPG asioissa

Post by Rufi » Fri Dec 21, 2007 12:22 pm

Njoo, elikkäs juttu on nyt sillee et tarttisin vähän apua parin jutskan kanssa :lol:. 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 :D

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Suuntaa RPG asioissa

Post by Koodiapina » Fri Dec 21, 2007 4:54 pm

Inventory ainakin kannattaa toteuttaa joko taulukoilla tai typeillä. Laitan taulukko version, vaikka typet ovat ehkä parempia.

Code: Select all

paikkoja = 10
dim esine$(paikkoja)
dim hinta(paikkoja)
// jne ...
Sitten teet funktion joka testaa onko tietty asia inventoryssä vai ei. Palautuarvona voisi olla esiintymän sijainti.

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
Ja sitten käytät niitä pelissäsi

Code: Select all

if pudotan_omenan then
    testpaikka = on_inventoryssä("omena")
    if testpaikka<>0 then
         esine(testpaikka)="none"
         hinta(testpaikka)=0
    endif
endif
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.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
otto90x
Advanced Member
Posts: 349
Joined: Mon Aug 27, 2007 9:00 pm
Location: Lapinjärvi, Finland
Contact:

Re: Suuntaa RPG asioissa

Post by otto90x » Fri Dec 21, 2007 5:04 pm

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. :)
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.

User avatar
Rufi
Member
Posts: 50
Joined: Fri Dec 21, 2007 12:12 pm

Re: Suuntaa RPG asioissa

Post by Rufi » Fri Dec 21, 2007 8:45 pm

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 :P
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.

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Suuntaa RPG asioissa

Post by koodaaja » Sat Dec 22, 2007 1:02 am

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 :P
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ä ^^

Post Reply