Console game engine
Здравейте,
след като имам няколко идеи за конзолни игри, които искам да направя, реших че може би ще е хубаво да направя някакъв вид game engine. Което ще рече библиотека, която да мога да вкарам в други мои проекти и да има основни неща, които се "повтарят" във всяка една игра - четене от файл, обекти от char, екран и опресняване на екрана, обработка на команди от клавиатурата, и т.н. И вече от там аз само единствено да пиша логиката на играта без да се занимавам с основните неща.
И ето докъде стигнах:
Console Game Engine v1.0.zip
Като идеята е да можеш да създаваш обект игра, която има в себе си screen, който всъщност представлява 2d вектор от pixels (като pixel е просто x, y, char symbol). И вече на този екран да добавяш различни видове windows и objects, които създаваш, триеш, управляваш и т.н.
Разкоментирайте примера в mainExample.cpp и тествайте сами да добавите някакви прозорци. Тук виждам много потенциал за Inheritance и polymorphism и чакам лекцията, преди да пиша глупости.
Но основният въпрос е как правя всички тези файлове да са в една библиотека? Буквално да е #include "ConsoleGameEngine.h" и това да е. Със сигурност всичко трябва да е в един и същ namespace (доколкото разбрах), но не вярвам, че начина е просто да вкарам всичко в един header file, че иначе било ужасно за редактиране и надграждане? Или това е? Четох в интернет, но не намерих нещо супер конкретно как да стане. Така, че ако някой знае как, ще се радвам да сподели :)
Иначе ще добавя да е cross platform, също така да ще има и рендер, който да добавя цветове и да трансоформира int-ове към разширената ASCII таблица (където са яките символи), да добавя controls, звук, Logger - който да пробвам да позлваме за save/load функция, опция между game loop и turn-based game, и т.н. и т.н..
Ще се радвам за коментари :)
П.С. Съответно в интернет има подобни начинания, но не съм разглеждал нищо конкретно в дълбочина, тъй като искам сам да опитам да измисля цялата концепция и да се поблъскам със самата архитектура.
Поздрави,
Илиян