Vuoden ensimmäisessä postauksessa mainitsin, että aloitan kirjoittaa pelikehityksestä tavoitteenani samalla tehdä pieni peli siinä sivussa esimerkiksi… Nyt kun kuukausi on mukavasti vaihtunut, on aika aloittaa tämä projekti.
Käytännössä tämä ensimmäinen kirjoitus on vain pohjustus tulevalle tekemiselle eli ei sisällä yhtä yksityiskohtaista tietoa kuin tätä seuraavat sepustukset… Työkalujen valinnasta tosin voisin jakaa pari sanaa.
Jos koodaaminen ei innosta ja haluaa päästä nopeasti pelejä tekemään, maailma on pullollaan erilaisia ohjelmia ja työkaluja joilla asia onnistuu hyvin vähällä opettelemisella. Käytettävää työkalua valittaessa tosin tulee myös miettiä genreä sillä kaikki työkalut eivät sovellu (ainakaan hyvin) kuin tietyn tyyppisten pelien tekemiseen:
- Jos halutaan tehdä roolipelejä niin edelleen yksi ylivoimaisista valmisohjelmista on RPG Maker, jonka eri versioita voi ostaa esim. Steamista.
- 3D-pelien valmistamiseksi Unity on helppo tapa päästä alkuun (paljon tutoriaaleja ja valmispohjia tarjolla)
- Visual Noveleista kiinnostuneiden kannattaa katsoa Ren’Pyä (tai hankkia Steamista esim. TyranoBuilder jos Python skriptit pelottaa)
- Jos puolestaan kokonaisvaltaisempi ratkaisu kiinnostaa niin Game Maker on hyvä valinta (tosin tuon Studion hinta on aikas kallis, joten parempi etsiä netistä ne aiemmat versiot).
Tällaisissa valmistyökaluissa tosin on sellainen ongelma, että ne yleensä sisältävät monenlaisia rajoituksia joihin varsinkin kaikista luovimmat tyypit törmäävät: koska työkalut on suunniteltu tiettyä tarkoitusta varten niin ne tarjoavat yleensä vain kysytyimmät toiminnallisuudet. Tämän takia on parempi opetella edes sen verran ohjelmointia, että pystyy hyödyntämään SFML:n ja SDL:n kaltaisia kirjastoja.
Kyseisten kirjastojen etu on se, että ne tukevat yleisimpiä ohjemointikieliä kuten C, C++, C#, Java ja Python eli ei ole pelkoa, että joutuu kahlitsemaan itsensä johonkin tiettyyn kieleen; lisäksi kirjastoissa on valmiiksi toteutettu peliohjelmoinnin vaikeimmat osuudet eli grafiikan ja äänenhallinta joten pelintekijän harteilla jää vain kyseisten toiminnallisuuksien hyödyntäminen.
Koska tykkään tehdä asiat itse, tämä peliprojekti, kutsuttakoon sitä nimellä Satori Maiden 2018, toteutetaan C++/SFML yhdistelmällä ja valmis koodi julkaistaan kaikkien ihmeteltäväksi. Pyrin myös tekemään koodista niin modulaarisen, että esimerkiksi kaikki äänen, kuvan ja tekstin käsittelyyn liittyvä toiminnallisuus voidaan helposti se liittää osaksi muita C++/SFML projekteja.
Mutta mikä on Satori Maiden 2018?
Ajattelin, että kyseessä olisi yksinkertainen puzzlepeli, missä tavoitteena on kerätä X määrä esineitä avatakseen reitti seuraavaan tasoon; Jotta peli ei olisi niin suoraviivainen sokkeloseikkailu, tasoissa on erilaisia esteitä (kuten hajoavia lattiota ja lukittuja ovia) vaikeuttamassa kulkua.
Jotta peli olisi mielenkiintoisempi, pelaajalla tarjotaan pisteitä tason läpäisemiseen käytetystä ajasta sekä tasoista löydetyistä piste-esineistä (voitaisiin jakaa pistekertoimiin ja varsinaisiin pisteisiin). Kun kaikki tasot on suoritettu pelaaja näytetään top 10 -lista.
Tosin ennen kuin varsinaista peliä aloitetaan tehdä, ensimmäinen asia, joka toteutetaan on karttaeditori. Karttaeditoria ei sinänsä tarvita jos tasot koodattaisiin staattisiksi mutta se on silti järkevä toteuttaa koska se mahdollistaa tasojen muuttamisen ja testaamisen reaaliajassa sekä lisättynä peliin myös pelaajalle mahdollisuuden suuunnitella omia haasteitaan. Jos karttarakenne toteutetaan oikein, tämä myös mahdollistaa ”lisäkarttapakettien” luomisen peliin.
Tällaista tällä kertaa, ensi kerralla enemmän konkreettista pohdintaa pelistä ja sen sisällöstä.