Никогда не задумывался о том, как много в игре значит фон.
- Category Archives MagicEngine
-
-
Новый билд space_arcade:377
Вчера я наконец выпустил новую версию space_arcade.
Отличий в этой версии не так много как хотелосьбы:
Зафикшен баг с вводом vV и Ww. Теперь игра не падает при вводе чеголибо в таблицу рекордов.
Заменен арт. Наконецто я получил новый арт (пару недель назат) и вставил его в игру.Разумеется на этом работы не завершены, есть еще много вещей, которые необходимо реализовать, чтобы это стало полноценной игрой.
-
Демо версия
Я всетаки решил выпустить эту демо-версию не дожидаясь фикса багов под виндой. Эта версия содержит полный игровой цикл: старт-игра-ввод рекордов-старт. В дальнейшем в игре будет добавлено:
- Бустеры для игроков: оружие и броня
- Вражеские корабли научатся стрелять и двигаться в разные стороны
- Уровень сложности будет постепенно повышаться со временем
Собственно это наверно полный список фич которые будут добавлены в игру. После этих фич разработка будет остановлена. А вот собственно говоря и демки:
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 то скорее всего не запустится.
-
Препарируем движок MagicEngine часть 2
Подсистема вывода графики движка MagicEngine.
Изначально вывод графики в движке был ориентирован на строго одну платформу и несоклько раз полностью переписывался. Со временем возник интерес сделать систему с подключаемыми модулями(драйверами) вывода видео — что и используется в данный момент.
Исторически использовалось несколько подходов к отрисовке 2д графики в движке:
1. Прямой доступ к видео памяти/экранному буферу: данный метод использовался во времена DOS(защищенный режим), Windows98 (DirectDraw) огромным минусом такого подхода является необходимость написания довольно большого объема кода для управления выводом графики и достаточно низкая производительность. Все данные хранятся в оперативной памяти и посылаются на отрисовку по готовности — а значит для разрешения 1024*768 отсылается 3 мегабайта данных на каждый кадр, что весьма сильно ограничивает скорость. К томуже все операции со спрайтами производятся на ЦПУ, который выполняет и другие задачи.
2. С переходом в ОС Linux данный метод был ликвидирован и ему на смену пришел кросплатформенный SDL в котором я также столкнулся с проблемами скорости, да и сама библиотека оказалась слишком монструозной.
В данный момент я остановился на модульной системе вывода графики и в качестве основного драйвера — использование OpenGL для отрисовки спрайтов. Конечно спрайты отрисованные таким образом могут получить некоторые дефекты — но с другой стороны можно получить гораздо большую скорость.
-
Препарируем движок MagicEngine
Чтоже такое MagicEngine который я использую в своей разработке.
Некоторое время назад, лет 5-6 когда я только начинал программировать я начал писать этот движок. Он эволюционировал по следующей схеме: DOS(защищенный режим)->WinAPI->SDL->GLUT->самопальная система для создания окон(OpenGL)->Кросплатформенный с использованием glfw и OpenGL . Изначально движок разрабатывался как 2Д что сохранено по сей день, его цель — легкое создание 2Д игр.