priklady-resene:herni-framework

Herní Framework

Jak si naklonovat a sprovoznit herní framework postavený na knihovnách SDL2. Prozatím je hlavní platforma a a vývojové prostředí Visual Studio, ale CMake by měl umožnit snadné porotvání na další platofrmy a IDE. Vše bude průběžně testováno a řešeno na základě vaší odezvy.

Budete potřebovat mít naisntalované tyto nástroje. Vše by mělo stačit v nejnovějších verzích bez značného omezení.

Slouží ke konfiguraci a správě projektu ve smyslu jeho sestavování a distribuci. Na základě konfiguračních souborů nám připraví projekt pro IDE.

Slouží pro správu a verzování zdrojových kódů. Umožňuje nám snadno stáhnout celý zdrojový kód a později ho i updatovat. Další jeho významnou funkcí je kooperace mezi několika vývojáři.

  • Vytvoříme složku pro náš projekt někde na disku. Například C:\Programming\MojeHra\.
  • Uvnitř této složky spustíme z kontextového menu Git Bash
  • Naklonujeme Gitovský repozitář
  • Repozitář se nachází na adrese https://git.uzlabina.cz/bures/thegametemplate.
  • Naklonujeme pomocí následujícího příkazu. Bude třeba se přihlásit svým studentským účtem. Výsledek je patrný na obrázku níže.
  git clone https://git.uzlabina.cz/bures/thegametemplate.git Hra
  • Úspěšným spuštěním příkazu nám vznikne nová složka C:\Programming\MojeHra\Hra
  • Dále budeme potřebovat stáhnotu a rozbalit knihovny SDL2 a SDL2_Image. Oboje ve verzi tzv. Development Libraries. Oboje by měli být zip archivy.
  • Oba zipy obsahují složku, kterou umístíme do stejné složky jako Git repozitář z předchozího kroku.
  • Ukázky na obrázcích

V tomto kroce předpokládáme, že celý náš projekt leží například v C:\Programming\MojeHra\ - složka z prvního kroku

  • Uvnitř našeho repozitáře vytvoříme složku build - v tomto příkladě by to bylo C:\Programming\MojeHra\Hra\build
  • Spustíme program CMake - grafickou verzi
  • Položku Where is the source code nastavíme na naklonovaný Git repozitář. V tomto příkladě: C:\Programming\MojeHra\Hra
  • Položku Where to build the binraies nastavíme na dříve vytvořenou složku build. V tomto příkladě C:/Programming/MojeHra/Hra/build
  • Dáme Configure a v dialogovém okně vybereme naší verzi visual studia a nastavíme platform generator na x64 a dáme finish. .
  • V tomto bodě nastane chyba a bude potřeba doplnit proměnnou SDL2_PATH v horní části cestou k naší dříve rozbalené knihovně SDL2. V tomto příkladu je to C:\Programming\MojeHra\SDL2-2.0.14
  • Znovu dáme Configure nastane opět chyba, tentokrát bude třeba doplnit proměnnou SDL2_IMAGE_PATH pro knihovnu SDL2_Image. V tomto příkladu je to C:\Programming\MojeHra\SDL2_image-2.0.5
  • Po opětovném stisknutí Configure by měl být projekt bez chyb.
  • Následuje Generate pro vygenerování solution souborů pro visual studio
  • Následně můžeme rovnou otevřít VS pomocí tlačítka Open Project

Jakmile se nám projekt otevře ve VS. Je třeba akorát nastavit náš projekt TheGame jako výchozí tím, že na něj v průzkumníku řešení klikneme pravým tlačítkem a vybereme Nastavit jako spouštěný projekt. Projekt lze následně sestavit, spustit a upravovat dle vašich přání.

Projekt má nyní 3 hlavní funkce, které stojí za vaší pozornost a kam by jste měli upřít svoji shanu, pokud chcete vytvořit nějaký vlastní gameplay:

  • void startGame() - Tato funkce se zavolá před začátkem samotné hry
  • void update() - Tato funkce se volá před každým vykresleným snímkem. Typicky by měla obsahovat herní simulaci - pohyb, kolize, vstup z klávesnice, herní pravidla.
  • void draw() - Tato funkce se stará o vykreslení každého herního snímku. Zde by jste měli obstarávat vykreslování herních assetů.

Seznam toho co Já Buracisko chci a musím předělat vylepšit v rámci další iterace.

  • Udělat jeden samostatný projekt, který pojme veškeré závislosti a odpadne tak nutnost managovat knihovny ručně - pravděpodobně vlastní mirror a kompilace v rámci projektu
  • Rozdělit frameworkové části kódu do okolních souborů s dokumentovaným API
  • Delta time do update/draw funkcí pro precizní pozicování
  • Bomberman like ukázkový project.
  • priklady-resene/herni-framework.txt
  • Poslední úprava: 2021/04/19 15:27
  • autor: bures