Herní engine

Vytvořte herní engine pro 2D počítačovou hru. V této hře bude hráč ovládat hrdinu, který bude procházet jednotlivé levely, v nichž bude sbírat předměty interagovat s NPC a překonávat překážky. Cílem hry je shromáždit určitou kombinaci předmětů (surovin) a získat popis postupu, jak z těchto surovin vyrobí další předmět, otevírající cestu do vyššího levelu. Překážky můžou být neživé (tma, propast, zeď, láva, voda, atd.) nebo živé (protivníky). Překážky se můžu překonat pomocí určitých předmětů (lampa, žebřík, jetpack, bomba, meč, atd.) které se buď najdou na mapě, nebo se vyrobí.

  • Nezapomínejte, že vaším cílem není vytvořit hru jako takovou (hodně levelů, příběh atd.), ale engine na spuštění a odehrání levelů popsaných externími soubory.
  • Hra bude umět načítat seznam předmětů ze souboru. Tyto předměty bude mít hráč na začátku hry. Na konci hry bude umět hra uložit seznam předmětů ve stejném formátu.
  • Každý level bude popsaný v externím souboru v rozumném formátu – je na vás jaký formát si zvolíte. Pro demonstraci stačí vytvořit jeden až dva levely hry na kterých bude předvedena funkčnost všech prvků, inventáře, výroba předmětu ze surovin a překonávání překážek.
  • Pokud soubory s levely nejsou „human-editable“, musí být vytvořen editor těchto souborů.
  • V rámci hry bude implementován způsob překonávání překážek pomocí nápovědy a/nebo pomůcek (hráč během dialogu získá potřebnou informaci od npc, pomocí vody uhasí oheň v cestě, postaví ze železa most přes lávové pole, apod.).
  • Hrdina bude umět pomocí některých sebraných předmětů interagovat s dalšími předměty (otevře dveře klíčem, rozbije truhlu palicí atd.).
  • Hrdina bude umět ze sebraných surovin vyrobit určitý předmět (ze žárovky a baterie vyrobí lampu, z pšenice, vody a ohně vyrobí chléb, atd).
  • Herní engine musí být vybaven GUI.

Rozšíření pro práci ve dvojici

K základnímu zadání bude implementováno navíc:

  • Engine bude síťový multiplayer. Komunikace se serverem bude pomocí vlastního TCP nebo UDP protokolu. Protokol doporučujeme představit už na první kontrolní schůzce k semestrální práci.
  • K serveru se hlásí uživatelé a server udržuje mezi jednotlivými přihlášeními stav inventáře, pozici ve hře, XP apod.
  • Server ke hře může být tvořen i samostatným balíčkem a nemusí být nutně součástí klienta. Levely jsou definováýny na straně serveru. Je možné po dohodě se cvičícím zajistit i běh serveru s veřejnou IP.
courses/b0b36pjv/semestral/herni_engine.txt · Last modified: 2024/02/18 19:42 by mudromar