Page 2 of 18

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Sat Mar 10, 2012 9:04 pm
by Latexi95
Vähän taas kertomusta projektin etenemisestä.

Viime päivien aikana on on puuhailtu objektien, karttojen sekä partikkelien parissa. Nyt cbE pystyy näyttämään ja animoimaan objekteja. Kartat toimivat mukavasti ja myös niiden animointi toimii. Jostain syystä karttojen ulkopuolelle menevät objektit katoavat näkyvistä. Sitä bugia pitää vielä tutkia. Partikkelit sain eilen toimimaan ja ne tuntuvat nyt käyttäytyvän CB:n tapaan. Myös partikkeleiden animointi toimii. Otimme myöskin OpenGL:n glsl shaderit käyttöön kuvien maskausta varten (objektit maskataan ihan korvaamalla tietyn väriset pikselit alphalla ennen tekstuurin siirtämistä näytönohjaimelle) sekä ScreenGammaa varten. Myös GhostObject toimii oikein sekä objekteilla että kartoilla. :lol:

Tässä kuva pienestä MaGetzUbin tekemästä partikkeleilla toteutetusta räjähdysefektistä:
particles.png
particles.png (403.28 KiB) Viewed 6333 times
Kuvassa on zerorun1.bmp animoituna pienellä läpinäkyvyydellä (GhostObject) juoksentelemassa cdm2.til kartalla perus tilesetillä. Vieressä on partikkeleilla tehty räjähdysefekti. Kaikki partikkelit ovat 128*128 kokoisia alphakanavallisia animoituja kuvia. Samaan aikaan partikkeleita pitäisi olla 64 kpl:tta (5 framen välein 4 partikkelia ja partikkelin elinaika 80 framea).
FPS on rajoituttu 60:een. Ilman rajoitusta FPS oli minun koneellani 350.

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Sat Mar 10, 2012 11:03 pm
by Timblex
Upealta näyttää verrattuna nyky-cb:hen varsinkin tuo ghostobjectin toimiminen reaaliajassa on hyvä asia. Ovatko nuo partikkelit tuossa räjähdyksessä animoituja?
Luit ajatukseni, ajattelin juuri, että miten tämä on edistynyt kun viime informaatiosta on kuitenkin jo melko kauan ;)
EDIT:

Onko suunnitelmissa, että tällä voisi kääntää linux-ohjelmia?

EDIT:

Juu niinhän tuolla sanotaankin. Luin sen kyllä tarkkaan mutta en vain jostain syystä tajunnu lukea sitä uudestaan viestiä kirjoittaessani :lol: .


Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Sat Mar 10, 2012 11:13 pm
by Latexi95
timpe99 wrote:Upealta näyttää verrattuna nyky-cb:hen varsinkin tuo ghostobjectin toimiminen reaaliajassa on hyvä asia. Ovatko nuo partikkelit tuossa räjähdyksessä anmioituja?
Luit ajatukseni, ajattelin juuri, että miten tämä on edistynyt kun viime informaatiosta on kuitenkin jo melko kauan ;)
EDIT:

Onko suunnitelmissa, että tällä voisi kääntää linux-ohjelmia?

Partikkelit ovat animoituja. (mikä olisi selvinnyt mikäli olisit lukenut edellisen viestini tarkasti :lol: )

Itseasiassa KW kehittää cbEnchantedia kokoajan linuksilla, joten hän vastaa toimivuudesta linuxilla. Eli cbEnchantedin pitäisi toimia linuxillakin. (KW:lla on kuitenkin jotain ongelmia SFML:n opengl kontekstin luomisen kanssa, tai jotain sen tapaista)

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Sun Mar 11, 2012 12:38 pm
by elmo123
Jos tämä tulee julkaistuksi ennen classicia, pääsen viimein tekemään räiskintää reaaliaikaisilla liikesumennoksilla ym. efekteillä :P

Hyvää työtä!

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Sun Mar 11, 2012 3:44 pm
by Latexi95
elmo123 wrote:Jos tämä tulee julkaistuksi ennen classicia, pääsen viimein tekemään räiskintää reaaliaikaisilla liikesumennoksilla ym. efekteillä :P

Hyvää työtä!
Kiitos. :)
Saa nähdä kuinka kauan tämän valmistumiseen vielä menee. Tällä hetkellä ehkä suurimmat puuttuvat asiat ovat ObjectPick ja CameraPick sekä törmäykset.

Tein hieman testiä perus merkkijonojen yhteenlaskusta, kun tänään olen hieman parannellut merkkijonojen käsittelyä cbE:ssä. Testikoodina toimi tälläinen koodin pätkä:

Code: Select all

start = Timer()
txt$ = ""
For i = 0 To 5000
    txt = txt + i + "|"
Next i
endT = Timer()-start
SetWindow "Time:"+endT
WaitKey
Minun koneellani perus CB suoriutuu tuosta 58 sekunnissa(!!!). Ennen tämän aamuista paranteluani cbE suoriutui tuosta 192ms ja nykyinen versio suoriutui tuosta 9ms. Eli siis tuollaisella testillä cbE on noin 640 000% nopeampi merkkijonojen kanssa kuin perus CB. :D
EDIT:

Korjasin nuo prosentit. Prosenttilaskut eivät kuulu vahvuuksiini.

Edit2: Jaahah... Ilmeisisti nuo Axunkaan prosenttilaskut eivät pitäneet paikaansa. Viltzulta tällä kertaa tuli korjausta noihin prosentteihin.


Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Sun Mar 11, 2012 3:58 pm
by axu
Latexi95 wrote:Minun koneellani perus CB suoriutuu tuosta 58 sekunnissa(!!!). Ennen tämän aamuista paranteluani cbE suoriutui tuosta 192ms ja nykyinen versio suoriutui tuosta 9ms. Eli siis tuollaisella testillä cbE on noin 99,985% (laskinkohan nyt varmasti oikein) nopeampi merkkijonojen kanssa kuin perus CB. :D
CbE suorituu tehtävästä 0,121% ajassa alkuperäiseen nähden tai sitten 5 777 678% nopeammin.

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Mon Mar 12, 2012 1:52 am
by naputtelija
Jos tämä tulee pian, vien sillä CityStriken loppuun. Lupaan sen.

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Mon Mar 12, 2012 8:09 am
by MrMonday
Näyttää ja kuulostaa kyllä pirun hyvältä, kerrassaan loistavalta! Toivotaan että julkaisu ennättää ennen Coolbasic Classicia ulos lievittämään pahinta odotuksen tuskaa :D

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Sun Mar 18, 2012 12:29 am
by Latexi95
Nyt taas kerran jouduimme vaihtamaan multimediakirjastoa. Tällä kertaa siirryimme käyttämään Allegroa SFML:n sijaan. SFML2.0, kun on vielä kehitysvaiheessa ja on hieman buginen, niin vastaan tuli sen verran paljon ongelmia SFML:stä johtuen (mm. ikkunan uudelleen luonti ongelma linuxilla), että päätimme, että on parasta taas vaihtaa kirjastoa. Tällä kertaa otimme käyttöön Allegron, joka vaikuttaa varsin sopivalta tarkoitukseemme, ja se on ainakin stabiiliversio. Tämän päivän aikana sitten porttasin cbE:n nyt suurimmaksi osaksi Allegrolle, mutta vielä riittää hieman tekemistä ennen kuin cbE:ssä on taas kaikki samat ominaisuudet kuin SFML:n aikana. :roll:

Mutta uutena valmistuneena ominaisuutena ovat tyypit. :D
Insert komento on kyllä vielä tekemättä, kun tuli tämä multimediakirjaston vaihto. Samoin tekemättä ovat ConvertToType ja ConvertToInteger. Niiden kohdalla on vielä hieman pohdittavaa, että ne saadaan toimimaan 64bittisillä alustoilla.

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Sun Mar 18, 2012 2:00 am
by naputtelija
Uppikaa juutuuppiin devtestejä?

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Sun Mar 18, 2012 2:12 am
by Latexi95
naputtelija wrote:Uppikaa juutuuppiin devtestejä?
No ainakin minusta vielä vähän turhaa laittaa testejä YouTubeen, kun cbE pyrkii tällä hetkellä vastaamaan tavallista cb:tä, joten onnistuneet testit pitäsi näyttää täsmälleen samalta kuin CB:llä. Tietysti tuollaiset pienet efektit on ihan komean näköisiä ja niitä kyllä kelpaa esitelläkkin, mutta tällä hetkellä kehittäjien on ehkä syytä keskittyä efektien teon, sijaan ominaisuuksien tekemiseen. :lol:

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Tue Mar 20, 2012 6:43 pm
by skorpioni-cb
Latexi95 wrote:Nyt taas kerran jouduimme vaihtamaan multimediakirjastoa. Tällä kertaa siirryimme käyttämään Allegroa SFML:n sijaan. SFML2.0, kun on vielä kehitysvaiheessa ja on hieman buginen, niin vastaan tuli sen verran paljon ongelmia SFML:stä johtuen (mm. ikkunan uudelleen luonti ongelma linuxilla), että päätimme, että on parasta taas vaihtaa kirjastoa. Tällä kertaa otimme käyttöön Allegron, joka vaikuttaa varsin sopivalta tarkoitukseemme, ja se on ainakin stabiiliversio. Tämän päivän aikana sitten porttasin cbE:n nyt suurimmaksi osaksi Allegrolle, mutta vielä riittää hieman tekemistä ennen kuin cbE:ssä on taas kaikki samat ominaisuudet kuin SFML:n aikana. :roll:

Mutta uutena valmistuneena ominaisuutena ovat tyypit. :D
Insert komento on kyllä vielä tekemättä, kun tuli tämä multimediakirjaston vaihto. Samoin tekemättä ovat ConvertToType ja ConvertToInteger. Niiden kohdalla on vielä hieman pohdittavaa, että ne saadaan toimimaan 64bittisillä alustoilla.
Miksette suoraan käytä OpenAL-lää

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Tue Mar 20, 2012 6:58 pm
by MaGetzUb
skorpioni-cb wrote:
Latexi95 wrote:Nyt taas kerran jouduimme vaihtamaan multimediakirjastoa. Tällä kertaa siirryimme käyttämään Allegroa SFML:n sijaan. SFML2.0, kun on vielä kehitysvaiheessa ja on hieman buginen, niin vastaan tuli sen verran paljon ongelmia SFML:stä johtuen (mm. ikkunan uudelleen luonti ongelma linuxilla), että päätimme, että on parasta taas vaihtaa kirjastoa. Tällä kertaa otimme käyttöön Allegron, joka vaikuttaa varsin sopivalta tarkoitukseemme, ja se on ainakin stabiiliversio. Tämän päivän aikana sitten porttasin cbE:n nyt suurimmaksi osaksi Allegrolle, mutta vielä riittää hieman tekemistä ennen kuin cbE:ssä on taas kaikki samat ominaisuudet kuin SFML:n aikana. :roll:

Mutta uutena valmistuneena ominaisuutena ovat tyypit. :D
Insert komento on kyllä vielä tekemättä, kun tuli tämä multimediakirjaston vaihto. Samoin tekemättä ovat ConvertToType ja ConvertToInteger. Niiden kohdalla on vielä hieman pohdittavaa, että ne saadaan toimimaan 64bittisillä alustoilla.
Miksette suoraan käytä OpenAL-lää
OpenAL == Audion toistokirjasto.
OpenGL == Grafiikanpiirto kirjasto.
Allegro on taas pelien teko kirjasto joka varmaan pohjautuu OpenGL:ään.
EDIT:

Joo Allegro pohjautuu siis OGL:ään niinkuin Latexi tuossa alempana sanoo.


Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Tue Mar 20, 2012 6:59 pm
by Latexi95
skorpioni-cb wrote: Miksette suoraan käytä OpenAL-lää
Tarkoitan nyt "multimediakirjastolla" muitakin asioita kuin vain ääniä. Eli siis tuossa kirjastossa on äänien lisäksi myös ikkunan luominen ja piirtäminen yms. Päädyimme käyttämään valmista multimediakirjastoa erillisten kirjastojen sijaan ihan yksinkertaisuuden takia. Esimerkiksi, jos käyttäisimme OpenAL:llää ääniä varten tarvitsisimme toisen kirjaston ikkunan luontia varten ( koska emme jaksa kirjoittaa jokaiselle alustalle erikseen omaa koodia). OpenAL:llää varten tarvitsisimme myöskin erilaisia plugineja yms. että saisimme tuen useille ääniformaateille. Käytännössä tekisimme kaiken sen mitä Allegro nyt tekee puolestamme. Ei tarvitse alkaa ruveta keksimään pyörää uudelleen. Me säästämme paljon aikaa ja vaivaa, kun teemme cbE:n hieman korkeamman tason palasten päälle.
EDIT:

MaGetzUb: Kyllä Allegro käyttää OpenGL:llää.


Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Tue Mar 20, 2012 7:01 pm
by skorpioni-cb
MaGetzUb wrote:
skorpioni-cb wrote:
Latexi95 wrote:Nyt taas kerran jouduimme vaihtamaan multimediakirjastoa. Tällä kertaa siirryimme käyttämään Allegroa SFML:n sijaan. SFML2.0, kun on vielä kehitysvaiheessa ja on hieman buginen, niin vastaan tuli sen verran paljon ongelmia SFML:stä johtuen (mm. ikkunan uudelleen luonti ongelma linuxilla), että päätimme, että on parasta taas vaihtaa kirjastoa. Tällä kertaa otimme käyttöön Allegron, joka vaikuttaa varsin sopivalta tarkoitukseemme, ja se on ainakin stabiiliversio. Tämän päivän aikana sitten porttasin cbE:n nyt suurimmaksi osaksi Allegrolle, mutta vielä riittää hieman tekemistä ennen kuin cbE:ssä on taas kaikki samat ominaisuudet kuin SFML:n aikana. :roll:

Mutta uutena valmistuneena ominaisuutena ovat tyypit. :D
Insert komento on kyllä vielä tekemättä, kun tuli tämä multimediakirjaston vaihto. Samoin tekemättä ovat ConvertToType ja ConvertToInteger. Niiden kohdalla on vielä hieman pohdittavaa, että ne saadaan toimimaan 64bittisillä alustoilla.
Miksette suoraan käytä OpenAL-lää
OpenAL == Audion toistokirjasto.
OpenGL == Grafiikanpiirto kirjasto.
Allegro varmaan pohjautuu OpenGL:ään. (Tästä en ole varma, uskoisin näin. Edittaan kun olen tutkinut.)
Kai minä nyt tiedän mikä OpenAL on, olen kato tehnyt pientä pelintynkää OpenGL+SDL, mutta en ikinä ääniä, mutta jos olisin, olisin käyttänyt OpenAL:llää.

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Tue Mar 20, 2012 7:08 pm
by MaGetzUb
skorpioni-cb wrote: Kai minä nyt tiedän mikä OpenAL on, olen kato tehnyt pientä pelintynkää OpenGL+SDL, mutta en ikinä ääniä, mutta jos olisin, olisin käyttänyt OpenAL:llää.
Miksi sitten ehdotit OpenAL:ää, vaikka ei Quoteemassasi Latexin viestissä edes mainita äänistä mitään. Allegrossa on ihan mukava äänituki että OpenAL:ää tuskin tarvitaan mihinkään. :)

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Wed Apr 04, 2012 7:25 pm
by Latexi95
Nyt ollaan edellisen viestini jälkeen hieman opeteltu Allegron käyttöä ja korjailtu eri funktioiden toimintaa. Muutamia uusia CB:n funktioita ollaan saatu tehtyä toimintaan.

Pikselioperaatiot toimivat cbE:ssä nyt varsin hyvin. Lukittuun puskuriin operaatiot ovat CB:n omia nopeampia, mutta lukitsemattomaan puskuriin tehdyissä operaatioissa cbE häviää (reilusti) CB:lle. Tämä johtuu kuvien sijaitsemisesta näytönohjaimen muistilla, joten siihen nopeuteen tuskin tulee muutosta. Eli kannattaa lukita puskuri aina, kun käyttää pikselioperaatioita.
cbE ei tee komennoissa tai funktioissa eroa lukitun ja lukitsemattoman välille, joten sekä PutPixel että PutPixel2 toimivat sekä lukittuihin että lukitsemattomiin puskureihin. Sama pätee myös GetPixeliin sekä PickImageColoriin. Myöskin PickColor hyötyy näytönpuskurin lukitsemisesta.

Törmäykset ovat yhä työvaiheessa, mutta VesQ on lupautunut vilkaisemaan niitä ja ne toivottavasti saadaan ainakin osittain toimintaan lähiaikoina.

Uutena ominaisuutena tuli uusien funktioiden lisäämisen mahdollisuus. Eli nyt pystymme laajentamaan CB:n funktioiden määrää nyt varsin helposti. Tämän toiminto vaatii pienien funktiorunkojen tekemistä CB:n puolelle.

Code: Select all

Function testiFunktio(fa)
    group = 1
    id = 13
EndFunction
Käytännössähän cbE:n tulevien sisään rakennettujen funktioiden tapauksessa teidän tarvitsee vain Includen avulla liittää nuo "headerit" ohjelmaanne.
cbE tutkii kaikki funktiot ja mikäli se löytää funktion, joka sisältää ainoastaan kaksi muuttujaansijoitusoperaatiota, niin se koittaa etsiä taulukostaan noihin kahteen muuttujan arvoon sopivaa funktiota. Sitten cbE vaihtaa funktiokutsun kutsumaan haluttua c/c++ funktiota. Tämän ansiosta lisätyt funktioit ovat aivan yhtä nopeita kuin cb:n omat funktiotkin.

Haluamme tietysti tuoda teille mahdollisuuden käyttää samaa tekniikkaa myös luodessanne uusia kirjastoja, niin ei tarvitse enää pyöritellä muistipaloja ja kutsuminen on paljon nopeampaa. KW ilmeisesti (kun se on aiheellista) tekee mahdollisuuden linkittää kirjastoja myös staattisesti suoraan cbE:tä käyttävään ohjelmaan, jolloin DLL:llää ei tarvita, mutta myös mahdollisuus käyttää dynaamista linkitystä kirjastojen kanssa annetaan. CB:llä ohjelmoinnin kannalta kirjastojen linkitystavalla ei ole oikeastaan merkitystä. Dynaamisen linkityksen tapauksessa oletettavasti pitää kutsua jonkinlaista "LoadLib" funktiota (nimeä ei ole vielä päätetty), joka lataa dynaamisen kirjaston. KW osannee kertoa enemmän tuosta staattisen linkityksen käyttämisestä kirjastojen kanssa.

cbE:n tulevista uusista funktioista tästä ensimmäisenä mieleen tulevat ainakin Triangle-funktio kolmioden piirtämistä varten ja mahdollisuus tiedon siirtämiseen netin yli. En ole aivan varma tulemmeko käyttämään suoraan cbNetworkin funktioiden nimiä ja toimintaa (jolloin cbNetworkillä tehdyt ohjelmat toimisivat suoraan) vai teemmekö oman jolloin yhteyksien muodostaminen voisi tulla helpommaksi ja Tcp-tuki sulautuisi paremmin mukaan. (Itse olen ehkä jälkimmäisen kannalla)

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Thu Apr 05, 2012 7:26 pm
by valscion
No nyt olisi jo jonkinlaista tekniikkademoa saatavilla. Jahka joku (KilledWhale) kääntää tuon myös linuxille, niin saatte testailla sitä miten cbE toimii myös sillä alustalla natiivisti ;)

Pidemmittä puheitta, ladatkaapas tästä cbe_ratasefekti_2012-04-05.7z

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Thu Apr 05, 2012 8:34 pm
by Pate5
Jes. Tätä onkin odoteltu ainakin täälläpäin todella innokkaasti. Sitten kun tämä tulee, niin lupaan koodata... jotain. Mutta tosiaan, todella hyvää työtä ja kiva kun jaksatte väsätä tällaista muiden iloksi.

Re: cbEnchanted - uudelleenkirjoitettu runtime kaipaa kehitt

Posted: Fri Apr 06, 2012 9:56 am
by Konstaduck
Minulla ei näkynyt siinä ruudussa mitään, ja kun yritin sammuttaa, antoi tällaista virheilmoitusta:

Image