30.1.2014

Haistan jälleen varustelukierteen vienon tuoksun

Eihän tuosta minun korjausyrityksestäni sitten tullut mitään. Kompura pöhisi ja ruiskutin suhisi, mutta maali ei liikkunut säiliöstään mihinkään, kun tuossa loppuiltapäivästä kokeilin.

Syypää

Tuossapa se. Korvikeletku ei pidä tai vedä tai mitään muutakaan. Uutta siis tilalle!


Jos miettii, että tuo vekotin oli kuulemma joku ~15 euron halpamalli ja minä olen väkertänyt sen kanssa innolla jo muutaman vuoden, ei kyseessä ole ollut lainkaan huono vempain! Tämä ei silti tarkoita sitä, ettei mopo saattaisi lähteä lapasesta, kun seuraajaa haetaan...

29.1.2014

Ohjaamolaitos

Työtilat ensin

Lentokonerakentelun kunniakkaiden perinteiden mukaan aloitin tykkilinnun kasaamisen ohjaamotiloista. Suureksi hämmennyksekseni sain huomata, että mietin jo vöiden väkertämistä teipinpaloista, koska "vyöt pitää olla" eli hulluksihan minä olen tullut.

Mitään kauhean ihmeellistä tässä osastossa ei ollut, penkit, joku selkänojaviritelmä ja oletettavasti radiolaitteisto. Niin ja kyytiläisen konekiväärin minä tietenkin unohdin liimata paikalleen, vaikka miten koetin muistuttaa siitä itseäni. Pistän sen paikalleen tänään ennen muuta askartelua.



Jännityksensekainen odotus

Olen lykännyt kaikkea tätä aikalailla, kun en ole ollut lainkaan varma siitä, toimisiko taannoinen kynäruiskun korjausyritykseni. Jos tuo uusi maalisäiliön sisäletku ei pidä, ruikkimisesta ei tule mitään ja se ei olisi lainkaan optimaalista harrastukseni kannalta. Joten, jonkinlaisella jännityksen ja kauhun yhdistelmällä mennään.

Pyytäisin pitämään peukkuja, jos uskoisin moiseen humpuukiin :p


23.1.2014

Projekti I/14

Aski auki

Tammikuu on ollut häkellyttävän kiireinen. Täten julistan Stuka-projektin aloitetuksi lähinnä sillä perusteella, että laatikko on avattu, palat tarkistettu ja ohjetta silmäilty. Samoin työjärjestystä on mietitty.
Vanha viisaushan sanoo, että hyvin suunniteltu on puoliksi tehty. Toinen viisaus taas sanoo kevyesti tilanteeseen muokattuna, että suunnitelmat eivät kestä kontaktia todellisuuden kanssa. Lopputulos? Se selviää sitten, kun projekti on valmis, kuten aina.

Materiaali




Tämmöisen kaman kanssa tulee siis vietettyä aikaa. Luulen, että kasaan ensin ohjaamotilat ainakin osittain, sitten maalaan ne. Sitten kasaan lopun koneen ja maalaan sitten valmiiksi muutamalla iteraatiolla.

14.1.2014

Ykkösprioriteetin yliajo työjonossa

Mutisen aina työjonollani ja sen FIFO-mallilla (first in, first out). Nyt tähän tehdään perin saksalaishenkinen poikkeus!

Uusi ykkönen

Joulun ja vuoden vaihteen lomalla sain lahjuksena uuden pienoismallin. Askissa on Academyn tunnukset ja lentävä potkurikone. Ja otsikon lukeneet arvannevat, että kyseessä on jotain todella kaunista, kun se kerran liihottaa röyhkeästi OmniMechien ja kahden panssarivaunun eteen ja nauraa mennessään.

Ju-87 G-1 "Kanonenvogel"



Tämän enempää en joutune selittelemään. Stuka on rumuudessaan ehkä kaunein lentokone, joka on planeettamme taivailla koskaan lentänyt. Siksi siis.

Ennen aloitusta joudun tosin varmaan katselemaan, saanko tuon kynäruiskuni toimimaan varaosaletkulla vai en. Tietysti voin aloittaa kasauksen ilmankin, mutta ainakin ohjaamo tulee vaatimaan maalipintaa aika pian.

edit: Korvasin hajonneen kumiletkunpätkän uudella. Uusi rööri on hippasen kookkaampi kuin entinen, saas nähdä, auttoiko tuo pään liekillä lämmittely pitämään tuon paikoillaan käytössä vai ei. Jollei toimi niin onpahan itselleni uusi (teko)syy investoida uuteen leluun.

8.1.2014

Oma koodailuprojekti, osa IX

Elämää etsimässä

Pelkät asteroidit ja alukset eivät olisi kovin viihdyttäviä pelialueen sisällön kannalta. Tässä vaiheessa näppäilyä päätin, että yksi planeetta per sektori olisi ihan riittävä. Varsinkin, kun sektori on nyt vain 1024x1024 pikselin kokoinen, ei sinne kovin montaa planeettaa mahtuisi. Todennäköisesti jatkossa skaala on isompi, katsellaan.

Peliprojektini ykkösiteraatiossa planeetta piirrettiin pygamen circlenä, mutta se näytti jotenkin ahdistavalta, kun kaikki muut olivat antialiasoituja polygoneja. Päätin siis sangen ennakoitavasti, että minun planeettani ovat (ainakin tässä vaiheessa) 16-kulmaisia. Planeetat ovat muuten kuin asteroidit, mutta ne pysyvät paikallaan, eivätkä pyöri.

Epämääräisen muistikuvani mukaan Lasse kyseli aiemmin kommenteissa jotain planeettatyyppeihin liittyen, joten vetäisin olemattomasta hatustani muutaman tyypin niille (industrial, farming näin esimerkiksi) testailua varten. Jatkossa näille tulee tietysti lisää attribuutteja, pelkkä tyyppi, massa ja väestö ei vielä riitä mihinkään. Niin ja niiden kobolttikuoristen pommien vaikutusten takia joku (tausta)säteilykin pitäisi varmaan pistää talteen... kiäh kiäh kiäh.



Mitä seuraavaksi?

Fysiikkaa

Kaipa siirryn seuraavaksi takaisin QuadTreen ja ainakin yksinkertaisen törmäystarkistelun pariin. Törmäysten toteamisen jälkeen pitää viritellä kimpoamisia niin, että ne toimisivat jotenkin tolkullisesti. Samoin aluksen kiihdytys pitää korjata niin, että lentäminen tuntuisi oikeammalta kuin nykyinen nykiminen.

Aseita, tuhoa ja kuolemaa

Kun törmäystarkistelut sun muut on edes aloitettu, voinen siirtyä toteuttamaan ainakin jonkunlaisen asejärjestelmän. Kuolemansäteet eivät ehkä ole se ensimmäinen, vaan taidan testata ensin konetykkejä tai ohjuslavetteja. Saa nyt nähdä, mikä sillä hetkellä huvittaa eniten.
Johonkinhan  niitä on myös voitava testata joko asteroideihin tai dummy-avaruusaluksiin. Ensin varmasti asteroideihin, koska ne ovat jo lähestulkoon valmiit, tai niin ainakin uskottelen itselleni.

Epämääräisiä ideoita

Miten pelaaja voi telakoitua avaruusasemalle? Tai miten pelaaja voi tehdä yhtään mitään planeetan kanssa? Sain ajatuksen vanhasta, mainiosta Zone 66:sta. Muistin, että jos laskeutumisalustan yli lensi tarpeeksi hitaasti, sille laskeuduttiin, muuten yli vain lennettiin. Samalla idealla tarpeeksi matalanopeuksinen avaruusaseman kohdalle lentäminen siirtäisi pelin telakointimoodiin. Tai planeetan päällä (ei, planeettaan ei voi törmätä aluksella, ne sijaitsevat z-akselilla eri tasoilla) hidastellessaan siirrytään kiertoratatilaan, jossa voi sitten tehdä omiaan.

Tähän mennessä ainoa ehdoton vaatimukseni on tunnettu kiertoratapommituksena. Tietenkin pelaajalla tulee olla mahdollisuus kylvää verivihollisensa kotiplaneetta täyteen vaikkapa terästettyä paiseruttoa, jos siltä kerran tuntuu. Luonnollisesti tämä edellyttää sitä, että planeetoilla pitäisi olla jonkunsorttinen tapa puolustaa itseään kaikenmaailman psykopaatteja vastaan. Ohjussiiloja kuin piikkejä siilissä, ionikanuunat tulivalmiudessa, hävittäjäparvet laukaisualustoillaan ja kiertoradat aseistettuja tiesmitä täynnä. Näistä on hyvä lähteä.

Kaikki (minä ainakin) inhoavat telepaattisia osapuolia peleissä. Nämä kaikille tutut hulluthan tietävät oitis, jos olet vaikkapa ryöstänyt heidän veljensä toisella puolella universumia ilman, että kukaan on nähnyt tai kuullut mitään ja suuttuvat silmittömästi. Tämän kun saisin vältettyä, olisin ultraonnellinen.

Turha haave?


Ajatusleikkiesimerkkinä: hyökkäät rahtialuksen kimppuun ja nirhaat sen yksittäisen saattajan ripeällä yllätyshyökkäyksellä. Murhaat miehistön, rosmoat rahdin ja kaikkoat paikalta. Kukaan ei todistanut tapahtumaa, hätälähetyksiä ei joko ehditty edes lähettää tai häirintälaitteesi jyräsi halvan radiolaitteen signaalin. Aiempi loistava maineesi on edelleen tahraantumaton ja miksei olisi? Galaksin silmissä olet edelleen nuhteeton pyhimys.
Ainakin siihen asti, kunnes lähdet tekemään kauppaa mahdollisesti tunnistettavalla rahdilla...


Tällaisia minä olen miettinyt sairaassa mielessäni.

1.1.2014

Oma koodailuprojekti, osa VIII

Liikettä!

Kun ruudulle oli saatu jotain satunnaista möllöttämään, jatkoin lentelytoimintojen parissa. Pienen pyörittelyn jälkeen päätin pysyä entisessä nopeusvektorilähestymistavassani ja käyttää sen kaverina heading-tietoa, josta aluksen nokan osoittaman suunnan saisi irti suoraan. Koska näytettävä pelialue oli sidottu alukseen, aluksen liikkuminen vieritti automaattisesti näkymää ympäri sektoria.

Aluksen pyörittely akselinsa ympäri oli hyvin yksinkertaista, eikä siitä ja sen rotate-metodeista sen enempää. Nopeuden muutos oli iso osaprojekti aiemmallakin kerralla, joten ei siitä nytkään päästy helpolla. Tätä kirjoittaessani kaasuttelu oli vieläkin keskeneräinen, joten siihen on palattava myöhemmin. Nyt riitti, että sain sen kulkemaan ympäri sektoria edes puoliymmärrettävästi, joskaan en elegantisti.



Ensin lasketaan aluksen nokan (heading) ja kiihdytyksen perusteella dx ja dy -arvot. Sitten katsotaan, mihin suuntaan nokka osoittaa ja asetetaan sen perusteella dx:lle ja dy:lle etumerkki. Mikäli uusi nopeus olisi ylittämässä aluksen maksiminopeuden, kiihdyttäminen estetään. Kuten sanoin, nykytoteutuksessani on jotain omituista.

Sektorilta toiselle

Tässä vaiheessa esiin nousi seuraava kysymys: mitäs sitten, kun sektorin rajat ylitetään? Jatketaan seuraavaan tietenkin. Koska en ollut aiemmin asettanut ektoreille naapuriviittauksia, jouduin palaamaan pelimaailman inittiin. Samoin, koska sektorit luodaan vain yksinkertaisessa silmukassa, naapurien selvittäminen vaati vähän lisätöitä.

Loppujen lopuksi tähän meni muutama tunti muutamana iltana ja refaktorointia siellä sun täällä (ainakin luokissa Player, Sector, World ja Game). Maailmanluonti oli hidastumassa huomattavasti: kun sektorit on ensin luotu, ne käydään sitten uudelleen läpi ja kunkin sektorin pohjoinen, eteläinen, itäinen ja läntinen naapuri käydään kaivamassa ja asettamassa "koordinaattiensa" perusteella.

Sektorinvaihdon yhteydessä pelaajalle on asetettava uusi sektoritieto, alus on heitettävä uuden sektorin vastakkaiseen päähän (ylöspäin mennessä siirrytään siis pohjoisen naapurin eteläpäähän), irrotettava entisen sektorin rakenteista ja heitettävä uuden sektorin vastaavaan ja vielä ladattava maailman nelipuuhun uuden sektorin peliobjektit.





Olin taas kovin ylpeä tekeleestäni tässä vaiheessa. Kaiken muun lisäksi virittelin maailman inittiä nätimmäksi. Tässä vaiheessa sektoreille luotiin vain satunnaisia määriä asteroideja, vihannesviholliset kommentoin mäkeen perustoimintojen kanssa puljaamisen selventämiseksi.