Я сразу помещаю это как общественную вещь Wiki. Я не хочу обращаться за помощью в программировании все же или иметь даже конкретный вопрос о программировании, а скорее процесс и ресурсы должны были сделать такую игру.
Помещать его просто: Мой друг колледжа и я решили дать нам действительно сложную задачу далее нашим навыкам в программировании. Через шесть месяцев мы хотим показать нам игру Pac-человека. Pac-человек будет управляться AI как Фантомы и какой бы ни Pac-человек живет самое длинное после ряда побед попыток.
Это не похоже ни на что, что мы сделали до сих пор. Цель здесь, для меня, не состоит в том, чтобы создать идеальную игру, но попытаться завершить его, изучить целый набор в процессе. Даже если я не заканчиваю во время, которое является хорошей возможностью, я хотел бы, по крайней мере, попробовать это.
Таким образом, мой вопрос - это: Как я должен начать готовиться? Я уже запустил векторную математику, матрицы, весь тот забавный материал. Моей желаемой платформой был бы DirectX 9.0c; это желательно? Следует иметь в виду, что это не предпочтение только этого проекта, но я хочу иметь некоторое будущее в графической разработке, таким образом, я хочу выбрать платформу, которая является будущей безопасной.
Что касается разработки игр в целом, что я должен учесть? Я никогда не делал реальной игры прежде, таким образом, любой и все советуют к разработке середины проектов масштаба (если это было бы серединой проекта масштаба), значительно ценится.
Мои основные проблемы являются ловушками и демотиваторами.
Извините, если вопрос так неопределенен. Если это не будет принадлежать здесь, то я удалю его. Иначе любой и все советуют относительно создания больших проектов, значительно ценится.
Учитывая, что вы не пробовали заниматься подобными вещами раньше, вот несколько вещей, которые я бы порекомендовал.
Начните с чего-то, кроме DirectX (и, предположительно, C++)
DirectX и C++ откроют вам много низкоуровневых вещей, которые вы сможете изучить позже. Держите вещи попроще и, возможно, попробуйте XNA и C#, которые достаточно близки, чтобы вы могли портировать их позже, но позволят вам пропустить многие вещи, такие как управление памятью и указатели.
Начните с 2D, а не с 3D
Оригинальный Pacman - 2D, так что векторная математика вам пока не понадобится.
Итак, что же остается?
Ну, несколько вещей, о которых стоит подумать: игровой цикл, синхронизация действий, обновление экрана и реакция на ввод пользователя.
Это отличные принципы, которые позволят вам гораздо быстрее запустить игру. Не стоит недооценивать важность постоянного прогресса - это сложно, если вы изначально установите слишком высокую техническую планку.
Я бы пошел по этому пути (заказал, чтобы было весело и интересно)
Как только вы получите это работающим и запущенным, вы можете решить, хотите ли вы играть с лучшим AI, 3D математикой или перейти на C++.
Мне пришлось написать игру pacman на Java для объектно-ориентированного класса. Я обнаружил, что это очень просто, возможно, за исключением определения лучшего способа нанесения стен на карту. После небольшого исследования я наткнулся на это: http://javaboutique.internet.com/PacMan/source.html , который использует битовый сдвиг для определения стен. Это похоже на излишнюю сложность, но я обнаружил, что это довольно элегантно, после того, как немного поигрался с математикой. Помимо этого, pacman - это очень дружественная к массивам концепция, поэтому используйте массив для доски, некоторые базовые спрайты, повозитесь со скоростью и обновлением, отслеживайте игровые данные и бросайте их в цикл. Что касается ИИ с призраками, о них написаны статьи. У каждого призрака есть своя «стратегия». Или вы можете свернуть свои собственные ... вы можете запрограммировать их так, чтобы они были как всегда легкими, направляясь к pacman (или его общему местоположению / квадранту), или настолько сложным (кратчайший путь), как вы хотите.
Похоже, неплохая идея для учебного проекта! Две общие вещи, которые я рекомендую для вашего подхода:
Начните с малого - напишите код, который ничего не делает, кроме рисования Pac-Man на экран. Затем воспользуйтесь этим, реализовав движение по экрану. Затем выстраивайте границы карты и невозможность по ним перемещаться. И продолжайте в том же духе, расставляя приоритеты для следующей задачи, которую вам нужно выполнить, а затем делая все возможное для ее выполнения. Старайтесь не делать задачи слишком большими.
Чтобы понять, как выполнять задания, вам нужно прочитать. Книги, веб-сайты и существующий код очень помогают понять, как делать то, что вы хотите. Стоит рассмотреть несколько разных способов выполнения одной и той же задачи, потому что некоторые способы лучше, чем другие, или могут лучше соответствовать вашему проекту.
Хорошая штука! Я рад, что 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).
Лично вот что я сделал бы: