HUOM! Kaikki tässä ketjussa esitetty tieto voi muttua milloin tahansa.
Nykyinen CoolBasic on kieltämättä sekä tekniikaltaan että suunnittelultaan vanhentunut. Eikä sen bugeihinkaan ole liiemmin puututtu muutaman viime vuoden aikana (pitkälti johtuen siitä, että minä olin käytännössä pois kuvioista aika pitkään). Vuoden 2008 lopulla palasin takaisin, tuumasin että prkl ja ryhdistäydyin. Ilmoitin, että CoolBasic V3 on kehitteillä. Uuden kääntäjän kehittäminen on jatkunut vapaa-ajallani aina tuosta hetkestä lähtien lähes joka päivä. Olen myös töissä ohjelmisto-alalla, joten koodaaminen ei aina ole se ensimmäinen asia joka tulee mieleen kun kotiin pääsee... mutta kaikesta huolimatta CoolBasic V3 on edistynyt tasaisesti ja hyvin.
Oliopohjaisuus
CoolBasic V3 tulee muuttumaan hyvin paljon - parempaan suuntaan. Sovellusten koko tulee olemaan hieman pienempi, ja tähtäimessä on parempi suorituskyky ja laajennettavuus. Vaikka koodaustapa muuttuu perinteisistä funktiokutsuista olioihin (jotka ovat aluksi vaikeampia ymmärtää), pitää kuitenkin muistaa se, että CoolBasic tullaan edelleen suunnittelemaan mahdollisimman helposti omaksuttavaksi. Toki kuvioihin tulee paljon uusia termejä kuten kapsulointi, periytyvyys ja polymorfismi, mutta uusi manuaali ja uudet esimerkit selittävät ne kyllä kunnolla ja kattavasti.
Pähkinänkuoressa oliot voidaan ymmärtää näin:
Sen sijaan, että sanot jollekin yleiselle Liikuttajalle, että "liikuta tuota", käsket jotakin liikkumaan itse. Vertaa:
Code: Select all
MoveObject tankki, 0, 1 ' Nykyinen CoolBasic
tankki.Move(1) // CoolBasic V3
Uusi teknologia: Ääni-engine
Nykyinen CoolBasic kun on rakennettu Blitzin päälle, löytyy siitä sisäänrakennettuna FMOD, joka vastaa kaikesta äänentuotosta. Hyvä kirjasto sinänsä, ei siinä mitään - paitsi että sen lisenssi on CoolBasicin kohdalla kyseenalainen: Käsittääkseni Blitzillä on erikoissopimus FMODin tekijöiden kanssa, joka mahdollistaa FMODin jakelun osana Blitziä niin, että loppukäyttäjät eivät kuitenkaan joudu maksamaan lisenssimaksuja vaikka tekisivätkin kaupallisia pelejä. Kellään kuitenkaan tuskin on suoraa vastausta siihen miten lisenssikiemurat menevät kun välissä on vielä CoolBasic. Niinpä ainakaan tulevaan CoolBasiciin ei FMODia tai BassMod-kirjastoa tungeta, vaan koko CoolBasic V3 pyritään pitämään täysin lisenssivapaana loppukäyttäjiä ajatellen. Joku voi halutessaan ottaa nämä kirjastot käyttöön, jos tarvitsee niiden ominaisuuksia ja on valmis lisenssihintoihin. Natiivisti äänentuottoon CoolBasic käyttänee ilmaista ja lisenssivapaata Audiere-kirjastoa.
Uusi teknologia: Grafiikka-engine
Nykyinen CoolBasic käyttää softapohjaista grafiikkamoottoria 2D-grafiikan esittämiseen. Ei siinä mitään, onhan se melko nopea 2D-blitteri. Mutta eipä sillä paljon reaaliajassa kuvia pyöritellä. Jotta objektit saataisiin käytännössä pyörimään, lasketaan nämä kuvat valmiiksi jo siinä vaiheessa kun objekti ladataan. Isoilla objekteilla latausaika ja muistinkäyttö voi nousta aika hirveisiin lukuihin. Lisäksi reaaliaikainen läpinäkyvyys, skaalaus, erilaiset blendaukset ja vääristykset ovat aivan liian hitaita. Niinpä CoolBasicin uusi grafiikkamoottori on täysin laitteistokiihdytetty - jopa ns. 2D-tilassa. Nyt voidaan tuhansia objekteja pyöritellä skaalattuna ja blendattuna koosta riippumatta täysin vapaasti ilman suorituskykyongelmia. Nyt päästään vihdoin myös vanhasta DirectX7-rajapinnasta eroon, joten ikkunoidut pelit toimivat täydellisesti myös Windows Vistassa ja tulevassa seiskassa ilman että Aeroglass dumppaa.
Tulevaisuudessa CoolBasic keskittyy huomattavasti enemmän 3D-peleihin. Grafiikkamoottori pohjautuu Irrlichtiin, joka sekin on täysin ilmainen ja lisenssivapaa myös kaupallisessa käytössä. Se tukee sekä DirectX- että OpenGL-rajapintoja, ja on ominaisuuksiltaan monien kaupallisten 3d-moottorien veroinen. Täydellisen listauksen sen monista ominaisuuksista voi halukkaat käydä lukemassa sen [url=http://irrlicht.sourceforge.net/features.html]kotisivuilta[url].
Projektin laajuus
CoolBasic V3 on kokonaisuutena paljon laajempi kuin moni käyttäjä ehkä ymmärtääkään. Tästä syystä sen kehitykseen menee todella paljon aikaa, ja siihen kuuluu pelkän kääntäjän lisäksi mm. runtime, enginet, editori, manuaali, tutoriaalit ja kotisivut. Ja tietysti koko hoidon päälle vielä täydellinen lokalisaatio kahdelle kielelle. Enkä aiokaan olla yksin vastuussa tästä kaikesta, vaan suunnitelmissa on ihan oikeasti perustaa jossain vaiheessa pieni tiimi CoolBasicin ylläpitoon ja kehitykseen. Tavoitteena on muodostaa kunnollinen pelintekoyhteisö sekä suomessa että kansainvälisesti.
Julkaisu
Luottavaisin mielin 2009
(Huom, lue tämän postin ensimmäinen virke)