Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje > Pravljenje igara
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Pravljenje igara Programski jezici, tehnike, alatke u službi pravljenja igara...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 21.11.2006, 1:56   #1
Nemesis
Veteran
 
Član od: 29.11.2005.
Lokacija: Novi Beograd
Poruke: 1.181
Zahvalnice: 24
Zahvaljeno 44 puta na 31 poruka
Slanje poruke preko MSN-a korisniku Nemesis
Određen forumom Matricna Igra

U sklopu novog engine-a koji razvijam, pre neki dan sam zavrsio modul koji omogucava brzu i efikasnu implementaciju mrezne komponente u igri. Zasnovan je na clinet/server arhitekturi, a podrzava i TCP i UDP.

Da ne smaram nepotrebno sa detaljima (ako nekoga zanima vise nek' mi posalje PM) trebaju mi "dobre duse" koje bi ga testirale.
Ja sam testirao u lokalnoj mrezi i na faksu sa brzim Internet konekcijama i sve dosta dobro radi. Medjutim, ono sto me zanima je pravi test na ubogim vezama prosecnog Internet korisnika u Srbiji. Svi koji su voljni da mi pomognu neka odu na MatIgra i posle neka ovde napisu kritike.


Za potrebe testa sam uradio najjednostavniju stvar koja mi je pala na pamet a da nije chat. (jer su kod chata svi paketi isti) To je modifikovana verzija matricne igre. Ko je slusao "operaciona istrazivanja" lako ce prepoznati o cemu je rec.
Dobijate matricu dimenzija NxN (u mom slucaju 10x10) i treba da birate polja koja ce vam omoguciti sto veci broj poena. "Kvaka" je u tome sto jedan igrac bira red, a drugi kolonu, tako da svojim izborom uticete na naredni izbor protivnika.
Za prvi potez racunar random bira red/kolonu.

Npr. igrac 1 igra prvi i bira red. Racunar je pre toga nasumicno izabrao npr. 7 kolonu. Na igracu 1 je da izabere red od 1 do 10. Npr. neka je izabrao red 5. Tada ce vrednost izabranog polja (5,7) biti dodata njegovom broju poena. Zatim igra igrac 2, s tim sto bira kolonu 1-10, a red ostaje fiksiran na 5. I tako se ponavlja sve dok se ne pokupe sva polja, ili dok jedan od igraca nema nijedan potez na raspolaganju. Po zavrsetku igre, onaj igrac sa vise poena je pobednik.



Sto se vizuelne komponente tice, nemojte ocekivati nista. Bukvalno! Igra nema nikakvu grafiku! Ja sam u jadnom Paint-u napravio nekoliko slicica iskljucivo kao placeholdere, jer me u osnovi sama igra ne zanima vec iskljucivo njena mrezna komponenta.
Naravno, ako je neko voljan da mi pomogne oko grafike ...

I da ne zaboravim! Plava polja nose pozitivne vrednosti i treba ih skupljati. Crvena su negativna i treba ih izbegavati (bar dok ne nestanu plava)
Nemesis je offline   Odgovor sa citatom ove poruke
Stara 21.11.2006, 2:02   #2
Nemesis
Veteran
 
Član od: 29.11.2005.
Lokacija: Novi Beograd
Poruke: 1.181
Zahvalnice: 24
Zahvaljeno 44 puta na 31 poruka
Slanje poruke preko MSN-a korisniku Nemesis
Određen forumom Re: Matricna Igra

Igra je prvenstveno zamisljena da radi preko mreze, ali se moze pokrenuti i na jednom racunaru. Preko mreze, prvo treba pokrenuti server aplikaciju. Zatim se cekaju dva klijenta da se nakace na server i igra pocinje. Klijente treba obavestiti o IP adresi servera.

Druga varijanta je da se na jednom kompu pokrene server aplikacija, a zatim i jedna klijent aplikacija. (unosi se isti IP) Potom na drugom racunaru se pokrece jos jedan klijent koji se povezuje na server.

* napomena: ako na racunaru koji pokrece server aplikaciju postoji firewall treba otvoriti port 6000.

Treca varijanta je da se pokrene server, a zatim i dva klijenta na istom racunaru. Naravno u ovom slucaju nema opasnosti od gubljenja paketa sto mene najvise i zanima u ovom testu.


Pisite, hvalite, pljujte, ali ... dajte mi INFO!
Nemesis je offline   Odgovor sa citatom ove poruke
Stara 27.11.2006, 1:16   #3
priest (of_the_moon)
Član
 
Član od: 4.3.2006.
Lokacija: grad u oblacima
Poruke: 288
Zahvalnice: 1
Zahvaljeno 5 puta na 4 poruka
Određen forumom Re: Matricna Igra

Evo prvo par pitanja:

Što nisi napravio i single player tj opciju da dva igrača igraju na jednom kompu, bez da se smaraju sa klijentima i serverima?
Za potrebe pisanja AI-a mogao bi da se napravi SDK za izradu modula, "Ai pluginova". Korisnik bi po početku igre postavio koji će moduli da igraju umesto kog igrača. (Ja sam kod kuće modem user, pa razumećeš zašto sam pretežno offline orijentisan .)

I zar si morao da koristiš te posebne bitmape pored jednostavnih api poziva koje bi grafiku odradile savršeno?

Bi li mi dozvolio da napišem svoju verziju igre?
priest (of_the_moon) je offline   Odgovor sa citatom ove poruke
Stara 27.11.2006, 12:15   #4
Nemesis
Veteran
 
Član od: 29.11.2005.
Lokacija: Novi Beograd
Poruke: 1.181
Zahvalnice: 24
Zahvaljeno 44 puta na 31 poruka
Slanje poruke preko MSN-a korisniku Nemesis
Određen forumom Re: Matricna Igra

Prvo zelim da se zahvalim Svesteniku sto je nasao vreme da testira igru.

A onda, replike...
Citat:
priest (of_the_moon) kaže:
Što nisi napravio i single player tj opciju da dva igrača igraju na jednom kompu, bez da se smaraju sa klijentima i serverima?
Iz prostog razloga sto je cilj bio testiranje modula za mrezno povezivanje. Ovaj modul ce biti jedna od osnovnih komponenti za mnogo ozbiljnije stvari pa mi je veoma bitno da znam sa cime raspolazem.

Inace, mislim da jos uvek imam negde single player verziju na disku. Ona je samo sluzila kao test za game logiku, jer je sve to mnogo teze debagovati u mrezi.
U ovoj fazi sama igra me mnogo ne zanima, pa se zato i nisam bavio ni grafikom ni interfejsom ni single playerom. Mada, ako se pokaze interesovanje ...

Citat:
priest (of_the_moon) kaže:
Za potrebe pisanja AI-a mogao bi da se napravi SDK za izradu modula, "Ai pluginova".
Korisnik bi po početku igre postavio koji će moduli da igraju umesto kog igrača.
Bas sam se iscimao za vikend da tako nesto uradim. Ispalo je mnogo slozenije nego sto sam se nadao, ali sam se ipak izborio. Ostaje mi malo da testiram kod pa cu ga postovati.
Naravno, za SDK je suvise rano. Za sada se koristi "skolsko" nasledjivanje, virtualne metode i polimorfizam.

Citat:
priest (of_the_moon) kaže:
Ja sam kod kuće modem user, pa razumećeš zašto sam pretežno offline orijentisan .
Razumem u potpunosti. Nego zar ne mozes da podesis da se povezujes na 127.0.0.1 ili sta ti je vec home?

Citat:
priest (of_the_moon) kaže:
I zar si morao da koristiš te posebne bitmape pored jednostavnih api poziva koje bi grafiku odradile savršeno?
He he he. Ovo me podsetilo na raspravu koju su nekad vodili Holodoc i Marko_L o 3D-u u Zumi.
Iako je grafika (ako se tako uopste moze nazvati) bedna, igra je cistokrvni 3D, sa materijalima, meshevima, osvetljenjem, senkama i sl. Jedino sto tih objekata nemam.

Da se malo uozbiljim ... pravi razlog je sto vec imam gotove klase za brzo kreiranje DirectX aplikacija, pa mi je bilo lakse da modifikujem stari template nego da se patim sa Win Api-jem. A ako se nadje i neka dobra dusa i donira nove bitmape (ili jos bolje mesheve) uz minimalni napor se mogu dodati. Kao i eventualne pratece animacije.

Citat:
priest (of_the_moon) kaže:
Bi li mi dozvolio da napišem svoju verziju igre?
Ja nemam nikakav copyright, sta vise takva igra vec postoji u malo drugacijem obliku, pa te niko ne sprecava da uradis svoju verziju.

A ako hoces mogu da ti posaljem klijent komponentu pa da je doteras u skladu sa svojim potrebama.
Nemesis je offline   Odgovor sa citatom ove poruke
Stara 29.11.2006, 12:03   #5
priest (of_the_moon)
Član
 
Član od: 4.3.2006.
Lokacija: grad u oblacima
Poruke: 288
Zahvalnice: 1
Zahvaljeno 5 puta na 4 poruka
Određen forumom Re: Matricna Igra

Šta se događa kada matrica nije skroz odigrana, a nemoguće je odigrati u trenutnom redu/koloni? Komp bira random?
priest (of_the_moon) je offline   Odgovor sa citatom ove poruke
Stara 29.11.2006, 15:14   #6
Nemesis
Veteran
 
Član od: 29.11.2005.
Lokacija: Novi Beograd
Poruke: 1.181
Zahvalnice: 24
Zahvaljeno 44 puta na 31 poruka
Slanje poruke preko MSN-a korisniku Nemesis
Određen forumom Re: Matricna Igra

Citat:
priest (of_the_moon) kaže:
Šta se događa kada matrica nije skroz odigrana, a nemoguće je odigrati u trenutnom redu/koloni? Komp bira random?
To je jedan od uslova za kraj partije.
Dakle, kada jedan igrač ne može da odigra potez igra se završava. Nije bitno da li su sva polja pokupljena.

Po završetku igre gledaju se poeni i onaj koji ima više dobija.

Samim tim ako si u prednosti treba da forsiraš što skoriji kraj partije.
Nemesis je offline   Odgovor sa citatom ove poruke
Stara 29.11.2006, 15:48   #7
Nemesis
Veteran
 
Član od: 29.11.2005.
Lokacija: Novi Beograd
Poruke: 1.181
Zahvalnice: 24
Zahvaljeno 44 puta na 31 poruka
Slanje poruke preko MSN-a korisniku Nemesis
Određen forumom Re: Matricna Igra

Update:

Attach-ovani fajlovi su za potrebe diskusije o AI-u, ali pošto koriste osnovnu strukturu matrične igre dodajem ih ovde.

U Client AI folderu nalazi se prepravljen klijent deo matricne igre. Za razliku od prethodnog ovaj se vezuje na servera ali umesto igrača učitava bota koji će igrati matričnu igru. Dodao sam dva trivijalna primera čisto za potrebe testa (beginer.dll i adept.dll).
Iako je već sada moguće postaviti dva bota da igraju jedan protiv drugog, server još uvek nije prilagođen (da malo uspori partiju) pa se sve munjevito završava. Ako bude interesovanja poradiću na tome. Za sada preporučujem igru bota protiv živog protivnika.
Znači pokrenete server. Zatim jednog klijenta (starog) za sebe. I na kraju novog klijenta koji će učitati odgovarajućeg bota. Napomena: u nazivu koristiti i ekstenziju (znači "beginner.dll")



Drugi attachment je mnogo zanimljiviji. U njemu se nalazi kompletan projekat potreban da napravite vašeg bota, tj. odgovarajući dll. Namerno sam ga radio u VS6 kako bi obuhvatio što više verzija. Probao sam ga i u VS7 i radi ok.

Sve što je potrebno je u klasi nasleđenoj od coreAI-a implementirati dve virtuelne metode. Doduše dovoljna je samo ona druga koja bira potez, a prvu sam ostavio ako je potrebna dodatna inicijalizacija ili neko keširanje.

Napominjem da mi je ovo prvi put da pokušavam ovako nešto pa je moguće da sam neke stvari prevideo. Ako bude bilo kakvih problema, ili jednostavno nisam bio dovoljno jasan sa komentarima ... PIŠITE!
Priloženi fajlovi
Tip fajla: zip Client AI.zip (73,0 KB, 24 puta viđeno)
Tip fajla: zip Transfer Bot.zip (15,8 KB, 26 puta viđeno)
Nemesis je offline   Odgovor sa citatom ove poruke
Stara 29.11.2006, 21:48   #8
priest (of_the_moon)
Član
 
Član od: 4.3.2006.
Lokacija: grad u oblacima
Poruke: 288
Zahvalnice: 1
Zahvaljeno 5 puta na 4 poruka
Određen forumom Re: Matricna Igra

Cool. Pravim svoje, probaću da ostvarim kompatibilnost botova sa mojom verzijom.
Ja sam tablu predstavio kao jednodimenzionalni niz int [n*m]. Ako polje ima određenu vrednost (recimo 2000000), onda je odigrano.
Za trenutni potez jedan int za broj, i jedan bool za kolonu ili red.
Uklopiću nekako.
priest (of_the_moon) je offline   Odgovor sa citatom ove poruke
Stara 1.12.2006, 19:49   #9
priest (of_the_moon)
Član
 
Član od: 4.3.2006.
Lokacija: grad u oblacima
Poruke: 288
Zahvalnice: 1
Zahvaljeno 5 puta na 4 poruka
Određen forumom Re: Matricna Igra

Evo moje varijante.
Možda je "meni" malo neuredan, ali nemam vremena sad da ga lickam.
U prvom polju upisite x velicinu table, u drugom y.
Ukoliko hoćete da igra AI, kliknite na odgovarajuće polje, u suprotnom će igrati čovek.

Naćićete i odgovarajući projekat za AI dll-ove, rađen u DevC++u. Samo iskoristite MatGameAi.cpp ako radite u nečemu drugom.
Sadrži i primer koji "dolazi" uz igru.

Nemesis
Ja nisam koristio klase za dll, mislim da je ovako jednostavnije. LM, bilo bi fino kada bi našli neki kompromis.
Priloženi fajlovi
Tip fajla: zip Matricna igra.zip (35,2 KB, 38 puta viđeno)
priest (of_the_moon) je offline   Odgovor sa citatom ove poruke
Stara 5.12.2006, 12:20   #10
Nemesis
Veteran
 
Član od: 29.11.2005.
Lokacija: Novi Beograd
Poruke: 1.181
Zahvalnice: 24
Zahvaljeno 44 puta na 31 poruka
Slanje poruke preko MSN-a korisniku Nemesis
Određen forumom Re: Matricna Igra

Svešteniče, pogledao sam tvoju verziju čim si je postavio ali sam bio (a još uvek sam) u veeelikoj gužvi pa nikako da dam svoj komentar.

U principu dopada mi se kako si uradio program. Naravno ima i sitnica koje mi se ne dopadaju ali na to ne vredi trošti reči.
Ukratko:

LM, jedino mislim da nisi trebao deo razvoj bot-a da stvljaš u samo jednu funkciju. Ovako je programer drastično ograničen. Na primer ako hoću neku promenljivu koja će pamtiti poteze koje je odigrao protivnik moram da budžim static promenljivu.
Još veći problem je nemogućnost inicijalizovanja i pozivanja nekog objekta koga će programer bot-a sam kreirati. Uzmi npr. neurosnku mrežu upakovanu u jedan objekat. Bez eXtremnog budženja teško ćeš je inicijalizovati i kasnije po potrebi hraniti odgovarajućim podacima, da bi na kraju od nje dobio predlog poteza.

Ja sam u ušao u "žurku" sa objektima u dll-u (ko nije probao ne zna šta je bol ) samo da bih omogućio programeru da lakše integriše bilo koje rešenje koje smatra da najviše odovara.


Da ne dužim previše, pošto se ova tema svodila na prepisku između mene i tebe (dok svi ostali mudro ćute), a ja sam već prezaposlen, neću se dalje baviti ovim.

Ako imaš neku ideju za saradnju kontaktiraj me na PM.
Nemesis je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
igra mi se s zemljacima Mime Online susreti 8 30.8.2006 15:20
Domaca internet igra!!! Carl Jonson CJ Mrežne igre 45 12.8.2006 21:16
Da li neko igra Desert Rats vs Afrika Korps jocabg011 Strateške igre 8 10.3.2006 0:56
Omerta mafijaska on-line,najbolja igra takvog tipa shonebg Zanimljive Web lokacije 0 2.2.2006 4:52


Sva vremena su po Griniču +2 h. Sada je 12:30.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com