Рубрика «Gamedev» - 55

Предисловие

Так получилось, что программированием я стал заниматься совсем недавно — первая книжка по С++ была куплена когда я пошел в 11 класс, в сентябре 2011, а первый работающий «hello_world.exe» скомпилирован только в ноябре. До этого я благополучно потратил 6-7 лет на шутеры, и на экономику, олимпиады по которой обеспечили мне поступление в экономический университет (о котором я уже жалею) и знакомство с группой экономистов, которые параллельно осваивали web-программирование и которые меня подтолкнули изучать программирование.

Осваивать С++ я решил с помощью написания простеньких игрулек, изучая параллельно разные аспекты программирования, которые могли бы понадобиться для их написания.
Первая и вторая были своеобразным клоном игры Pong. Различались между собой только наличием цвета и таймера во второй версии.

Скриншоты

Воксельная графика своими руками — первые шаги

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

Скриншоты

Воксельная графика своими руками — первые шаги
Воксельная графика своими руками — первые шаги

Читать полностью »

Конфигурирование через скрипты вместо XML и JSON на примере realtime multiplayer игры

Shortcuts: github, tiles.js tiles.groovy

Не секрет, что объектов в играх на порядок больше чем их возможных поведений. При прототипировании описания объектов можно составлять прямо в коде на Java, С++ или C#, но там всё довольно быстро запутается. Потом объекты выносят в базу данных, либо в XML или JSON конфиг. Это сильно помогает, ведь после редактирования конфигурации пересобирать код не требуется, и этим могут заниматься не только программисты, но и спецы по предмету (для игр это гейм-дизайнеры и контентщики). Когда разрастается команда либо количество объектов переходит какую-то черту, программисты пишут удобный редактор, который позволяет визуально править этот JSON-конфиг. В результате на выходе получается какой-то трудно поддерживаемый монстр.

Если вы не собираетесь нанимать множество людей которые вообще не умеют кодить, то можно попробовать пойти другим путём: описывать метаданные с помощью Domain Specific Language.
Читать полностью »

Приглашаю всех желающих присоединиться к open-source проекту по разработке кроссплатформенного 2D сетевого шутера.
Основная идея — сделать многопользовательский сетевой шутер с техникой и различными режимами игры по аналогии с серией игр battlefield.
Используемые технологии: C++11, Qt5, Box2d, protobuf, github. Так же ведётся работа над клиентом на Java.

Базовая функциональность (клиент/сервер, карты, оружие, техника) уже частично реализована. Основные задачи над которыми предлагается работать:

  • Различные виды оружия
  • Различные виды техники
  • Улучшение карт (разные типы поверхностей, автогенерация текстур, etc.)
  • Игровое меню
  • Списки игровых серверов
  • Автообновление
  • Редактор карт
  • Портирование клиента под мобильные устройства

Читать полностью »

DOOM 3 BFG — Обзор исходного кода: введение (часть 1 из 4)26 ноября 2012 ID Software выпустила исходный код Doom 3 BFG edition (всего через месяц после появления игры на прилавках магазинов). Движок IDTech 4, которому уже почти 10 лет был обновлен до IDTech 5 (Rage — первая игра на этом движке), и с его исходным кодом ознакомиться было очень интересно.

Хочу заметить, что idTech5 многое перенял у idTech4:

  • Систему управления потоками (Threading system)
  • Звуковую систему (Sound system.)
  • Систему управления ресурсами(Resources system.)

Читать полностью »

Совсем недавно я опубликовал пост о моем небольшом проекте tengine. Для меня довольно неожиданным было то, что многие проявили интерес к его идеям и наработкам. А раз есть интерес – это повод продолжить публикации.

Предлагаемая вам статься является туториалом по созданию небольшой игры. Необходимость в нем очевидна: идеологически, создать что-либо в tengine без редактора уровней (MapEditor3, далее me3) фактически невозможно. Именно с помощью него ресурсы привязываются к объектам игры, генерируются файлы с константами-идентификаторами, создается сцена, звуковые схемы и т.д. И самое главное – me3 генерирует готовые бинарные файлы уровней, необходимые для работы логики tengine: файл с общими данными (o-файл), файлы с данными по каждому уровню (l[0..n]-файлы) и файлы с текстовыми тынными (t[0..n]-файлы)

Читать полностью »

День добрый, уважаемые читатели.
Писать игры хотел ещё с того момента, когда только начал программировать. И вот, решил всё-таки попробовать себя в написании игр на Android.
Игру осенью сделал ещё и выложил в маркет. Правда её удалили, так как права на Bomberman'а у Konami. Но статья, естественно, не об этом.

Параллельно с разработкой игры писал туториалы по LibGDX, и постоянно люди просили выложить исходники. Решил всё-таки поделиться ими и немного рассказать про разработку. Может кому-нибудь и поможет в изучении LibGDX. Ссылка на репозитарий с исходниками внизу статьи.
Как я писал Bomberman’а на Android
Читать полностью »

Приветствую всех, кому стало интересно узнать о моем небольшом проекте, которым занимаюсь в свободное от работы время, о своем долгоиграющем проекте под названием «tengine».

Какова же цель этого поста? Ответ простой — я ищу однодумцев. Я верю в то, что есть еще много людей, которым нравится славный и добрый олдскул. В этом и вся миссия — писать удовольствия ради что-то маленькое, но вполне функциональное, платформу для «приставочных» игрушек в стиле 8/16 бит.

Главная особенность, отличающая tengine от сотен подобных поделок — не совсем стандартная идеология:

  • архитектура проекта делает упор на минимизацию использования динамической памяти. Если память и выделяется, она выделяется исключительно на инициализации подсистем
  • использовать динамическую память нужно так, как будто не существует операционной системы, постоянно помнить о фрагментации. Удаление памяти происходит в строго обратном порядке создания (за этом следит простой механизм контроля удаляемых указателей)
  • использование сторонних библиотек сведено к минимуму и должно быть аргументировано, зачастую это потенциальный источник фрагментации памяти
  • игровая сцена представляет собою готовую для использования память, сгенерированная редактором уровней
  • работа с объектами сцены игры ведется исключительно через идентификаторы, динамически создать объект невозможно
  • использование fixed point вместо float
  • мультиплатформенность
  • официальный язык проекта — си

Читать полностью »

Away Builder. Или врагу не сдается наш гордый варяг

О смерти flash технологии было сломано много копий.
Кому-то флеш не нравится принципиально, кому-то нравится.
Но факт остается фактом, это самая распространенная технология в своем классе.
Не смотря на активное развитие конкурентов на рынке игропроизводства, вроде Unity3D, флеш еще достаточно актуален для браузерных игр. И даже пытается быть актуальным на мобилках.
Adobe продолжает развитие своей технологии и не так давно в совместно с Away3D был выпущен набор для разработчиков игр
Adobe Gaming SDK. В который входит 3D движок, 2D движок, билиотека GUI и прочие радости в виде продвинутого профайлера.

И вот 8 мая вышла новинка, о которой так много говорили большевики мечтали разработчики игр на флеше в 3D.

Читать полностью »

Друзья, некоторое время назад у меня получилось выбить набор бюджетов и внимания к русскоязычному камьюнити. Наглядные результаты —

А будет всего больше — мероприятия в Москве, Минске, Петербурге, Калининграде, активно работаем над курсами по Unity с частными школами и вузами…
Читать полностью »

В игровой индустрии, открытый исходный код приводит к большому количеству экспериментов от разработчиков. Именно так считают создатели turbulenz, поэтому их исходные коды уже можно найти на github:

  • Движок рендеринга turbulenz_engine;
  • Набор инструментов для генерации кода и оптимизации turbulenz_tools;
  • Локальный сервер на python для разработки проектов, использующих turbulenz turbulenz_local;

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js