Как следствие можно седелать вывод что если у вас есть текстура, которая не теряет в качестве при использовании DXT сжатия, либо теряет его в приемлемых масштабах — то можно получить хороший прирост производительности, использовав DXT сжатие.
-
-
Прогресс в работах
Работы над so_arcade продолжаются а также начаты работы над новым проектом.
-
Демо версия
Я всетаки решил выпустить эту демо-версию не дожидаясь фикса багов под виндой. Эта версия содержит полный игровой цикл: старт-игра-ввод рекордов-старт. В дальнейшем в игре будет добавлено:
- Бустеры для игроков: оружие и броня
- Вражеские корабли научатся стрелять и двигаться в разные стороны
- Уровень сложности будет постепенно повышаться со временем
Собственно это наверно полный список фич которые будут добавлены в игру. После этих фич разработка будет остановлена. А вот собственно говоря и демки:
Ubuntu 8.10 x86_64 (1.6 Мб)
Windows (5.1 Мб)
Для использования пакета для ubuntu необходимо выполнить 2 команды:
apt-get install libglfw2
apt-get install libglew1.5Известные баги: при вводе vV или oO в виндовой версии в окне рекордов игра вылетает.
P.S.: Просьба сообщать о всех багах.
-
Знаменательный день
Сегодня знаменательный день, сегодня в репозитории появился долгожданный мною тег: so_arcade_demo_1. Реализовано много всего, уже даже можно поиграть и сохранить свои рекорды.
На выходных буду собирать и выкладывать бинарные сборки для ununtu x86_64, rhel5, win32 и возможно debian unstable и FC последних версий.
-
Реализация системы сигнал-слот
MagicEngine использует сигналы для реализации событий.
Сигнал генерируется в ответ на некоторое событие, он несет в себе информацию об этом событии. Слот это функция, которая вызывается в ответ на определнный сигнал.
Для сигналов и слотов в движке MagicEngine были выставлены следующие требования:
- Сигналы ничего не знают о слотах в которые они отправляются
- Сигналы несут в себе некоторые обобщенные данные
- Слот знает какие данные он хочет получить от сигнала
- Слот незнает кто отправил сигнал
- Допускаются множественные соединения (сигнал может быть присоединен к разным слотам, и к 1 слоту может быть прикреплено несколько сигналов)
- Сигналы и слоты имеют имена.
-
Второй скриншот.
Вашему вниманию представляется второй скриншот)
Скриншот сделан в виртуальной машине в которой был запущен RHEL5.
-
Почти демо
Итак разработка аркадки и движка продолжается! Буквально вчера было реализовано то, до чего у меня уже черти сколько времени не доходили руки — практически реализован основной процесс игры — тоесть убиение монстров и набор очков за это. В ближайшее время выложу это дело для тестовых целей.
Для реализации всей этой функциональности пришлось немного пересмотреть принцип работы сигналов. Если раньше сигналы всегда посылались всем слотам, которые привязаны к сигналу, то здесь это приводило к тому, что пуля могла продолжить лететь и сбить еще несколько кораблей противника. Пришлось делать возможность слоту самому сообщить менеджеру сигнала требуется ли дальнейшая обработка или нет.
-
Всех с Новым Годом!
Всех с новым годом.
Как обычно небольшое поздравление:
http://mod.blogsite.org/wp-upload/nyp2009.exe
размер 10Мб.
К сожалению сделать то что хотел не удалось посему вот так вот получилось )
P.S.: Протестировано на GF260/GF8800 GTS.
P.P.S.: Если у вас встроенное видео от компании Intel то скорее всего не запустится.
-
Переезд на VPS
Вот и свершился переезд блога на выделенный виртуальный сервер. Думаю теперь будет горздо меньше проблем с даун таймом, да и работать получше должно все.
Одновременно с эти начал работать над NYP2009, если всё удастся так, как задумано, то это будет шаг вперед, а вот если неудастся… ну за неделю сделать экстренный вариант я конечно успею)
-
Препарируем движок MagicEngine часть 2
Подсистема вывода графики движка MagicEngine.
Изначально вывод графики в движке был ориентирован на строго одну платформу и несоклько раз полностью переписывался. Со временем возник интерес сделать систему с подключаемыми модулями(драйверами) вывода видео — что и используется в данный момент.
Исторически использовалось несколько подходов к отрисовке 2д графики в движке:
1. Прямой доступ к видео памяти/экранному буферу: данный метод использовался во времена DOS(защищенный режим), Windows98 (DirectDraw) огромным минусом такого подхода является необходимость написания довольно большого объема кода для управления выводом графики и достаточно низкая производительность. Все данные хранятся в оперативной памяти и посылаются на отрисовку по готовности — а значит для разрешения 1024*768 отсылается 3 мегабайта данных на каждый кадр, что весьма сильно ограничивает скорость. К томуже все операции со спрайтами производятся на ЦПУ, который выполняет и другие задачи.
2. С переходом в ОС Linux данный метод был ликвидирован и ему на смену пришел кросплатформенный SDL в котором я также столкнулся с проблемами скорости, да и сама библиотека оказалась слишком монструозной.
В данный момент я остановился на модульной системе вывода графики и в качестве основного драйвера — использование OpenGL для отрисовки спрайтов. Конечно спрайты отрисованные таким образом могут получить некоторые дефекты — но с другой стороны можно получить гораздо большую скорость.