O projektu
Projekt 5410 je naše první společně rozpracovaná hra. Jednou z našich
oblíbených her byl Raptor - klasická scrollovací střílečka s letadélkem a
velkým množstvím nepřátel. Bohužel, počet nových her tohoto typu se stále
zmenšuje... a to nám přišlo natolik líto, že jsme se rozhodli do žánru přispět
vlastním výtvorem. Samozřejmě bylo nutné jít s dobou, tedy ve vysokých
rozlišeních a s efektní grafikou. Pomalu se tedy začlo pracovat... Po měsíci
ovšem někdo přišel s naprosto geniálním nápadem předělat grafiku do 3D. Faktem
je, že takovýto způsob zobrazení přináší nepřeberné množství výhod. Bohužel
faktem také je, že tvorba her ve 3D pro nás byla španělská vesnice. Začali
jsme se tedy učit...
Několik slov k příběhu
Píše se rok 2030 - průzkumná sonda třídy M-Polo
objevila planetu s výbornými životními podmínkami;
nadnárodní společnost Cosmopolis se rozhodla pro terraformaci - akce dostala
kódové označení "Projekt 5410" a planeta byla pojmenována Sans Enfants.
Technické informace
Základem všeho by měl být (náš) 3D engine, postavený na OpenGL (možná i
Direct3D, bude-li nálada). Vzhledem ke stavu projektu není možné zde přednést
něco jiného, než plány a dohady. Dohadujeme se ovšem, že k hraní by měl bohatě
stačit starší počítač taktovaný okolo 500 Mhz s grafickou kartou na úrovni
TNT2, nebo Voodoo3 a 64-128 MB RAM.
Původním plánem bylo sice použití cizího grafického enginu, to se však
ukázalo nebýt vhodným řešením. Nebylo obtížné jich na internetu najít hned
několik. Morfit byl první z nich... po prohlédnutí příkladů a pročtení
licence však bylo rozhodnutí jasné: NE. Přestože jsme viděli nějaké celkem
povedené hříčky, postavené na tomto enginu, nezdál se být technicky příliš
na výši a ani další "vlastnosti" jako nahrávací obrazovky mu u nás nepřidaly
na popularitě. Jako další přišel na řadu open source Crystal space.
Ten se nám bohužel nepodařilo na našich počítačích zprovoznit, a tak bohužel
nedostal šanci předvést, co dokáže. Poslední z významějších testovaných byl
Genesis 3D. Tímto enginem jsme byly naprosto nadšeni nejen díky
ukázkovým aplikací, ale i proto, že byl k dispozici zdrojový kód a přiměřená
licenční smlouva podobná LGPL. Bohužel studium dokumentace i zdrojových kódů
ukázalo, že tento engine není optimalizovaný a tím pádem ani příliš
použitelý pro scény s velkým počtem polygonů (u map, ne u objektů) a že
jeho úprava pro naše potřeby je když ne nemožná, tak určitě obtížnější,
než napsání enginu vlastního. Až ovšem budeme vytvářet 3D akci z vlastního
pohledu nebo "Tombraiderovku" (ehm, ehm), je volba jasná... Nakonec tedy
zvítězil nápad napsat engine vlastní.
Status
- Na čem se pracuje:
- Modely herních objektů
- Texturované modely
- Podopora pro briefingy, úkoly a podobné věci
- Propojení skriptovacího jazyka s programem
- Podpora pro animované textury
- Systém uživatelského rozhraní
- Myší ovládání
- Co už je hotové:
- Log soubory
- Nástroje pro práci se soubory v archivu
- Částicové efekty (podpora pro částicové systémy)
- Zvukový systém + prostorový zvuk
- (ne)herní nástroje (konzole)
- Skriptovací jazyk + garbage collector
- Co ještě není zcela hotové, ale už víceméně funguje:
- Funkce pro vstup (DirectInput)
- Herní editor
- Práce s terénem (detekce kolizí, optimalizace grafických dat)
- Podpora metriálů pro modely
- Střelba po nepřátelích
- Střelba po hráči
- Zobrazení terénu a detekce kolizí s ním
- Načítání modelů z 3D studia (pracuje se na "advanced" importu)
- Kód pro práci se systémem (okna, inicializace, ...)
- Kód pro práci s texturami včetně alfa-map
- Konzole se zadáváním textu (příkazů ve skripotvacím jazyce)
- BSP stromy pro optimalizaci scény
- Použití XML pro ukládání herních dat
- Změny rozlišení + fullscreen