• Объектно-ориентированный интерфейс для SQLite на C++

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

    Сама библиотека написана на Си, поэтому для её использования неплохо иметь под рукой более-менее удобную объектно-ориентированную обёртку на C++.

    Я привожу решение, которое использую для своих проектов. Оно охватывает только базовый спектр задач, но может быть легко расширено.

    [Читать далее…]

  • Фабрика для расстановки объектов игровой сцены

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

    На первоначальном этапе разработке вполне нормально увидеть в игре такой код:

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

    Дело ясно: нам нужен менеджер уровней, который будет считывать данные об объектах из внешнего хранилища и создавать их на уровне.

    Звучит просто, но на деле есть одна неприятная проблема: для того чтобы была возможность создать объект по идентификатору, менеджер уровней должен знать конструкторы всех создаваемых классов и иметь возможность выбирать из них нужные.

    [Читать далее…]

  • UScript & JavaDoc

    Есть у Java одна полезная утилита: JavaDoc. Она позволяет создавать документацию основываясь на комментариях в коде.

    Зачем это нужно? Потому что всем нам лень писать документацию и поддерживать её по мере изменения кода. Используя JavaDoc можно просто писать хорошие и подробные комментарии в начале каждого метода и объявления класса. Запускаем утилиту и получаем удобную документацию.

    [Читать далее…]

  • Поиск и обработка ошибок в C++ и UScript

    При работе над большими проектами, становится сложно отследить место возникновения той или иной ошибки. Особенно, если эта ошибка не приводит к созданию исключения, а просто негативно влияет на конечный результат.

    Можно ждать пока ошибка возникнет и производить отладку шаг за шагом чтобы найти её, а можно предусмотреть возникновение ошибки заранее и быть наготове.

    [Читать далее…]

  • Дом случайного размера в UDK

    Небоскрёб

    Статья будет полезна тем, кто работает с процедурной генерацией. Тем, кто создаёт окружение исключительно в редакторе, данная статья особенно не поможет.

    С помощью таких зданий можно создать неплохой городской пейзаж.

    UPD: Статья актуальна для пользователей UDK, в UE4 чаще используются другие способы для работы с процедурным контентом.

    [Читать далее…]