cbMap - Karttafunktioita 3D-ominaisuuksilla

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder »

Olin jo vanhalle foorumille lähettänyt tilekarttojen käsittelyyn tehdyn funktiopaketin.
Nyt tuo paketti on saanut ominaisuudet jolla tilekartalle voi helposti luoda 3-ulotteisia rakennuksia vanhaan kunnon GTA-tyyliin. Rakennuksia voidaan myös teksturoida.

Imuroi esimerkkiohjelma CoolTown ja kokeile!

Paketti on ollut valmis jo jonkin aikaa mutta KTE on yksinoikeudella tehnyt moottorin päälle demopelin.
Peli löytyy täältä.
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Jonez »

Näyttää erittäin hyvältä, tätä tullaan varmasti käyttämään.

No leikin tolla vähäsen ja huomasin pari asiaa:
- Ensinnäkin, talojen korkeus voi olla vain kokonaisluku, mutta se voisi yhtä hyvin olla liukuluku. Periaatteessa turha yksityiskohta, mutta ehkä joku joskus tarvii sitäkin ominaisuutta. Sen saa kuitenkin itsekin helposti muutettua.

- Hieman pahempi ongelma on se, ettei tällä systeemillä voi tehdä taloja "päällekkäin". Ajattele kahta taloa, jotka ovat esim. kulmistaan kiinni toisissaan. Tällaisia on, ja monen muunkin muotoisia. Tällä systeemillä päällekkäin olevat talot bugaavat: matalampi talo piirretään tietyissä kulmissa korkeamman päälle.

- Kolmas ja ehkä kaivattavin ominaisuus voisi olla yksittäisten rakennusten poistaminen. Uudelleenteksturointi onkin jo, joka on erittäin hyvä asia, mutta ajattele esim peliä, jossa voin hyvällä omallatunnolla sinkautella rakennuksia singolla. Jos rakennuksia voisi poistaa ja rakentaa uudelleen, saisi helposti aikaan esim. jonkinlaisen romahdusefektin. Lisäksi tämä mahdollistaisi paketille suunnatun map-editorin (siis kyllä se vieläkin mahdollista on, mutta ei "reaaliaikaisena").

Mutta loppujen lopuksi tämä on erinomainen paketti, joka vetää vertoja jopa cbNetworkille jo helppokäyttöisyytensä takia. Hyvää työtä.

Edit. Ja tästä asiasta en nyt ole varma, kun se vasta juolahti mieleen, mutta olisi hyvä jos objekteja saisi jollain tavalla piirrettyä myös talojen päälle. Tämä olisi erittäin kaivattava ominaisuus.
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder »

Jonez wrote: - Ensinnäkin, talojen korkeus voi olla vain kokonaisluku, mutta se voisi yhtä hyvin olla liukuluku. Periaatteessa turha yksityiskohta, mutta ehkä joku joskus tarvii sitäkin ominaisuutta. Sen saa kuitenkin itsekin helposti muutettua.
Rakennusten dimensiot määritellään tileinä joten siksi kokonaisluku. Katsoin sen olevan selkeämpää näin.
- Hieman pahempi ongelma on se, ettei tällä systeemillä voi tehdä taloja "päällekkäin". Ajattele kahta taloa, jotka ovat esim. kulmistaan kiinni toisissaan. Tällaisia on, ja monen muunkin muotoisia. Tällä systeemillä päällekkäin olevat talot bugaavat: matalampi talo piirretään tietyissä kulmissa korkeamman päälle.
Päällekkäisyydellä tarkoittanet intersektiota etkä korkeussuuntaista päällekkäisyyttä?
Jos rakennukset ovat osittain sisäkkäin niin silloin tulee kyllä ongelmia piirtämisen kanssa. Ongelman voi kiertää tekemällä ensin päärakennuksen ja sitten siipirakennuksen paloista.
Jotenkin näin:

Code: Select all

XXXXXX
XXXXXXWWWW
XXXXXXWWWW
    OOOOOO
X on päärakennusta ja O ja W kaksi erillistä palikkaa jotka muodostavat siipirakennuksen.
Tuo on luonnollisesti purkkaviritys ja tekstuurien kanssa joutuu kikkailemaan.

Sitten on tuo korkeussuuntainen päällekkäisyys. Sen pystyy tekemään. Taitaa olla CreateBuilding:in kolmas parametri jolla ilmoitetaan lattiatason korkeus. Normaalisti se on nolla eli maassa kiinni ja silloin systeemi lisää automaattisesti HIT-kerroksen talon alle. Jos talo on ilmassa niin pelihahmo voi kävellä sen alle piiloon.
Systeemi yrittää epätoivoisesti laskea jonkinmoista piirtojärjestystä mutta joissain tapauksissa se kusee.
- Kolmas ja ehkä kaivattavin ominaisuus voisi olla yksittäisten rakennusten poistaminen.
Tähän tulee jossain vaiheessa päivitystä. KTE:lla oli tuossa demopelissä jo tämänkaltaisia ongelmia joten tulossa on.
Pitäähän vanhat talot purkaa pois kun uusi kartta ladataan.
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by iTKEVAnAKKI »

KIITOS KIITOS JA KIITOS!!! Nyt saa ns. 3d nopeasti. Mietin vain, että eikö tuota maan ja kameran välistä kulmaa voisi muuttaa jotenkin jolloin saataisiin vielä parempi 3d-tunnelma? :D

OT: Ja tein pienen ja yksinkertaisen funktion talojen lataamiseen jos ei tarvitse erinlaista tekstuuri joka sivulle.

Code: Select all

Function LoadFullBuilding(building,wall,roof)
  SetTexture(building,TX_ROOF,roof)
  SetTexture(building,TX_LEFT,wall)
  SetTexture(building,TX_RIGHT,wall)
  SetTexture(building,TX_FRONT,wall)
  SetTexture(building,TX_BACK,wall)
EndFunction 
EDIT: Ups. olihan siellä jokin "PERSPECTIVE_RATIO#". Ja toivottavasti se tarkoittaa tuota mitä haluan :D Paitsi laitoin vahingossa siihen tasan 5 joka taisi olla "hieman" liikaa. Kone oli jumissa joku 5 min. nyt uus yritys :D
Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee ;)
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder »

iTKEVAnAKKI wrote:Mietin vain, että eikö tuota maan ja kameran välistä kulmaa voisi muuttaa jotenkin jolloin saataisiin vielä parempi 3d-tunnelma? :D
Ei voi!

Tällä systeemillä ei ole mitään tekemistä oikean 3d:n kanssa.
Yhtään ainoaa 3d-laskukaavaa ei ole käytetty vaan illuusio perspektiivistä saadaan hyvin yksinkertaisella kertolaskulla.
Jos kameran kulmaa muutettaisiin niin silloin oltaisiin jo oikeassa 3d-maailmassa jossa pelkät illuusiot ei riitä (eikä varsinkaan cb:n tehot).

EDIT:
EDIT: Ups. olihan siellä jokin "PERSPECTIVE_RATIO#". Ja toivottavasti se tarkoittaa tuota mitä haluan :D Paitsi laitoin vahingossa siihen tasan 5 joka taisi olla "hieman" liikaa. Kone oli jumissa joku 5 min. nyt uus yritys :D
Juu, kannattaa säätää aika varovasti sillä pienikin muutos vaikuttaa.
Tuo muuttaa vain perspektiiviä eikä kameran kulmaa maahan nähden.
iTKEVAnAKKI
Advanced Member
Posts: 335
Joined: Tue Aug 28, 2007 3:55 pm
Location: Siellä jossain

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by iTKEVAnAKKI »

Joo okei. Mutta kuitenkin pirun hieno :D Oletko kokeillut kuinka montaa taloa pystyy pyörittämään? :D Vai toimiiko aivan normaalisti? :D
Projektit:
Joku projekti meneillään... Mitähän siitäkin tulee ;)
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder »

iTKEVAnAKKI wrote:Oletko kokeillut kuinka montaa taloa pystyy pyörittämään? :D Vai toimiiko aivan normaalisti? :D
En ole kokeillut mutta talojen määrä ei juuri vaikuta suorituskykyyn sillä piirtovaiheessa käsitellään vain näkyviä taloja.
Latausajat tietysti kasvavat. Suurin osa ajasta kuluu tekstuurien valmisteluun mutta systeemi osaa käyttää jo ladattua tekstuuria samankokoisissa seinissä.

Omalla koneella tuo esimerkki pyörii paikasta riippumatta täydet FPS 60.
Harakka
Advanced Member
Posts: 430
Joined: Mon Aug 27, 2007 9:08 pm
Location: Salo
Contact:

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Harakka »

Ohhoh. Todella vaikuttavaa - aiheutti ihan oikeasti suurimman koskaan koetun WOW-fiiliksen CB:n parissa. Tämä on mahtavaa. Tuli hyvä inspis päälle. 8-)

Systeemi tahmaa välillä ja alkaa sitten pyöriä uudestaan sulavasti. Mistäköhän se johtuu?
Peli piirtokomennoilla - voittaja, Virtuaalilemmikkipeli - voittaja,
Sukellusvenepeli - voittaja, Paras tileset - voittaja
Vaihtuva päähenkilö - voittaja, Autopeli - voittaja sekä
Hiirellä ohjattava peli - voittaja B)
leonarven
Newcomer
Posts: 30
Joined: Sun Aug 26, 2007 4:02 pm
Location: Somewhere in Newada

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by leonarven »

Jee... uutta Marcoderia :D

Hieno on ja käyttöön tulee. Mulla oli FPS 17.
Tulooko tämäkin CB SDK:hn?
Mr.Demolition
Newcomer
Posts: 21
Joined: Tue Aug 28, 2007 6:54 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Mr.Demolition »

UU uuuu! One Saintin lähdekoodi vain uusiksi. Pitää vähän tutkailla tuota kooia, jos vaikka oppisi jotain :D
Kelli
Newcomer
Posts: 25
Joined: Mon Aug 27, 2007 10:15 pm
Location: Finland

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Kelli »

Loistavaa, tämähän on oikein laadukas systeemi. Kyllä minulla oli tässä kaupunki esimerkissä tasaisesti 60fps, mutta tuossa zombie pelissä oli 30 pintaan. En tiedä oliko 30fps limit tuossa, vai oliko se muuten vain raskaampi.
Life is worthless without computer.
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder »

Harakka wrote:Systeemi tahmaa välillä ja alkaa sitten pyöriä uudestaan sulavasti. Mistäköhän se johtuu?
Mullakin tuolla toisella koneella tahmaa välillä eli ukko jähmettyy vajaaksi sekunniksi kunnes taas jatkaa kulkuaan.
Tutkiskelin eri prosessien suorittimien käyttöä ja aika-ajoin joku prosessi tekee jotain. Lataa päivityksiä tai jotain. Kone on läppäri jossa Windows 2000.

Tällä koneella (läppäri XP:llä) pyörii täysin sulavasti kaiken aikaa.

Sitten on vielä yksi läppäri jossa on Vista. Tulos on kelvoton.

leonarven wrote:Hieno on ja käyttöön tulee. Mulla oli FPS 17.
Tulooko tämäkin CB SDK:hn?
Aika heikko FPS! Koneen tehot ja käyttis?
SDK:n ylläpito on ollut viime aikoina aika kuralla. Pitäisi ottaa taas itseään niskasta kiinni ja tehdä asialle jotain. :roll:

Kelli wrote: Kyllä minulla oli tässä kaupunki esimerkissä tasaisesti 60fps, mutta tuossa zombie pelissä oli 30 pintaan. En tiedä oliko 30fps limit tuossa, vai oliko se muuten vain raskaampi.
KTE:n zombie-pelissä vesisade ja zombien suuri lukumäärä verottaa suorituskykyä.
leonarven
Newcomer
Posts: 30
Joined: Sun Aug 26, 2007 4:02 pm
Location: Somewhere in Newada

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by leonarven »


Hieno on ja käyttöön tulee. Mulla oli FPS 17.
Tulooko tämäkin CB SDK:hn?
Aika heikko FPS! Koneen tehot ja käyttis?
SDK:n ylläpito on ollut viime aikoina aika kuralla. Pitäisi ottaa taas itseään niskasta kiinni ja tehdä asialle jotain. :roll:
Koneen käyttis on Windows XP Home Edition.
Tehoja:
Prossua 2,66 Ghz, RAM:ia 768 ja näyttis ATI Radeon 9250
User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by vilQuri »

Sanoisin että VAU!! saatan nyt muuttaakkin tekeillä olevan räiskintä pelin koodia :shock:
FPS oli 73 ja hyvin pyöri!
Mr.Demolition
Newcomer
Posts: 21
Joined: Tue Aug 28, 2007 6:54 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Mr.Demolition »

Pääsinpä nyt tuota tilesettiä ja tilemappia vähän muokkaamaan, ja täytyy sanoa, että koko One Saint menee uusiksi. Yritän vähän opetella tuota CB koodausta (typet ja funktiot pitäisi ainakin opetella). Sitten lisäilen vähän rakennuksia tuonne ja laajennan mappia pikkuhiljaa. Yritän pistää kuvaa kun on pelaaja edes jotenkin valmis.
Keep up the good work!
Thomazu
Active Member
Posts: 179
Joined: Tue Aug 28, 2007 7:28 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Thomazu »

Siis WAU!!! Tää siis on jo jotain todella mahtavaa! Tuli kyllä heti vanha kunnon GTA 2 mieleen :lol: Nyt sain kyllä kunnon inspiraation :) täytyy varmaan omistaa viikonloppu koodaukselle ja suunnitelulle :P
Image
regalis
Advanced Member
Posts: 268
Joined: Mon Aug 27, 2007 9:44 pm

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by regalis »

Uskomattoman hieno! Jonkun on pakko tehdä joku GTA-tyylinen peli tämän pohjalta. :)
Onko tuo miten hidas isoilla kartoilla? Kuoleman pataljoonat -pelissäni on 200 x 300 tilen kokoinen kartta, taitaa hidastua jonkin verran, jos käyttäisin tätä? Muuten kyllä voisi tehdä "3d-talot" siihen...
Mr.Demolition
Newcomer
Posts: 21
Joined: Tue Aug 28, 2007 6:54 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Mr.Demolition »

regalis wrote:Uskomattoman hieno! Jonkun on pakko tehdä joku GTA-tyylinen peli tämän pohjalta. :)
Onko tuo miten hidas isoilla kartoilla? Kuoleman pataljoonat -pelissäni on 200 x 300 tilen kokoinen kartta, taitaa hidastua jonkin verran, jos käyttäisin tätä? Muuten kyllä voisi tehdä "3d-talot" siihen...
Teen jo ;)
User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by TheDuck »

Mr.Demolition wrote:
regalis wrote:Uskomattoman hieno! Jonkun on pakko tehdä joku GTA-tyylinen peli tämän pohjalta. :)
Onko tuo miten hidas isoilla kartoilla? Kuoleman pataljoonat -pelissäni on 200 x 300 tilen kokoinen kartta, taitaa hidastua jonkin verran, jos käyttäisin tätä? Muuten kyllä voisi tehdä "3d-talot" siihen...
Teen jo ;)
Mäkin :O
^^
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: cbMap - Karttafunktioita 3D-ominaisuuksilla

Post by Marcoder »

regalis wrote:Onko tuo miten hidas isoilla kartoilla?
Itse kartan koko ei vaikuta suorituskykyyn mitenkään.
Rakennusten määrä on ratkaiseva tekijä ja siinäkin vain ruudulla näkyvien rakennusten määrä.

Huomasin pienen optimointivirheen jonka korjaan jossain vaiheessa.
Ensin määritellään rakennusten piirtojärjestys. Sen jälkeen piirretään vain näkyvät rakennukset.
Parempi tapa olisi ensin tutkia piirretäänkö taloa ylipäänsä ja vain piirrettävät rakennukset osallistuvat piirtojärjestyksen laskentaan.
Vaikutus tuskin on merkittävä mutta vaikutus kuitenkin.
Post Reply