
    S I M E O N ' S   W O R L D
    ---------------------------
Copyright (c) 1998,1999 Sami Wilenius


          Omat tasot


           Versio 0.7


1.0 Mit tarttet
1.1 Kuvat ja vri-indeksin numerot
1.2 Spraitteja
1.3 Skriptitiedosto
1.4 Tasomuisti
1.5 Erikoishommat
1.6 Omat musat
1.7 Simeon's Level Script Compiler (SLSC)
1.8 Rakennetaan SLP faili
1.9 Esmerkkitiedostot
2.0 Loppulausuma


Ohjeet :


1.0 Mit tarttet :
-------------------
 -Yksinkertaisen bitmappieditorin, joka tallentaa 256-vrisi, 8 bpp,
  1 colorplane, versio 5.0 pcx-kuveja. Esim. Deluxe Paint toimii ja mys
  ilmainen GrafX2.
 -Tekstieditorin joka tallentaa tavallisia ascii-tiedostoja.
 -Kynn ja paperia.


1.1 Kuvat ja vri-indeksin numerot :
--------------------------------------------------------------

Taso koostuu kolmesta tiedostosta, kahdesta pcx:st sek skriptitiedostosta.
Toisessa pcx:ss on itte taso ja toisessa spritet.
Skriptitiedostoon mritelln spritet ja niiden kyttytyminen.
Molempien kuvien pit olla kooltaan pienempi kuin 64kt.

Kummassakin kuvassa on hyv olla identtinen paletti koska silloin nkee
piirtovaiheessa vrit oikein.
Palettia voi vapaasti muuttaa.
Itse pelitilanteeseen paletti otetaan sprite-pcx:st.

Vrikartta :
0      : Lpinkyv vri.
1-63   : Vihulaisvrit, Simeon heitt henkens jos koskee nihin.
64-127 : Bonus itemi vrit, kytetn bonus itemeiss ja gizmossa mys.
128-207 : Taustavrit, voit kytt nit mys vihulaisissa sun muissa, mutta
          ympri ko. sprite vihulais/bonus vrill jotta trmystarkistus
          toimii oikein.
208-215 : Ala-statuspalkin vrit, 208 kirjainten tausta, 210 kirjainten vri,
          211 kirjainten varjo.
216-219 : Siirr Simeonia vasmalle, hn siirtyy vasemmalle jos seisoo moisen
          vrisen pikselin pll
220-223 : Siirr Simeonia oikialle.
224     : Siirr Simeonia yls, kytp tt vri hisseiss jotka kulkevat
          ko. suuntaan.
225-231 : Tiiliseinvrit, Simeon ei voi kvell niden pixeleiden lpi,
          ja mys paukuttaa ptn moisiin. Tiiliseintrmystarkistus ei
          kuitenkaan toimi kovinkaan hyvin, se on eptarkka joten kyt
          harkiten.
232-239 : Maa-vrit. Simeon pystyy kvell niden pikseleiden pll.
240-247 : Tikasvrit, Simeon kiipe nit yls/alas.
248-255 : Simeonin vrit, voit kytt mys muita vrej, mutta nm
          varattiin jotta saataisiin "ulkopuolisen pikselin trmys"
          tarkistettua, tosin moista ominaisuutta ei ole ainakaan viel
          listty ohmeliin.

Jep eli piirr taso-pcx:t ja sprite-pcx:t kyttmll nit vrej.
Jos teet paikallaan pysyvn ja animoimattoman, mutta tappavan hktyksen
(esim. piikin), piirr ne suoraan taso-pcx:n, lk tee siit sprite,
mit vhemmn spritej, sit vhemmn poweria vaaditaan koneelta.


1.2 Spraitteja :
----------------
Kaikkia liikkuvia ja/tai animoituja hommia Simeon's Worldissa kutsutaan
spriteiksi (spraitti vaan), muttei missn tapauksessa bobeiksi ;)
Vilkaise esimerkki spritekuvia, piirtelet vain nit pikku kuvia ympriins
lpinkyvan vrin plle (0) jonnekin pin ruutua. Jos teet animaatiota niin
suosittelen kyttmn ohjelmaa jossa on animaatiomahdollisuudet jotta voit
heti kttelyss nhd milta animaatio nytt.
Muista kytt vri 0 taustavrin.
Suosittelen ett ymprit spritet tummalla vrill, se auttaa erottamaan
spritet paremmin taustasta itse pelitilanteessa, ja se mys mahdollistaa
kyttmn muita kuin vihulais/bonus vrej spritess.
Sitten kun olet saanut jonkinmoisi tj valmiiksi niin on aika mapata ne
skriptitiedostoon, se ei ole hauskaa.
Kyt nyt niit kyn ja paperia (jos ei ole kakkoskonetta..) kirjoittamaan
yls jokaisen spriten vas/yl ja oik/ala koordinaatit.
Mukana on esimerkki skriptitiedostoja joista voit ottaa mallia, tss
kuitenkin jonkinmoinen esitys skriptitiedoston sisllst :

1.3 Skriptitiedosto :
---------------------
Tm pelihn tehtiin aika vauhdilla joten mihinkn kiillotukseen ei ollut
aikaa, joten tiedoston sislt on tiukasti mritelty, ei mitn
ylimrisi vlilyntej eik mitn muitakaan huvituksia kannata kokeilla.

Eka rivi :
#levelname "Simeon's Home"

Tm rivi mrittelee sen mit ruudulla lukee "Room :" kohdassa.


Seuraavaksi mapataan grafiikka sprite-pcx:st, tm osuus alkaa nin:

#definegraphics

Sitten tulee itse hktykset (tss vain muutama) :

#1 <0,0-9,17>     ;simeon oikea frame 1
#2 <10,0-19,17>   ;simeon oikea frame 2
#3 <20,0-29,17>   ;simeon oikea frame 3

Jrjestys on :

#number (gfx numero, 1 on pienin ja 255 suurin)
<ylvas x, ylvas y - alaoik x, alaoik y>

Ja kuten kaikkialla, ei mitn turhia vlilyntej mihinkn kohtaan, rivin
jlkeen voi pist puolipisteen ja sen jlkeen saa kirjoittaa vaikka
otteita EU:n perustuskirjasta jos haluaa.


GFX mritelmt loppuvat riviin :

#enddefinegraphics


Sitten mritelln spritet ja miten ne toimivat :

#definesprites

Alla tosi perus spraitti :

#define 1             ;Sprite numero on 1
#spritetype <simeon>  ;Spriten tyyppi
#animationtype <thru> ;Animaation tyyppi
#x 286                ;x-koordinaatti tason alussa
#y 80                 ;y-koordinaatti   - " " -
#defineframes         ;frame mritykset alkaa
#amount 4             ;Animaation pituus : 4 framea (maximi on 10)
                  
#right 1 #1       ;Nit frameja kytetn kun Simppa kvelee oikealle
#right 2 #2
#right 3 #1   
#right 4 #3  
#left 1 #4      ;Ja vasemmalle.
#left 2 #5 
#left 3 #4 
#left 4 #6 
#up 1 #7     
#up 2 #8      
#up 3 #7      
#up 4 #8 
#down 1 #7    
#down 2 #8 
#down 3 #7 
#down 4 #8 

#enddefineframes    ;Frame mritykset loppuu

#enddefine          ;Tm sprite loppuu


Katotaan mit tuo mahtoi tarkoittaa

#define 1             

Tm rivi mrittelee spraitin numeron, tt kytetn erottelemaan
spritet toisistaan, siis tt kytetn kun jokin toinen sprite haluaa
tehd tlle spritelle jotain.
Ensimminen mriteltv spriten pit AINA olla tyyppi <simeon> ja numeron
pit aina olla 1, koska tm mrittelee pelaajan ohjaaman spriten.
#delay-parametrill ei ole mitn merkityst <simeon> tyyppiin, Simeonin
delay on aina 4.
Spraittien jrjestyksen ei tarvitse olla 1,2,3,4.. vaan se olla vaikka
1,27,6,12,3,15.. Se jrjestys miss spritet ovat tss tiedostossa on
mys piirtojarjestys ruudulla, eli jos haluat sprite #53 piirrettvn
sprite #6:tta ennen, siirr se tiedostossa #6:tta aikaisemmaksi.


#spritetype <simeon>

Tm mrittelee spraitin tyypin, seuraavat ovat tyypit joista voit valita :

<simeon>: Pelaajan hahmo.
<enemy> : Jos tappovrej kytetty tss spritess, koskettaminen tappaa,
          mutta voit tehd mys harmittomia animaatiota tll tyypill jos
          kytt vain ei-tappavia vrej tss spritess
<bonus> : Tm on kerttv itemi, mutta vain jos bonusvrej on kytetty.
          Kun Simeon koskettaa tt, niin kerttvien itemeiden mr
          tippuu yhdell.
<ally> :  On vain pieni eroja <enemy> ja <ally> tyypin vlill, mutta
          <ally> sopii paremmin harmittomiiin liikkuviin spriteihin,
          esim. se boksi "basement" tasossa on <ally>-tyypin sprite.
<gizmo> : Tmkin on kerttv itemi, mutta toisin kuin <bonus>, tm sprite
          ilmestyy uudelleen ruutuun (aktivoituu) jos Simeon palaa thn
          ruutuun, eik bonus-mr pienene.
          Toiset spritet voivat mys aktivoida tmn spriten, eli voit
          tehd esimerkiksi katkaisijoita, kuten "basement"-tasossa.
          Kyt bonus-vrej tss spritess.
<key>   : Avain, kun Simeon ottaa tmn niin yksi avain tulee lis.
<door>  : Ovi-tyyppi. Kun Simeon on tysin oven kyttmn alueen "sisll"
          ja pelaaja painaa enteri niin joko ovi avautuu (jos avaimia tai
          ovi ei ole lukossa) tai sitten Simeon menee ovesta ja tulee toiseen
          ruutuun.


#animationtype <thru>

Seuraavat animaatiotyypit ovat mukana :

<thru>  : Sprite joka ky kaikki mritellyt framet lpi (vain mriteltyyn
          suuntaan) ja sitten aloittaa taas alusta.
<move>  : Tm on melkein sama kuin yll, mutta sopii hiukan paremmin
          liikkuviin spriteihin.
<thruonce> : Kaikki framet kydn lpi, ja sen jlkeen sprite deaktivoituu,
          eli hvi nkyvist.
<moveonce> : Kun tm sprite saavuttaa jonkin mritellyist rajoistaan, se
          hvi.


#amount 4

Tm mrittelee kuinka monta framea spritess on, muista mritell
yht monta framea kun olet tll rivill mritellyt.


#right 1 #1 #delay 10

Tm rivi mrittelee ensimmisen framen jota kytetn kun sprite liikkuu
oikealla (right), framena kytetn gfx-numeroa 1 (#1) ja odottaa 10
sykli kunnes siirtyy seuraavaan frameen.


#right 2 #2 #delay 10 #move 2

Tm on muuten sama, paitsi liikuttaa sprite kaksi pikseli oikealle, ja
tietenkin framenumero on 2 ja kytt gfx: kaksi.


#right 2 #2 #delay 10 #move 2 #change #3 160,100 right

Muuten sama kuin yll, paitsi muuttaa sprite #3:n sijainnin koordinaatteihin
160,100 ja asettaa sen suunnaan oikealle.


Nit parametrej voit kytt frame-mritys riveill :
(Suunta, framenumero ja gfx-numero on pakko mritell)

#delay n   : kuinka monta sykli odotetaan kunnen vaihdetaan seuraavaan
             frameen, n on 1/50 sekunti,
             joten n arvo 50 odottaa tasan sekunnin, arvo 255 on maksimi.
#move n    : Siirt sprite siihen suuntaan mik nyt on frame suunta,
             n monta pikseli, 10 on maksimi.
#activate #n xx,yy direction
           : Tm aktivoi spriten numero n ruudulle koordinaatteihin xx,yy ja
             asettaa sen suunnan suuntaan direction, se voi olla :
              right, left, up tai down.
             Aktivoiminen toimii vain jos sprite on kutsumahetkell
             deaktivoitunut, jos se ei ole, niin tm ei tee mitn.
             Jos annat koordinaatit 0,0 niin kohdespriten sen hetkiset
             koordinaatit jvt voimaan.
#change #n xx,yy direction
           : Tsmlleen sama kuin yll, paitsi ett tm toimii vaikka sprite
             olisikin jo ruudulla.
#dontwipe  : Tm voidaan list activate tai change parametrien pern,
             silloin ko. spriten taustaa ei pest, kyt tt jos kutsuttava
             spraittiin vlkkyy oudosti, tt kytettiin esim. "Castle"-
             tasossa katapultin ammuksiin, jotka muuttavat suuntaa jatkuvasti.

Sitten framemrityksien jlkeen voivat tulla tllisi rivej:

#startframe n  : Mrittelee spriten alkuframen numeron n:ksi, jos
                 teet monta identtisest animoitua sprite, niin tll
                 voit saada niiden animaation pois tahdista, tt kytettiin
                 esim. "launch pad" tason kolmessa terss.
#direction n   : Asettaa spriten alkusuunnan, n voi olla left, right,
                 up tai down. Jos ei mritelty niin suunta on sitten left.
#number n      : Kytetn vain <door>-tyypiss, mrittelee oven numeron,
                 jotta voidaan muistaa onko ovi auki vai ei.
#leftborder n  : Tm asettaa spriten vasemman rajan arvoon n, joten voit
                 mritell miten spritet liikkuvat ruudulla, on mys
                 muutamia hommia jota voit mritell samalla rivill :
 #activate #n xx,yy : Sama homma kuin frame-mrityksisskin, eli voi esim.
                 aktivoida spriten miss tm rivi on, jos se on tyyppi 
                 <moveonce>, niin voit esim muuttaa spriten suuntaa kun
                 vasen reuna on saavutettu.
                 Kytin tllist esim. "lauch pad" tasossa hissitasoon joka
                 kulkee nelinmuotoista reitti.
 #change #n xx,yy  : Sama kuin frame-mrityksiss.
 #dontwipe         : - "" -
#rightborder : kato leftborder..
#upborder    : kato rightborder..
#downborder  : kato upborder..

#ontake   : Tm on kerttville spriteille (bonus ja gizmo), rivi
            mrittelee mit tapahtuu kun sprite kertn, tss ne :
  addstatic #n xx,yy : Lis staattisen gfx:n taustaan. Kun Simeon hipyy
                       ruudusta tai kuolee, niin se graffa on mennytt.
                       Tt kytettiin esim. alppiruudussa avaimeen joka
                       luo pelastavan pilven.
  activate #n xx,yy dir : Aktivoi spriten #n koordiin xx,yy (voi olla 0,0
                          niin ottaa vanhan arvon) ja suunta dir.
  open #n xx,yy : Avaa oven ilman avainta (oven numero n) kuten se on esitelty
                  #number n rivill door-spritess.
  travel #n xx,yy : Menee toiseen tasoon (numeroon #n) ja koordinaatteihin
                    xx,yy.
                    Huom!
                    Tm pit olla mriteltyin kaikissa <door> spriteiss,
                    mutta voi olla mys <bonus> tai <gizmo> itemeiss.

         Huomaa ett niss ei ole #-merkki ekan sanan edess,
         border ja frame mrityksiss tuo #-merkki taas on..


Jos et ymmrtnyt (ei mikn ihme), niin katso esimerkkitiedostoja.



1.4 Tasomuisti :
------------------
Jotta peli tiet mik itemi on kertty ja mit ei ja mik ovi on auki ja
mik taas ei niin pit olla muisti.
Muistissa on tiedot 100 oven tilasta ja mys 30:n spriten tiedot 100:ssa eri
ruudussa.
Se mys rajoittaa Simeonin maailman koon sataan tasoon.

Trke : Muisti muuttuu vain jos :
 1) <bonus> itemi on kertty (ontake-activate tai ontake-change).
 2) <door> on avattu (ontake-open tai enterin painallus).

Eli, jos aktivoit spriten frame tai border-kutsulla, sit ei muisteta kun
taso ladataan uudelleen, muistapa se kun aktivoit "pakko kert"-spritej.
Voit aina kytt 'virtuaalisia' spritej, sill voi tehd mit tahansa, se
voi aktivoida/vaihdaa spritej ja tehd mit nyt vaan voi.
Esimerkiksi "castle" tasossa on kytetty virtuaali-spritej ajoitukseen.
Spriten koordinaatteja tai liikkumis-suuntien ei muisteta, ainostaan tieto
onko sprite aktiivinen vaiko eik.


1.5 Erikoishommat :
--------------------

<BONUS> : Kaikki bonukset pit mritell spritenumeroille 2-30.
<DOOR>  : Sinun pit mritell oven numero, vaikka :
#number 13
          On yleist ett ainakin kahdella ovella on sama numero, joten
          esmerkiksi avaat kodista oven markettiin, niin marketissa oleva
          ovi avautuu mys, jotta pset takaisin kotiin.
          Numeron pit olla 1-100.
          Oven suunta mrittelee oven alkutilan lukituksen :
           Left - Ovi on jo auki.
           Right - Ovi on lukossa, eli avain tarvitaan avaamiseen.
           Up/down - Ovi on lukossa ja avainkaan sit ei avaa, pit avata
                     ontake-open parametrill jostakin bonus/gizmo spritest.



1.6 Omat musat :
----------------
Voit svelt omat taustamusiikkisi kyttmll FM-Kingtracker v1.06-ohjelmaa.
Sinun pit jtt kanavat 17 ja 18 tyhjiksi, koska ni-efektit soitetaan
niden kanavien kautta.
Myskin on kivaa jos laitat kaikille kanaville alkuun notecutin, jottei
ni jisi prisemn taustalle (siis niille kanaville joille et pist
heti nuottia..)
Huomioi mys ett musa ei vlttmti soi tysin samalla tavalla trkkeriss
ja Simeon's Worldissa, esim. jotkin 4 operaattoriset-net voivat soida
erilailla kuin on tarkoitus.
Hiscore-musiikin tulisi olla aika lyhyt koska sen soittoa ei katkaista kun
peli aloitetaan alusta.



1.7 Simeon's Level Script Compiler (SLSC)
-----------------------------------------
Tll sin 'knnt' skriptitiedoston .swl-muotoon.
Itse ohjelma on helppo kytt, anna vain ksiteltvn tiedoston nimi
parametrin, kuten "SLSC MYLEV1.SCP", ja knt alkaa.
Jos lytyy pahoja virheit jotka voisivat mahdollisesti kaataa koneen kun
tasoa pelataan niin ohjelma lopettaa ja antaa virhe-ilmoituksen, joskus
jopa rivinumeron kera.

Kolmannen lpisyn jlkeen on yleist saada varoituksia puuttuvista
frame-mrityksist, mutta ole huoleti, koska jos sprite ei liiku, niin
on tarpeen mritell framet vain yhteen suuntaan.

Jos skripti menee kaikista testeist lpi se muunnetaan ja kirjoitetaan
levylle, sille tulee tss tapauksessa nimi "MYLEV1.SWL", muuten sama
nimi kuin skriptitiedostolla, vain tarkenne muuttuu SWL:ksi.

Virhetarkastus :
SLSC antaa virheilmoituksen jos virhe lytyy, huomaa ett esim virhe :
 'number too small', ei automaattisesti tarkoita ett sin olet mritellyt
 liian pienen numeron rivill, yht hyvin olet voinut unohtaa kirjoittaa
 koko arvon..
Vrinkirjoitettujen sanojen tarkastus ei ole kovin hyv, eli jos
kntj sanoo ett kaik'okei, mutta taso ei toimi, niin tarkasta
skripti uudemman kerran.


1.8 Rakennetaan SLP faili
-------------------------
SLP (Simeon's Level Pack) tiedosto sislt taso-ryppn Simeon's
Worldille (level pack).
Sin rakennat tmn tiedoston SIMBUILD ohjelmalla.

SIMBUILD tarvitsee mrittely tiedoston jotta se tietisi mit rakennetaan,
tmn tiedoston nimen annat parametrina SIMBUILDille.
Sen jlkeen SIMBUILD tekee tyns ja tuloksena olevaa SLP-tiedostoa voidaan
pelata Simeon's Worldista ksin.
Ennenkuin thn pisteeseen pset, niin sinun pit knt kaikki
taso-skriptit SLSC:ll ja nimet ne samankaltaisiksi, esim
?????1.SWL ?????2.SWL .... ?????37.SWL, eli viisi ekaa kirjainta samanlaisia.
Numero kertoo tasonumeron.
Kaikki packkiin kuuluvat pcx-tiedostot pit nimet nin :
level???.pcx kaikille taso-pcx:lle ja anims???.pcx kaikille sprite-pcx:lle.
Kaikki tasot, kuvat ja musat pit olla samassa alihakemistossa.

Mritystiedosto voi olla mink niminen tahansa, mutta sen pit olla
tavallinen tekstitiedosto, seuraavat rivi voivat siell olla :

#message "????" Kuvauksen levelpackist.
#author "????"  Thn voi kirjoittaa ketk tasot tekivt.
                Voit kytt kirjaimia A- 0-1 , . - + ! / ' ja &.
                Maksimipituus nille kahdelle merkkijonolle on noin 60..
                Jos kaikkia tekijit ei voida mainita tss niin, tee
                vaikka ekaksi tasoksi 'credits'-ruutu, jossa taso-pcx:ss
                lukee tekijiden nimi ja sitten on yksi ovi josta pelaaja
                voi kulkea ja aloittaa pelin.

#lives <numero> Kuinka monta elm pelaajalla on.
#bonus <numero> Kuinka monta bonusta pit kert.
#keys <numero>  Kuinka monta avainta on alussa.
#levels <nimi>  Nimen pit olla lyhyempi kuin 6 merkki, koska kolme
                merkki pit varata tason numerolle.
                Tm rivi on pakko mritell.
  Esim : #levels <mylev>

#music n <filenimi> Voi mritell max kymmenen musaa.
  Esim : #music 4 <mytune.fmk>

Jos musiikkeja ei ole, niin alkuperisi lurituksia soitetaan pelin aikana.
Musiikki #1 kytettn 'best times'-ruudussa.
On trke ett mrittelet kaikki musat, ei vain musia 1, 4 ja 5,
se ei toimi sillai, sinun pit mritell musat alkaen numerosta 1 ja siit
sitten 2,3,4 jne.

Esimerkki tiedosto :
#message "Katotaan miten toimii.."
#author "M"
#lives <3>
#bonus <43>
#levels <test>
#keys <1>
#music 1 <tune1.fmk>
#music 2 <tune2.fmk>

Sitten kun ko. SLP-tiedosto on valmis, sen dos-nimi voidaan muuttaa, kunhan
vain tarkenne on .slp

1.9 Esmerkkitiedostot
---------------------
Kaksi tytt tasoa on esimerkkein  (2*skripti, 2*animaatio ja
2*taso pcx:, 2*musaa ja build-mritystiedosto), joten voit harjoitella
"kntmist" ja SLP-tiedoston rakennusta ja katsoa miten homma toimii.

Ekaksi knn molemmat skriptit (SLSC examp1.scp ja SLSC examp2.scp) sitten
rakenna slp kyttmll mritystiedostoa example.txt (SIMBUILD example.txt), the
tulos on EXAMP.SLP, laita tm tiedosto Simeon's Worldin hakemistoon ja
net sen kun aloitat pelaamisen, valitse 'Example'-listasta ja nyt sitten
pelaat itse kntmsi ja rakentamaasi levelpkki.

Esimerkkitasot ovat alkuperisen kaksi ensimmisest tasoa hiukan
ksiteltyin, "Simeon's Home" tasosta on otettu toinen ovi pois ja
"Basement"-tasosta on mys otettu toinen ovi pois ja muutettu ilmestyv
avain bonukseksi.

On jrkev kytt "ty"-hakemistoa, jossa on SIMBUILD.exe, SLSC.exe,
kaikki PCX:t ja skriptitiedostot samassa paikassa.

Kun teet uuden tason levelpakkiin niin on jrkev laittaa se vliaikaisesti
ensimmiseksi, joten voit suoraan kokeilla miten se toimii ilman ett sinun
pitisi kynt 30:n tason lpi nhdksesi ettei se toimikaan niinkuin halusit.

Mys, voit ottaa Simeonin animaatiot esimerkkitiedostosta omaan kyttn,
jos haluat Simeonia peliss kytt, tai sitten voit tehd oman hahmosi, ihan
miten vaan, mutta muista ett hahmon jokaisen framen tulisi olla
samankokoinen, muuten homma voi menn pieleen..


2.0 Loppulausuma
-----------------
Tllinen se nyt sitten oli, ehk jopa sait jotain hydyllist tietoa
tst fileest.
Tottakai, omien tasojen tekeminen olisi voitu tehd todella paljon
helpommaksi jos niden tykalujen tekemiseen olisi laitettu enemmn
aikaa ja vaivaa, esimerkiksi hiirell tapahtuva gfx:ein mappaaminen,
spritejen liikkumareittien hiirell tapahtuva mritteleminen ja muuta
olisi voitu tehd, mutta ei tehty. Kyseesshn on freeware-tyyppinen
levitys, ohjelman/pelin kyttminen/pelaaminen ei maksa sinulle mitn ja
minulta meni vain aikaa ja joissakin kohdissa pala hermoja niden ohjelmien
tekemiseen, nyt teill on mahdollisuus tehd ihan kelvollinen, laaja
vanhanajan hyppelypeli joissa lhes kaikki on muutettavissa jos jostakin
syyst vain nin haluatte menetell..

Muuten, kun teet omia tasoja ja huomaatkin ett jokin ei toimikaan niinkuin
tll sanotaan, niin l pure rannettasi poikki, sill WYSIWYG.

