CoolBasic & netti = cbNetwork

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Trilobiitti

Re: CoolBasic & netti = cbNetwork

Post by Trilobiitti » Mon Mar 02, 2009 5:08 pm

Pystyykö cbNetwork-funktioilla millään tavalla välittää php-ohjelmalle muuttujan ja sen arvon POST-taulukon kautta?

User avatar
valscion
Moderator
Moderator
Posts: 1588
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: CoolBasic & netti = cbNetwork

Post by valscion » Tue Mar 03, 2009 12:24 am

Trilobiitti wrote:Pystyykö cbNetwork-funktioilla millään tavalla välittää php-ohjelmalle muuttujan ja sen arvon POST-taulukon kautta?
Muistan lukeneeni vanhojen foorumeiden puolelta, että tätä olisi jo kysytty. Marcoder, cbNetworkin luoja, sanoi ettei se ole mahdollista. Harmi vain.

Tarvittaessa voit kumminkin paloitella tiedot max. 100-kirjaimen pituisiksi GET-arvoiksi osoitteeseen ja käyt sitten php-puolella läpi jokaisen arvon ja lisäät ne samaan merkkijonoon. Hankalaa ja purkkaisaa, mutta pitäisi jotenkin saada toimimaan... tiedostojakin pystyisi näin ehkä lähettämään, mutta sitten koko kannattaisi olla melko pieni.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com

User avatar
Someday coder
Active Member
Posts: 106
Joined: Wed Jul 30, 2008 5:04 pm

Re: CoolBasic & netti = cbNetwork

Post by Someday coder » Sun Mar 08, 2009 11:34 am

Toimiiko tässä evästeet? tai miten saisi toimimaan.

User avatar
Ruuttu
Devoted Member
Posts: 687
Joined: Thu Aug 30, 2007 5:11 pm
Location: Finland, Sipoo

Re: CoolBasic & netti = cbNetwork

Post by Ruuttu » Sun Mar 08, 2009 6:58 pm

Someday coder wrote:Toimiiko tässä evästeet? tai miten saisi toimimaan.
Evästeet ei liity tiedon siirtymiseen internetissä millään tavalla. Sori vain. Eli ei toimi.

User avatar
valscion
Moderator
Moderator
Posts: 1588
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: CoolBasic & netti = cbNetwork

Post by valscion » Mon Mar 09, 2009 1:48 am

Someday coder wrote:Toimiiko tässä evästeet? tai miten saisi toimimaan.
Evästeet lähetetään normaalisti HTTP-headereiden mukana palvelimelle tarvittaessa. cbNetworkin avulla et voi vaikuttaa siihen, mitä headereita lähetät; joudut tyytymään pelkästään URLiin piilotettuihin tietoihin.

Katso vielä mikä EVÄSTE oikeasti on, niin ei tule sekaannuksia :)
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com

User avatar
Tuxi
Active Member
Posts: 189
Joined: Wed Jan 21, 2009 11:25 pm
Contact:

Re: CoolBasic & netti = cbNetwork

Post by Tuxi » Tue Apr 07, 2009 7:23 pm

Onnistuuko siis luvun lähettäminen nettiin? Jos onnistuu, niin miten?
Projektit:
Jotain pientä (Ehkä vähän suurempaakin)

-Tuxi- (myös Tuxi4321)

User avatar
valscion
Moderator
Moderator
Posts: 1588
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: CoolBasic & netti = cbNetwork

Post by valscion » Tue Apr 07, 2009 9:05 pm

Tuxi wrote:Onnistuuko siis luvun lähettäminen nettiin? Jos onnistuu, niin miten?
Helposti onnistuu. HTTPGet() funktiota apuna käyttäen nimittäin, laitat sivun osoitteeseen luvun mukaan. Sinulla täytyy olla palvelimella (siis nettisivulla) sitten jonkinlainen tapa ottaa tieto talteen URL:sta. Esim. PHP:n puolella $_GET[] taulukko saa automaagisesti arvoikseen osoitteessa olevat tiedot

Tiedot voi laittaa osoitteeseen esimerkiksi näin:
Jos tätä tapaa käytetään esim. top10 listan ylläpitämisessä, kannattaa ottaa huomioon se, ettei tuloksia voida vääristää mielivaltaisesti kirjoittamalla itse osoitetta. Totuus on nimittäin, että ohjelman käyttäjä voi kaapata tiedon siitä, mistä URL:sta tietoa haetaan. Käytä siis jonkinlaista hashaus-menetelmää (esim. MD5 mistä löytyy koodikin CBKK:sta) apuna, siis jos siirrät jotain tietoa jota EI saa olla mahdollista vaihtaa mielivaltaisesti.

EDIT (17.5.10): Korjasin linkin, kun CBKK ei toimi enää.
EDIT (12.9.10): Korjasin linkin taas, kun jouluserver on kaatunut aikoja sitten.
Last edited by valscion on Sun Sep 12, 2010 1:07 pm, edited 2 times in total.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com

User avatar
zHelmet
Member
Posts: 73
Joined: Mon Nov 10, 2008 4:55 pm

Re: CoolBasic & netti = cbNetwork

Post by zHelmet » Thu Apr 23, 2009 2:48 pm

Onko hidasta suorittaa kaikki ampumiseen liittyvä tarkastu (osuma ym.) serverillä?

m1c
Member
Posts: 65
Joined: Tue Aug 28, 2007 5:10 pm
Location: \o

Re: CoolBasic & netti = cbNetwork

Post by m1c » Thu Apr 23, 2009 6:25 pm

zHelmet wrote:Onko hidasta suorittaa kaikki ampumiseen liittyvä tarkastu (osuma ym.) serverillä?
Ei, ja se on pakollista ellet halua että instant-kill-cheatterit valtaavat pelisi. Käytännössä lienee näppärintä, että pelaajan ruutu päivittyy normaalisti, ja clientti lähettääkin serverille tiedon missä oma pelaaja (omasta mielestään) sijaitsee. Palvelin laskee esim pelaajan maksimiliikkumanopeueden ja liikkumasuunnan perusteella pelaajan paikan(lähinnä siis varotoimi ettei pelaaja ole siirtynyt kauemmas kuin mitä on mahdollista), ja lähettää kaikille clienteille tiedon sen sijainnista. Kaikkien clienttien tulisi myös saada aika-ajoin tieto omasta sijainnistaan palvelimen mielestä, sillä muuten viivet vääristävät tilannetta. Sama ampumiselle.

Tiivistettynä: jokainen clientti laskee itse pelimekaaniset jutut sulavuuden takaamiseksi, mutta saavat silti palvelimelta ne oikeat tiedot tapahtumista ja korjaavat omia mallejaan sen mukaisesti.

User avatar
zHelmet
Member
Posts: 73
Joined: Mon Nov 10, 2008 4:55 pm

Re: CoolBasic & netti = cbNetwork

Post by zHelmet » Thu Apr 23, 2009 8:37 pm

m1c wrote:
zHelmet wrote:Onko hidasta suorittaa kaikki ampumiseen liittyvä tarkastu (osuma ym.) serverillä?
Ei, ja se on pakollista ellet halua että instant-kill-cheatterit valtaavat pelisi. Käytännössä lienee näppärintä, että pelaajan ruutu päivittyy normaalisti, ja clientti lähettääkin serverille tiedon missä oma pelaaja (omasta mielestään) sijaitsee. Palvelin laskee esim pelaajan maksimiliikkumanopeueden ja liikkumasuunnan perusteella pelaajan paikan(lähinnä siis varotoimi ettei pelaaja ole siirtynyt kauemmas kuin mitä on mahdollista), ja lähettää kaikille clienteille tiedon sen sijainnista. Kaikkien clienttien tulisi myös saada aika-ajoin tieto omasta sijainnistaan palvelimen mielestä, sillä muuten viivet vääristävät tilannetta. Sama ampumiselle.

Tiivistettynä: jokainen clientti laskee itse pelimekaaniset jutut sulavuuden takaamiseksi, mutta saavat silti palvelimelta ne oikeat tiedot tapahtumista ja korjaavat omia mallejaan sen mukaisesti.
niin mutta meinaankin että serverillä siis olisi kartat ja kaikki tarkistamiseen?? ja se tekisi sen siinä sivussa?

User avatar
valscion
Moderator
Moderator
Posts: 1588
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: CoolBasic & netti = cbNetwork

Post by valscion » Sun Apr 26, 2009 11:31 pm

Serverillä kannattaa kaikki tarkistukset suorittaa matemaattisesti. Törmäykset tarkistetaan koordinaattien ja kulmien avulla, eikä piirretä objekteja/kuvia palvelimen puolella. Server ei itse voi nopeuden huiman laskemisen takia piirtää/käyttää karttaa eikä muita objekteja, koska muuten clienttien pelaaminen hidastuu huomattavasti. Reaaliaikaista räiskintäpeliä tjsp. ei sillä tavalla ainakaan saisi aikaan.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com

User avatar
Latexi95
Guru
Posts: 1164
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: CoolBasic & netti = cbNetwork

Post by Latexi95 » Tue May 05, 2009 7:44 pm

Mahtava idea...
Entä jos serverille lähetettäisiin pelkästään tieto napin painalluksista. Silloin toinen tietokone pystyisi helposti piirtämään objecktit oikeille paikoilleen. Eli jos normaalisti serverille lähetettäisiin kokoajan tiedot objectejen sijainnista, niin minun ideassani tiedot lähetettäisiin vain jos nappeja painetaan.
Silloin serverille tarvitsisi lähettää tiedot vain 0-5 napin painalluksesta per frame tai napin painallukset voisi kerätä talteen ja lähettää kerralla vaikka 10 framen välein. Esim.

Code: Select all

if Keydown(cbkeyUp) then Ylöspäinnuolipohjassa+1
ja toisessa päässä kone hakee serveriltä tiedot painalluksista ja esim.

Code: Select all

moveobject vastustaja,Ylöspäinnuolipohjassa
Ylöspäinnuolipohjassa=0
moveobject vastustaja,-Alaspäinnuolipohjassa
Alaspäinnuolipohjassa=0
turnobject vastustaja,-vasennuolipohjassa
vasennuolipohjassa=0
turnobject vastustaja,oikeanuolipohjassa
oikeanuolipohjassa=0

. Tämän pitäisi toimia, koska fysiikoiden pitäisi olla samat.

(Korjatkaa jos olen väärässä)
Toivottavasti ideoistani on hyötyä.
Itse en ole käyttänyt cbNetWorkiä mutta kiinnostukseni heräsi luettuani tämän viestiketjun,
mutta vaikuttaa vaikealta. (kannattaako neuvoa toisia jos ei ole itse edes kokeillut?)

User avatar
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: CoolBasic & netti = cbNetwork

Post by JATothrim » Tue May 05, 2009 8:21 pm

Tuo voisi toimiakkin. Tosin se riippuu siitä, että laskeeko Serveri vai Client pelaajien paikat. Järkevintä oli tietysti että serveri laskee objektien paikat. Näin pelissä huijaaminen tulee erittäin vaikeaksi ja Clientin puoli on helpompi toteuttaa. Vastaavasti Serveri olisi vaikea toteuttaa niin, että se ei lagaisi.
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.

User avatar
Taatero
Advanced Member
Posts: 384
Joined: Tue May 27, 2008 6:06 pm

Re: CoolBasic & netti = cbNetwork

Post by Taatero » Tue May 05, 2009 8:27 pm

JATothrim wrote:Tuo voisi toimiakkin. Tosin se riippuu siitä, että laskeeko Serveri vai Client pelaajien paikat. Järkevintä oli tietysti että serveri laskee objektien paikat. Näin pelissä huijaaminen tulee erittäin vaikeaksi ja Clientin puoli on helpompi toteuttaa. Vastaavasti Serveri olisi vaikea toteuttaa niin, että se ei lagaisi.
Uskokaa nyt että yhtälö Clientside calculations = FAIL on validi.
[color=#40BF00][u]koodaaja[/u][/color] wrote:Täyden turvan takaamiseksi avain olisi myös kuljetettava offlinenä suoraan tulevien viestien lähettäjältä niiden vastaanottajalle laitakaupungin hämärissä yöneljältä ja varmistettava, ettei kumpaakaan osapuolta seurata. Popliinitakkia suositellaan.

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: CoolBasic & netti = cbNetwork

Post by axu » Wed May 20, 2009 9:00 pm

Aloinpas minäkin opettelemaan netin käyttöä ja tuli tässä muuten mieleen, että miten kannattee tehdä kaksinpeli netin kautta? Kannattaisiko pitää yhtä serveriä, "ykköspelaajaa" ja yhtä clienttiä, "kakkospelaajaa" vai yhtä serveriä ja kahta clienttiä?
EDIT:

"netin käyttöä", hyvin sanottu, tarkoitin tietenkin cb:n kanssa :D

Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

User avatar
valscion
Moderator
Moderator
Posts: 1588
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: CoolBasic & netti = cbNetwork

Post by valscion » Wed May 20, 2009 9:03 pm

Hmm no periaatteessa voisit tehdä niin että teet vain yhden ohjelman. Se, kumpi ensiksi joinaa (tai voi myös laittaa alkuun valinnan) olisi vaikka palvelin ja ottaisi siis tiedot vastaan. Loppujen lopuksi se on vain makukysymys.

Mutta jos kaksinpeliä meinaa niin ei nyt kannata pakottaa pelaajaa pitämään kahta ohjelmaa auki samanaikaisesti (server ja client) vaan yhdistät tietenkin sen niin että servustakin voi pelata.
EDIT:

Katsokaa Valtzun viesti alta ja unohtakaa tämä :roll:

Last edited by valscion on Sat May 23, 2009 8:57 pm, edited 1 time in total.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com

User avatar
Valtzu
Active Member
Posts: 115
Joined: Sun Aug 26, 2007 2:40 pm
Location: Sauvo
Contact:

Re: CoolBasic & netti = cbNetwork

Post by Valtzu » Thu May 21, 2009 11:19 am

VesQ wrote:Hmm no periaatteessa voisit tehdä niin että teet vain yhden ohjelman. Se, kumpi ensiksi joinaa (tai voi myös laittaa alkuun valinnan) olisi vaikka palvelin ja ottaisi siis tiedot vastaan. Loppujen lopuksi se on vain makukysymys.

Mutta jos kaksinpeliä meinaa niin ei nyt kannata pakottaa pelaajaa pitämään kahta ohjelmaa auki samanaikaisesti (server ja client) vaan yhdistät tietenkin sen niin että servustakin voi pelata.
Itse kokeilin joskus ilmakiekkopelissä tuota, että servulla voi pelata. Ei kannata. Jos peli on reaaliaikainen, eikä mikään kliksuttelustrategia, on lagi aivan hirmuinen. Asia on vaan niin, että DrawScreen loopissa ei sovi servun kanssa yhteen.

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: CoolBasic & netti = cbNetwork

Post by phons » Thu May 21, 2009 2:43 pm

Minulla on taas näitten kanssa ongelmia: Lähetän servusta inttinä numeron 10 ja luen sen intin clientistä, sitten tulostan luetun intin, mutta sinne tulostuukin jotain 221. Missä vika?
Image

User avatar
Valtzu
Active Member
Posts: 115
Joined: Sun Aug 26, 2007 2:40 pm
Location: Sauvo
Contact:

Re: CoolBasic & netti = cbNetwork

Post by Valtzu » Thu May 21, 2009 3:43 pm

phons wrote:Minulla on taas näitten kanssa ongelmia: Lähetän servusta inttinä numeron 10 ja luen sen intin clientistä, sitten tulostan luetun intin, mutta sinne tulostuukin jotain 221. Missä vika?
Kun serveri/client lukee dataa, muistipalan alussa on kokonaisluku, joka kertoo muistipalan koon. Lue se siis ensin pois, ja sen jälkeen lue toinen kokonaisluku, sen pitäisi olla se lähetetty 10.

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: CoolBasic & netti = cbNetwork

Post by MaGetzUb » Thu May 21, 2009 3:50 pm

Jos tekisi omat foorumit, siellä sitten pitäisi rekisteröityä pelin käyttäjäksi, niin miten tämä onnistuisi? Kun kirjoittaisi nimen ja salasanan ohjelmassa, niin pääsisi servu valikkoon ja sieltä joinimaan peliin. :) Miten asia tapahtuisi käytännössä, jos se on edes mahdollista cb:n networkilla?
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

Post Reply