Это игровой фреймворк для быстрой разработки 2-2,5D игр. Фреймворк основан на игровом движке ZenGL. Основная концепция фреймворка это абстракции, достаточно высокие, чтобы избавиться от ручной отрисовки и другой рутины, которая существует в игровых движках. Высокая абстракция позволяет заниматься только логикой игры, а все остальное на себя берет GameAbstract. Само название - Игровая Абстракция - говорит об этом.
Прогресс: 65% - активная разработка
Прошло времени с начала разработки : 21 день
Платформы : Windows, Linux, MacOS (iPhone, iPad в перспективе, zengl поддерживает их).
Рендер : OpenGL, DirectX (на выбор), OpenGL ES 1.X (для мобильных платформ).
Адрес проекта : http://code.google.com/p/game-abstract/ (там же есть svn и тестовый проект в папке test).
Лицензия : Opensource, MIT
Языки разработки : Pascal (Delphi/FreePascal), Orion (PHP-подобный скриптовой язык), возможность добавлять новые скриптовые языки.
Основные особенности:
- Высокий уровень абстракции
- Физический движок (на основе chipmunk)
- Графический движок - ZenGL с поддержкой D3D или OpenGL рендера
- Звуковой движок - ZenGL (поддержка wav и ogg)
- Скриптовой движок - Orion (php подобный усовершенствованный язык). Поддержка планируется.
- Кроссплатформенность, движок общается только с API ZenGL
Основные абстракции движка:
Это еще не все абстракции, будут еще некоторые.
- Текстуры - изображения, картинки и т.д.
- Спрайты - графические объекты имеющие свойства - текстура, анимация (скорость, позиция и т.п.), фильтры для отрисовки, позицию, высоту и ширину
- Объекты - унаследованная абстракция от спрайта, имеющая физику и события (коллизии, мышки, анимации и т.д.)
- Слои - для графических элементов (объектов, спрайтов, текстов и т.д.). Объединяют в себе сразу несколько графических абстракций, имеют свойство ZIndex для контролирования порядка отрисовки. Также, каждая графическая абстракция имеет свойство ZIndex для контролирования порядка отрисовки внутри слоя.
- Комнаты - уровни со свойствами физики (гравитация, трение и т.п.), списком графических абстракций и объектов, списком событий.
- Камера - позволяет следить за любой графической абстракцией у которой есть свойство позиция. Слои могут игнорировать перемещение камеры (для этого есть свойство).
- Звук, звуковой плагин - абстракции позволяют проигрывать звуки и музыку, а плагины позволяют отделить звуковой движок от звуковой абстракции так, что можно с легкостью менять звуковые движки не меняя код игры для проигрывания звуков.
- Тексты, шрифты - абстракции позволяют легко отрисовывать текст. Абстракция текст является графической абстракцией.
- Менеджеры - менеджеры для текстур, объектов и т.д.
- Эталоны - элемент любого менеджера, который можно клонировать, который обычно не удаляется и не используется непосредственно в игре.
- Клоны - клонированные элементы от эталонов, обычно это объекты. Все клоны имеют те же самые события, что их эталоны. Клоны в отличии от эталонов, можно безопасно уничтожать в любое время.
- Форматы - типы данных для загрузки эталонных абстракций (объектов, текстур) в менеджеры. В фреймворк входит один из форматов - JSON, т.е. можно хранить и загружать эталоны со всеми их характеристиками (физика, позиция, анимация) в менеджеры через формат JSON. Также с помощью них можно осуществлять загрузку и догрузку уровней.
Планы использования
Данный фреймворк будет использован для новой версии DevelStudio (где будет реализована поддержка игр), с поддержкой языка Orion. По абстракциям фреймворка уже сейчас можно понять каким образом будут создавать игры в новой версии DevelStudio.
Минимальное ДЕМО (исходник псевдо игры максимум на 100 строчек кода), прилагается.


Ответить с цитированием
