Analyza projektu Siriel 4.
Zakladne kroky v projekte:
1. Specifikacia a popis enginu
-- funkcie & extenzibilita enginu
2. Definicia modulov projektu a interfacov medzi modulmi
3. Datove formaty
4. Skriptovanie
5. Textury a grafika
6. Testovanie -- ludske zdroje
7. Navrh scen a pribehov
8. Realizacia & podporne akcie
-- propagacia, dokumentacia, financie
---
1. Zakladna specifikacia funkcii enginu
1.1. Prevzate stare prvky zo Siriela 3.5
- engine by mal zvladat minimalne to, co 3.5
- arkadovy typ hry
- pohlad zvrchu -- bludisko
- ciastocne odkryvanie mapy -- miznuce bludisko
- nepriatelia -- UI (aspon na nizkej urovne :)
- prehravanie animacii -- 3D + nejake to video
- zvuky -- hudba, MP3
- adventurny dej -- moznost specifikovania pribehu
- riadenie levelovym skriptom
- dynamicke nacitavanie datadiskov
- jazykove mutacie
- viac miestnosti v jednom leveli
- vytahy & teleporty
- ovladanie joystickom
1.2. Nove prvky
- multiplayer
- beh na viacerych OS
- server-client
- pluginy (nie je nutne prekopavat vzdy cely engine)
- kombinovanie viacerych typov hier v jednom leveli
(arkadovka & bludisko & etc...)
- rozvetvenie pribehu -- dej sa odvija podla krokov
hraca
- niekolko postaviciek -- ovladanie hlavneho hrdinu
- zabudovana mala hra -- napr. nibbles :)))
- dynamicka zmena prostredia -- nezavisle animacie
zmena pozadia
- podpora roznych datovych formatov
---
2. Definicia modulov a rozhrani
2.1. Vymenovanie zakladnych modulov
Main - hlavny modul, ktory ma za ulohu nastartovanie hry,
hlavne riadenie enginu a ukoncenie
Datadisk- nacitanie a sprava datadiskov
Jazyk - stara sa o jazykove mutacie, parser
Kontrola- ovladanie postavy -- klavesnicovy & joystickovy
interface
NPC - spravanie ostatnych postaviciek
Map - nacitanie mapy, sprava, zistovanie preichodnosti
Zobraz - graficka znazornenie udajov
Play - prehravace datovych formatov -- avi, mp3...
Save/Load- nacitavanie, ukladanie stavu hry
Anim - animacie predmetov, pozadie, popredia...
Skript - interpreter pre skriptovaci jazyk
Menu - zobrazovanie menu -- informacna lista
Objekt - sprava objektov v hre
Game - pre jednotlive typy hry sa spusti iny graficky
a klavesnicovy interpret (Arkady, Maze, Izometrika)
---
3. Datovy format pre popis levelov
Struktura by mala byt zalozena na XML.
Dokument je rozdeleny na viacero casti
(zatial len predbezny nacrt, presnejsie bude
popisany pri implementacii)
3.1 Definicia objektov
3.2 Skript
3.3 Map
3.4 Globalne premenne
gravity = 5
3.5 Definicia Datafilu - upresnenie struktury
ZOZNAM SUBOROV
3.6 Mapa
Mapa je retazec ASCII znakov (mapovy subor musi
byt editovatelny textovym editorom)
Implicitne parametre sa preberaju z S3.5
---
4. Skriptovanie
4.1. Povodny skriptovaci jazyk v S3.5
Zalozeny na sekvencnom prechadzani textu.
Prikazy sa postupne vykonavali zlava do prava.
Prikaz zacinal znakom #, nasledovanym menom prikazu
a parametrami oddelenymi /. Ukoncenie pomocou ;
Jednotlive riadky boli cislovane a na zaklade
tychto cisel sa dalo medzi riadkami skakat.
Ukazka skriptu
1 #CLS;Ahoj;#SHOW;#IFPOCKET/1/2/3;
2 #TAKEPOCKET/1/1;#END;
3 Nemas predmet!;#END;
Podrobnejsie info k staremu jazyku v subore skript_old.txt
4.2. Subory v skriptovacom engine
1. Skript mozne ulozit do samostatnych suborov
2. Skript v jednom suboru
3. Kombinacia pristupov 1,2 (tak ako v C)
Vkladanie suborov prikazom:
#include, include, require
(syntax spolocna pre C aj PHP)
4.2.1 Implementacia
Najjednoduhsi pristup - engine spoji subory do jedneho
suboru v pamati nad ktorym bude pracovat
Niektore skripty su vyzadovane, v pripade, ze ich parser nenajde
nadefinuje implicitne.
---
5. Textury a grafika
5.1. Mapovanie textur
Textura je rozlozena do stvorcovej siete a
na urovni editora sa bude povazovat za kompaktnu
cast.
(podobne ako editor v RedAlerte)
Textury by mali byt rozlozene v niekolkych vrstvach nad sebou.
Zakladny navrh 3 urovne.
1. za postavou
2. na urovni postavy
3. pred postavou