Space Tactics 3.5 v0.1ALFA

[screenshot]

A fősulin TDK-ra készítem ezt a játékot, legalább is a mesterséges intelligenciát hozzá (amibe még bele se fogtam). De az engine részeként megcsináltam hozzá a multiplayer részt. Nem valami felhasználóbarát még, de majd lesz jobb. Novemberig van a határidő szóval addig ezt csinálom, és nem nagyon foglalkozok mással.

A játékot ugyanúgy kell írányítani, mint bármely más RTS játékot, bal egér gombbal kijelöljük az egységeket, jobb egérgombbal meg parancsolunk nekik. Ctrl+jobbgomb a gyülekezőhelyet állítja be.

És egy kicsit a multiplayer részéről is a dolgoknak. A játék szerver-kliens alapú és TCP protokollon megy. Hogy ha egy játékot akarsz hostolni, akkor nyomj majd a játékban Ctrl+S-t, és állítsd be, hogy engedélyezed, hogy a gépedre csatlakozzanak. Ha kliensként akarsz részt venni a játékban, akkor a Ctrl+C-vel előjövő "chat-ablakba" kell beírnod egy olyan parancsot, hogy /connect aztán pedig a szervergép ipjét és portját kell beírnod. (Érdemes Ctrl+S-es ablakban beállítani a neved.) Innentől kezdve a szerverkezelő dolga az, hogy mi történik. A szerveresnek (hosternek) ahhoz, hogy játszani tudjanak a kliensek meg kell nyomnia a Ctrl+P-t és játékosokat kell hozzáadnia a meccshez, színt, játékosnevet neki kell beállítani. Végül Pedig a kapcsolatok alatt rá kell kattintani a kliensre, és azt hozzákapcsolni egy hálózati irányítású játékoshoz.Végül pedig a Ctrl+C-s chatablakban a /start paranccsal elindítani a játékot, van erről a parancsról súgó, ha beírod, hogy /help start. Mivel még semmi technikai dolog nincs még a játékban, amely érzékelné a szinkronvesztést, ezért erősen ajánlott nem nyúlkálni a játékosbeállításokhoz, meg a chatablakba se írkálni parancsokat, amely az egységeket babrálja, mert akkor elveszik a szinkron, és a meccs végén, mindkét fél a saját győzelmét ünnepelheti, mert az egyik azt látta, legyőzte az ellenfelét, meg a másik is... Arról nem is beszélve, hogy a feltöltés pillanatában még az sincs megcsinálva, hogy kijelezze, ha a másik veszít, szóval van mit fejleszteni még...

De anno a Counter-Strike is így indulhatott el (szerintem)... Minden dolga konzolban állítható volt, és semmi menü.

Amit a többiekkel egyeztetned kell az a host IP címe, és a verzió, semmilyen beépített verzió nincs a játékban, vegyük úgy, hogy a verzió a játék indító EXE fájljának a mérete, ha valamit barmolok vele, akkor az úgyis változik majd. (mellesleg, ha vírusok barmolnak vele, akkor is...)

Innentől kezdve már csak ellenfelekre volna szükség, hát egy elég fapados megoldást választottam erre. Találtam egy RTS témájú IRC szervert, a irc.rtsnet.org -ot, csatlakozz rá és /join -olj a SpaceTactics35 szobába. (/join #SpaceTactics35)

Végül a rendszerkövetelményekről is:

Innen töltheted le a cuccot: st35_prealfa.zip

Linux felhasználóknak

A program linux alatt is megy. Ehhez töltsd le a windowsos változatot, de windowsos exe helyett a linuxos futtathatót használd: SpaceTactics35_linux.exe

Ahhoz, hogy ez fusson telepítened kell a gépre a mono-t, amely a .NET cuccokat futtatja linux alatt. Nekem csak Ubuntu-m van, ott mono-runtime ennek a csomagnak a neve.

Ezután a következő paranccsal futtathatod a játékot, miután a játék mappájába léptél: mono SpaceTactics35_linux.exe

Valószínűleg DllNotFoundExceptionnal el száll első alkalommal. Ez esetben írnod kell egy konfig fájlt, amely elvégzi ezeknek a dll-eknek a leképzését a linuxos megfelelőre (.so kiterjesztésű)

A CalmaFramework.dll hívogat dll-eket ezért ahhoz kell a konfig fájl. A konfig fájlnak CalmaFramework.dll.config -nak kell lennie (pontosan meg kell egyeznie a dll nevének, és utána kell írni, hogy .config)

4 dll-re fájhat a foga, ezeket a konfig fájlba így kell beírni:

<configuration>
	<dllmap dll="i:opengl32.dll" target="libGL.so" />
	<dllmap dll="i:openal32.dll" target="libopenal.so" />
	<dllmap dll="i:freetype6.dll" target="libfreetype.so" />
	<dllmap dll="i:alut.dll" target="libalut.so" />
</configuration>

Ezeknek az so fájloknak a nevei linuxonként mások lehetnek, ezért ha így se megy, akkor meg kell keresni a /usr/bin könyvtárban, hogy mi is a tényleges név, és azt beírni a konfigba. Ha minden próbálkozás ellenére még se megy a dolog, akkor lehet írni az IRC-re.