Журнал
Обновление от 20.07.2012
Всем доброго дня.
Вышло небольшое обновление движка. Кроме мелких правок кода единственное, достойное внимания, улучшение:
исправлена ошибка в DX рендере - при использовании повтора текстуры при больших значениях накапливалась погрешность в текстурных координатах.
Последнюю версию движка можно скачать по той же ссылке, что и раньше: K5Engine3
Ссылка
20 июля 2012
Обновление от 27.02.2012
Доброго времени суток.
Доступно обновление движка.
В этот раз из изменений в коде только исправление двух мелких ошибок.
Сам состав библиотек движка дополнится сборкой для Linux.
Из сопутствующих материалов:
Доступны две новые статьи - одна описывает систему событий движка, вторая систему действий.
Добавлено два новых урока - по одному на каждую новую статью.
В планах всё так же остаётся разработка версий движка под MacOS, Android и IOS.
Ссылка
27 фев. 2012
Обновление от 05.02.2012
Доброго времени суток.
Готово и выложено обновление движка.
В движке изменений минимум:
- в ядре - изменения в системе вывода текста, часть классов перенесена в K5EngineExternSystems .
- в K5EngineExternSystems добавлен (точнее перенесён из кода проекта) новый модуль - PathfindingSystem, система для поиска пути.
- общие мелкие правки в разных модулях движка.
Для MinGW библиотеки собраны на версии 4.6.1.
Так же добавлена новая статья, которая рассказывает о методах вывода текста в движке. К ней прилагается новый урок, демонстрирующий работу с шрифтами и текстовыми объектами.
Скачать можно отсюда: tutorials.
Плюс есть несколько мелких исправлений в pdf-версиях ранее опубликованных статей, скачать которые можно по этой ссылке: articles.
В следующем обновлении, которое выйдет через месяц-полтора, планируется добавить порт движка на MacOS.
Ссылка
5 фев. 2012
Первое обновление в новом году - 03.01.2012
Доброго времени суток.
Готово новое обновление движка, доступны библиотеки под MinGW и MSVC2010.
В самом движке несколько небольших изменений и исправлений кода. Новый функционал не добавлялся, но подчищены некоторые рудименты, оставшиеся от старых версий. Плюс подправлен код K5EngineExternSystems для правильной работы с MSVC2010 компилятором.
Так же добавлена новая статья: Графическая система движка - ключевые элементы
И доступен новый урок, который можно скачать по ссылке: Уроки
Постепенно готовлю ещё две статьи: работа с текстом и событийная система движка и соответственно к ним два урока.
Ссылка
3 янв. 2012
Обновление от 24.11.2011
Доброго времени суток.
Залил обновлённый движок, скачать можно всё по той же ссылке: K5Engine3.
Так же добавил новую статью: Начиная работу.
Изменений в движке довольно много, из самых значительных:
В K5Engine:
- У TSprite атрибут Square разделён и заменён на Size и Mesh.
- Полностью убран из движка класс точки TPoint2D, соответственно TPoint3D стал просто TPoint.
- Добавлен класс TPointArray.
- Новый функционал у текстур - режимы смешивания при копировании определённого участка.
В K5EngineExtensions:
- Добавлены новые екшены: TActionSpriteTransform, TActionColorArrayIteratr, TActionPointArrayIterator.
- В DataNodeSystem добавлены новые декодеры для екшенов.
В K5EngineExternSystems:
- Добавлены реализации звуковых систем AudiereMusicSystem и BassMusicSystem.
- Исправление ошибки в FreeTypeFontSystem при генерации шрифтов для DX рендера.
Ссылка
25 ноя. 2011
Обновление от 05.10.2011
Доброго времени суток.
Залил обновлённый движок, скачать можно по этой ссылке: K5Engine3.
Исправлен ряд ошибок, связанных с некоторой внутренней реорганизацией кода, из серьёзных:
1. не правильная работа цвета спрайта в DX8 рендере.
2. не обновлялись параметры спрайта при некоторых вариантах задания устройства.
Так же ряд небольших изменений в системе действий:
1. В класск TBaseActionList изменено название метода IsActive() в IsAllActive(), добавлены методы IsAllNotActive(), IsOneActive(), IsAllNotActive(), IsOneNotActive().
2. В класс базового действия TBaseAction добавлен виртуальный метод Update().
3. В TBaseActionList и TBaseActionPointerList добавлен метод Update(), который вызывает аналогичный метод у TBaseAction.
Ссылка
6 окт. 2011
Обновление от 14.09.2011
Доброго времени суток.
Сегодня выложил первую статью по третьей версии движка: Введение в K5Engine3
Скачать версию статьи в pdf можно по этому адресу: 0. Введение.pdf
Собственно сюда в дальнейшем будут помещаться статьи для скачивания.
Статья по своей сути - переработанное введение про K5Engine1.
Следующая статья - создание простейшего приложения с использованием движка.
Так же обновился сам движок.
Из изменений:
- некоторые мелкие исправления в системах движка.
- исправлена ошибка в ActionAngleIterator: не работал циклический режим итерации.
- доработан ActionJoin, добавлена возможность не задавать трансформацию угла наклона.
Скачать последнюю версию можно тут.
Ссылка
14 сен. 2011
K5Engine. Релиз третей версии движка.
Вот и выложена новая версия движка.
Скачать можно по этой ссылке:
K5Engine3
Версию проскочили, так как постепенно накопилось слишком много изменений, которые во второй версии было накладно реализовывать (на ней делаются делаются проекты). Поэтому и было принято решение сразу сделать релиз третьего движка.
Изменений много, множество систем было переработано, некоторые были исключены из движка, некоторые добавлены. Так же добавлен модуль с открытым кодом расширений движка K5EngineSourceTemplates.
Вот список наиболее важных.
1. Убран один графический объект - SpriteBank. С одной стороны он удобен в работе, с другой слишком усложняет сопутствующую логику.
2. Уменьшилось количество графических элементов, угол наклона превратился в унифицированный класс-значение.
3. Убраны отдельные классы-виеверы, их код унифицирован и разделён на отдельные объекты.
4. Оболочка для freetype исключена из движка и вынесена в отдельное расширение.
5. Классы-действия кардинально переработаны, теперь вместо деления на два типа есть один унифицированный базовый класс. Соответственно все ранее доступные классы-действия заменены новыми.
6. Введена система узлов данных, позволяющая создавать описания сущностей движка и игровой логики, сохранять и загружать их из файлов. Xml-класс для работы с узлами данных доступен в K5EngineSourceTemplates.
7. Полностью убраны реализации звуковой системы.
Это не окончательный релиз, движок будет постепенно дорабатываться.
В данный момент доступна библиотека для компилятора mingw, соответственно платформа одна - Windows. Однако по просьбе движок может быть собран и на другом компиляторе (например MS compiler) и под систему Linux.
Так же проводится работа по портированию движка на MacOS, IOS и Android платформы.
Уроки, документация и статьи так же будут постепенно готовиться и выкладываться.
В будущем возможно открытие кода движка, но пока что единого мнения в команде разработчиков о целесообразности открытия кода нет.
Ссылка
4 сен. 2011
Анонс движка K5Engine 3
Всем доброго времени суток.
Это небольшой анонс того, что следует ожидать в новой версии движка.
Так вышло, что новая версия движка, планирующаяся ранее к выходу, уже и не будет выложена.
В процессе работы она переросла версию с второй до третей и собственно, будет выкладываться уже третья версия.
Ключевые изменения:
- Разнообразные улучшения в ядре движка и расширение функционала.
- Убраны банки спрайтов, они будут заменены на логический объект Group.
- Изменена система действий, обычные действия вообще убраны, остались только событийные с возможностью принимать пустую структуру события. То есть теперь есть единый механизм действий, без разделения на событийные и одномоментные.
- Переработана библиотека K5EngineExtensions, изменён состав действий, входящих в неё, так же добавлены инструменты для генерации спрайтов.
- Убрана реализация вывода звука с помощью Bass и Audiere, скорее всего звук будет выводиться с использованием PortAudio.
Так же планируются некоторые организационные изменения в выходе версий движка, будет сформировано SVN хранилище с открытым кодом, расширяющим функционал, так же будет доступно хранилище с постоянным обновлением сборки движка.
Плюс добавятся новые статьи про использование движка и будут подкорректированы старые.
Новая версия ориентировочно ожидается в августе-сентябре, возможно раньше, всё зависит от загруженности работой.
Ссылка | Комментарии [2]
15 июня 2011
Обновление от 13.02.2011
Доступно новое обновление движка. Как обычно, сборка произведена в виде статической библиотеки для MinGW, MS Visual C++ и GCC
Изменения коснулись прежде всего библиотеки K5EngineExtensions:
- Состав ActionSystem остался тот же, но в будущем действия вида "ActionChange(тип объекта)(параметр)" (например ActionChangeSpriteColor) будут заменены на универсальные, подходящие для всех доступных графических объектов.
- ColisionSystem была исключена из расширений.
- LibTools не изменилась.
- TinyXmlToolsSystem исключена из расширений. Это сделано для того, что бы избавиться привязки к конкретной библиотеке. Вместо неё теперь будет несколько более продвинутая система.
- Добавлена UISystem в данный момент в неё входят:
UISimpleButton - простая кнопка, способная работать с спрайтом или спрайт-банком.
UIColisionChecker - класс для отслеживания положения и кликов курсора по отношению к объектам (спрайтам или спрайт-банкам).
- Добавлена DataNodeSystem. Она предназначена для построения иерархических описаний объектов движка, не зависимых от библиотек ввода-вывода информации. Теперь описание объекта движка, например того же спрайта, строится при помощи нового класса - DataNode, далее если нужно произвести запись в xml, делается декодер, который формирует из структуры DataNode xml код. Чтение и декодирование xml происходит так же, их файла читается xml и строится структура DataNode, которая уже будет прочитана и по её описаниям будут созданы спрайты сцены, событийные действия или та или иная логика.
В данный момент в DataNodeSystem входят такие классы:
DataNode - класс для построения иерархических описаний
DNEngineDataConverter - конвертер из/в DataNode и типы движка.
В будущем будут добавлены классы, аналогичные старой TinyXmlToolsSystem: DNSprite, DNSpriteBank, DNText и т.д.
Ссылка
13 фев. 2011
Обновление от 02.01.2011
Прежде всего, всех с Новым Годом :)
После длительного перерыва собрана новая версия движка.
По сути - набор разнообразных доработок и изменений, накопившихся за время работы.
Из нового - в состав движка вошла "новая" библиотека - K5EngineExtensions, разнообразный полезный функционал, который уже опробован в работе, стабилен и достаточно часто используется.
В K5EngineExtensions входят:
1. ActionSystem - набор действий и событийных действий:
Доступные действия:
- ActionActionController
- ActionChangeGraphicObjectListView
- ActionChangeGraphicObjectView
- ActionChangeSpriteAngle
- ActionChangeSpriteColor
- ActionChangeSpritePos
- ActionChangeSpriteTexture
- ActionContainer
- ActionEventActionController
- ActionSortRenderQueue
Доступные событийные действия:
- EventActionContainer
- EventActionEffectTimer
- EventActionQueue
- EventActionSpriteAngleIterator
- EventActionSpriteColorIterator
- EventActionSpritePosIterator
- EventActionSpriteSizeIterator
- EventActionTextColorIterator
- EventActionTextPosIterator
2. ColisionSystem - в данный момент содержит один полезный класс - SpriteAndPoitColisionChecker, который часто используется в построении интерфейса для проверки попадания клика и курсора мыши по спрайту.
3. LibTools - внешняя библиотека вспомогательных классов, которых нет смысла держать в основном движке, в данном случае это FolderWorker, который был исключён из LibTools движка.
4. TinyXmlToolsSystem - библиотека обвёртка над TinyXml. Далее про неё поподробней:
Базовые классы:
- XmlBaseActionDecoder
- XmlBaseDataDecoder
- XmlBaseEventActionDecoder
- XmlBaseLoader
- XmlEngineDataDecoder
Классы:
- XmlSprite
- XmlSpriteBank
- XmlText
Подробно о библиотеке K5EngineExtensions расскажу в отдельной статье, которую постараюсь подготовить в ближайшее время.
Ну и частота дальнейшей публикации новостей и информации о движке зависит от загруженности меня работой :)
Ссылка
2 янв. 2011
Обновление от 27.08.2010
Готово новое обновление движка, изменения в библиотеке, в файлах пользователя и в уроках.
Далее по порядку.
Библиотека движка:
Добавлено новое устройство - TSDLGLDevice.
Добавлены define определения для подключения того или иного устройства, для Windows доступны три типа: USEWINAPIGLDEVICE, USEWINAPIDX8DEVICE, USESDLGLDEVICE, для Linux только один - USESDLGLDEVICE.
Доступна сборка библиотеки под Linux с собранным устройством TSDLGLDevice.
Класс TFolderWorker убран из библиотек движка и перенесён в расширения.
Так же теперь в проектах не надо подключать define _UNICODE.
Уроки:
Код уроков был изменён для компиляции на обоих системах, так же добавлены готовые проекты среды Code::Blocks для Linux системы.
Библиотеки пользователя:
Обновилась DevIL.
Дальше в планах возможный порт на такие системы, как Android, MeeGo, Maemo, постепенная доработка TSDLGLDevice и публикация библиотеки вспомогательных функций. Так же скорее всего в ближайшие две-три недели будет анонсирован наш проект на форуме.
Ссылка
28 авг. 2010
Обновление от 13.08.2010
В этом обновлении:
1. Обновилась библиотека движка, теперь она разделена на сам движок и библиотеки для подключения того или иного устройства.
То есть теперь можно выбирать тип рендера, который будет поддерживаться в приложении: только OpenGL или DirectX8 или оба сразу.
2. Некоторое расширение функционала списков событийных действий, добавлены дополнительные служебные методы.
3. Обновились все уроки с учётом последних изменений в движке, добавлены бинарные сборки уроков.
4. Добавлена новая статья: Система событий движка.
Ссылка
13 авг. 2010
Обновление от 30.07.2010
Добавлена новая статья "Система событий движка" и урок к ней.
Обновлён сам движок, несколько небольших изменений в коде.
Так же сделано одно важное изменение в распространении уроков, теперь все они идут в одном архиве для всех статей. Соответственно новые уроки будут просто добавляться в этот архив.
Далее по плану статья о системе действий движка и работа над кодом.
Ссылка
30 июля 2010
Обновление движка и новая статья
Готова новая статья: "Графическая система движка"
Так же к ней прилагается пачка уроков по одному на каждый раздел, описанный в статье.
Так же обновился движок:
1. В процессе написания статьи некоторый старый код был приведён к "современной" структуре.
2. Добавлены типы указателей для некоторых классов.
3. В списки графических объектов добавлены методы:
- получение объекта по его индивидуальному идентификатору:
TObject* Get(const unsigned long &ObjId)
- группа методов для извлечение объекта из списка:
TObject* Extract(const int &Id) - по позиции в списке
TObject* Extract(const unsigned long &ObjId) - по индивидуальному идентификатору
TObject* Extract(const wstring &ObjName) - по имени
Так же подобные методы добавлены в TSpriteBank
4. В менеджер списков графических объектов добавлены методы для получения графического объекта по его идентификатору:
TObject* Get(const int &List, const unsigned long &Id)
TObject* Get(const wstring &List, const unsigned long &Id)
Планы на ближайшее будущее:
1. Статья, описывающая систему событий движка.
2. Создание roadmap
Критика, конструктивные предложения и идеи приветствуются :)
Ссылка | Комментарии [2]
20 июля 2010