Tässä RandomCar:ia koodatessani on jälleen tullut opittua. Ei ehkä niinkään syntaksia tai kielen ominaisuuksia, mutta suunnittelua ja kehitystä ja tämän myötä myöskin julkaisusta ja paketoinnista.
Suunnittelusta sen verran, että ehkä tärkeimpänä aspektina se, että peliä ei koodata valmiiksi. Ei todellakaan. Se kehitetään valmiiksi. Kehittäminen tarkoittaa päämäärään pääsyä pienten askelten välein, joissa on hyvä tauko pysähtyä miettimään tulevaa ja tehdä kaikki tekemättä jääneet tehtävät kuten dokumentoinnin, blogauksen, tulevan dokumentointi. Lisäksi huomasin, että vaikka ohjelmaa/peliä koodaisi yksin, on silti jonkin näköinen roadmap oltava. Tähän suosin ehdottomasti Trac:iä, koska se antaa esinnäkin mahdollisuuden tehdä roadmapin, mutta sen lisäksi integroituu saumattomasti svn:ään ja sisältää oman wikin, vaikkapa sitten dokumentointia varten. Lisäksi tracissä voi viljellä linkkejä eri osiin esim. wikiin, changesettiin, roadmappiin kaikista paikoista. Ja itse tätä käytin merkkaamaan missä commiteissa tein mitkäkin ominaisuudet.
Tätä kautta saa helpon kuvan milloin on seuraava rajapyykki saavutettu, ja mitä pitää vielä tehdä saavuttaakseen sen.
Itse softan kehitykseen liittyy hyvin mielenkiintoinen seikka, jota aikaisemmin paheksuin syvästi, mutta nykyään hyväksyn. Eli, ainakin aikasemmin tein koodin suoraan niin valmiiksi kuin tavallaan ‘voi-olla’, eli kun koodataan palikka-x niin palikka-x tulee myös valmiiksi ja on täten yleishyödyllinen, dokumentoitu, bugivapaa, sekä täysillä ominaisuuksilla varustettu. Tässähän ei sinällänsä mitään vikaa ole, mutta se, että se vie aikaa. Ja paljon. Tästä ajattelumallista luovuttuani saa paljon nopeammin aikaan tuloksia, jotka taas inspiroi tekemään lisää, ja kun tarvii palikkaa x korjata, niin se myös korjataan. Mutta vasta kun on tarve, ei etukäteen. Tästä syystä aikasemmista projekteista (mm. Bubble Bouncing) tuli lähinnä moottoreita (engine) . Periaatteessa, ei moottorissa mitään vikaa ole, varsinkaan kun BB oli varsin bugivapaa, mutta kun tahtoisin tehdä peliä, tulee kehitykseen vaadittava aika vastaan. Peleissä on myöskin usein raja-tapauksia tai muuta sellaista, että pitää tehdä erikoistapaus jollekkin yhdelle asialle pelissä, kun taasen moottoria tehdessä, se pitäisi tehdä jotenkin geneerisesti ja tämä taas vie resursseja.
Vaikka olen ennenkin tehnyt ihan pelejä, osaa silti ei-koodaamiseen kuluva aika hämmentää. Paljon menee aikaa mm. graaffisen olemuksen suunnitteluun, sekä grafiikan toteutukseen. Lisäksi jostain syystä äänien lisääminen tulee aina jotenkin yllätyksenä peliin, koska ne lisätään aika myöhäisessä vaiheessa (kun logiikka ja grafiikka jo toimii).
Paketointi ei mitenkään ihmeellistä ole, mutta tällä kertaa se onkin tehty ensimmäistä kertaa. Itse suosittelen pienen opettelun jälkeen todella mukavaa InnoSetup:ia, mutta tämäkin tarvii kohtuullisesti säätöä ennenkuin XNA-pelien vaadittavat kirjastot on asennettu (ja .NET Framework 3.5:n asennus ei edes toimi nykyiseltään).
Kun viimein sai RandomCar 0.0.3 pientä julkisuuden valoa, paljastui PC-maailman karmiva totuus. Millon ei peli lähde päälle, milloin grafiikat bugaa, milloin tulee JIT-ikkuna, jota ei saa edes näkyviin kun nykyinen ikkuna varaa fokusia. Lisäksi mikä hauskinta, on täysin mahdotonta edes selvittää kyseisiä vikoja, koska peli ei sisällä minkään näköistä lokitusta. (Lokitus on jo tehty, ja tulee seuraavaan versioon, näin tyhmästä päästä oppineena)
Vihdoin kun edes joku sai pelin päälle pelattuaan lähes samallaisella alustalla, kuin itse koodaan, osottautui peli erittäin vaikeaksi. Tai itseasissa niin vaikeaksi, että on hankala kuvitella kenenkään edes nauttivan pelaamisesta. Tiesin kyllä että peli on vaikea, mutta että niin vaikea. Tämän tietenkin murskasi sydämmeni tuhannen palasiksi jota seuraavaan kuukauden keräsin ja imuroin huoneeni lattioilta. Mutta ei se mitään, itseasiassa katson lähinnä tämän positiivisesti, koska kun aloin tosissaan tätä tekemään, luulin ettei pelissä olisi tarpeeksi haastetta (tästä johtuen, lisäsin loppuvaiheessa statistiikan ja ajan oton).
Se missä nyt mennään, on jälleen hieman paremmat grafiikat, lokitus, äänimaailman parannuksia. Ja ennen kaikkea, helpomman, viimeistellyt ja todella viimeisen päälle (ainakin toivon mukaan) hauskan ja nautittavat kentät.
Itse julkaisuhan tapahtui Suomipelit.com:ssa. Ja tätä myötä myös suuret kiitokset Tomppu:lle pelin testauksesta ja peli-ideoista.