Рубрика «game development» - 54

Приходите на КРИ 2014

В календаре всех российских разработчиков игр красным маркером обведены дни со 2 по 4 октября 2014 года. В это время в Крокус Экспо будет проходить одно их важнейших ежегодных событий в российской игровой индустрии — конференция КРИ 2014. Свою историю КРИ ведёт аж с 2003 года, а поэтому носит гордое звание старейшего в России ежегодного мероприятия для профессионалов игровой индустрии. Здесь для обмена опытом собираются специалисты всевозможных профессий: программисты, дизайнеры, аниматоры, художники, сценаристы и многие другие.

Кстати, начиная с этого года КРИ проходит одновременно с ещё одним событием-локомотивом, выставкой ИгроМир. Это мероприятие предназначено в первую очередь для самих игроков, здесь можно увидеть практически все компьютерные, консольные и мобильные игровые новинки. Большое и шумное шоу. Так что с точки зрения профессионалов игровой индустрии совместное проведение КРИ и ИгроМира очень удобно, можно и себя показать, и людей посмотреть, и опытом поделиться.

Конечно же, наш игровой департамент примет участие в этой конференции. Мы подготовили целый десант докладчиков, можно сказать, цвет наших игр. Они не прячут свой богатый профессиональный опыт и горят желанием поделиться им с сообществом разработчиков. Чтобы вам было легче ориентироваться, мы подготовили краткие анонсы для каждого выступления.
Читать полностью »

Алгоритмы поиска путей на JavaScript

Поиск оптимального маршрута юнита к цели на неизвестной карте — одна из самых сложных задач при разработке игры. К счастью, существует некоторое количество алгоритмов, которые решают эту задачу. Есть и отличная библиотека PathFinding.js с поддержкой 11 таких алгоритмов.
Читать полностью »

Визуальные эффекты для Skyforge: теория и практические советы

Художник по эффектам — это алхимик. Его задача: за неимением золота это золото добыть. В любом случае это будет фейк, но от опыта художника зависит, насколько он будет правдоподобным. Художник по эффектам — универсал. Если задача не укладывается в стандартный пайплайн художников, значит эта задача для художника по спецэффектам. Нужно уметь как можно больше и не бояться нестандартных решений, но только если они дадут выгоду. В этой статье я постараюсь подробно рассказать, чем руководствуются художники по эффектам на нашем проекте. Расскажу о некоторых хитростях. Затрону сторону оптимизации арта и расскажу о взаимоотношениях в команде.
Читать полностью »

При разработке игр часто возникает необходимость реализации следования некоторому маршруту. Например, персонажу нужно проложить путь из точки A в точку B. Допустим рассчитали его по какому-нибудь алгоритму поиска пути, идем. И тут оказывается, что из точки C в точку D идет другой юнит и пересекает нам дорогу и надо бы его обойти. Что делать? Постоянно перестраивать путь – накладно, много лишних вычислительных расходов, когда достаточно слегка изменить направление уже во время движения, чтобы избежать столкновения.
Виды изменения направления по ходу движения и есть steering behaviors.
Читать полностью »

Задумали мы с приятелем (и по совместительству одногруппником) написать курсовую работу «Танчики» (самые обычные, 2D). Впрочем, не такие уж обычные, а танки в лабиринте. Вообще, задумывалось все как грандиозный и улучшенный клон флешевой одноименной игрушки.

И не надо фукать, игру за один день написать реально. Ну, может быть, вы не сделаете из нее конфетку, может быть в ней будет куча багов… Но если нужно завтра показать прототип проекта, клаву в руки — и вперед!

Изначально план был примерно таков (пишется все на C#, WindowsForms, графика — GDI+, сервер — WCF):

  1. Разобраться с алгоритмом генерации лабиринта (или, точнее, декомпилировать вышеупомянутую флеху и слямзить код оттуда);
  2. Нарисовать все это дело + один (пока — свой) танк;
  3. Заставить танк двигаться (причем так же, как в оригинальной игре);
  4. Приделать WCF-службу, которая будет раздавать клиентам лабиринт;
  5. Добавить службе второй танк и синхронизацию движений между игроками;
  6. Добавиьт полет снаряда;
  7. Прикрутить базу данных, допилить графику, перевести проект с Windows Forms на WPF.

Как видно, план весьма подробный, но все же недостаточно для того, чтобы сказать, что это четкое руководство к действию. Хотя, жить можно. Забегая вперед скажу, что, все-таки, нельзя. Мы начали не с того…

Времени у нас было предостаточно — три недели, но так уж вышло (ну да, ну да, не надо тут...), что сели делать мы его за 4 дня до сдачи. Почему пост называется «Как написать игру за 1 день»? Потому что фактически мы писали ее один день.
Читать полностью »

Привет!
Ничего не писал со времен своей первой статьи, решил, что пора это исправить.

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

Ниже я даю рецензии на книжки, которые считаю очень полезными в различных разделах computer science, которые используются в геймдеве. Я намеренно опускаю книги по C++ и алгоритмам: мне кажется, эта тема уже настолько изучена и освещена, что больше про нее не стоит рассказывать.

Я старался покрыть максимальное количество разных топиков, особенно тех, что спрашивают на собеседованиях. Я старался воздерживаться от domain-specific литературы: профессионалы и так знают. Все картинки содержат ссылки на амазон.

А какие книжки нравятся вам?
Также в комментах можете писать, на какие темы вам были бы интересны посты.

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

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

Когда-то я написал статью про использование Lua с C++ с помощью Lua C API. В то время, как написать простой враппер для Lua, поддерживающий простые переменные и функции, не составляет особого труда, написать враппер, который будет поддерживать более сложные вещи (функции, классы, исключения, пространства имён), уже затруднительно.
Врапперов для использования Lua и C++ написано довольно много. С многими из них можно ознакомиться здесь.
Я протестировал многие из них, и больше всего мне понравился LuaBridge. В LuaBridge есть многое: удобный интерфейс, exceptions, namespaces и ещё много всего.
Но начнём по порядку, зачем вообще использовать Lua c С++?
Читать полностью »

image

С того момента, как id Software прекратила поддержку Linux и Mac и сделало Launcher для QuakeLive в виде отдельного standalone-приложения, написанного на C# с использованием кроссплатформенного фреймворка(!) для рендеринга веб-страниц в OpenGL, прошло немало времени. Я уже затюнил свой дистр для стабильного-максимального количества fps (у меня все равно слабая видеокарта), но он по-прежнему тормозил. Сейчас я расскажу, что сделал для того, чтобы поиграть в любимую игру в свободное время, в игру, с которой я начинал свое сидение за компьютером в 7 лет. Я не останусь равнодушным к таким плевкам к людям никогда. Под катом расскажу о том, как повысить производительность в игре на Linux и о том, как я сделал свой собственный Launcher.
Читать полностью »

Не так давно компания Epic Games сделала невероятно щедрый подарок всем желающим — движок UE4 с исходным кодом всего за $20/мес, считай даром! Воспользуемся их щедростью и великодушием и попробуем создать что-нибудь не очень сложное, но, по крайней мере, более-менее играбельное — 2D платформер.
Читать полностью »

Опубликован код игры Commander Keen

На Github опубликован исходный код игры Commander Keen, одной из первых видеоигр для персонального компьютера IBM PC/XT с операционной системой MS-DOS. Серия отличалась новаторским использованием графики, в том числе использованием передового формата EGA и первым в мире использованием для сдвига картинки адаптивного обновления тайлов, которое изобрёл Джон Кармак.

Это одна из первых игр id Software и Джона Кармака. Оригинальная версия вышла в декабре 1990 года.
Читать полностью »


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