.[ ČeskéHry.cz ].
:: Virtual :: Beta ::
Jdi na stránku Předchozí  1, 2, 3
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hry pro PC, konzole, ...
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 16. leden 2012, 22:59:39    Předmět: Odpovědět s citátem

Pro ty, kteří byli liní to stáhnout a spustit a popř. zahrát si to se svým kamarádem, jsem nahrál na YT video. Bohužel, nesehnal jsem druhého hráče, takže si tam hraji sám.
Až přijede Poky na kolej (a bude se mu chtít), tak bych možná nahrál celou bitku (tedy v případě, že to vůbec dohrajeme Wink )...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Poky



Založen: 29. 06. 2009
Příspěvky: 184
Bydliště: Písek / Plzeň

PříspěvekZaslal: 17. leden 2012, 17:32:03    Předmět: Odpovědět s citátem

Voda:
Já sem nemocnej, takže přijedu asi až zítra večer Sad ... tak pak to video teda nějak spachtíme Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 17. leden 2012, 19:39:22    Předmět: Odpovědět s citátem

OT poznámka: Když je to multiplayer, proč čekáš až přijede Poky na kolej Very Happy Ono to nejde hrát po síti ? Very Happy
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 20. leden 2012, 21:18:05    Předmět: Odpovědět s citátem

perry napsal:
OT poznámka: Když je to multiplayer, proč čekáš až přijede Poky na kolej Very Happy Ono to nejde hrát po síti ? Very Happy

Dobrá poznámka. Problém je v tom, že jednak nemám kam umístit server a navíc bych se bál veřejného přístupu (na větší zátěž jsem server netestoval). Rovněž si myslím, že hraní po netu by v tomto případě nebylo vůbec možné (lagy). I když, nezkoušel jsem to, takže nevím...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 26. leden 2012, 11:37:20    Předmět: Odpovědět s citátem

Update

1. Omezil jsem maximální počet suroviny na 50 bodů, takže teď bude muset hráč opravdu přemýšlet kdy a kde udělá jednotky. A zároveň bude schopen vytvořit všech 5 jednotek najednou (každá jednotka spotřebuje 10 bodů suroviny)

2. Přidal jsem odpočet času na 15 min. Po 15 minutách vítězí ten, kdo má nejvíce obsazených flagů.

Bohužel se mi stále nepovedlo přijít na to, proč na linuxech (a zkoušel jsem to na Ubuntách, Debianech, OpenSUSE) v neblokujícím režimu socketu, po zavolání connect, je socket ihned připraven k zápisu (select), aniž by se navázalo se serverem spojení...asi to bude chyba v jádře, protože to dělá i u příkladů co jsem zkoušel z netu...ve Windows (Winsock) to kupodivu funguje bez problému, podle očekávání.

Binárka opět pro Windows i Linux (32bit) zde.
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 26. leden 2012, 12:33:48    Předmět: Odpovědět s citátem

Chyba v jádře to nebude, jelikož tohle je docela základní věc a ke všemu Linux dodržuje normu POSIX, zatímco Windows ji úplně ignoruje. Je potřeba se nejdřív podívat, jak to POSIX specifikuje a na tom stavět, nikoliv to porovnávat s Windows, který si dělá věci podle sebe.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 26. leden 2012, 14:08:03    Předmět: Odpovědět s citátem

No já to hlavně porovnával s kódy na root.cz, které jsou psány pro linux a hledal v různých diskuzích, jak se to přesně programuje. Nejprve jsem si myslel, že je to virtuálkou, ale nou mi říkal, že i na nativních linuxech se mu nezobrazuje hláška, jejíž zobrazení je správnou funkčností podmíněno. Svůj kód jsem kontroloval snad tisíckrát, v tom to není...

A nesnaž se mi říci, že všechny návody na netu, jak pracovat se sockety v neblokovacím režimu (v linuxu) jsou špatně...
Dokonce i v dokumentaci na bsd sockety je uvedeno, že to tak má být.
citace:
When the connection has been established asynchronously, select() and poll() shall indicate that the file descriptor for the socket is ready for writing.

viz. http://pubs.opengroup.org/onlinepubs/009695399/functions/connect.html
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 462
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 26. leden 2012, 14:48:08    Předmět: Odpovědět s citátem

citace:
Dokonce i v dokumentaci na bsd sockety je uvedeno, že to tak má být.

Pozor, Berkley sockets se trošku liší od Posix sockets - nejsou to stejné. Wink
_________________
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 26. leden 2012, 18:15:53    Předmět: Odpovědět s citátem

Zkrátka používám to, na co jsem odkázal v linku, takže to prostě nefunguje...
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 27. leden 2012, 16:42:38    Předmět: Odpovědět s citátem

Tak už jsem to vyřešil, ale logiku v tom najít nemohu.
Bylo to v tom, že když zavolám select v neblokovacím režimu po volání connect (kdy connect vrátí -1 a errno == EINPROGRESS) a spojení nelze navázat, tak select namísto toho aby vrátil -1 nebo alepoň 0 (select vrací počet socketů na kterých došlo ke změně) tak vrátí 1 (což by každý inteligentní člověk pochopil tak, že je možno na socket zapisovat, tudíž by se dalo předpokládat, že spojení je navázáno). Po dlouhém googlení jsem našel jeden článek, kde na to jeden pán také nadával, ale napsal tam i řešení.

Takže jsem nakonec kód mé metody canWrite obohatil o kousek dalšího kódu (pro linux) v případě, že select vrátí 1.
kód:
         if (!blockingMode)
         {
            int so_rv = 0;
            socklen_t sockLen = sizeof(int);
            if (getsockopt(socketDesc, SOL_SOCKET, SO_ERROR, (void*) &so_rv, &sockLen) < 0)
            {
               return -1;
            }

            if (so_rv)
            {
               return -1;
            }
         }

Teď už to tedy funguje, ale možná bych to měl vyzkoušet i v blokovacím režimu, jestli náhodou po nezdařeném připojení nevrací pan select také 1.
Docela mě tohle zklamalo, já myslel že nelogické jsou akorát Windows... Rolling Eyes
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
franz



Založen: 30. 07. 2007
Příspěvky: 1325

PříspěvekZaslal: 15. únor 2012, 15:33:36    Předmět: Odpovědět s citátem

Ta hláška "connecting to server.." po kliknutí na login se mi na linuxu zobrazuje.
Linuxový server není?
V kombinaci linuxový klient a windows klient se mi vždy ten linuxový po zahájení hry ukončí a na windows se zobrazí you win!
Dva win klienti se hraje bez problémů.
Co mi vadí, že každý sebe vidí modrého a soupeře červeného, při pohledu na monitor protihráče to mate.
Taky mi chybí na minimapě, že vidím jen svoje území a není rozlišeno neutrální od soupeřovo.
A celkově je celá hra k ničemu (myslím ten 3D svět), hraji to pouze přes minimapu, kde k dokonalosti chybí možnost vybrat jednotku kliknutím Cool
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1721
Bydliště: Plzeň

PříspěvekZaslal: 15. únor 2012, 21:31:13    Předmět: Odpovědět s citátem

Hm, kombinace klientů na z různých OS jsem nezkoušel...linuxový server je také, spustíš ho z terminálu s parametrem -s (viz. úvodní stránka)...chtělo by to ještě poladit, ale už na tom dále pokračovat nebudu. Účel to splnilo, dostal jsem 39 bodů ze 30 možných (byla to semestrálka na sítě), na dni otevřených dvěří se to celkem líbilo, takže já jsem spokojen.

Ty věci, co jsi vyjmenoval (barva, svět)...neměl jsem čas si s tím více hrát, protože mě tlačil termín. Původně to měla být strategie klasičtějšího ražení, ale nedostatek času mě přinutil to vše udělat co nejjednodušeji.

Teď už chci dělat jen Sollertii (no a bakalářku).
_________________
Opravdovost se pojí s trýzní...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hry pro PC, konzole, ... Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3
Strana 3 z 3

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna