Page 1 of 3

CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Wed Apr 04, 2012 6:12 pm
by axu
Github-repo: https://github.com/aXu-AP/CoolBasic-Party-Pack
Wikistä voit lukea yleensä ajantasaisempaa tietoa kuin tästä viestistä: https://github.com/aXu-AP/CoolBasic-Party-Pack/wiki
Juttele ircissä: #cbpartypack @ IRCnet

Ilmoitustaulu:
Tällä hetkellä tarvitaan auttavia käsiä seuraaviin hommiin:
  • Päägraafikko. Tehtävänäsi on luoda pelihahmoja, tilesettejä ja mahdollisesti toteuttaa toivomuksia. Tyyliä ei olla vielä lukittu, joten sen suhteen sinulla on melko vapaat kädet.
  • Musiikkia. Tarvitaan monentyyppistä musiikkia, joskin tähän saa kaikki kykenevät osallistua.
  • Ääniefektejä. Joku kohtalainen kirjasto ääniefektejä, jotka sointuvat sopivasti yhteen. Myös hahmojen ääniä tarvitaan jonkun verran (huudahduksia).
  • Pelimoottori ylhäältäpäin kuvatulle pelille. Löyhästi APIin sidottu pelimoottori, joka sijoitetaan osaksi lisäkirjastoa. Lue lisää
  • Pelimoottori sivultapäin kuvatulle pelille. Löyhästi APIin sidottu pelimoottori, joka sijoitetaan osaksi lisäkirjastoa. Lue lisää
CoolBasic Party Pack
CoolBasic Party Pack on partypeli yhteisöprojektina. Peli tulee olemaan minipelikokoelma Mario Party-tyyliin (toistaiseksi ei olla suunniteltu kehyspeliä, joskin sellainen tulee olemaan) ja kuka tahansa CB:tä osaava voi kantaa kortensa kekoon eli tehdä oman minipelinsä. Tällä hetkellä minipelin rakenteiden ja rajapinnan (API) tekeminen on kesken, mutta tavoitteena on saada se tarpeeksi valmiiksi 20.4 mennessä niin, että minipelien koodaaminen voi alkaa. Joitain toimintoja saattaa tulla vielä sen jälkeen (mutta niiden ei pitäisi vaikuttaa jo tehtyihin minipeleihin).

Rajapinta tarjoaa funktiot niin itse pelin kuin pelaajienkin tietojen hallintaan. Ainakin sivulta ja ylhäältä kuvatuille peleille tehdään valmiit pelimoottorit. Myös valmista mediaa (grafiikkaa ja ääntä) tarjotaan. Omaa grafiikkaa ja ääniä saa minipelilleen tehdä jos valmiista grafiikoista ei löydy tarvittavaa, kunhan ovat linjassa muiden kanssa. Ohjelmointiin liittyen tulee olemaan jonkun verran sääntöjä mm. käytettävien komentojen (ei kustom framelimittejä, pelin asetusten muuttamista ym.) ja käyttötapojen suhteen (ei kovakoodattuja näppäimiä, ääniefektejen voimakkuuksia). Pelit jaetaan eri ryhmiin pelaajien kokoonpanon mukaan, kuten Mario Partyssa (vaihtoehtoina kaikki vs kaikki, 1 vs loput tai 2 joukkuetta vastakkain). Myös mahdollisuus toimia useammassa kategoriassa (esim. yksilösuoritukset missä pelaajat eivät vaikuta keskenään toimivat joka kategoriassa splitscreeninä toteutettuna).

Musiikkia saa kanssa kuka tahansa tehdä ja ne lisätään muutamaan eri soittolistaan tunnelman mukaan (rento, vauhdikas, jännittävä jne.). Jokaiselle pelille oma musiikki olisi aika yliampumista. Peliin lisätään kehysohjelmassa tuleva soittofunktio, jota kutsutaan kutakuinkin näin: PlayBGMusic(BG_MOOD), missä BG_MOOD korvataan soittolistaa vastaavalla vakiolla. Tuo funktio hoitaisi kaiken musiikin valitsemiseen, looppaamiseen, voimakkuuteen liittyen.

Pelaajilla tulee olemaan jonkinlaiset avatarit sekä tunnusväri. Jos joku ei halua pelissään käytettävän valmista hahmografiikkaa vaan esim. avaruusaluksia, niin nämä voidaan sitten värjätä pelaajien tunnusvärin mukaisesti (johon myös oma funktio). Pelihahmot tulevat olemaan kustomoitavia.

Pisteytyksen suhteen olen hieman ristiriitaisissa fiiliksissä. Kaikkiin peleihin ei pisteytystä voi järkevästi toteuttaa (esim. kivi, paperi, sakset tai ristinolla) ja toisissa pisteiden määrä vaihtelee suuresti. Mahdollisesti pisteille pitää määrittää pelikohtainen kerroin, että keskimäärin voittaja saa vaikka 1000 pistettä. Toinen vaihtoehto on määrittää kerroin aina pelin päätteeksi niin, että voittaja saa aina 1000 pistettä ja muut suhteessa siihen. Pääsääntöisesti tärkeintä lienee voittojärjestys.

Nyt saa ehdottaa ideoita, mitä kehysohjelmaan eli API:in tarvitaan.
Tässä joitain API:n osia, mitä käytetään minipelin kehittämisessä (tarkempi tieto wikissä)
  • Funktiot käyttöliittymäelementtien lisäämiseksi
  • Funktio korvaamaan DrawScreeniä, samalla päivittää ja piirtää käyttöliittymän, pelin kellon ja tarkistaa halutaanko peli paussille ja toistaa looppimusan
  • Korvikkeet KeyHit/Down/Up-funktioille, kutsutaan antamalla pelaajan numero ja tarvittava näppäin (nuolinäppäin tai toimintonäppäin)
  • Median lataamiseen funktiot niin, että voidaan käyttää ennaltaladattuja kohteita ja pelikohtainen media tuhotaan automaattisesti pelin päätyttyä
  • Funktiot pelaajien tietojen (esim. hp tai objekti) tallettamiseen
Jos haluat olla projektissa mukana, mutta et tiedä gitistä tai githubista, lue seuraavat: Voit lukea Offtopic-ketjussa käydyn keskustelun tästä viestistä eteenpäin.

Re: Cool Game Collection aka yhteisön kasaama partypeli

Posted: Wed Apr 04, 2012 6:23 pm
by naputtelija
Jos otettaisiin aikaisempien pikapelikisojen pelien parannettuja versioita? Esimerkiksi minun "juoksupelin" koodia voisi parantaa, siihen vaihtaa oikea hahmo, ja lisätä äänet. Kyllä voi olla tietenkin upouusiakin pelejä, mutta pelin tunnelman lisäämiseksi siihen voisi lisätä yhteisössä aikaisemmin nähtyjä pelejä.

Re: Cool Game Collection aka yhteisön kasaama partypeli

Posted: Wed Apr 04, 2012 6:31 pm
by valscion
naputtelija wrote:Jos otettaisiin aikaisempien pikapelikisojen pelien parannettuja versioita? Esimerkiksi minun "juoksupelin" koodia voisi parantaa, siihen vaihtaa oikea hahmo, ja lisätä äänet. Kyllä voi olla tietenkin upouusiakin pelejä, mutta pelin tunnelman lisäämiseksi siihen voisi lisätä yhteisössä aikaisemmin nähtyjä pelejä.
En kannata ajatusta. Mielellään kaikki tehtäisiin uudelleen niin saataisiin yhteensopivia pelejä niin koodillisesti kuin tunnelmallisesti/graafisesti. Samanlainen ilme pitäisi kuitenkin olla jokaisen pelin välillä edes jotenkin ja siksi toisistaan täysin irralliset pelit eivät oikein kuulosta hyvältä ajatukselta.

Re: Cool Game Collection aka yhteisön kasaama partypeli

Posted: Wed Apr 04, 2012 6:41 pm
by axu
Tietenkin jokainen, joka haluaa, voi sovittaa vanhoja pelejä tähän sopivaksi, mutta todennäköisesti tehokkainta on kirjoittaa koodit uusiksi. Itse ainakin tykkäisin pelata joitain vanhempia tuotoksia, tosin ei nyt mieleen tule mitään erityistä.

Niin no tuo visuaalinen ilmekin pitäisi tosiaan olla kohdallaan. Eli joutuu pitkälti tekemään kokonaan uusiksi nuo vanhemmat pelit.

Nyt kun siitä on puhe, minkälaista ilmettä ehdotatte pelille? Itse ajattelin melko tyypillistä, suht. kirkkaita värejä ja ehkä hieman sarjakuvamaista grafiikkaa. Luulen, ettei kannata kovin erikoistunutta suuntaa ottaa, että kaikki voi helposti piirtää grafiikkaa.

Ruudun koko tässä enemmän huolestuttaa. Onko 800x600 sopiva? Tietääkseni se toimii melkein joka näytöllä resoluutiona ja jos ikkunoituna niin on riittävän iso suuremmille resoluutioille, mutta tarpeeksi pieni, ettei pienimmätkään ruudut täyty kokonaan. Toisaalta 640x360 skaalautuu mukavasti double/triple pikseleillä full hd (1920x1080)-näytöille, 1280x1024 näytössä ylhäälle ja alhaalle jää mustat palkit, 1366x768 jää pieni musta reuna pelin ympärille, mutta 1680x1050 leikkaa osan pois tai isohko musta reuna ympäröi. (nämä resoluutiot muodostavat yli 60% steamin käyttäjien näyttöresoluutioista)

Re: Cool Game Collection aka yhteisön kasaama partypeli

Posted: Sat Apr 07, 2012 9:02 pm
by atomimalli
Projua githubiin niin pääsee hahmottelemaan koodia järkevästi. Apihahmotteluja, niiden kehittämistä ja lopulta hyväksymistä. Niin se varmaan toimisi kivasti. Skeletoni pelille olisi kiva saada kasaan. 800x600 olisi varma resovalinta. Mahtuu pienemmillekin näytöille ja coolbasicin vähäiset tehot saattavat vielä riittää kivoille efekteille. Efektejä miettien 640x480 olisi hiukan parempi minusta. Kunhan mahdollisimman paljon hoidetaan apin kautta, niin muutoksille on varaa.

Tähän mennessä taitaa olla selvää tuo, että pelit edustavat itseään yhdellä funktiolla, joka palauttaa eri parametreilla kaiken tarvittavan. Eheyden vuoksi kannattaa varmaan olla pakollisena toteutettavana joku kykyluettelo, jossa kerrotaan että mitä kutsuja se tukee tai sitten testausparametri. Tykkäisin ensimmäisestä ehkä enempi. Tuohon olisi sitten helppo lisätä toiminnallisuutta ilman että kaikki pelit hajoavat.

Toimintoja olisi ainakin pelin nimen, logon/kuvan, tuetut pelaajamäärät, tuetut vaikeustasot jne. Jos peli ei esimerkiksi tue vaikeustason valintaa, niin api ei välitä vaikeustasopyyntöä pelille.

Luulen että merkkijonolla kommunikointi on helpointa, koska niillä saa kaikenlaista dataa kätevästi. Toinen olisi muistipala ja tyypit niissä. Api tietysti hoitaisi kaiken tuon, joten sitä ei tarvisi miettiä. Pyytää vaan tiettyä tietoa ja saa vastauksen sovitussa muodossa. Kenties joka toiminnolle oma kyselyfunktio, niin ei tarvi kikkailla paluuarvon kanssa.

Ihan alkuun joku placeholderpelinlataaja on varmaan hyvä, että devauksen saa käyntiin. Ei kannata juuttua siihen, että mitä sen tilalle tulee kun sitä voi miettiä myöhemminkin. Peleille voisi kenties olla useampi pisteytyssysteemi, josta sitten voi myöhemmin valita sopivimman tai konvertoida tarjollaolevasta. Näin ei tarvitse niin paljoa vaivaantua kokonaisuudesta. Vaikkapa ihan järjestys, oikeat pisteet, mitalit, mitä nyt keksiikään. Kunhan jonkun noista saa toimimaan, niin api voi konvertoida niiden välillä. Tietysti useampi olisi parempi. Tämä mahdollistaa lisäksi pelien hyödyntämisen eri konteksteissa/moodeissa, joissa on erilaiset pisteytykset.

Minusta tuntuu että voisi olla pikkuruiset pelimoottorit sivusta päin, yläviistosta, ylhäältä päin jne oleville peleille niin voisi helposti tehdä erilaisia mutta yhteensopivia pelejä. Vaikkapa lautapelimoottori myös, jos joku inspiroituu.

Re: Cool Game Collection aka yhteisön kasaama partypeli

Posted: Sat Apr 07, 2012 9:43 pm
by Taatero
Voin vääntää grafiikkaa jos tarvitsee.

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sat Apr 07, 2012 10:40 pm
by axu
Grafiikkaa tarvitaan kyllä, heti kun on päätetty se resoluutio. Hahmografiikkaa varten pitää myös päättää ensin, voiko niitä kustomoida (eli pitääkö tehdä palasina) ja myös tyyliä on hyvä miettiä yhdessä.
Olen nyt pystyttämässä githubiin projektia, mutta en ole ennen tehnyt niin saa nähdä mitä tapahtuu. Vaihdetaan nyt myös tuo nimi Party Packiksi :D

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sat Apr 07, 2012 11:05 pm
by Frozen
axu wrote:Grafiikkaa tarvitaan kyllä, heti kun on päätetty se resoluutio. Hahmografiikkaa varten pitää myös päättää ensin, voiko niitä kustomoida (eli pitääkö tehdä palasina) ja myös tyyliä on hyvä miettiä yhdessä.
Olen nyt pystyttämässä githubiin projektia, mutta en ole ennen tehnyt niin saa nähdä mitä tapahtuu. Vaihdetaan nyt myös tuo nimi Party Packiksi :D
[offtopic] axu, 666 viesti :) [/offtopic]

Mielestäni ainakin hahmot pitäisi saada kustomoitua palasista, jolloin pienemmällä työllä saisi enemmän erilaisia ulkonäkövaihtoehtoja. Voin _ehkä_ itsekin tehdä grafiikoita projektiin. Mielestäni 800*600 olisi hyvä reso.

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sat Apr 07, 2012 11:23 pm
by axu
Noniin, tuollapa on repo (siellä on testiksi yksi cb-tiedosto): https://github.com/aXu-AP/CoolBasic-Party-Pack
En tosiaan ole GitHubia aiemmin käyttänyt, enkä gitiäkään kovin paljoa, joten jos on jotain vinkkejä niin kertokaa ;)
Mikähän tuossa 800x600 resoluutiossa on niin hyvää? Vaikka kutakuinkin kaikki näytöt tukevat sitä, niin tuon kuvasuhteen näyttöjä löytyy enää harvalta. 640x360 skaalautuu käytetyimmille näyttöresoluutioille nätimmin kuin 800x600, joskaan alueen koko ei päätä huimaa. 2D-pelejä on myös hankalempi suunnitella laajakuvana (lukuunottamatta sivultakuvattuja).

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 12:29 am
by Latexi95
axu wrote:Noniin, tuollapa on repo (siellä on testiksi yksi cb-tiedosto): https://github.com/aXu-AP/CoolBasic-Party-Pack
En tosiaan ole GitHubia aiemmin käyttänyt, enkä gitiäkään kovin paljoa, joten jos on jotain vinkkejä niin kertokaa ;)
Mikähän tuossa 800x600 resoluutiossa on niin hyvää? Vaikka kutakuinkin kaikki näytöt tukevat sitä, niin tuon kuvasuhteen näyttöjä löytyy enää harvalta. 640x360 skaalautuu käytetyimmille näyttöresoluutioille nätimmin kuin 800x600, joskaan alueen koko ei päätä huimaa. 2D-pelejä on myös hankalempi suunnitella laajakuvana (lukuunottamatta sivultakuvattuja).
Gitistä:
Suosittelen tortoiseGitiä (mutta muista valita ssh:ksi OpenSSH asennettaessa), niin git integroituu mukavasti resurssienhallintaan. Ennen työskentelyn aloittamista Pull. Kun lopetat tai saat jotain valmiiksi, niin Commit hyödyllisen viestin kera. Jos commitettu versio kääntyy ja toimii oikein tai ei haittaa muita, niin se kannattaa tyrkätä (Push) repoon muiden käytettäviksi.

Resoluutiosta:
800x600 on hyvä, koska se on sopivan suuri ja varmasti tuettu kaikilla, myöskin fullscreeninä. Mutta esimerkiksi hieman isompi 1280x768 voisi käydä myös hyvin.

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 10:02 am
by axu
Latexi95 wrote:Gitistä:
Suosittelen tortoiseGitiä (mutta muista valita ssh:ksi OpenSSH asennettaessa), niin git integroituu mukavasti resurssienhallintaan. Ennen työskentelyn aloittamista Pull. Kun lopetat tai saat jotain valmiiksi, niin Commit hyödyllisen viestin kera. Jos commitettu versio kääntyy ja toimii oikein tai ei haittaa muita, niin se kannattaa tyrkätä (Push) repoon muiden käytettäviksi.

Resoluutiosta:
800x600 on hyvä, koska se on sopivan suuri ja varmasti tuettu kaikilla, myöskin fullscreeninä. Mutta esimerkiksi hieman isompi 1280x768 voisi käydä myös hyvin.
Kiitosta. Voiko tuonne githubiin muuten lisätä tiedostoja selaimen kautta? En itse löytänyt nopealla vilkaisulla Yksi tämän projektin aatteista on helppo kehittäminen. En usko, että kaikilla on Git tai haluavat asentaa ja opetella käyttämään pelkästään minipelin lisäämistä varten. Jos tuo ei onnistu, vaihtoehtona on lähettää tähän ketjuun oma minipeli niin minä voin vaikka lisäillä niitä tuotoksia sinne.

Lähinnä heitin tuon 800x600 kommentin retorisena kysymyksenä, se on sellainen kaikille yhtä huono vaihtoehto. Itse olen tosiaan 640x360 reson kannalla (full HD jaettuna kolmella), mutta jos ei kannatusta löydy niin en koe 800x600 mitenkään ongelmalliseksi (hyvästi doublepixel, tervetuloa sumea skaalaus :'( ). Elettäisiinpä vielä kuvaputkinäyttöjen aikaa, jolloin kaikki oli ongelmatonta :D

Ajattelin tänään lisäillä tuonne jonkinlaisen dokumentin, johon listataan kaikki komennot API:lle.

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 10:21 am
by Latexi95
axu wrote: Kiitosta. Voiko tuonne githubiin muuten lisätä tiedostoja selaimen kautta? En itse löytänyt nopealla vilkaisulla Yksi tämän projektin aatteista on helppo kehittäminen. En usko, että kaikilla on Git tai haluavat asentaa ja opetella käyttämään pelkästään minipelin lisäämistä varten. Jos tuo ei onnistu, vaihtoehtona on lähettää tähän ketjuun oma minipeli niin minä voin vaikka lisäillä niitä tuotoksia sinne.

Lähinnä heitin tuon 800x600 kommentin retorisena kysymyksenä, se on sellainen kaikille yhtä huono vaihtoehto. Itse olen tosiaan 640x360 reson kannalla (full HD jaettuna kolmella), mutta jos ei kannatusta löydy niin en koe 800x600 mitenkään ongelmalliseksi (hyvästi doublepixel, tervetuloa sumea skaalaus :'( ). Elettäisiinpä vielä kuvaputkinäyttöjen aikaa, jolloin kaikki oli ongelmatonta :D

Ajattelin tänään lisäillä tuonne jonkinlaisen dokumentin, johon listataan kaikki komennot API:lle.
No tämän projektin tapauksessa tuollainen erikseen lisääminenkin toiminee, kun minipelit ovat niin itsenäisiä palasia.

Kyllä gitin käyttö on sellainen taito jota todennäköisesti lähes kaikki foorumilaiset tulevat käyttämään jossain vaiheessa. Oikeastaan jonkun pitäisi tehdä asiasta pieni ohje. Voisin ehkä ensiviikolla koittaa jotain kuvasarjaa väsätä ihan gitin asennuksesta ja tärkeimpien toimintojen käytöstä.

640x360 on mielestäni ehkä liian pieni ja se saattaisi rajoittaa pelin tekemistä eikä se toimi (ainakaan minulla) fullscreenissä.

Dokumentaatio <3
Hienoa dokumentaatiota kelpaa aina ihailla. (VesQ väsäsi cbE:n hienot dokumentaatiot :D)

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 10:37 am
by Timblex
Juu tuo 800x600 on hyvä reso kun toimii useimmilla näytöillä ja ei ole kuitenkaan liian pieni.
Itse olen gitin asentanut node.js:n yhteydessä mutta en sitä sen kummemmin osaa käyttää.

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 11:52 am
by valscion
Linkitetäänpäs tännekin tämä NetMatchia varten tekemäni GitHub-ohje, jonka avulla pääsee gittailemisessa alkuun :) https://github.com/VesQ/NetMatch/wiki

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 4:53 pm
by atomimalli
Hyvimpä typosin. 640*480, tarkoitin. kiva, että minut silti otettiin vakavasti. Meneekös se oikeasti tasan jonkun tuetun resoluution kanssa vai oliko se vain arvailua? Onkos projekteille tapana tehdä oma github-tunnus vai pystyttääkö joku vain omalle tunnukselle?
EDIT:

Oho. jotenkin kännykällä katsoessa missasin että se onkin jo pystyssä. eipä sitten mitään.

4:3-resoluutio on kyllä vanhenemassa ja sen muutos asettaa haasteita asetteluille kun ylhäällä ja alhaalla on vähempi tilaa. Minun näyttöni taitaa olla 1024x600. se tuntuu vähän turhan isolta coolbasicille jo ainakin miniläppärin tehoilla. Graafikoille pienempi taitaa olla hiukan helpompi myös. tuplapikselit jälkiefektinä ei tiada olla kovin raskas, mutten ole testannut isommilla resoluutioilla sitä ollenkaan.

Koska includet sotkevat virheilmoitukset, niin pitäisikö tähän aika pian saada joku työkalu, joka kertoo oikean tiedoston ja rivinumeron virheilmoituksen rivinumerosta?

Toinen, mitä voisi tarvita, on testipääohjelma, joka käynnistää kehitettävän pelin suoraan tai lähes suoraan, jotta testaaminen olisi helpompaa. pystyisiköhän jotain jdocin kaltaista automaattidokumentaatiota käyttämään, jotta apiin tutustuminen olisi helpompaa.

Minusta tuntuu että kaikki apijutut pitäisi prefixata apiksi.
EDIT:

ai en typonnutkaan


Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 5:55 pm
by Timblex
Sain vihdoin tuon gitin toimimaan ja forkkasin tuon sinun reposi ja ehdin jo vähän muutoksiakin tehdä omaan forkkiini.
Tuo 640*360 josta puhuit on kyllä juuri se, joka on Full HD jaettuna kolmella.
Kiitos Vesq tuosta ohjeesta, pääsin sen avulla melko pitkälle, tosin asennuksessa ei näkynyt tuota ssh clientin valitsemista ollenkaan ja minun piti generoida se ssh key git-keygenillä ja siitä sitten exportata se puttygenillä tortoisegitillekkin mutta sain sen kuitenkin vihdoin toimimaan. :)

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 7:36 pm
by axu
Itse en muistaakseni mitään tehnyt puttygenillä? Saatan muistaa väärinkin mutta ei kuulosta tutulta. Hyvin tämä kuitenkin tuntuu itselläni toimivan. Hyvän näköinen ohje muuten, lisään sen aloitusviestiin. Aavesoturikin kirjoitti muutama vuosi taaksepäin versionhallintajärjestelmistä yleisemmin (lähinnä siitä mitä se tarkoittaa): viewtopic.php?f=12&t=1634 <== kannattaa lukea, jos ei tiedä, mitä se git tekee.

Atomi, kirjoitit ihan oikein tuon 640x480, 640x360 oli minun ideani, lähtien juuri tuosta FullHD-yhteensopivuudesta (mikä muutaman vuoden päästä lienee lähes joka kodin resoluutio). Kokeilkaa, miten toimii seuraava ohjelma:

Code: Select all

Print "Valitse resoluutio numeronäppäimellä:"
Print " 1: 640x360"
Print " 2: 1280x720"
Print " 3: 800x600 (fullscreen)"
Print " 4: 1280x1024 (fullscreen)"
Print " 5: 1366x768 (fullscreen)"
Print " 6: 1680x1050 (fullscreen)"
Print " 7: 1920x1080 (fullscreen)"

Global RenderW, RenderH, ScreenW, ScreenH, Zoom, MidImage, OffsetX, OffsetY
RenderW = 640
RenderH = 360
Select WaitKey() - 1
    Case 1
        Full = False
        Zoom = 1
        ScreenW = 640
        ScreenH = 360
    Case 2
        Full = False
        Zoom = 2
        ScreenW = 1280
        ScreenH = 720
    Case 3
        Full = True
        Zoom = 1
        ScreenW = 800
        ScreenH = 600
    Case 4
        Full = True
        Zoom = 2
        ScreenW = 1280
        ScreenH = 1024
    Case 5
        Full = True
        Zoom = 2
        ScreenW = 1366
        ScreenH = 768
    Case 6
        Full = True
        Zoom = 2
        ScreenW = 1680
        ScreenH = 1050
    Case 7
        Full = True
        Zoom = 3
        ScreenW = 1920
        ScreenH = 1080
End Select

SCREEN ScreenW, ScreenH, 0, (Full = False)

If ScreenW <> RenderW Or ScreenH <> RenderH Then
    MidImage = MakeImage(RenderW, RenderH * Zoom)
    OffsetX = (ScreenW - RenderW * Zoom) / 2
    OffsetY = (ScreenH - RenderH * Zoom) / 2
EndIf

Floor = MakeObjectFloor()
Grass = LoadImage("Media/Grass.bmp")
PaintObject Floor, Grass

MasterCow = LoadAnimObject("Media/animCow.bmp", 30, 25, 0, 4)
ShowObject MasterCow, OFF
Dim Cow(29)
For i = 0 To 29
    Cow(i) = CloneObject(MasterCow)
    PositionObject Cow(i), RenderW/2 - Rand(RenderW), RenderH/2 - Rand(RenderH)
    tmp = Rand(1) * 2
    LoopObject Cow(i), tmp, tmp + 1, 0.05
Next i


TranslateCamera (ScreenW - RenderW) / 2, -(ScreenH - RenderH) / 2
Repeat
    TranslateCamera (RightKey() - LeftKey()) * 3, (UpKey() - DownKey()) * 3
    DrawGame
    Text 0, 0, "FPS: " + FPS()
    DrawToWorld ON
    Box -RenderW/2, RenderH/2, RenderW, RenderH, 0
    
    MAIN_DrawScreen()
Forever


Function MAIN_DrawScreen()
    If ScreenW <> RenderW Or ScreenH <> RenderH Then
        For y = 0 To RenderH - 1
            For i = 0 To Zoom
                CopyBox 0,  y, RenderW, 1, 0, y * Zoom + i, SCREEN(), Image(MidImage)
            Next i
        Next y
        Color 0, 0, 0
        DrawToWorld OFF
        Box 0, 0, ScreenW, ScreenH
        For x = 0 To RenderW - 1
            For i = 0 To Zoom
                CopyBox x, 0, Zoom, RenderH * Zoom, Int(CameraX()) + x * Zoom + i - ScreenW / 2 + OffsetX, Int(-CameraY()) -ScreenH / 2 + OffsetY, Image(MidImage), SCREEN()
            Next i
        Next x
    EndIf
    DrawScreen
End Function
Tuossa on sitten aikamoista säätöä ja kokeilemalla haettu muutamia arvoja ruudun kopioimisprosesseja varten (monet asiat tuntuvat toimivan ihan erilailla kuin odottaisi).
Itselläni pyörii skaalaamattomana 180 FPS (Win7 FTW!), mutta muilla resoluutioilla 60 FPS (lienee cb:n rajoituksia, kun tuohon jäi resoluutiosta riippumatta). En itse päässyt testaamaan 1920x1080 resoluutiota kun oma näyttöni on 1680x1050.

Hyvä huomio muuten noista virheilmoituksista. Pakko on tehdä jonkinlainen testipääohjelma, mikä sisältää vain yhden filun ja pyörittää yhtä peliä, että vältytään noilta includevirheiltä.
Mielenkiintoiselta näytti vilkaisulta tuo jdoc. Jos tuon saa toimimaan cb-kommenteilla, niin käytetään vain - jos ei, niin ei vaikuta kovalta hommalta tehdä yksinkertainen ohjelma, joka parsii kommentit tiedostoista ja latelee html-koodia.

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 8:02 pm
by koodaaja
Ihmeessä kannattaa laittaa myös natiivi fullscreen vaihtoehdoksi, ei ole kovin vaikeaa tai hidasta käydä parilla for-loopilla kaikkia näyttötiloja esmes 4000x4000 alaspäin ja ottaa ensimmäinen joka on tuettu, eli yleensä näytön natiiviresoluutio.

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 8:15 pm
by Feuer
Eikös natiivireson löytäminen CB:ssä ollut helpointa SCREEN 0,0,0,0 - komennolla?

Re: CoolBasic Party Pack aka yhteisön kasaama partypeli

Posted: Sun Apr 08, 2012 8:25 pm
by Timblex
Juuri niin ja sitten siitä saa ne korkeuden ja leveyden windowwightillä ja -heightillä eli ei tarvitse ollenkaan mitään for looppeja.
Se ongelma joka minulla oli johtui siitä että laitoin epähuomiossa tortoisegitin ssh:ksi tuon puttyn kun taas Gitillä se oli OpenSSH. Ongelman olisi kuitenkin saanut korjattua asentamalla tortoisegitin uudetaan eri asetuksilla muttä näin vähemmä vaivalloiseksi exportata gitillä luomani privaatin ssh avaimen puttygenillä myös tortoisegitille.