====== Herní engine ====== Vytvořte herní engine pro realtime [[https://en.wikipedia.org/wiki/Role-playing_video_game|RPG 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 a bojovat s příšerami. Typická RPG hra, která je tímto tématem zamýšlena je například tato [[https://darkwalllke.itch.io/simple-rpg]] * **Nezapomínejte, že vaším cílem není vytvořit hru jako takovou (hodně levelů, příběh atd.), ale engine na tvorbu této hry.** * 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řet jeden až dva levely hry na kterých bude předvedena funkčnost všech prvků, inventáře a boje s nepřítelem. * V rámci hry bude implementován způsob souboje s příšerami. * Hrdina bude umět pomocí sebraných předmětů interagovat s dalšími předměty (otevře dveře klíčem, rozbije truhlu palicí 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: * RPG engine bude síťový multipalyer. Komunikace se serverem bude pomocí vlastního TCP nebo UDP protokolu. Protokol musí být představen už na první konzultaci 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.