@DartNyan

На чем сейчас разрабатывают игры?

Привет.
Я вообще веб-девелопер (Ruby on Rails), да еще и начинающий, но вспомнил свои детские мечты и подумал, что как минимум как хоби стоит увлечься геймдевом.
Введите в курс дела хотя бы на уровне осведомленности.
На чем в основном пишут?
Читал, что плюса, C#, Lua.
Можно статистику? Почему скриптовой язык идет вместе с компилируемыми? Разные задачи?
Какие ресурсы (книги, статьи, скринкасты) посоветуете для вхождения в этот мир?
  • Вопрос задан
  • 669 просмотров
Пригласить эксперта
Ответы на вопрос 5
Rou1997
@Rou1997
На чем в основном пишут?

В основном игры пишут на игровых "движках" или на OpenGL/DirectX, язык - дело второстепенное.

Читал, что плюса, C#, Lua.

Это верно.

Почему скриптовой язык идет вместе с компилируемыми? Разные задачи?

Разные, Lua это скорее для "модов".
Ответ написан
Комментировать
MrNexeon
@MrNexeon
Игровой движок (управление ресурсами, графика, анимация, физика, столкновения, звук, сеть, ввод с клавиатуры и мыши, и т.д.) пишут на C++

Игровую логику (поведение объектов, искусственный интеллект, игровой процесс) пишут в виде скриптов на интерпретируемых языках, например Lua или Python.

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

Рекомендую прочитать книгу Game Development Essentials: An Introduction - в ней рассказано что да как в геймдеве, обо всем по немногу.
Ответ написан
Комментировать
@Mercury13
Программист на «си с крестами» и не только
Почему скриптовой язык идет вместе с компилируемыми? Разные задачи?

1. Для упрощения внутренней логики игры. Например, программа — монолитное однопоточное приложение, но каждый объект ведёт себя как сопрограмма. Качающийся маятник можно реализовать на состоянии и на сопрограммах…
// На состоянии
функ Маятник.ПровестиТакт
  ++кадр;
  если (кадр >= 10)
    кадр = 0;
  УстановитьКадр(кадр);

// На сопрограммах
функ Маятник.Жизнь
  для i=[0..10)
    УстановитьКадр(i)
    НовыйТакт


2. Чтобы геймдизайнеры и прочие непрофессионалы (в программировании, естественно, непрофессионалы) могли свободно корректировать код.

3. Часто игру пишут на готовом движке. А в нём зашит какой-то скриптовый язык — это самый простой способ написать игровой движок, законченный и пригодный к применению программистом куда меньшей квалификации. Так, например, устроен Wintermute Engine (старый, но хорошо известный движок для квестов).

Читал, что плюса, C#, Lua.

• C++: язык с давними традициями в геймдеве. Выразительный код (при достаточном профессионализме) плюс контроль за деструкторами — так что не будет просадок FPS из-за мусорщика. Выбор №1, если нужно написать игру с нуля.
• C#: очень простой в изучении язык общего назначения. Библиотеки для Windows, скорее всего, у пользователя есть изначально. Куча движков, библиотек и фреймворков. Даром, что мусорный — если игра не слишком сложная, просадок FPS не будет (хотя последнего босса Hyper Light Drifter я долго громил — в критические моменты игра тормозила).
• Lua: наиболее известный из скриптовых языков, которые можно реально присоединять к Си-программе, и скрипт будет вызывать функции, написанные на обычном компилируемом языке.
Ответ написан
Комментировать
@GreatRash
Игры сейчас пишут на чём угодно, начиная с Си и заканчивая PHP. Всё зависит от платформы.
Ответ написан
Комментировать
@IRomk
Начинающий игродел
Технологий разработки достаточно много. И каждые имеют разный порог вхождения. Прежде всего вам нужно определиться с тем, что вы собственно хотите - делать игру, или писать движок и все сопутствующие компоненты, которые были перечислены товарищами выше. Если вам ближе первый вариант, и вы нацелены на результат - Вы хотите делать игру, то смело берите готовое решение и забудьте о плюсах, лишь потратите время. Таковым является Unity в котором живет C#, Если вам по душе Lua, то идеальным вариантом будет Love2D, или Cocos2D. Повторюсь это уже готовые решения и с их помощью вы сможете реализовать ваши идеи в геймдеве намного быстрее. Не углубляясь в какие-то низкоуровневые вещи( С чем бы вам пришлось столкнуться, если бы писали игру с нуля, да и на плюсах), концентрируясь на самом главном - результате. Насчет материалов по изучению.1)Unity - Официальный сайт с документацией и туториалами. 2)YouTube(Очень много примеров создания нетривиальных вещей). 3)Уроки от ITVDN(Самчук Роман) 4)Книга "Unity в действии". Если вас интересует материал по языку в Unity, то 1)Шилдт/ Троелсен C# 2)Рихтер C# - этих двух книг будет достаточно, для понимания платформы и умения программировать на C#. Что касается Love2D и Lua тут все проще - Весь материал и уроки находятся на официальном сайте и сейчас активно переводятся на русский язык. А вот материал по Lua - Книга автора языка "Программирование на языке Lua" Роберто Иерузалимски.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы