• Category Archives MagicEngine
  • Новый билд space_arcade:377

    Posted on by admin

    Вчера я наконец выпустил новую версию space_arcade.
    Отличий в этой версии не так много как хотелосьбы:
    Зафикшен баг с вводом vV и Ww. Теперь игра не падает при вводе чеголибо в таблицу рекордов.
    Заменен арт. Наконецто я получил новый арт (пару недель назат) и вставил его в игру.

    Разумеется на этом работы не завершены, есть еще много вещей, которые необходимо реализовать, чтобы это стало полноценной игрой.


  • Демо версия

    Posted on by admin

    Я всетаки решил выпустить эту демо-версию не дожидаясь фикса багов под виндой. Эта версия содержит полный игровой цикл: старт-игра-ввод рекордов-старт. В дальнейшем в игре будет добавлено:

    • Бустеры для игроков: оружие и броня
    • Вражеские корабли научатся стрелять и двигаться в разные стороны
    • Уровень сложности будет постепенно повышаться со временем

    Собственно это наверно полный список фич которые будут добавлены в игру. После этих фич разработка будет остановлена. А вот собственно говоря и демки:

    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.: Просьба сообщать о всех багах.


  • Знаменательный день

    Posted on by admin

    Сегодня знаменательный день, сегодня в репозитории появился долгожданный мною тег: so_arcade_demo_1. Реализовано много всего, уже даже можно поиграть и сохранить свои рекорды.

    На выходных буду собирать и выкладывать бинарные сборки для ununtu x86_64, rhel5, win32 и возможно debian unstable и FC последних версий.


  • Реализация системы сигнал-слот

    Posted on by admin

    MagicEngine использует сигналы для реализации событий.

    Сигнал генерируется в ответ на некоторое событие, он несет в себе информацию об этом событии. Слот  это функция, которая вызывается в ответ на определнный сигнал.

    Для сигналов и слотов в движке MagicEngine были выставлены следующие требования:

    1. Сигналы ничего не знают о слотах в которые они отправляются
    2. Сигналы несут в себе некоторые обобщенные данные
    3. Слот знает какие данные он хочет получить от сигнала
    4. Слот незнает кто отправил сигнал
    5. Допускаются множественные соединения (сигнал может быть присоединен к разным слотам, и к 1 слоту может быть прикреплено несколько сигналов)
    6. Сигналы и слоты имеют имена.

    Continue reading  Post ID 106


  • Почти демо

    Posted on by admin

    Итак разработка аркадки и движка продолжается! Буквально вчера было реализовано то, до чего у меня уже черти сколько времени не доходили руки — практически реализован основной процесс игры — тоесть убиение монстров и набор очков за это. В ближайшее время выложу это дело для тестовых целей.
    Для реализации всей этой функциональности пришлось немного пересмотреть принцип работы сигналов. Если раньше сигналы всегда посылались всем слотам, которые привязаны к сигналу, то здесь это приводило к тому, что пуля могла продолжить лететь и сбить еще несколько кораблей противника. Пришлось делать возможность слоту самому сообщить менеджеру сигнала требуется ли дальнейшая обработка или нет.


  • Всех с Новым Годом!

    Posted on by admin

    Всех с новым годом.
    Как обычно небольшое поздравление:
    http://mod.blogsite.org/wp-upload/nyp2009.exe
    размер 10Мб.
    К сожалению сделать то что хотел не удалось посему вот так вот получилось )
    P.S.: Протестировано на GF260/GF8800 GTS.
    P.P.S.: Если у вас встроенное видео от компании Intel то скорее всего не запустится.


  • Препарируем движок MagicEngine часть 2

    Posted on by admin

    Подсистема вывода графики движка MagicEngine.
    Изначально вывод графики в движке был ориентирован на строго одну платформу и несоклько раз полностью переписывался. Со временем возник интерес сделать систему с подключаемыми модулями(драйверами) вывода видео — что и используется в данный момент.
    Исторически использовалось несколько подходов к отрисовке 2д графики в движке:
    1. Прямой доступ к видео памяти/экранному буферу: данный метод использовался во времена DOS(защищенный режим), Windows98 (DirectDraw) огромным минусом такого подхода является необходимость написания довольно большого объема кода для управления выводом графики и  достаточно низкая производительность. Все данные хранятся в оперативной памяти и посылаются на отрисовку по готовности — а значит для разрешения 1024*768 отсылается 3 мегабайта данных на каждый кадр, что весьма сильно ограничивает скорость. К томуже все операции со спрайтами производятся на ЦПУ, который выполняет и другие задачи.
    2. С переходом в ОС Linux данный метод был ликвидирован и ему на смену пришел кросплатформенный SDL в котором я также столкнулся с проблемами скорости, да и сама библиотека оказалась слишком монструозной.
    В данный момент я остановился на модульной системе вывода графики и в качестве основного драйвера — использование OpenGL для отрисовки спрайтов. Конечно спрайты отрисованные таким образом могут получить некоторые дефекты — но с другой стороны можно получить гораздо большую скорость.

    Continue reading  Post ID 106


  • Препарируем движок MagicEngine

    Posted on by admin

    Чтоже такое MagicEngine который я использую в своей разработке.

    Некоторое время назад, лет 5-6 когда я только начинал программировать я начал писать этот движок. Он эволюционировал по следующей схеме: DOS(защищенный режим)->WinAPI->SDL->GLUT->самопальная система для создания окон(OpenGL)->Кросплатформенный с использованием glfw и OpenGL . Изначально движок разрабатывался как 2Д что сохранено по сей день, его цель — легкое создание 2Д игр.