суббота, 20 марта 2010 г.

Пришествие ODE

Сегодняшний день был довольно продуктивен.

С утра понял, что статичная геометрия меня уже сильно подзае.. поднадоела. Так я решил переписать всю физическую систему движка. Жесть, вот это меня больше всего и парит - чем больше кода, сложнее движок, тем сложнее что-либо исправлять в нём. Поменял строку и получил 50-100 ошибок, а строк таких уйма. Вот и сижу, трачу пол дня только лишь на исправление ошибок : ) Результат, конечно, радует но, всёже, кому нужны такие пляски с бубном? А всё идёт от некачественного планирования работы и структуры программы. Вот только планировать как-то не особо получается : \ Не, не то, чтобы я такой тупой был, просто не имею представлоения о том, что же нужно делать то : D Это же мой первый движок. Вот так шаг за шагом, наступая постоянно на свои же грабли, набираюсь опыта, оттачиваю движок. Так сказать медленно но верно движусь к цели : )

Сегодня, как я уже говорил, переписал физическую систему. Всё построено с учётом максимального удобства испольования, возможности смены физического движка. На данный момент используется ODE (Open Dynamic Engine) в качестве физического движка. Ну он, конечно, не такой навороченный как PhysX но мне его возможностей пока что хватает да и враппера нормального для PhysX-а я не нашёл (одно старьё). Да и впринципе не важно.

Гы, наконец добавил физику ландшафту : ) теперь можно ходить по ландшафту и пинать кубики : D Всё пока что работает чётко.

Осталось сделать нормальное физическое описание для игрока. Ну, чтобы прыгал, бегал и т.д. : )

пятница, 12 марта 2010 г.

GUI re-re-re invent wheel

Сегодня какой-то мегосуровый день о_О Что по жизни что в движке - полный ахтунг.
Сделал генерацибю шрифта в движке. Ну как генерацию.. вообщем как весь процесс выглядит:

1. создаём экземпляр GUIFont - передаём в него имя файла шрифта, который отрендерить, размер шрифта (как в винде) и наборы Unicode диапазонов букв.
2. движок загружает *.ttf (True Type Font), по указанному пути, рендерит все буквы с указанными параметрами в текстуру шрифта, генерирует описание к шрифту

и собсно всё. Шрифт можно применить к любому элементу GUI.

Сделал элемент GUI: Label. В нём реализован рендеринг текста, выравнивание текста по краям, по центру при чём вертикально и горизонтально + базовое форматирование текста.
Вообще весь GUI переписал процентов на 70. Но теперь доволен им ибо всё рисуется быстро и правильно : )

вот несколькими простыми строками накидал простейшее окно:

среда, 10 марта 2010 г.

Progress news

Ура, товарищи.

Вот и закончился очередной этап написания движка : )

Только что (буквально минут 10 назад) доделал редактор ландшафта. Он является частью редактора уровней и способен как редактировать сетку ландшафта - согдавать горы, впадины, выравнивать и сглаживать ландшафт , так и "раскрашивать" его текстурами.

В настоящее время поддерживается 5 текстурных слоёв на ландшафте и в ближайшем будущем увеличение их количества не предвидится ибо нафиг? И так хватает. В том же FarCry2 используются 4 текстуры на весь ландшафт!

Собсно, вот скрин. Просто кистями текстурными поводил по ландшафту и вот что получилось:

*кликните на изображение чтобы посмотреть в боОльшем разрешении"

суббота, 6 марта 2010 г.

WIP terrain editor

Ухх. Сделал редактор ландшафта(в редакторе уровней встроен).

Реализован функционал редактирования сетки ландшафта что уже айс, однако не хватает таки ещё раскрашивания ландшафта но это завтра буду делать.

Скринить то впринципе нечего но тем не менее выложу парочку


вторник, 2 марта 2010 г.

Просто 2 кривых скрина

Вот, просто так выложу пару кривых скринов : D

Тут гавёная текстура звёзд и тестово затекстуренный ландшафт (тоесть там пятнами вякая хрень нанесена и всё : )


понедельник, 1 марта 2010 г.

Ёмаё, уже 1 марта

Ну и летит время! Омг. Ну, главное, что и дела на месте не стоят : )

Какбэ переделал шейдер неба и оно теперь рисуется на скорости 1200 ФПС, шейдер компилится доли секнуды по сравнению с прошлым результатом - компилилось 12-15 секунд и выдавало 40 ФПС : D

Сделал смену времени суток. Теперь в небо всеголишь нужно передать время (хоть реальное хоть игровое) и небо само павильно рассчитается. Также необходимо установить время восхода и захода солнца! Это даёт возможность контроллировать длительность дня/ночи + синхронизировано с игровым временем - PROFIT!

пример:
DayTime time = new DayTime(16,11,35); //16 часов 11 минут 35 секунд - время
SceneGraph->Sky.SetTime(time);
ииии..всё : )

Так, на небо и так много времени убил - займусь ландшафтом : )