Szerver-megoldás internetes játékhoz
2010-05-18T22:12:01+02:00
2010-06-05T08:29:56+02:00
2022-06-29T08:20:28+02:00
  • Nem értem miért nem javasolták eddig a RED5-öt. Java-ban kell programozni, a te számodra ideális, és ingyenes.
    Mutasd a teljes hozzászólást!
  • lehet en ertettem felre, de nem azt irta, hogy kezdo, hanem hogy web alapu programozasban kezdo, a ketto nem ugyanaz:)
    Mutasd a teljes hozzászólást!
  • Jó, hogy írod a 10% sebesség különbséget.


    Ezt megint nincs honnan tudnia!
    Mutasd a teljes hozzászólást!
  • Számításaim szerint ezzel a kétszerveres megoldással egy időben kb. 1800 klienst tudok a kívánt minőségben kiszolgálni,


    A tudasod es tapasztalatod jelenlegi szintjen ezt nincs hogy kiszamitsd!
    Mutasd a teljes hozzászólást!
  • Én azért választottam a VPS-t, mert nincs asztali otthoni gépem, amiket állandóra be lehetne kötni a netre. A VPS bérlés egyenlőre sokkal járhatóbb útnak tűnik, és akár OSX, akár Linux, akár Windows alól el tudom érni. A java mellett is ezért döntöttem.
    Jó, hogy írod a 10% sebesség különbséget. Az egyenlőre nem tűnik vészesnek, főleg, hogy jeleneg még messze nincs kész a fecni, így a felhasználók száma miatt se kell aggódnom.
    Igaz a VPS elég minimális memóriát biztosít (256Mb) ebben kell mindennek elférnie jelenleg.
    Mivel MMO fejlesztésben gondolkodom http://www.fecni.com biztos vagyok benne, hogy felhasználónként jóval több, mint pár byte adatot fogok használni.
    Mutasd a teljes hozzászólást!
  • Ubuntu Server editiont használok egy aszali pc -n, négymagos, 2.66 ghz processzorral és 4 giga rammal.
    C++ -ban írom hozzá a server programot. Leteszteltem ugyanazt a megoldást java alatt is, de így a sebesség kb 10% -kal csökkent, a memóriahasználat /a kliensek számától függetlenül/ állandó 18 mb -tal nőtt.
    Adatbázis kezelőt nem használok, a szerverprogi képes eltárolni felhasználónként azt a néhány byte adatot. Számításaim szerint ezzel a kétszerveres megoldással egy időben kb. 1800 klienst tudok a kívánt minőségben kiszolgálni, és éves szinten kb. 25.000. forinba fog kerülni az egész. (Villanyszámla, tárhelybérlet, domain és internet - előfizetés).
    Igazából a dolog egyetlen hátránya, hogy sok időt emészt fel, viszont nagy előnye hogy komoly tapasztalatokat szerezhetek általa.
    Mutasd a teljes hozzászólást!
  • Milyen szervert használsz? Eleinte a teljesen free megoldásokat kerestem, de gyorsan kiderült, hogy egy VPS sokkal kényelmesebb megoldás.
    Rögtön teljes szabadságot élvezhetsz a szerver program megválasztásának területén.
    Szerver oldali programnyelvnek pedig a java-t láttam a legkézenfekvőbb megoldásnak. Adatbázis kezelőnek pedig a db4o-t. Mivel az egyéb SQL alapú megoldásokkal sincs nagy tapasztalatom, és a db4o natív lekérdezője jobban illeszkedik a java nyelvhez, ezért idővel komolyabban letesztelem, hogy mennyire használható ez a kombináció.
    Mutasd a teljes hozzászólást!
  • ha C++/Java-ban jártas vagy akkor a .NET/C# vonal se lehetetlen.
    .NET szerver oldalon + Silverlight a HTML-ben (a f.0.s flash helyett) lehet jó alternatíva..
    ha saját szervered van akkor tök mind1 milyen OS-t raksz rá, rajatad áll.

    ha meg nem .NET akkor Comet-tel tudsz szórni üziket vissza a klienseknek.
    Mutasd a teljes hozzászólást!
  • playerio

    nem ez kell neked gondolom, ha a szerver oldallal is foglalkozni akarsz. Azert belinkelem hatha ad otletet.
    Mutasd a teljes hozzászólást!
  • Ja, sajnos flashbent kell megoldanom kliens oldalon. Kár, mert én egyáltalán nem rajongok érte, de jelenleg ez a legjobb megoldás. A szerver oldalon már működik az első socket szerverem alapja, igaz, máris újraterveztem az egészet.
    Az új tervem viszont megköveteli, hogy a linux socketnél az accept() és read() függvények ne blokkoljanak. Azt tudom hogy ezt meg lehet oldani fcntl() hívással, de azt nem hogy konkrétan hogy. Ebben is tudnátok segíteni? Előre is köszönöm!
    Mutasd a teljes hozzászólást!
  • háát
    Sztem az animációkat sem valami élvezetes js-ben lekódolni ;)
    Mutasd a teljes hozzászólást!
  • html5 -nél JS-ben lesz socket már.
    addig is flash klienssel oldhatod meg a cuccot. flash csatlakozik a socket szerverre és az eseményeket lekezelheti JS-el is. így a flash-t csak a kapcsolatra használod.
    Mutasd a teljes hozzászólást!
  • De ez pont elfedi ezt előle :)
    Azaz nem kell socket server, kliens apit gyártania.
    Csak használni a meglévő kliens apit, és extension-öket írni szerveroldalon.
    Mutasd a teljes hozzászólást!
  • De akkor már inkább vegyél egy SmarfFox-ot, igaz fizetős, de szvsz sokkal többe kerül kifejlesztened egy alap verziót, ha az idő/pénz arányt is figyelembe vesszük.


    Legy komoly, a kerdezo meg a socketek vagy halozati protokoll fogalmakkal sincs tisztaban! Szo sincs itt befektetes vagy penzrol, emberunknek ez lesz az elso ilyen probalkozasa, legalabb megtudja, hogy mennyi mindent kell meg tanulnia...
    Mutasd a teljes hozzászólást!
  • De akkor már inkább vegyél egy SmarfFox-ot, igaz fizetős, de szvsz sokkal többe kerül kifejlesztened egy alap verziót, ha az idő/pénz arányt is figyelembe vesszük. És akkor arról ne is beszéljünk, hogy mire optimalizálod, + beleraksz egy jó adag fícsőrt, ami megvan a smartfoxban, leteszteled rendesen, az mennyi idő...

    Ja, viszont van korlátolt kliens számú, teljes funkcionalitású verziója. Szóval amíg fejlesztesz, simán tudod használni. Ha meg nagyon sikerül a játékod, az a pénz meg már nem fog számítani, amennyibe kerül.

    A smartfox alapból socket-on keresztül kommunikál, és ahol nem tud, ott automatikusan tudja használni a BlueBox komponensét (kb arról szól, amit Tom leírt).

    Mutasd a teljes hozzászólást!
  • Ez egy jó technika lesz nekem, szerintem. Akkor megcsinálom linux alatt c++ -ban a socket szervert, és flashben a böngészőprogit.

    Köszönöm a segítséget!
    Mutasd a teljes hozzászólást!
  • Ajánlom a figyelmedbe a "long polling" nevű technikát.
    A lényege az, hogy nyit a böngésző egy connectiont a szerver felé, amire az vagy válaszol, vagy ha éppen nincs semmi közölnivalója, altatja a kapcsolatot, de nem zárja le. A kapcsolat tehát él, nem jön rajta vissza a response. Ha viszont történik valami, ami a user számára érdekes, akkor a szerver visszaküldi az infót, és zárja a kapcsolatot.
    A kliens kiolvassa az infót, és már nyitja is az újabb kapcsolatot a szerver felé. Ezt teszi timeout esetén is.
    Hátránya, hogy a szervernek elég sok connectiont kell tudnia kezelnie egy időben, de ez elvileg nagy terheltségnél is optimálisabb, mintha a kliensek pl. 5 mp-ként új kapcsolatokat építenének fel, hogy történt-e valami.
    FPS-re mondjuk nem használnám, de viszonylag realtime tud lenni a dolog.
    Mutasd a teljes hozzászólást!
  • Viszont akkor az már nem (csak) webszerver.
    Mutasd a teljes hozzászólást!
  • A játék azonban folyamatos kapcsolatot igényelne.
    Mutasd a teljes hozzászólást!
  • Az első kérdés az, hogy körökre osztott, vagy valós idejű játékot szeretnél?
    Mutasd a teljes hozzászólást!
  • Böngészőben futó kliensnél, illetve folyamatos kapcsolatnál (socket) a szóba jöhet kliensoldali technológiák a Flash, a Silverlight és a Java (Javascript itt egyáltalán nem játszik), míg szerveroldalon bármi lehet (saját fejlesztésű szerver, de vannak kész szerverek is a piacon). Ez utóbbi akár PHP-t is jelenthet, de az egyrészt nem éppen ideális eszköz ilyen célra, másrészt önálló alkalmazásként kellene futtatnod a PHP programodat, amire a sima mezei tárhelyeknél nincs lehetőséged.
    Mutasd a teljes hozzászólást!
  • Na olyat nem tudsz :)
    Mert nem tudsz visszaszólni a kliensnek a szerverről...
    Mutasd a teljes hozzászólást!
  • Saját socket szervert szeretnék írni, és kliensoldali böngészőalkalmazással szeretnék vele kapcsolatot létesíteni, de úgy hogy ne kelljen j2re -t vagy más hasonló keretrendszert telepíteni a kliensnél.

    Ha pl. javascripttel tudnék Java -s ServerSockettel kapcsolatot létesíteni, az már jó lenne...
    Mutasd a teljes hozzászólást!
  • Folyamatos kapcsolat esetén szvsz flash/flex + smartfox server (fizetős) v. saját socket/játék server írása.
    Sima html/php/javascript szerintem felejtős ha tényleg ez az igény.
    Mutasd a teljes hozzászólást!
  • Sziasztok!
    Egy internetes játékot szeretnék készíteni a lehető legkevesebb pénzráfordítással. Ezért azt találtam ki, hogy egy ingyenes /vagy legalább olcsó/ tárhelyen lenne maga a webhely. A játék azonban folyamatos kapcsolatot igényelne. Ezért a saját, kis sávszélességű kapcsolattal rendelkező webszerveremen keresztül bonyolítanám le a játékosok közötti kommunikációt.

    Webfejlesztésben nem vagyok túlzottan jártas. Eddig főleg C++, Java/J2ME, asm nyelvekkel foglalkoztam. Gondolom ennek sok hasznát most nem veszem. Most ismerkedek a html, php, javascript programozással.

    A kérdésem az lenne, hogy ezen feladatok megoldására mit lenne a legcélszerűbb használnom, ha nem szeretném semmilyen futtatási környezet telepítésére kényszeríteni a látogatóimat?

    Előre is köszönöm!
    Mutasd a teljes hozzászólást!
abcd