Как Вы начинаете при попытке понять код 3D игрового механизма (как идентификационная Технология 3)? [закрытый]

Старомодный путь:

for ix in range(len(ints)):
    print ints[ix]

понимание Списка:

[ (ix, ints[ix]) for ix in range(len(ints))]

>>> ints
[1, 2, 3, 4, 5]
>>> for ix in range(len(ints)): print ints[ix]
... 
1
2
3
4
5
>>> [ (ix, ints[ix]) for ix in range(len(ints))]
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
>>> lc = [ (ix, ints[ix]) for ix in range(len(ints))]
>>> for tup in lc:
...     print tup
... 
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
>>> 
9
задан Tom Kidd 24 August 2009 в 21:01
поделиться

6 ответов

Попробуйте выполнить простейший трехмерный "Hello World" программа, которая использует самое основное подмножество движка. Это, вероятно, научит вас множеству.

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

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

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

12
ответ дан 4 December 2019 в 10:05
поделиться

Написание мода было бы хорошей отправной точкой.

Начало на обозначенной территории: ванильная игра. Измените материал. Посмотрите на код отскока гранаты. Сделайте так, чтобы он подпрыгивал дальше. Добавьте предсказание на стороне клиента (которое уже есть у непрыгающих снарядов)

Добавьте оружие телепортации. Он расскажет вам больше об обнаружении столкновений, чем вы хотели бы знать.

Есть несколько ключевых функций, которые обрабатывают большую часть игры: экспорт движка, вызов trap_ *. Это может очень помочь узнать, что именно моды делают с ними, прежде чем открывать код движка и смотреть на их реализацию.

Например, он может рассказать вам больше о движке, чтобы знать, что вам нужно вызывать LinkEntity каждые когда объект перемещается или иным образом его положение в дереве BSP игры не обновляется, и последующие вызовы движка могут его игнорировать,

4
ответ дан 4 December 2019 в 10:05
поделиться

На случай, если вы ищете другие движки для 3D-игр и, возможно, захотите сравнить их друг с другом, см. Dim3:

http://code.google.com/p / dim3 /

1
ответ дан 4 December 2019 в 10:05
поделиться

Звучит как шутка, но: найдите функцию main () . Это четко определенная начальная точка выполнения программы, и вы должны иметь возможность отследить все оттуда.

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

Вы также должны быть в состоянии выяснить путь в основной цикл игры, и понять, что необходимо, прежде чем цикл получит управление.

3
ответ дан 4 December 2019 в 10:05
поделиться

Андре Ламот научил меня всему, что я знаю игровое программирование. Прочитав эти две книги, вы узнаете почти все, что нужно знать о 3D-движках.

  1. Уловки гуру программирования игр для Windows
  2. Уловки гуру программирования 3D-игр - продвинутая 3D-графика и растеризация

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

Также Возможно, вы захотите посмотреть NeHe Gamedev Tutorials .

1
ответ дан 4 December 2019 в 10:05
поделиться

Я никогда не был большим поклонником чтения большого готового продукта. И особенно кодовой базы Quake. Есть хорошая вещь, которую вы можете узнать у него наверняка, но это не должно быть вашей отправной точкой. Вам нужно сначала узнать новые концепции, используемые в игровой программировании.

Я предлагаю поставить C ++ немного на удержание (если вы хотите сделать игру, вам действительно нужно вернуться к ней в какой-то момент), но на данный момент установите XNA. Это как отличные рамки, что и все .NET. Там есть много учебных пособий по поводу игры XNA.

0
ответ дан 4 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

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