Если я хотел сделать Игру Pac-человека?

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

Помещать его просто: Мой друг колледжа и я решили дать нам действительно сложную задачу далее нашим навыкам в программировании. Через шесть месяцев мы хотим показать нам игру Pac-человека. Pac-человек будет управляться AI как Фантомы и какой бы ни Pac-человек живет самое длинное после ряда побед попыток.

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

Таким образом, мой вопрос - это: Как я должен начать готовиться? Я уже запустил векторную математику, матрицы, весь тот забавный материал. Моей желаемой платформой был бы DirectX 9.0c; это желательно? Следует иметь в виду, что это не предпочтение только этого проекта, но я хочу иметь некоторое будущее в графической разработке, таким образом, я хочу выбрать платформу, которая является будущей безопасной.

Что касается разработки игр в целом, что я должен учесть? Я никогда не делал реальной игры прежде, таким образом, любой и все советуют к разработке середины проектов масштаба (если это было бы серединой проекта масштаба), значительно ценится.

Мои основные проблемы являются ловушками и демотиваторами.

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

8
задан 3 revs, 3 users 96% 26 March 2012 в 10:53
поделиться

6 ответов

Играйте в pacman! Это первая задача вашего проекта!

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

Учитывая, что вы не пробовали заниматься подобными вещами раньше, вот несколько вещей, которые я бы порекомендовал.

Начните с чего-то, кроме DirectX (и, предположительно, C++)

DirectX и C++ откроют вам много низкоуровневых вещей, которые вы сможете изучить позже. Держите вещи попроще и, возможно, попробуйте XNA и C#, которые достаточно близки, чтобы вы могли портировать их позже, но позволят вам пропустить многие вещи, такие как управление памятью и указатели.

Начните с 2D, а не с 3D

Оригинальный Pacman - 2D, так что векторная математика вам пока не понадобится.

Итак, что же остается?

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

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

Я бы пошел по этому пути (заказал, чтобы было весело и интересно)

  1. Сделайте экран, отображающий экран - это очень наглядно
  2. Сделайте Pacman, реагирующий на ввод пользователя
  3. Сделайте Pacman, ограниченный стенами
  4. Сделайте призрак, реагирующий на вторичный ввод пользователя - вы можете преследовать друг друга
  5. Разберитесь с обнаружением столкновений
  6. Сделайте рендеринг точек и энергетических таблеток, чтобы вы могли забивать и есть призраков
  7. Сделайте рендеринг еще нескольких призраков и разберитесь с AI
  8. Разработайте код для определения завершения уровня
  9. Сделайте изменение карты и сброс состояния при переходе на новый уровень

Как только вы получите это работающим и запущенным, вы можете решить, хотите ли вы играть с лучшим AI, 3D математикой или перейти на C++.

9
ответ дан 5 December 2019 в 07:10
поделиться

Мне пришлось написать игру pacman на Java для объектно-ориентированного класса. Я обнаружил, что это очень просто, возможно, за исключением определения лучшего способа нанесения стен на карту. После небольшого исследования я наткнулся на это: http://javaboutique.internet.com/PacMan/source.html , который использует битовый сдвиг для определения стен. Это похоже на излишнюю сложность, но я обнаружил, что это довольно элегантно, после того, как немного поигрался с математикой. Помимо этого, pacman - это очень дружественная к массивам концепция, поэтому используйте массив для доски, некоторые базовые спрайты, повозитесь со скоростью и обновлением, отслеживайте игровые данные и бросайте их в цикл. Что касается ИИ с призраками, о них написаны статьи. У каждого призрака есть своя «стратегия». Или вы можете свернуть свои собственные ... вы можете запрограммировать их так, чтобы они были как всегда легкими, направляясь к pacman (или его общему местоположению / квадранту), или настолько сложным (кратчайший путь), как вы хотите.

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

Похоже, неплохая идея для учебного проекта! Две общие вещи, которые я рекомендую для вашего подхода:

  1. работать в итерациях
  2. читать по пути кучу о C ++ и DirectX

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

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

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

Хорошая штука! Я рад, что Pacman мотивирует и вдохновляет вас.

С чего начать.

1) Определитесь со средой разработки.

a) Are you building a standalone game or a networked game. 

b) Which language are you targetting at to improve? 

2) Насколько хорошо разбирается в искусственном интеллекте?

3) Насколько хорошо разбираются в методах алгоритмов программирования - таких как поиск пути A * (A-звезда), алгоритм Дейкстры, обнаружение столкновений, проверка совпадений или даже рекурсивное программирование?

4) Есть ли у кого-нибудь из вас талант в графическом дизайне?

Удачи.

P / S К вашему сведению, если бы я написал игру для Pacman, я бы сделал это на C # и Silverlight 4.0 (я могу писать на C ++ с комфортом, но мой приоритет - прыгнуть на подножку Silverlight).

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

Лично вот что я сделал бы:

  • изучал игры с открытым исходным кодом, чтобы узнать, что они делают
  • купить книгу о программировании игр (на самом деле, у меня есть книга о программировании игр уже есть, но вы, вероятно, захотите что-то более свежее, чем это)
  • выберите набор инструментов / библиотеку для разработки игр ( Sourceforge , Google Code )
  • поработайте с руководствами, которые поставляются с этой библиотекой, возможно, перейдите на другую библиотеку, если API слишком странный
  • придумайте документ требований
  • составьте проект первого прохода («планируйте выбросить один прочь "), попытаться попросить кого-нибудь его просмотреть
  • принять решение о плане тестирования
  • составить график не потому, что я хочу придерживаться графика, а потому, что я хочу легко разбить все на части. -определенные задачи
  • написать наименьшую полную игру, которую я мог (например, спрайт Pac Man, которым я могу управлять внутри окна: без лабиринта, призраков, очков, жизней, способности умирать и т. д.)
  • добавить featu res в эту игру, пока я не реализовал все это
2
ответ дан 5 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

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