11.12.2012

Koodailuprojektin taustaa

Taustaa

Kaipa "kaikki" missään määrin ohjelmointia edes kokeilleet ovat miettineet, että oman pelin tekeminen olisi hienoa. Joskus aikanaan räpelsin jotain sekavia tekstiviritelmiä senaikaisen 486:n mukana tulleella QuickBasicilla, muttei niistä syntynyt ikinä mitään sen mainittavampaa. Suurin kanto kaskessani on tuossa vaiheessa ollut se, etten vaan osannut mitään mutten myöskään keksinyt etsiä mitään Basic-ohjekirjaa hyödyllisempää lähdettä, josta opetella.
Jostain kummallisesta syystä, varmaankin laiskuudestani, johtuen en myöskään ruvennut kikkailemaan pelien tekemistä myöskään sen jälkeen, kun olin opiskellut ohjelmointia ja jopa oppinutkin jotain. Ajoittain mielessä kävi kyllä, että pitäisi tehdä jotain. Jos ei muuta niin ihan vaan huvin vuoksi.

Python - Pygame

Työkaveri vinkkasi joskus Ruby-pohjaisesta Shoooes-palikasta, jota meinasin kokeillakin, mutten taas vaihteeksi saanut mitään oleellista aikaan. Sitten sekin jäi monen muun "hei kokeillaas tätä"-tyyppisen testin kanssa nurkkaan pölyttymään. Törmäsin joskus vuosi, puolitoista sitten rss-feedeissäni Pygame-kirjastoon Pythonille. Perinteitä kunnioittaen testailin jotain pientä oman aikani kunnes sekin vain jäi hyvien (lue: toteuttamiskelpoisten) ideoiden puutteen takia.

for idea in ideas:

Kun tyystin oman idiksen toteuttaminen ei ole se helpoin, mitäs sitten? Jäljitellään muita eli kiivetään niiden jättiläisten hartioille huitomaan. Työkaverini oli ruvennut sörkkimään jotain Roguelikeä kasaan joten se siitä tähän väliin (vaikken ollutkaan miettinyt mitään perusfantasiateemaa). Lapsuudessani pelasin kovasti epätoivoisen vaikeaa Xenon II: Megablastia ja myöhemmin loistavaa Tyriania.
Xenon II: Megablast

Siinä mielessä klassishenkisen shoot'em upin pysty- tai sivuskrollaavana kiinnosti kovasti sekin. Noissa ensimmäinen esiinnoussut kysymysmerkki oli tasojen kanssa tuunaaminen, joten jätin idikset edelleen korvan taakse kaiken muun saastan sekaan.

Tyrian
Hiekkalaatikkoilu sekä tietyntyyppinen avoimuus, valinnanvapaus ja yleinen satunnaisuus (= kaikki ei aina tapahdu samalla tavalla ja samassa järjestyksessä) on aina kutkuttanut. Totaalinen vaihtoehdottomuus ja eritoten (tiukat) aikarajat kiehuttavat kerrasta toiseen. Ei sillä, että tuosta olisi helpointa lähteä liikkeelle, mutta jostain on aloitettava.

Kiepsis

Rupesinpa sitten lähestymään asiaa toisesta päästä eli aiemmasta top-downista bottom-upiin, vaikken ehkä ihan tietoisesti vaan ennemminkin puolivahingossa. Näppäilin siis ihan uteliaisuuttani ympäriinsä ja katselin, mitä kaikkea tuolla Pygamella voi tehdä ja miten se tehdään. Parilla hassulla koordinaattipisteellä ja kevyellä päänrapsuttelulla pygame.draw.Polygon(...) toi kiehtovia tuloksia piirtopinnalle. "Hei, tuotahan voisi vaikka liikutella noiden näppäineventtien perusteella! Mites sen tekiskään..."

Mitä juoninkaan? Siitä kerron teille ensi viikolla.
Olen ilkeä tiiseri, tiedän. Hähä.

5 kommenttia:

  1. Vapautta tarjoavista shmupeista nostettakoon esiin sivuscrollaava X-Out (Amiga/ST/C64) ja Commando-klooni Dogs of War (Amiga), molemmat muistaakseni 1990. Jos siis kaipaat ideoita var... lainattavaksi ;)

    VastaaPoista
    Vastaukset
    1. Niin ja Uridium ja ties miten monta muuta. Lainausideat kelpaavat aina!

      Poista
  2. Noista sikäli, että X-Outissa oli muistaakseni Xenon 2-tyylinen varustekauppa, mutta että aluksetkin ostettiin, ja saattoi valita (varojen mukaan), ostiko yhden TIE Defenderin vai monta perus-TIEtä (metaforilla operoidaksemme) ja taisi tarjoilla vaihtoehtoisia etenemisreittejäkin, ellen väärin muista. Dogs of Warissa taas muistaakseni pystyi valitsemaan eri tehtävistä plus myös ostelemaan aseita.

    Niin no, jos muinaishistoriaan mennään, niin Raid on Bungeling Bay on tietysti opettavainen: siinähän tuhottava saari elää omaa elämäänsä (no, Will "The Sims" Wright puikoissa, mitä muuta voisi odottaakaan), eli tuhoamalla voimalaitoksen eivät tykkitorni toimi eikä tankit rakennu, mutta siellä on taas kova ilmapuolustus, eli parempi ehkä sittenkin tuhota se tehdas ensiksi jotteivät saa uutta kamaa tuhotun tilalle, jne.

    Noin muutenkin, niin joku "logiikka" on hyvä olla. Rambossakin oli aseilla eri äänenvoimakkuudet; räjähtävien nuolten ampuminen taas oli äänetöntä, osuminen ei, joten ampuminen ruudun toiseen laitaan ja itse hipsiminen toiseen saattoi hämätä vihulaisia pois niskasta. Tässäkin oli muuten jo vuonna 1986 tuhoutuva maasto (mihin ei 3D-paskeessa näköjään ikinä päästä) ja iiiiiso pelikenttä kerralla nelistäjän muistissa.

    Parallaxissa (nimi keksittiin vasta kun peli oli valmis, ja kun koko ideana oli parallaksiskrollaus...) taas oli maastossa useita tasoja vaikka olikin ylhäältä päin kuvattu. Niitä saattoi ja pitikin hyödyntää.

    Salamader (NESillä Life Force) taas oli varsin häiriintynyttä maastoideaa (mm. laavapurkauksia, tai mentiin ötön sisälmyksissä) ja joka toinen kenttä skrollasi sivusta päin, joka toinen ylhäältä päin.

    Tietysti nykyisten pädien aikakaudella onnistuisi helposti myös yhden ristiohjaimen pädillä tai joystickilla emuloitu "käännettävä joystick", eli keppiä z-akselin suuntaisesti vääntämällä pystyi ampumaan muuallekin kuin menosuuntaan. Contra (tai kuohittu NES-versio Probotector), Forgotten Worlds ja Midnight Resistance (arcade ja kaikki kuviteltavissa olevat koneet) käyttivät tätä, etenkin jälkimmäinen varsin onnistuneesti (kotikäännöksenä siis). FW:ssä ja MR:ssä oli myös asepuoti (vaikka ovatkin sivuscrollereita), joka etenkin MR:ssä todella vaikuttaa siihen, miten seuraava taso tulee menemään; valitse väärät aseet ja taso on mahdoton, valitse "oikeat" (jos on varaa) ja minäkin pääsen sen läpi huijaamatta. Robotron 2084 ja sen Minter-väännös Llamatron 2112 sekä modernisointi Smash TV käyttivät tätä kikkaa lintuperspektiivissä.

    Paradroid kuulunee yleissivistykseen.

    Spy Hunteria nyt tuskin tarvitsee edes mainita. Varsinkin vuosiluku huomioiden käsittämättömän paljon innovointia. Ajomoodin muutoksilla kikkailtiin myös muuten kökössä Alleykatissa (joka olikin enemmän F-Zeron tapainen kilpa-ajopeli mutta pystyscrollina eikä 3D:nä).

    Vähän samaa ideaa oli Silkwormissa ja sen henkisessä jatkossa SWIVissä, mutta siinä P1 oli heko ja P2 jeeppi, ja näinä myös pysyivät. Tiiminä tukivat toisiaan, ja yksinpeli oli näillä tyystin erilainen (toinen joutuu kiertämään esteet mutta on melko turvassa ilmassa lentäviltä vihuilta, ja päinvastoin).

    Toivottavasti tuossa oli lisää inspiraatiota (tai muistin virkistystä). Voin kaivaa Pelikirjat 1990-1991 kellarista, jos tarvitset. ;)

    VastaaPoista
  3. Pitkä loppuhorina (4k maksimirajoitus tekstille blogissa?), mutta jaksa, on siinä pointtikin.

    Vaikka onkin esimerkki siitä, miten peliä EI pidä tehdä, niin Miami Vicen perusidea oli kyllä rautaa: GTA mutta lain oikealla puolella (10 vuotta ennen GTA:ta!), ja pelialueena oli tosiaan valtava kaupunki joka oli nepallakin kerralla muistissa, ja useisiin paikkoihin pääsi myös sisälle präiskimään. Sitten pääsikin aggressiivi kaikissa deklinaatioissaan, sillä nurmikolle 5 km/h ajaminen räjäytti auton, kuten minkä tahansa muunkin esteen tai auton hipaisu. Scrollausta ei ollut, vaan kuvaruutu vaihtui Rajan yli mentäessä, ja parhaassa tapauksessa materialisoiduttiin suoraan edellä ajavan siviili-idiootin takapuskuriin. Takaa-ajot (mikäli niitä olisi sattunut aikaansaamaan) olisivat voineet olla "mielenkiintoisia". Parasta kuitenkin oli se, että rikospaikalle piti (kirjaimellisesti) osua viiden sekunnin sisällä, ja vielä niin, että aloitti edellisestä ruudusta ettei pelottanut konnia karkuun. Luonnollisesti pelin mukana ei tullut kaupungin karttaa, ja aikataulukin antoi yhden neljästä vaihtoehdosta joka huumediilille... Mutta siis, tässäkin oli hyvänä ideana, että kaupunki eli omaa elämäänsä pelaajasta riippumatta, eli diilerit tapasivat toisiaan koko ajan ja kello tikitti, ja jos ei saanut tarpeeksi jengiä kiinni jolta "voimakkaalla painostuksella" onkia lopulta The Diilin pitopaikka ja -aika selville, niin se oli game over. Mikä varmasti riemastutti niitä joystick-taitureita, jotka olivat sen 2-3 tuntia mitä pelin läpipeluu kesti kolmella emälällä läpitaituroituaan sekunnin myöhässä siitä viimeisestä diilistä. Mutta siis, tässä todiste siitä että paskakin peli voi sisältää kuningasidean, kunpa silloin vain olisikin pelitaloilla ollut aikaa, rahaa ja kiinnostusta betatestaukseen sen sijaan että pahimmillaan yksi mies teki kaiken, ehkä musiikkia lukuunottamatta.

    Tai niin no, APB itse asiassa oli parempi tulkinta melkein samasta aiheesta. Mutta nyt ollaan aika kaukana jo räiskinnästä, mutta siinäkin oli vahvaa hiekkalaatikkomeininkiä, sekä jossain määrin omaa elämäänsä elävä pelimaailma. Ajattelinpahan vain nämäkin tuoda inspiraationlähteinä mukaan.

    VastaaPoista
    Vastaukset
    1. Dogs of War muistutti samantien Airborne Rangerista ja RoBB taas shareware-aikojen Zone66:sta. Asekauppa tai mikä muu tahansa oman pelivempeleensä kustomointi ('mechlab!) on aina kaunista, siitä ei pääse yli. Sen kanssa voi taas tulla myös ongelmia: Midnight Resistancen kohdalla sanoit, että voit valita aseistuksen (resurssien rajoissa), mutta jos valitset 'väärin', mistään ei tule mitään.

      Tuollainen on vääryyttä, paitsi jos voit käydä toteamassa paikassa, että "joo, ei tästä näin tule mitään" ja lähteä vaikka livohkaan. Sittenpä voi vaikka valita romunsa uudelleen ja yksi sokkona tehty väärä valinta ei enää pistäkään koko yritystä läskiksi kertaheitolla.

      Jonkunsorttinen tolkku on tietysti oltava mukana! Tyystin eri asia onkin, onko minun päässäni looginen kenenkään muun mielestä sellaista ;) Vaan sitähän se aina, ei voi mitään. Pelinsisäisen oman elämänsä elely on hieno idis, kannatan sitä ihan täysillä ;)

      Katsoin muuten 'tubesta pätkän Paradroidia ja joudun myöntämään, etten tajunnut tuosta hakkerointiosasta pennin vertaa :D Ja aina saa huudella, jos tulee mieleen jotain oleellista. Luulen, että joudun jossain välissä kokeilemaan tilegfx-henkistäkin toimintaräiskintää. Pitäisi vaan joko a) Osata tai b) löytää vapaita tilejä :)

      Yksi sivuskrolleri, mikä tuli vielä mieleen parin muun esimerkin kirvoittamana: Metal Slug. Siinä ukkeli muistaakseni pystyi pomppaamaan tankkiin pöristelemään.

      Niin ja wtf @ kommenttien kokoraja.

      Poista