2010. április 27., kedd

Prototípus szerver startup

Solarah prototípus szerver indulás, konzol üzenetek. Sok a nyomkövetési céllal kiírt dolog még. Alapvetően a master és a logger működőképes, a többiek egyelőre elhányják magukat.
Keveredett egy-két naplóüzenet is a szövegbe . :)

2009. augusztus 26., szerda

Solarah Online Szerver Prototípus Ismertető

Ennek a bejegyzésnek a témája most elég technikai jellegű lesz, nem titkoltan azzal a szándékkal, hogy hátha felkelti valaki hozzáértő érdeklődését és beszáll a fejlesztésbe a gyorsabb haladás érdekében. Egy-két újabb konceptrajzot is beraktunk a szövegbe, hogy a többieknek is jusson valami csemege.


Kicsit több mint egy hónapja publikáltam a launchpad-on a majdani szerverünk prototípusának kezdetleges állapotban lévő forráskódját. Ezzel a célunk egy szerver keretrendszer kialakítása, amelyből majd a trunk-ba illesztve a szerver programunk első bevethető verziója fejlődne ki. Az alábbiakban ennek az általunk tervezett felépítését és nagyvonalú működését mutatom be.


A szerver öt önálló binárisként (és processzként) futtatott kiszolgáló egységből áll: master, worker, auth, chat és logger. Ezek mind képesek külön számítógépen futni vagy alapesetben a master indítja a többi processzt – vagy azokat, amelyek azonos hoston futnak vele - forkkal. A processzek egymással tcp kapcsolaton beszélnek, meghatározott portokon keresztül.


A master felügyeli egy un. masterporton kapcsolódva a többiek futását, statisztikát gyűjt róluk, indítja és leállítja a szolgáltatásokat. Később egy szöveges (ncurses alapú) konzolt is megvalósítunk, amin keresztül közvetlenül lehet felügyelni a szerver futását.


Minden processzt alapvetően azonos felépítéssel tervezünk, aminek az alapelemeit az ACE Framework adja. Az un. half-sync/half-async mintát használjuk. Ennek az a lényege, hogy egy threadben kezeljük a hálózati kapcsolatokat és a forgalom (küldés és fogadás) lebonyolítását az ACE_Reactor és kapcsolódó osztályok segítségével és egy másik – ehhez képest aszinkron módon futó - thread-ben végezzük a beérkezett üzenetek feldolgozását és a kiszolgáló funkciók futtatását. A két thread egymással egy üzenetsoron keresztül kommunikál.

A kiszolgálók tehát úgy működnek, hogy a hálózati kapcsolatokon beérkező üzenetek egy üzenetsorba kerülnek, amiből egy feldolgozó thread veszi ki, és dolgozik velük. Opcionálisan threadpool-t is használhatunk, ami azt jelenti, hogy egyszerre több feldolgozó szál vár üzenetre, és így párhuzamosan üzenet feldolgozása is futhat – amennyiben ez megoldható és szükség van rá.


A master által végzett feladatokat már leírtam, következzen most a többi négy kiszolgáló.


A logger processz végzi a szerverben a többi kiszolgálótól érkező logbejegyzések rögzítését fáljba vagy adabázisba. A konkrét feladatokat megvalósító rész készülhet luában is, mert nincsen szükség a c++ sebességelőnyére ebben az esetben, viszont talán kevesebb kóddal és rugalmasabban megvalósítható (esetleg akár menet közben is cserélhető).


A chat processz végzi a szerverben a felhasználói csevegés és egyéb hasonló feladatok (pl. hírek, bejelentések) lebonyolítását. Alapvetően csatornák vannak, amelyekhez felhasználók kapcsolódnak és az adott csatornára küldött üzeneteket szórja szét a tagoknak. A megvalósítás itt is lehetne akár luában.


Az auth processz végzi a szerverben a felhasználók azonosítását a nevük és jelszavuk alapján ill. az un. „game session” létrehozását. A felhasználói adatokat és jogosultságokat egy Postgresql alapú adatbázisban tároljuk. Ezt az adatbáziskezelőt használjuk igény szerint máshol is. A megvalósítás itt is lehetne akár luában.


A worker végzi a szerverben a felhasználói hálózati kapcsolatok kezelését a RakNet rutinkönyvtár segítségével, az entitásrendszer és szabályrendszer szkriptek futtatását és az entitások egymáshoz való térbeli viszonyát követő (máshol talán fizika modulnak hívott) proximity motor futtatását. A szkriptek fájlrendszeren (esetleg adabázisban) foglalnak helyet, az entitások adatai pedig egy entitásadatbázisban.

Ez a processz valósítja meg a játékszerver legfontosabb funkcionalitását, a többi kiszolgáló tulajdonképpen az erről leválasztható és önállóan működni tudó funkciókból jött létre.


Ezek voltak a legfontosabb információk a Solarah Online első szerverprogramjáról ill. arról, hogy hogy akarjuk kialakítani. Feltűnhetett, hogy nincsen szó itt klaszterezésről, terheléselosztásról, monitorozhatóságról, távoli menedzselhetőségről, stb. Ezeket a tulajdonságokat, képességeket nem akarjuk mindjárt ebben a szerververzióban megvalósítani. Próbálunk (épeszű idő és munka árán) megvalósítható célokat kitűzni magunk elé, és a fokozatosság elvét követjük.


Remélem minden mondat értelmesre sikerült. Kérdéseiteket és észrevételeiteket a honlapon megtalálható kontaktokra írjátok.


2009. január 1., csütörtök

Az előző részek tartalmából

Engem is elkapott a nagy össznépi agybaj s nekiállok összefoglalni az elmúlt évet. Essünk is neki:

Az év mint mindig most is egy vizsgaidőszakkal indult, ami jellegéből adódóan nem túl gyümölcsöző a project szempontjából.
A vizsgaidőszakból egyenesen egy SV konfba majd nemsokkal késöbb az SV Sörbe futottunk, ami az első Solarah találkozóhoz képest jól sikeredett. Volt ott korai Solarah teszt és megkaptuk az első külsős bug jelentést is, remek volt. :)



Ezután nyárig a következők történtek: fejlesztés, fejlesztés, vizsgaidőszak, fejlesztés
Nem nevezném különösebben sikeres időszaknak, nem haladtunk olyan gyorsan mint az tervezve volt de azért volt előrelépés ekkor is bőven: Armen, szabályrendszer finomítások, animációk kliensbe építése, animált kamera, stb...

Július. Megrendeztük az első SV tábort ami a vártnál is jobban sikerült. Remekül éreztük magunkat, remekül haladtunk a munkával, és úgy általában csak leg-ekben lehet beszélni az eseményről pedig volt bőven hibalehetőség (pl bográcsozásnál Microsoft kézikönyvet használtunk gyújtósnak).



A tábor utáni időszakban egészen szeptemberig nem történt semmi, ebből okulva szeptemberben meghatároztunk egy fix kiadási ütemezést aminek első eredménye a decemberben megjelent első demo. A demo mellé pedig járt parti is ami szintén jól sikerült minden technikai nehézség ellenére.


Az év utolsó másfél hetében nekiálltunk a 0.2.1 elkészítésének a visszajelzések alapján. Innen is
köszönet mindenkinek aki kipróbálta és teszteredményeket vagy hibajelentéseket küldött vissza.

Ennyi lett volna az Úr 2008. éve, remélem nem hagytam semmi fontosat az apró részletek között amit nem írtam meg.

A végén pedig az újévi kívánság mert anélkül nincs ilyen post:
Solarahban gazdag, sikeres és boldog új évet kívánok a Silent Vertigo csapat nevében minden kedves (és kedvetlen) olvasónak!

2008. december 22., hétfő

Niskával poharazgatva

Túl egy vizsgákkal teli és nagyon erős Solarah fejlesztéssel megspékelt héten, amikor az átlagos alvásidőm öt óra alá szorult most kényelmesen hátradőlve, a szemembe beégett forráskód képét ignorálva írom ezt a postot.

Írom ezt a postot mert az első kiadott demo megérdemli, hogy időben meg legyen említve itt is. Ende kásakerülgetés, itt a link. Nézzétek meg, ízlelgessétek, s jelentsetek hibát ha találtok!

Nincs más hátra mint előre: köszönöm hát a csapat összes tagjának akik előre haladnak maguk előtt tolva a Solarah szekerét, s bár hozzám hasonló állapotban vannak, már folyik irc-n a tervezgetés és a demo tanulságainak levonása. Köszönöm az érdeklődőknek, fórumitáknak a jó meglátásaikat, ötleteiket és a végtelen türelmüket - remek érzés úgy dolgozni, hogy van aki várja a művet.

Azzal akartam zárni ezt a postot, hogy találkozunk a téli szünet után, egy hónap múlva. Mégsem így zárom mert biztos vagyok benne, a szünet alatt sem lesz tetszhalott a Solarah. Ezért ha mindenkinek megfelel, maradjunk annyiban, egy hét múlva ugyanitt. ;)

2008. december 14., vasárnap

Miklós után szaladva

Hosszú kihagyás után újraindul a blog, remélem mindenki örül. :)

Nem részletezem, hogy mi minden történt az elmúlt hónapokban - elkopna a billentyűzetem. Nomeg amiről most értekezni szeretnék izgalmasabb is. Viszont mielőtt ebbe belevágnék kicsit vissza kell ugorjak az időben.

Szeptemberi SV konf.
A csapat akkor megjelent tagjaival az addigi tapasztalatokat összegezve felosztottuk az évet és három nagy esemény közé szorítottuk a munkanapokat. Megvitattuk azt is, hogy az év mely szakaiban nem tudunk dolgozni (vizsgaidőszak, nyaralás) majd megegyeztünk abban, hogy mindhárom eseményt egy közösségnek kiadott (tech)demoval zárjuk.
Ezen események közül az első a Mikulás sprint.


Mikulás sprint

Ezen a hétvégén a csapat elérhető tagjai összeültek irc-n és nekiálltak az első nyilvános demo elkészítésének. Alábbiakban egy kis áttekintés erről.

A részeg ninják nem látnak a ködben
Kami sajnos nem ért rá a hétvégén, de még előtte leadta az általa készített anyagot, így bekerült a kliensbe némi köd, (eltúlzott) bloom és árnyék is.


A ninják sem győzhetik le a fizikát!
Részemről egy elég régóta húzódó feladat lett letudva a Bullet fizikai motor beillesztésével. Néhány űrbe kilebegett ninja árán eljutottunk addig, hogy már nem lehet falakon átsuhanni és a gravitáció is ki tud babrálni az egyszeri játékossal. (Képen a sárga vonalak egy ütközést mutatnak.)


A ninjának nincs tükörképe
A grafikus részleg is bedobta magát és csináltak sokminden szépet, de ez legyen meglepetés. ;)

A release folyamat hétfőn elindul s vasárnapra le is zárul. Ennek örömére vasárnap (2008 dec. 21) sörözést/teázást tartunk. Dobpergés:

SV Vodka
December 21-én 13:00-ás kezdettel minden érdeklődőt szeretettel várunk Budapesten a Fanyűvőbe (Budapest XIII. Váci út 70.) egy Solarah kipróbálásával összekötött sör
özésre/teázásra!
(Ha érdekel a dolog kérlek jelezd fórumon, hogy kb tudjuk hány emberre számíthatunk.)

2008. július 22., kedd

Silent Vertigo tábor, bográcsozás + második nap + afterparty

A tábor második napjáról Vigi írt nektek egy kis beszámolót, át is adnám neki a szót mert a bevezető úgyse érdekel senkit, íme:

Az első nap egy remek hangulatú bográcsozással zárult, ami után - kicsy várakozásával ellentétben - nem szabadult el a pokol. Még szerencse, hiszen a tanyám bánta volna. :) Az igazat megvallva, több bort kellett volna vennünk, mint sört, mert a bor jobban fogyott. Volt a pincében némi somlai házibor, de a fehér hogy néz már ki boroskólába? Egyáltalán hogy néz már ki a boroskóla? Elrontani kólával a bort... Na mindegy, a lényeg, hogy a lugasunk egyben maradt.

A vacsora pörkölt volt, amit Quest konyhafőnök igen nagy szakértelemmel készített el, örök hála érte! Nem hogy nem maradtunk éhen, de kitűnő íze is volt! Pedig nem is szakácsnak jelentkezett a csapatba. Lehet áttesszük az ellátmányozó részlegre, majd meglátjuk, hogy viselkedik. :P A vacsora mellé vizipipa is dukált, amelyet Azrael kolléga vonszolt le magával a Nagy Faluból, és miközben így füstölögtünk, igen jó hangulatú csevegésbe kezdtünk O'Neill cimbora vezetésével. A Silent Vertigo egy emberként nem tudta eldönteni, hogy előbb a rekeszizmát próbálja meg kilazítani, avagy az asztalba verje a fejét, hátha úgy könnyebb elviselni O'Neill vicceit. Kifogyhatatlan az ürge... :P Végül beszélgettünk (hőbörögtünk) egy kicst, aztán fél háromkor takarodó.

Másnap tízkor kelés, fürdés, kávé, reggeli és mindenki folytatta ott, ahol abbahagyta:


Prog:
Ácsi az éjjel álmot látott, kinyitotta az Álmoskönyvet és azt olvasta benne, hogy a harminchét vindózkékhalál feltámadása és nyálfröcskölő csaholása valójában a megoldást mutatja a Bullet fizikai rendszer integrálásának problémájára és kerek öt perc alatt leküzdötte azt az akadályt, amire ráment az első napja. [Köszönöm a megelőlegezett bizalmat, de csak a kezdeti problémák legyűréséről volt szó. - ACsi] E örö, e bódottá! Kami pedig csendben, nyugodtan és rutinosan (nem mondom, hogy öregesen, mert leszedi a fejemet ;) ) folytatta az editor babrálását.


Graf:
Valóban a leglátványosabb eredményeket a grafikusok produkálják. Kicsy csiszolgatta tovább Geniont, de nem sikerült teljesen befejeznie. Korábban elment, minthogy lincselhettük volna... majd még úgyis elkapjuk. A grafosok általánosságban folytatták azt, amit az első napon elkezdtek, azaz Temaruk fegyvereket kovácsolt, Azrael a gladiátortábort, azon belül a főnök házát szépítette, Lace pedig firkálgatott. Szeki sajnos nem tudott jelen lenni, de otthon dolgozott ő is párhuzamosan és igen tetszetős dolgot alkotott, de azt nem árulom el, hogy mit ;).


Ynev:
Kicsyvel ellentétben én láttam azt a referencia dokumentumot... valami kis papírfecnin volt, amit a tábor utáni romeltakarításkor eldobtam a kukába. Remélem a fejükben van. :D O'Neill néhány falu és egy Kyel templom kidolgozásával foglalatoskodott, miután Karrdéval ketten helyre tettek néhány fontos dolgot Hat Várossal kapcsolatban. Frazor befejezte a papi negyed részletes leírását: juhé!


Rendszer:
A szabályrendszerrel kapcsolatban a hétvégén főleg olyan kérdéseket vitattunk meg, amelyek a rendszert Ynev oldaláról érintik, hiszen Ácsi és kicsy is a saját területével foglalatoskodott, nem lett volna logikus megosztani a figyelmüket. (Ez a hivatalos megfogalmazás, valójában örültünk, hogy nem akadékoskodnak folyamatosan és nem magyarázzák a kocka marhaságaikat :P) Na azért egy-egy Harcrendszert érintő kérdésben kikértük az egész csapat véleményét. Terítékre került a gazdasági rendszer, amely problémára - a megbeszéltek alapján - Quest csinált egy exceltáblát, ami meglehetősen jól szimulálja a dinamikus gazdaságot. A referencia dokumentum pedig valóban készülget. Úgy tűnik, hogy - minimális kivétellel - sikerült leírni azt, amit eddig kőbe véstünk, azaz napirenden vagyunk vele.


Mivel a hétfői munka miatt többen hazamentek már vasárnap, a vacsora családiasabb volt, mint a szombati: nem bográcsoztunk, hanem Frazor irányításával, ámbár közös erővel lecsót készítettünk és jóízűen elfogyasztottuk. Természetesen O'Neill viccei nem maradhattak el. Hiába kérleltük... :)

Összességében azt tudom mondani, hogy nagyon jól haladtunk. 12 fiatal összezárva egy hétvégére és nem baromkodtuk el, hanem a hülyéskedés mellett sikerült produktívnak maradnunk. Szerintem kezdünk öregedni. NEMÁR! :S

Hétfőn végül mindenki elindult haza. Kivéve én. Nekem maradt a romeltakarítás. Két háromköbméteres konténert fullra lapátoltam a szeméttel meg törmelékkel, de persze a többiek még sajnálni sem hajlandók. :D Na jó, igazából nem gondoltam volna, hogy ilyen sok ember ilyen rendet tud maga után hagyni. Mint házigazda azt mondom, le a kalappal, szinte nem is volt mit eltakarítani, csupán néhány azstalt meg fekvőhelyet elpakolni a helyére. És temrészetesen köszönöm szüleimnek, akik nemcsak lehetővé tették ezt a kis összeröffenést, de sokat segítettek a lebonyolításában is. [Az egész csapat hálás nekik és neked, fogadjátok innen is hatalmas hálánkat egy szép kerek köszönésbe foglalva. És természetesen Brutust is üdvözöljük. ;) - ACsi]

2008. július 12., szombat

SilentVertigo tábor, első nap

Mint a közönség jól informált tagjai már tudhatják, éppen egy nagy közös fejl/vesztés közepén vagyunk: a hétvégére a csapat 12 tagja megszállta Vigiék rezidenciáját, és mindenki nekiesett a saját feladatkörébe eső tennivalóknak. Az első nap lassan a vacsorához közelít, miután úgyis elszabadul a pokol, így megpróbálom még előtte összefoglalni mik történtek eddig.

Valójában már tegnap estefelé nekiláttunk némi hegesztésnek, miután mindenki szerencsésen nethez jutott.

Lace pedig, akinek rajzolnia kéne, általában kamerával rohangál, ebből a tervek szerint egy video fog születni, amit úgyse adunk majd közre. Pár sorban témákra bontva, ki mire jutott ma:


Prog
A programozás részleget ketten képviselik a táborban, a harmadik kóder szokásos nyári remeteségét tölti valahol titokban. A jelenlévők közül Kami a világszerkesztőnk alapjait fejleszti, Ácsi pedig folytatja kálváriáját a Bullet fizikai rendszer integrálásával, illetve a jelenlegi fázisban működésre bírásával. A világszerkesztő már egész szép dolgokat tud, pl elindul és nem is igen fagy. Meg van benne ninja.



Graf
A leglátványosabb eredményeket mindig a grafikusok produkálják, valójában ránk épül az egész fejlesztés. A táborban hárman nyúzzuk a tabletjeinket, Azrael, Temaruk és jómagam: Azrael az Armen feletti gladiátortáboron dolgozik - nagy örömére Lace ehhez segítő tanácsokat ad -, amit aztán titkos világuralmi tervünk részeként mutogatunk majd tudjátokhol. (Úgyse tudjátok.) Temaruk kollega múzsaként kedvesét is magával hozta, noha még nem tudtam összerakni a hölgy miért fegyverek tervezésére ihlette, annyira nem tűnik harciasnak. Mindenesetre Zbrush tudását csiszolja, igyekszik szépséges részleteket varázsolni a héten készített fegyvermodelljeire, ezek majd erőforrás-kímélő normal-mapként teszik teljesebbé az élményt. Kicsy pedig szokás szerint Geniont textúráz, amit a Zs-terv részeként fogunk majd mutogatni, ha minden úgy alakul. A tervek szerint hétvégé végére teljes pompájában tündököl majd a semmi közepén a favágófalu, különben meg leszek lincselve. Shot.



Ynev
Az ynevesek meglepő módon Ynevnek estek neki, amikor épp nem a játékrendszer fejlesztésénél lábatlankodtak. Első körben egy referencia-doksi készült el, amolyan sablon a leírásoknak, ami alapján remélhetőleg használhatóbbak lesznek, mikor egy grafikus nekiesik a megvalósításuknak. Ezt igazából még nem láttuk, szóval fenntartásokkal kezeljük a létezését állító pletykákat.
A tényleges munka Armen papi negyedének további részletezésében valósult meg, több templom/kápolna/szentély leírása készült el, én úgyse tudom a különbséget ezek között.


Rendszer
Az előző posztban említett Vigi féle szabályrendszer-dokumentum gőzerővel készül továbbra is, ennek részletei vetődtek papírra két harcrendszer-körüli vita között. Állítólag már igen jól áll, oldalszám tekintetében legalábbis folyamatosan növekszik a doksi.


Most sör.

2008. június 22., vasárnap

Mi történik mostanában mifelénk?

Azt hiszem, ha valaki külső érdeklődőként követi nyomon a projektet, akkor elég kevés információhoz tud hozzájutni az aktuális, csapaton belüli történésekről. Ezt a hiányt szeretném most kicsit pótolni azzal, hogy leírom az egyes részlegeknél ill. az egész csapatot érintő eseményeket.


Na lássuk akkor sorban, felülről lefelé. :)


Világ. Az ynevesek éppen Armen kidolgozásával vannak elfoglalva, a leírásokat a wikibe pakolgatják fel folyamatosan, csak nem mindig sikerül a menübe is betenni őket. :) Kialakítás alatt van egy egységes formátum a leírásokhoz, hogy könnyebb legyen az információcsere a többi részleggel.


Szabályrendszer. Itt elsősorban Vigi koordinációs munkájának köszönhetően lassan megállapodni látszanak a harcrendszer alapjai, amit a múlt hétvégi csapattalálkozón sikerült rögzíteni. Ugyancsak Vigi kezdeményezése alapján készül egy központi anyag, amiben a fórumon, wikin és a találkozókon elhangzott elgondolások alapján összegzi a jelenlegi terveinket, tudásunkat. Személyes véleményem szerint ez nagyon hasznos lesz, mert jelenleg nincsen egy olyan referencia, amire mindenki hivatkozhatna. Most arról folyik a diskurzus, hogy nagy vonalakban milyen témák kerüljenek bele ill. milyen eszközzel készüljön (párhuzamos szerkesztés, verziózás).


Grafika/3D. Gabo feldobta a grafosoknak, hogy álmodják meg az editorunk interfészét. Na nem konkrétan a skin-t, hanem, hogy milyen képernyőelrendezésben milyen funkciók legyenek elérhetők róla. Rushkiller feldobott egy jó vázlatot, és megy az ötletelés, bár szerintem kicsit alacsony prioritású dolgokról (terepfestés). Temaruk itt is és más részlegeknél is érdekesnél érdekesebb linkekkel bombázza a fórumot, amelyek néha csak lazán kapcsolódnak az adott témához. Ez nem mindenkinek tetszik, de van rá felhatalmazása. :)) Számomra a fórum egyik legérdekesebb témája a „Renderek, shotok” című, ahol mostanában pl. „putrikat” és egy Maleran rendert láthattunk Rushkiller-től.


Audio. Itt kevés „mozgás” van, legutóbb Rushkiller töltött fel tetszetős zenemintákat, hangulatzenének, faluba, csata alá, stb. (Heh, Rush mindenhol ott van újabban. :D ) Gabo feldobta az ötletet, hogy az IrrKlang-ot használjuk az eddig tervezett OpenAL helyett, ami nagyon jó ötletnek tűnik, mivel ingyenes, benne van az ogg-streaming és lehet illeszteni az Ogre erőforráskezelőjéhez.


Prog. Az általam vezetett részleg – erről fogok a legtöbbet írni. Nemrég a Shireel projekttől kerestek meg bennünket, aminek következményeként egy barátságos tapasztalat- és véleménycsere alakult ki köztünk, először az irc csatornánkon beszélgettünk, aztán azóta közvetve-közvetlenül a jatekfejlesztes.hu-n. Sok mindent másképp gondolnak, mint mi, de ígéretes projekt, érdemes odafigyelni rájuk.

Gabo készül a (szokásos) nyári „remeteségére”, így össze kellett hangolnunk a munkáinkat, hogy mivel tud dolgozni a távollétében. Az editorba készíti el az entitásrendszeréhez a guifelületet FLTK alapon, amivel még barátkozik, de szerintem nem lesz komoly problémája vele. ;)

A jelenlegi mérföldkő feladataival kapcsolatban megy a munka, a karaktermodellek animációtámogatásának elkészítése után mutattam egy shotot, ahol egy ninja :) mászkál Blendir kihalt utcáin. Talán lesz belőle film is, csak kell egy rögzítő, ami elfut a kliens mellett, és normális videót csinál.

A terepjáráshoz a PhysX fizikamotort akartuk eredetileg bevetni, de sajnos a Windows oldali mingw fordítókörnyezetben nem támogatott a használata (ebben a kérdésben kicsit konzultáltunk syam-al a jf.hu-ról), ill. vannak bizonyos korlátai, amelyek nem feleltek meg nekünk, ezért most alternatívakeresés zajlik – a legvalószínűbb befutó a Bullet, az ODE mellett. Szeretnénk kialakítani egy magasszintű belső interfészt, amin keresztül használnánk egyébként is, és esetleg másik motorokat is úgy tudunk illeszteni és tesztelni, hogy ne érintse a programjaink többi részét a csere.

Egyébiránt zajlik a következő mérföldkő tervezése, az elvégzendő feladatok az editorra vonatkoznak majd, ill. Gabo kezdeményezésére elindult az editor modulrendszerű megtervezése.


Csapat. A csapat háza táján három fontosabb eseményt említenék meg. Egy programozásban tapasztalt taggal bővült az én részlegem, ill. egy animátor jelentkezett a modellezőkhöz. Remélem jól és sokat fogunk együtt dolgozni a projektben. A másik téma, hogy javában szerveződik a nyári CSAPATTÁBOR, amit nem egészen egy hónap múlva tartunk! Alakul a szállás, a kaja, a pia, a net és a gépek, úgyhogy minden nagyon együtt lesz, hogy egy jót fejlesszünk a projekten, de legalábbis együnk-igyunk és ismerkedjünk. Én már nagyon várom, mert a résztvevők nagyobb felével nem találkoztam még.


Na ennyit az aktuális hírekről, majd kijavítanak, ha esetleg pontatlan voltam, vagy rosszul írtam le valamit. :)


2008. május 16., péntek

Minihogyan labdapattogtatáshoz

Az ageia portolta a PhysX SDK-t linuxra amiért nagyon hálásak vagyunk, azért már kevésbé, hogy a beüzemeléséhez nem nyújt megfelelő dokumentációt. Szóval itt van egy kis segítség a legújabb - már nvidia által kiadott - 2.8.1es változat (innen letölthető) helyrerakásához.

Az ötlet nem túl nagy, összepakoltam hozzá egy pc fájlt aminek a megfelelő helyre másolása után már használhatjuk a pkg-config -ot. A fájl innen letölthető. Letöltés után az /usr/lib/pkgconfig mappába másolandó. Ha ez megvan, terminálban:
$ pkg-config --cflags PhysX
és boldog is az ember.

Ezekután már csak egy apró hack kell, hogy működjön is a dolog.
Az /etc/ld.so.conf fájlba kell beszúrnunk egy új sort, konkrétan:
/usr/lib/PhysX/v2.8.1
Ha ez is megvan már tényleg csak egyetlen dolog maradt, íme:
$ sudo ldconfig

Mindenkinek kellemes labdapattogtatást!

2008. május 2., péntek

Realtime 3D is a poetic technology?

Címben a lényeg, a kérdés ami régóta foglalkoztat.

A szerepjáték mint olyan a történetmesélésről (is) szól, viszont ezt megjeleníteni egy játékban - főleg egy mmo-ban - nem triviális feladat.
A történetmesélés önmagában persze még nem kihívás, az ember berak egy narrátor karaktert vagy átvezető animációkat aztán elmegy aludni, hisz a játékos tudni fogja, hogy éppen mi miért történik és ez a fejlesztőnek elég. Ebből az egyszerű felállásból éppen csak az hiányzik ami a klasszikus szerepjátékok sajátja: a beleélés. A karakterek megmaradnak üres pixelhalmoknak amik lemészárolják egymást a mészárlás után meg kapnak egy animot ami megindokolja a következő hentelést. Hm... senkinek nem tűnt fel, hogy érzelmeket kéne ábrázolni!? Nem csak egy-egy videóban hanem a játék egésze alatt, példának okáért a karakter hiába kerül morális válságba amikor megtudja, hogy az anyját megszállta a főgonosz és ezért meg kell ölnie ha a játékos ennek hatására csak azon kezd el filózni, hogy vajh milyen fegyverrel/spellel lenne érdemes nekimenni és ha leüti mennyi xp-t fog kapni. A játékosnak végig éreznie kellene a tetteinek súlyát és a karaktere érzelmeit!

Egy asztalt körbeülve a kalandemester dolga a hangulat megteremtése és a folytonos beleélés fenntartása, igazából ez annyira alapvető, hogy bele sem gondol az ember, de mi a helyzet egy crpg/mmorpg esetében? A kalandmester szerepét egy gép veszi át. És itt most egy kitérő a múltba.
A crpg öreg műfaj, valahol a 15px-es karaktereknél leledzik a gyökere. Ez a kor igen becsülendő csak az az egy baj van vele, hogy a szűk technikai lehetőségek megteremtették azt a rossz szokást miszerint a mesélés csak elmesélő jelleggel működik. Vissza a mába.
Manapság viszont már minden adott ahhoz, hogy - ha kell vér és verejték árán - hangulatokat mutassunk be egy játékban, hogy a játékosban érzelmeket váltsunk ki és megteremtsük a valódi beleélés lehetőségét.
De ha ezt meg lehet csinálni miért nem teszik a nagy cégek? Nem éri meg? A játékosok részéről nincs igény erre? Nem akarnak kísérletezni? Esetleg a 3D-t mégsem lehet költői eszközként használni?

Nektek mi a véleményetek erről?

2008. április 3., csütörtök

Flekót pápának!

Épp az agyamra megy egy hiba ezért lazításként gondoltam blogolok egyett. Nos, még sosem blogoltam ilyen hírtelen felindulásból szóval nem tudom mi lesz belőle.

A kötelező körök
Haladunk. Aki nem hiszi járjon utána. Példának okáért launchpaden. (Link itt jobbra fennt.)
A graf részleg is halad, csak ők ezt jobban tudják titkolni. :P Azrael nemrég rakott ki pár képet a sziklaaréna melletti gladiátortáborról amit még ugyan kell kicsit csiszolgatni de jó lesz nemsoká, akkor majd kaptok képeket is. Kicsy mint a graf csapat vezetője ma résztvett egy 24 órás programozói versenyen. Mindenki rakja össze, nem súgok. :P Az eredményéhez innen is gratulálok - bármi lett is a vége.
A csapatban új conceptest is köszönthettünk RaMoS személyében, reméljük sokáig fogja erősíteni a sorainkat.

Ha már conceptesek... Közismert tény, hogy a conceptesek feladatkörébe tartozik az ynevesek leírásaiban talált rések betömése. Példának okáért, ha az yneves kollegák azt találják írni, hogy a falon fáklyák vannak mire más kollegák megjegyzik, hogy akkor bizony le fog égni az épület a conceptes nehéz helyzetbe kerül mivel át kell hidalnia a tűzvédelmi előírások és a nyílt láng használata közötti négy fényévnyi szakadékot.

Csak úgy mellékesen itt a megoldás:



De mivel van akinek semmi sem jó, tovább kellett fejleszteni:



A valódi kreatív conceptes életét viszont nem csak a különböző szemszögek összeegyztetése keserítí meg hanem bizony a korok kavalkádja is. Ezt az alábbi két képpel illusztrálom:



Remélem most már mindenki átérzi...

Viszont mindezen idegtépő feladatok mellett a csapatban olykor adódnak olyan örömteli események is amelyeket a valódi kreatív conceptes meghatározhatatlan helyről előtőrő lelkesedéssel örökíthet meg, példa:



(Fenti képeket Flekkermensch, a concept részleg vezetője követte el mikoron paint került a kezébe. A képekhez magyarázatokat flickr-en találtok a képaláírásoknál - katt a képre és ott vagy.)

2008. március 9., vasárnap

Armeni körutazás

A héten rendhagyóan nem a prog részleg jelentkezik beszámolóval hanem a rendszerfejlesztők legnagyobb ellensége és a M* barátok kedvenc részlege: az ynevesek.
És akkor át is adnám a bitfolyamot O'Neill-nak aki a mai estimesét szólgáltatja az érdeklődőknek. Íme:


Kedves Solarah-hívők, örömmel tudatom veletek, hogy elkészült az Yneves részlegről egy kis beszámoló. Nem tudtam hogy milyen szót válasszak, de azt hiszem a hívő a legmegfelelőbb olyanokra, akik egy számukra nagyrészt ismeretlen távoli szekta beavatottjainak hisznek, hallgatják sokszor programozói nyelven előadott tanításaikat, és hiszik, hogy egyszer majd eljön a megváltó.

Hogy milyen szerepet is tölt be az Yneves részleg a SilentVertigo nagy kerekasztalánál?
A Solarah Ynev világán játszódik, és szeretnénk a magyar „leg”-világ (legkidolgozottabb, legrégibb, legismertebb, legnépszerűbb, legsatöbbibb....) örökségéhez méltó játékot készíteni. Ehhez hozzátartozik természetesen az, hogy hűek maradjunk az eredeti Ynevhez, ugyanakkor saját ötletekkel gazdagítsuk és dolgozzuk ki részleteiben is.

Az yneves részleg dolgozza ki a helyszínek, személyek, küldetések, és ehhez hasonló világalkotó elemek leírásait, ami alapján a rajzolók és a grafikusok elkészíthetik a rajzaikat és a 3 dimenzióban pompázó „Solarah-valóságot”. Leírásaink folyamatosan készülnek, készen van 3-4 falu, két város félig-meddig(ezek későb kerülnek porondra), és most végre 1-2 héten belül elkészülünk Armen leírásával. Egyelőre ez még nem a lélegző, élő, kész város leírása, hanem az épületeké, tereké, helyszíneké. Ugyanakkor ez is hatalmas lelőrelépés, hiszen van egy kész kiindulópont a világ felépítéséhez magába a játékban. Most pedig megkísérlem röviden bemutatni Arment a mélyen tisztelt publikumnak.


Armen Hat város szövetségének legkeletibb és egyben legdélibb fekvésű nagyvárosa a Tara-Byr hegység lábainál az erdőségekben. Nagy bánya- és faipari központ, a nagy kereskedelmi utaktól távol, ennek ellenére sok furcsa idegen fordul meg errefelé, hisz a környék hemzseg az érdekes felfedeznivalóktól: elhagyott bányák, barlangok, egy-két várrom, és hatalmas erdőség, ahol ki tudja mit talál a bátor kalandor.


Akik inkább a várost részesítik előnyben, azok sem csalódhatnak, hiszen Armen 5 kerülete és az egész város alatt húzódó csatornarendszer is kínálnak kihívásokat és érdekességeket.

A Kereskedő kerületben található a teljesség igénye nélkül a város piaca, néhány fogadó és egy vajákos, akiknek fontos szerepe lesz, mivel a halál a játékban elég súlyos következménnyel jár.
Ugyanakkor nevéhez mérten ez a város árucsere központja is, és remek hely az ügyesebb tolvajok számára is. Természetesen ezt a városi őrség is tudja, és fokozottan ügyel a piac és a kerület rendjére.


A Nemesi kerület a város közigazgatási szíve. Amellett hogy itt élnek a város nemesei, itt található a Tangross-palota, a hercegi család rezidenciája és a városőrség kaszárnyája is. Ez a negyed inkább a nemes lovagok, a bájgúnár zenészek, az intrikusok és a nagy fogásra utazó besurranók körében lesz ismert, mint a kocsmai bunyókat kedvelő birkózók vagy a sikátorokban késelő zsiványok között.

A Kézművesek kerülete a klasszikus értelemben vett lakónegyed. Itt található viszont egy kovács, aki fontos szerepet fog betölteni a fémfegyvereket, fémvérteket használó delikvensek körében. Ugyanitt található majd a Zálogház, ahol pénzhez juthat minden kedves delikvens, ha van valami régisége vagy értékesebb holmija amit eladásra kínál.



Nixor a szegények kerülete és a bűn melegágya. Ez az a kerület ahol mindig történik valami. Ez az a hely, ahol nem hajthatod nyugodtan álomra fejed, mert bármi megtörténhet. Itt találhatóak a város legnagyobb és legveszélyesebb kocsmái. Ugyanakkor, aki figyelmesen járja az utcákat, egyéb érdekességekre is bukkanhat.

A Templomi kerület a legsűrűbb ínyencségekben, hisz itt lakóépület csak elvétve található, és az is nagyrészt valamely egyházi személy szállása. Viszont zsúfolásig van templomokkal, parkokkal és szentélyekkel. Itt található a város alkimistájának háza, a temető, a dzsadok bankháza és Krad templomának könyvtára is, egyszóval mindenkinek kínál érdekességet.

Végezetül a városon kívüli dolgo
król is ejtek néhány szót. A várostól nem messze van egy gladiátoraréna még a kyr időkből, ahol mindenki kedvére kipróbálhatja magát, Blendir halászfalu, Genion favágófalu, az armeni bányák és kicsit messzebb Malleran kis eldugott falva amit érdemes felkeresni, ha más nem, a helyi íjkészítő műhely miatt.


Nagyjából ez a leírásban nagyjából kész világrész, és ez a terület fog elkészülni először teljesn valójában, majd haladunk tovább délnek Torona kikötője, nyugatnak Haddarennim, északnak peddig Immyn Hassyn városa felé. Természetesen rengeteg köztes falu és különféle helyszínek teszik majd érdekesebbé a világot, valamint kelet felé a hegyvidék és erdőség is rengeteg „turisztikai” látványosságot tartogat majd. A kedvencemet még megosztom veletek így a végén.

Ez egy tó lesz, amelybe három irányból ömlik le sziklafalon három patak illetve folyó vize, a tó közepén pedig a vízpára, permet és köd közepén egy kis sziget lesz, rajta egy épülettel, amit még nem fednék fel. Ez a helyszín például csak csónakkal vagy trükkösen lesz elérhető, tessék majd megkeresni a vadonban.

Tehát ez most körülbelül a Status Quo a játékban yneves részről. Amint elkészülünk teljesen Armennel, és valódi életet lehelünk bele lakosokkal, mesékkel, helyi kocsmadalokkal, küldetésekkel, megyünk tovább a térképen(amit természetesen nem hozunk nyilvánosságra, elrontva a helyek felkutatásának mulatságát, de a térkép létezik) és építjük a világot.

O'Neill voltam. Szólottam. Uff. (vagy Ámen, ahogy tetszik)
Blogged with the Flock Browser

2008. február 27., szerda

Sör és #196068

Megkésve bár de törve nem itt a beszámoló az SV Sör kódnevű találkozóról.
A nem fórumozók kedvéért: ez egy nyílt összeröffenés volt ahol mindenkit szívesen láttunk és beszélgettünk jónéhány dologról a Solarahn innen és túl.

Elég nehéz konkrétumokat írni - olyan ez mintha le kéne írnod mi történt a péntek esti sörözésen -, de azért megpróbálom összefoglalni.

Történelemóra: Beletúrtunk a Solarah fejlesztésének kezdeti szakaszaiból fennmaradt emlékek közé. Régi screenshotok, tervek és mesék a kezdetekben meglévő Erion projectről egy jóadag önszidással megtoldva amiért nem vittem el - talán majd legközelebb.

Mozidélután: Azraelnek köszönhetően egy eddig meg nem jelent helyszínt sikerült bejárnunk valamint jól megnéztük annak evolúcióját is.
Genion látkép (render)

Teszt:
Némi repkedés a faluban amit Nuke kommentárja már már szerepjátékos élményig emelt. Hiába no, a semmivel is lehet játszani csak némi fantázia kell hozzá. Ennek kapcsán jelent meg launchpaden a #196068 jelzésű bug, ami így az első játékosok által megtalált hiba is lett. (Plíz kommenteljétek be, hogy ki találta meg, nekem nem teljesen tiszta ez a hátam mögött zajló akció.)


Már sok helyen írtam ezért most csak megemlítem, hogy remekül éreztem magam és, hogy sajnálom amiért végül ilyen kevesen lettünk. A résztvevők alacsony száma viszont nem szegte kedvünket így örömmel jelentem, hogy szeptember végén újra várunk titeket az SV Vodka kódnév alatt megrendezésre kerülő találkozón.

És akkor át is adnám a szót nektek, nyugodtan lehet mesélni, örömködni, sírni, lelkesedni, lelohadni és videót követelni kommentekben.

Blogged with Flock

2008. február 19., kedd

Global SV konf v8.2 és ami mögötte van

A konf
Vágjunk a közepébe. A találkozón végre sikerült átrugdosni a módosított képzettséglistát az ynev részlegen! Ez jelentős eseménynek számít mert azt jelenti, hogy végre el lehet kezdeni rendesen tesztelni a képzettségrendszert ill. neki lehet állni a képzettségekre épülő egyéb rendszerek (pl harc és mágia) kidolgozásának, véglegesítésének.
Persze ez csak elsőre hangzik jól, ugyanis az örök feketebárány mágia még mint yneves mint rendszerfejlesztői részről ostrom alatt áll. Quest megígérte, hogy készít egy leírást a hatvárosban fellelhető mágianemekről és azok működéséről, amikor ez elkészül a rendszerfejlesztők rögtön rávetik magukat és megpróbáljuk matekkal leírható formába hozni, amit persze az ynevesek megkritizálnak és mi kezdjük előről... A folyamat nem túl effectív de biztosítja, hogy ne szakadjunk el a világtól.

A képzettségek megbeszélésén kívül természetesen fordítottunk némi időt a SO-val való játszadozásra, étkezésre és önmagunk szórakoztatására is. Utóbbi kategóriában éllovas a "Vigi és a seggboncolás" történet amit nem osztok meg veletek, mert ez nem olyan blog.
Mivel Gabo most szerencsésen ideért fényképeztünk is durván, álljon itt pár darab (továbbiak flickr-en).




Árvíztűrő tükörfúrógép
"Sikerült működő állapotba hozni a RakNet+NetworkManager+Serializer hármast a netman repóban. Ez azt jelenti, hogy képesek vagyunk a RakNet segítségével a saját magunk által definiált üzenetet elküldeni a kliensről a szervernek a hálózaton keresztül." -- Kami, solarah dev fórum (2008.02.06.)

Ehhez csak annyit tennék hozzá, hogy túl vagyunk azon a történelminek számító pillanaton is amikor a Solarah első teszt adacsomagja áthasított a neten. Erről sajnos nem készült képernyőkép, de némi vígaszként ide másolom a tesztcsomag tartalmát, íme:
[ header=25421(M/c), msg="Hello NetMan World! árvíztűrő tükörfúrógép <>#&@{};,.-§'"+!%/=()", x=42, f=3.14159, b=1 ]

Animáció
A vizsgaidőszak okozta kiesés után újra visszaültem a kódhoz minek következtében működő formába került az animált kamera valamint át lett szervezve a kliensben néhány dolog. Direkt írtam működő formát és nem készet, mert amíg játszadoztam vele eszembe jutott még pár dolog ami hasznos lehet és idővel be fog kerülni.
A kód ma vagy holnap reggel felkerül launchpadre így ti is játszadozhattok majd vele, de aki lusta összerakni magának az jövő héten meglesheti élőben a Fanyűvőben. (A találkozó után kirakom ide is video formájában.)

Blogged with Flock

2008. január 23., szerda

Sok a szöveg ;)


A sok olvasnivaló után álljon itt most egy kicsit vizuálisabb dolog: nevezetesen a kliens indulásakor feljövő konfigurációs dialógus (Linux alatt éppen).

A Video fül tartalma látható, ahol az Ogre által támogatott különböző grafikai beállításokat lehet meghatározni, amit a program konfigfájlból olvas és oda is ment.

2008. január 17., csütörtök

Csapateposz Vigi billentyűzetéből

Silent Vertigo

Vertigoról szólj nékem Múzsa, jó mese számra
jöjjön, mint amidőn jó Homer dalban sok
argoszi hősről s trójai lónevelő daliákról
énekel Ílionért vívott küzdelemben.
Kis csapatunk pár éve az Egyházashetye mellé
elkövetett túrán - sok szabad óránkat
szüntetvén - alakult önnön örömünk emelése
céljából szenvedélyünk képére.
Sétánk közben, mint Kronión a bagolyszemü Pallaszt
anno világra hozá, úgy pattant ki
jó kobakunkból az ötlet a földi mező talajára.
Fórum alapra akartuk fejleszteni, ám
még a gyalogtúránk végéig elszállott ez az ötlet.
Jó viadaljátékot alapul véve,
onlájn társas szórakozást kitalálva haladtunk.
Nem tellett bele két hét s már rajzolta
sokszáz H-s ceruzáju Lacénk izometrikus élből
nézve a kis falu sok házának falait.
Átálltunk ugyanis grafikára a hexagonális,
izgalmas shuluri bősz viadal képről.
Hónapok, évek teltek el, mialatt mai formát
öltött játékunk és csapatunk képe:
emberek írtak, hogy segedelmük ajánlata révén
fennkölt játékunk elkészíteni ők
kis csapatunkba belépnek és dolgozni beállnak.
Sajnos a többség itt hágyta a jó csapatot.
Vannak még deli arcok, kiknek nem derogáló
most dolgozni a célért és alkotni.
Álljanak itt amazok, kik sok percet monitornál
eltöltöttek, hogy elkészüljön a mű.
Elsőnek betürendben jöjjön hát a tizenkét
ujjú céhmester, Ácsi, ki kezdettől
tag, s a linux kenyere programjaival telerakva.
Programozókkal és rendszerfejlesztő
kollégákkal a játékot fejleszti előre.
Háromdé grafikus jó faluépítő
Azrael, aki épületek falait lemodellezi.
Sorban most adatőrző Dessant gyere hát
sokszáz és ezer tábláddal töltvén fejed űrjét.
Fő concept artistünk ceruzák ura hős
Flekkermensch, kit rajzban soha senki enyésző
nem ver meg és ízes szavait nem üti.
Entity rendszer gyártását Gabo végezi nálunk,
s ötleteit becsülik programozóink mind.
Két Ynev építőnk mindig jókedvü Ghery és
tűrőszívű, hős Karrde, kinek hosszú
hónapok óta stabil Yneves munkája elismert.
Első graf munkatárs őrült Kicsy, ő
minden bűn felelőse a gengben, megkövezése
törvényes, mindenki jogában áll.
Kódok urát, ujjhős Kamit hadd állítom elétek
tisztelvén titeket, hogy ne csak az apiból
ismerjétek a programozók deli tar vezetőjét.
Egyetlen rajzos hölgy csapatunk táján
állatkészítő Manndil, szép kékszemü elf lány.
Soksok energia fekszik már abban, mit
jómunkás O'Neill ennek a gengnek adott Ynev jószinü
arcát megmutató színes irásaival.
Hű fantázia bíró Quest ügyel erre a célra:
játékot fejlesztünk, nem csak üres és
száraz technikai brávúr e nehéz kitüzött cél.
Háromdében jártas Rushkiller sok
mesh apukája, habár még csak fiatal grafosunk ő.
Tíz hengerrel bír és animál alakot
jó Szeki Mester Úr, akinek zeng jó kitarája,
mit neki juttat Apollón Déloszról.
Nagy torony építő Temaruk Max nyögje kezed sok
hétig, míg ez a játék el nem készül.
Silent Vertigo fejlesztő csapatát bemutattam,
S Kalliopé kezemet ím te vezérelted
szórakozásomra s csapat üdvét lám felemelvén
felhős csúcsu Olymp szép magas ormára.


Nem akartam bevezetővel rontani Vigi remek művének élvezetét, de nem tudom megállni, hogy ne mondjak neki nagy köszönetet itt is ezért az eposzért, tehát:
Köszönet ezért az (újabb) agymenésért. ::sör::

Blogged with Flock

2008. január 10., csütörtök

MMO fejlesztés hobbiprojektben?

Eredetileg, amikor ACsi megkérdezte, hogy nem-e lenne kedvem a blogjába bejegyzést írni, arra gondoltam, hogy írok egy összefoglalót arról, hogy éppen min dolgozik a programozói csapat. Aztán rájöttem, hogy mivel a december inkább a pihenéssel telt szinte az egész csapat számára, így ezt a témát majd meghagyom az aktívabb időszakokra.
Az alábbiakban azt próbálom leírni, hogy miről szól a Solarah, mint hobbi MMO? Remélhetőleg ez a külső érdeklődő számára is érdekes és esetleg hasznos lesz.

Először is, mi az, amit csinálunk?

Egy ingyenes és nyílt forráskódú MMO játékot fejlesztünk hobbiprojektben. Ebben a mondatban minden szónak súlya van. Lássuk mit is jelentenek ezek a szavak hátulról előre haladva!

Hobbiprojektben fejlesztünk. Ez azt jelenti, hogy szabadidőnkben foglalkozunk a játék fejlesztésével, tehát munka, iskola, család mellett. Ennek több következménye is van. Egyrészt a csapattagok az ország legkülönbözőbb helyein vannak és elsősorban az interneten tartják a kapcsolatot egymással, másrészt mindenki önkéntes módon fektet energiát, munkát a közös céljaink elérésébe. Ez nagyon hullámzó haladási ütemet eredményez, senki nem "ütlegelhető", ha nem dolgozik. Emberek jönnek mennek, tűnnek el a csapatból. Konfliktusok vannak abból, ha valaki úgy érzi, hogy a többiek túl keveset vagy semmit sem raknak hozzá a projekthez, ő maga pedig sokat. Egy másik konfliktusforrás a szakmai döntések meghozatala, mert a viszonylag laza szerveződésből adódóan, ha nagyon eltérő elképzelések vannak adott témában, akkor néha komoly türelemre és kompromisszumkészségre van szükség a tagok részéről. Nem kevés projekt azért bukik el, mert a tagok egyszerűen nem tudnak megegyezni. Nálunk is időről időre felveti a fejét egy ilyennek a szele, de eddig még mindig sikerült túllendülni ezen, és végső esetben a projektalapítók eldöntik a további irányt.

MMO játékról van szó, vagyis egy időben nagyon sok játékos tudja játszani az interneten keresztül egy közös világban. Szerintem ma már mindenki találkozott ilyenekkel. Na most MMO-t fejleszteni a legnagyobb falat játékfejlesztés témakörben, nem is nagyon vannak a garázs/hobbifejlesztés területén sem a világban, akik valami tényleg játszhatót/használhatót alkottak. Nagyon sokfajta és komoly szakértelem szükséges egy működő megoldás elkészítéséhez, és az igazán jó és szabadon elérhető szakirodalom kevés.

A rendszer minél több/nagyobb részének forráskódját nyílttá szeretnénk tenni. Eddig két indok merült fel egyes rendszerrészek zártan tartásánál. Az egyik a biztonság - elsősorban a csalások elkerülésére való törekvés miatt, a másik a játékélmény megőrzésre, ami ugyancsak rokonterület a csalásokkal. Nem szeretnénk, ha egyes játékosaink a többieknek bosszúságot okoznának, tisztességtelen előnyökhöz jutnának a játékban azáltal, hogy saját módosított klienssel játszanak, vagy előre tudják a játékban bizonyos események bekövetkezését vagy kiskapukat ismernek, amelyekről mi sem tudunk, vagy nem volt szándékunkban publikálni. Természetesen tudjuk, hogy tökéletes biztonság nincsen, de törekedni kell rá, bizonyos kompromisszumok mellett.

Az eddigiek alapján a legtöbb fejtörést egy új érdeklődőnek az ingyenesség okoz. Általában nem értik, hogy miért akarunk ingyenes játékot létrehozni. Nyílván szükségünk lesz pénzre is a projekt egy bizonyos fejlődési szintjén, de ez az idő még nem jött el, és nem havidíj formájában szeretnénk megszerezni akkor sem. Most úgy látjuk, hogy először akkor lesz majd komolyabb pénzre szükségünk, ha elindítjuk az első nyilvános, nem teszt/fejlesztői szerverünket. Ekkor majd a vasért, internetkapcsolatért és elhelyezésért mindenképpen fizetnünk kell. A fejlesztéshez ezek jelenleg biztosítva vannak.

Néhány gondolat arról, hogy miért nem céges keretek között dolgozunk.

Egy üzleti, fizetős MMO elkészítéséhez 50+ (vagy inkább 100+) fős profi fejlesztői csapatot kell alkalmazni 2-3 éven keresztül, céggel, irodákkal, infrastruktúrával (szoftver, hardver), mindenfélével együtt. Ez hatalmas költséget jelent, ilyen befektetői potenciál nemhogy itthon de külföldön is viszonylag kevés van, ill. egy semmiből jött csapatnak a nullával egyenlő az esélye egy ilyen befektető megtalálására (egy jó techdemó azért tud nyomni a latba). A megfelelő tudással rendelkező munkaerő is elég szűkös itthon.

Voltak és vannak is kis hazánkban ilyen próbálkozások (Pantheon, Eversoul, Reneszánsz), amelyek különböző fázisokba jutottak/vannak, de értékelhető eredményt nem tudnak felmutatni egy-két jó elképzelésen vagy részmegvalósításon kívül. Amíg valami mögött nem látszik egy komoly létszámú és összetételű fejlesztőcsapat, menedzsment és pénz, addig legfeljebb valami megmosolyogtató kategóriába tudom sorolni.

És akkor nekünk mire nagy az arcunk? - lehet kérdezni. Semmire. Mi abban reménykedhetünk, hogyha a pénz nem akadály, akkor legalább csődbe nem megyünk, és ez nem akasztja meg a fejlesztést. :) Az Open Source mozgalom fejlesztési filozófiáját alkalmazzuk (többé-kevésbé) egy hatalmas feladatra.

2007. december 7., péntek

Forgassunk!

A zh-k, vizsgák, beadandók és karácsonyi készülődés közben kevés idő marad a projectre, ezért elég sokat gondolkoztam azon, hogy mégis mit írjak a héten.

Gondoltam arra, hogy a rég ígért Új Törvénykönyv tesztet tegyem ki, de a mágiarendszer kipróbálása elött nem akartam még postolni róla.
Szerencsére a heti témát megmentette egy rendszerfrissítés ami felvarázsolta a legújabb Eclipset a gépemre. Kevésbé szerencsés módon az eddig telepített pluginjaim viszont eltűntek (megváltozott az a hely ahová eddig az Arch Linux installálta, valószínüleg ez a jelenség oka) minek után újra kellett telepítenem őket és jött az isteni szikra: Hogyan rakjuk össze a Solarah fejlesztéséhez alkalmas környezetet?

A leírás elsősorban a linux barátoknak készült, de némi átalakítással Windowson is működhet. (Jelenleg se időm se telepített windowsom nem volt egy teljes leírás készítéséhez, esetleges igény esetén majd pótlom. ;))

1. lépés: Függőségek
Ez linuxon elég egyszerűen megy. A SO (majdnem) összes függősége megtalálható Ubuntu-nál a repóban, míg Arch esetén az AUR-ban. A telepítést nem részletezném, ugyanúgy működik mint minden más telepítés a kedvenc rendszerünkön. :)
Ami tényleg fontos az a lista, hogy mégis mit kell felpakolni a gépre. Íme:

2. lépés: Környezet
Én Eclipset használok fejlesztésre ami kiváló választás linuxon. Java-ban íródott ezért fut windows alatt is, de ott mégis inkább a Microsoft Visual Studio-ja (szerintem) a legjobb döntés, főleg mióta enyhe butítással (és jópár megkötéssel) ingyen is elérhető.

Az Eclipse kivesézése elött még meg kell említenem két eszközt amit használunk, a CMake-t és a Bazaar-t. A CMake egy olyan cross-platform make rendszer ami néhány infó alapján összeállítja nekünk a linuxos make fájlokat vagy igény esetén a Visual Studio projectet. A Bazaar egy verziókövető rendszer amit értelemszerűen a SO kódjának követésére használunk.
Ezeket is telepíteni kell mielött belevágnánk a mókába.

Most, hogy minden a helyén van már csak a megfelelő Eclipse kiegészítők telepítése van hátra. Én az alábbiakat használom:
CDT 4.2; Ez az alapvető eszköz. :) Ez teszi lehetővé, hogy az eclipsen belül tudjunk érdemben C/C++ kódokkal foglalkozni.
LuaEclipse; A SO scripteléséhez Lua-t használunk, ezzel a kiegészítővel pedig már külön alkalmazásra se lesz szükség a scripteléshez. (A játék eseményeinek scriptelése persze az editorban lesz megvalósítva.)
CMake Editor; A CMake fájlok szerkesztését szintaxis kiemeléssel segítő apróság.
BzrEclipse; A Bazaar verziókövető rendszer integrálására szolgál. Egyszerűen lehet vele frissíteni, kódot feltölteni. Kiemeli a változásokat és ütközéseket, szóval tudja azt ami elvárható tőle.

3. lépés: Fordítsunk Solarah Onlinet!
Ezt a lépést nyugodtan végre lehet hajtani minden előzetes eclipses bűvészkedés nélkül. Amire szükségünk lesz az a Bazaar, a CMake és fentebb leírt függőség lista tagjai.
A fordításhoz egyszerűen alábbi lépéseken kell végigmenni:
3.1: Minden szükséges dolog telepítése (függőségek, cmake, bazaar)
3.2: A forrás letöltése. Ehhez a bazaart kell használni. Konzolban a következő parancs megoldja a dolgot:
bzr co http://bazaar.launchpad.net/~silentvertigo/solarah/trunk
3.3: Fordítás.
3.3.1: A "trunk" mappában cmake . paranccsal létrehozzuk a makefileokat. Amennyiben a cmake nem találná meg magától a feltelepített függőségeket `-i` kapcsolóval indítva kézileg megadhatjuk neki.
3.3.2: A makefileok elkészülte után a make solarah-client utasítás konzolba pötyögése elindítja a fordítást.
4: A trunkon belüli "bin" mappában létrejövő "solarah-client"-tel indíthatjuk. (Sajnos ez hibával le fog állni mivel nem fog tartalmat találni (modellek, textúrák, stb.) - majd megpróbálom a graf részleggel megbeszélni, hogy kikerüljön legalább egy teszthez használható helyszín, ha valaki tényleg eljátszik a saját fórdítással.)


Jó szórakozást a fentiekhez. :)
Ha esetleg bugot találtok fordítás/futtatás közben azt a launchpad bug szekciójában jelezhetitek nekünk.

Blogged with Flock

2007. november 28., szerda

Gyors helyzetjelentés

Rohanok ezért csak egy gyors helyzetjelentést kaptok a héten. (Ha lesz időm ígérem írok részletesen is.)
Az animált kamera még mindig nincs teljesen kész, de már jó útón halad. Akartam nektek felrakni egy videót róla, de kerek 1,5 fps sebességgel tudtam csak rögzíteni ezért ez most elmarad. Ahogy rájövök mi volt a probléma ugrik is fel ide.

Launchpaden megjelent egy új blueprint melynek elkészültekor képes lesz a kliens a lightmapek helyes megjelenítésére. A lightmapek kezelését a graf motor természetesen megoldja, viszont a modulizált objektumfelépítés miatt nem tudunk jelenleg minden modulhoz megfelelő lightmapet rendelni. Ezt a problémát oldja majd meg ez a részlet amikor elkészül.
Aki ebből nem sokat értett az nézze meg az alábbi képet és vesse össze az előző postomban találhatóval. (Ezen van lightmap míg az előzőn nincs.) Szerintem jól látható a minőségi különbség. :)


Blendir lightmappel (render)

Blogged with Flock

2007. november 11., vasárnap

Global SV konf v7.11

Igen, megvolt a global SV konf, jó volt, hasznos volt és most még somlóira se vártunk órákat.

Délben kezdtünk gyülekezni az ilyen összeröffenések szokásos színhelyén, fél kettőre meg is érkezett az utolsó várt ember is. Bár O'Neill (ynev) és Gabo (prog) nem tudtak megjelenni előzetes ígéretükkel szemben, ezt Gabonak még könnyen elnézzük, de O'Neillnak csak nagyon nehezen... (Mégiscsak önszántából bulizta át az előző estét :P)

A keddi prog konfhoz képest sokkal populárisabb témák kerültek napirendre. Többek között beszélgettünk képzettségekről, km rendszerről, halálról és időjárásról.

A halállal kapcsolatos szeptemberi döntésünket megerősítettük. Azok kedvéért akik akkor lemaradtak róla: a halál permanens lesz, tehát a karakter semmilyen módon nem térhet vissza a játékba. (Kivéve az olyan kiskapuk mint feltámasztás, vagy nekromancia, de ezekről szót se többet.)
Elhatároztuk egy olyan lista elkészítését is ami azokat a halálnemeket tartalmazza amik nem lesznek halálosak. Hm... ezt megint sikerült jól elmondanom. idézek inkább Vigitől:
"A halál továbbra is permanens, azonban össze kéne írni azokat a szituációkat, ahol a karakternek meg kéne halnia normálisan, de mi mégis megmentjük az életét. (a bagatellhalálokra gondoltunk, amikor pölö a nyuszi átharapja a torkodat, meg ilyenek)"

Képzettségfronton nem történt tulajdonképpen durva változás, megbeszéltünk néhány részletet, emlegettük sokat a "nem csinálunk lépcsős képzettségeket" szabályt, ill. megegyeztünk abban, hogy alkalom adtán Dessant (prog) és Vigi főz pipacsteát Laceenak (concept art).

A képzettségek felvetettek még néhány témát, ezek közül a két jelentősebb a mérgek és az időjárás voltak.
Mivel az időjárás témát már korábban átrágtuk nagyvonalakban nem okozott különösebb fejtörést, de kinnt legalább szépen esett a hó.
A méreg témának pedig az lett a vége, hogy Quest (ynev) felrakott egy részletes listát róluk a csapat belső ftp-jére.

A kalandmester kérdést egyelőre napoltuk, de a csapat jelenlévő része a "játékos km"-ek felé húz. Mielött ennek a leírásába is belebonyolódnék inkább idézek mukieviltől (fórumita):
"Ám, nem kell feltétlenül km-nek lenned, ilyesmikhez. Ha szert teszel egy kis hatalomra, pénzre, más játékosokat felbéreljetsz, segitheted öket, küldetéseket adsz nekik, pl hogy szerezzenek meg neked ezt -azt... Sok mindent lehet igy is. Persze igy nemtudod öket felügyelni, irányitani a szörnyeket, de én ily modon is imádtam játszani, még anno nwn-be."

Persze előkerült az elmaradhatatlan honlap téma is - bár kicsy (graf) nélkül. Igény lenne rá, hogy az eddig szétszórt eszközeinket ezen az oldalon koncentráljuk, illetve, hogy egyes dev beszélgetéseket és esetleg a wikit szabadon hozzáférhetővé tegyük ott. Bár ez utóbbi még eléggé vita tárgyát képezi csapaton belül.

A témákról egyelőre ennyit, Gabo távolmaradása miatt sajnos nem készültek képek, de ezt majd legközelebb pótlom. :)

Addig is itt egy shot a kedvenc teszt falunkról, Blendirről, ahol jelenleg az animált kamerát tesztelem, térjünk is rá egy picit erre.



Animált kamera klikk

Bár már vagy tíz napos késésben vagyunk azzal a mérfőldkővel amibe ez a feladat is tartozik még mindig nincs kész. A legtöbb dolog ami hiányzik belőle apróság csupán, viszont van egy olyan rész ami miatt nem jutok egyről a kettőre. A probléma hétvégén került terítékre és azóta próbálok rá jó mególdást találni, egyelőre sikertelenül. Azért bizakodok, hogy ez nem fog nagyobb fennakadást okozni és napokon belül meglesz. (Ahogy értékelhető állapotban lesz a kód megy lp-re)

Mindenesetre ahogy elkészül kaptok egy videót róla.

// Ha valaki tud linuxra egy jó videórögzítő és vágó alkalmazást nagyon hálás lennék a tippért.