Как эффективно разработать и написать игру? - PullRequest
2 голосов
/ 27 ноября 2010

Я пишу очень простую Java-игру.Позвольте мне кратко описать это:

  • На карте 4 игрока.
  • Карта представляет собой двумерную матрицу со значением, называемым «высота»
  • Высота между двумя узлами - это стоимость этого края.
  • Используйте алгоритм Дейкстры, чтобы помочь игроку перемещаться от источника к месту назначения.
  • Четыре игрока ходят по очереди.Общее количество ходов - 8 (левый верх, верх, правый верх ....)
  • Если они встречаются, сражайтесь за ценность золота, в противном случае двигайтесь к своей цели.
  • По мере их движения ихуменьшение силы из-за разницы высот между двумя узлами.
  • ... и т. д.

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

  1. Запишите все требования.
  2. Создайте все нужные мне объекты со всеми геттерами и сеттерами.
  3. Создайте статический класс для тестированиялогика
  4. Создание модульного теста при объединении логики
  5. Добавьте еще немного кода, затем перейдите к коду, чтобы соответствовать тесту
  6. Напишите большой метод, который будет выполняться, а затем прерватьразберитесь с более мелкими методами, затем снова напишите модульный тест.
  7. Если все работает нормально, добавьте больше требований, добавьте больше кода
  8. Тогда все усложняется, потому что чем больше кода я добавил, тем сложнееувеличивается.Больше нет времени для написания модульного теста, потому что создание тестового примера теперь требует слишком много работы
  9. Перепроектируйте, затем измените реализацию, перейдите к шагу 1 снова.

Я пришел из C ++, и мне удобнее писать «статические» библиотеки, такие как: стек, очередь, список ссылок, дерево ... Игра действительно большаявызов мне, особенно я должен использовать Java.Я понимаю, что основное программирование такое же, поэтому освоение Java было не так уж и плохо.Однако время поиска API Java не мало.Кроме того, игровую логику действительно сложно написать.Когда этот объект перемещается, другой объект оказывается затронутым ..., поэтому создание теста для метода зависит от многих других методов ... и т. Д.Мне действительно нужен совет.Кто-нибудь может поделиться своим опытом написания игры для меня?У меня осталось только две недели для этого задания.Сейчас у меня 45 классов, я чувствую себя потерянным, потому что чем больше я пишу, тем сложнее становится :(!

С уважением, Чан Нгуен

Ответы [ 2 ]

1 голос
/ 27 ноября 2010

Сначала начните думать, как программист Java.Подумайте, как каждая вещь в вашей игре как объект, например доска, подумайте о свойствах и методах, которые она имеет, о своих интерфейсах, о том, как она взаимодействует с другими объектами.Если вам нужна помощь, чтобы начать здесь, это отличный учебник, который шаг за шагом поможет вам сделать простую Java-игру, это может привести вас к правильному настроению, чтобы начать программировать самостоятельно.Я настоятельно рекомендую вам следовать руководству. http://www.cokeandcode.com/asteroidstutorial и использовать библиотеки, которые они там использовали для разработки интерфейса.

0 голосов
/ 29 июня 2012

Я отношусь к архитекторам игрового кода с уважением: игры - это сложные системы с появляющимися свойствами во время выполнения, необычно интенсивными требованиями к взаимодействию (пользовательский интерфейс, элементы управления), что делает сомнительной ценность теории ООП.Может быть трудно повторно использовать игровой код.И многие предварительные работы по планированию - это пустая трата времени.

Большинство известных мне программистов, начинающих или опытных, преуспевают в итеративном процессе «просто сделай это».например,

1) написать минимальный прототип.получить очень простую систему, работающую, используя простейшую, наиболее очевидную архитектуру, какую вы только можете придумать.(мой парень может бегать по экрану).Максимум 5 или 10 объектов

2) добавляет функциональность (очки, правила, ловушки, поведение NPC и т. Д.) И тестирование, снова и снова.Этот хак на хак может сделать плохо структурированный код, но большинство кодеров может заставить его работать.

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

Игровые кодеры проводят тестирование, но комплексное тестирование ВСЕГО кода происходит редко.две причины: появление и культура.Игры имеют всплывающие свойства во время выполнения («да, но очки МОГУТ становиться отрицательными, когда NPC убивают, когда ....»).Поскольку игры обычно предназначены для развлекательных целей, существует культура быстрого тестирования.Игры не так важны, как, скажем, код управления ракетами.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...