Как создаются большие игры на c++ или c#?
Собираешь команду. Желательно где-нибудь в Монреале; Делаешь красивый промо-ролик и промо-текст, описывающий все ваши крутые идеи;Целый год в твиттере и фейсбуке публикуешь посты о том, каких успехов добилась ваша компания в поддержании расового и полового разнообразия команды, как вы уважаете геев и женщин, какие клёвые вегетарианские обеды в вашей столовке и непринуждённая атмосфера в офисе и т.п.;Выпускаешь Mass Effect: Andromeda;Полгода клепаешь заплатки, чтобы игра не заваливалась на каждом чихе, параллельно добавляя новые гомосексуальные романтические линии в сюжет;Оправдываешься в прессе, рассказывая о недостатках движка и финансирования;Разгоняешь команду;PROFIT
1. Разработка крупных игровых проектов имеет как минимум те же особенности, что и разработка крупных приложений вообще. Раз вопрос о движках, не будем рассматривать прочие аспекты, такие как построение игровой модели, графический дизайн игры, написание сюжета и пр. Разработка движка, как большого проекта, требует:
- умение поставить начальные технические условия, которые будут заложены в архитектуру проекта (чтобы потом не было очень больно это всё менять);
- умение разбить движок на крупные подсистемы и выстроить между ними необходимые интерфейсы, чтобы каждую из подсистем отдать на разработку в отдельную команду;
- умение получить MVP в разумные сроки и строить дальнейшую разработку итеративно.
2. Как большой проект, связанный именно с компьютерной графикой, проект движка предполагает:
- что немалая часть кода будет писаться с учётом архитектурных особенностей аппаратуры - например, если ваш движок будет пытаться передавать слишком много данных по шине на видеокарту (постоянно гонять геометрию/текстуры), то скорость шины быстро станет узким местом и никакое новейшее оборудование вам не поможет.
- что графический код рано или поздно может потребовать мелких оптимизаций (вплоть до переписывания супернагруженных мест на ассемблере под каждую поддерживаемую аппаратную платформу);
- что графический код сегодня требует серьезного понимая физики света и цветовосприятия.
Для всех тех, кто понимает как реализовать вышеописанное, C++ и C# - лишь инструменты и жизненная необходимость, чтобы получить всё это, поэтому про знание языков даже говорить не буду, это подразумевается.