Мой основной вопрос: слишком ли амбициозно идти по плану, как мы планировали, учитывая, что продолжительность проекта примерно 3 месяца?
Да, ноэто не обязательно плохо:)
Должны ли мы пойти в 3d и использовать движок для 3D-игр?
Нет.Главным образом потому, что вы сказали:
Мы хотим сосредоточить большую часть нашей энергии на части ИИ.
Вот что я буду делать, основываясь на моем опыте (и знаниичто, будучи студентом, я часто откусывал гораздо больше, чем мог бы жевать):
Создайте функцию симуляции независимо от графического компонента.Пусть он опубликует «обновления» для другого слоя, который состоит из векторов игрока и мяча.Таким образом вы будете отделять свои задачи ИИ от всего остального, что означает, что у вас будет меньше проблем, о которых нужно беспокоиться, и вы также можете упростить модульное тестирование базового моделирования.
Примите эти "обновления" исоздайте свой первый слой "визуализации" - сделайте его максимально простым 2D представлением.Это может быть просто поток текстовых строк: «Игрок 1 имеет мяч / Игрок 1 отбивает мяч со скоростью (30,40) со скоростью 20 км / ч».Это будет достаточно сложно для вашего первого прохода, так как вы поймете, как брать данные, опубликованные симуляцией, и что-то делать с ними.
Ваша следующая визуализация может добавить двумерную сетку графики ANSI (подумайте, жулик)-подобно) показывать игрокам и движущемуся мячу.Ваш следующий после этого может быть спрайты.И так далее.Обратите внимание, как вы постепенно увеличиваете сложность вашей визуализации ... не делайте первого шага к использованию технологии (движок трехмерной графики), которую вы никогда не использовали раньше.(Вы никогда не закончите свой проект в этом случае.)
Что касается ваших вопросов о том, какой путь выбрать - FSM, NN, GA, дизайн сверху вниз - вы должны оценить свой интерес к ним изнаиболее по меньшей мере (вместе с остальной частью вашей группы), а затем заняться ими в указанном порядке.Вы можете рассмотреть возможность создания одного стиля для одной команды и другого дизайна для другой команды.Возможно, вы захотите заставить свою команду FSM играть против команды FSM, для которой была сделана дополнительная настройка, чтобы сравнивать и сравнивать, если вы считаете, что ваши изменения действительно приносят пользу (вы можете быть удивлены и узнаете, что они делают команду хуже).На самом деле, именно здесь модульное тестирование и отделение симуляции от визуализации оказывается очень и очень удобным - вы должны иметь возможность «симулировать» столько игр, сколько вам нужно, чтобы получить экспериментальные результаты, не беспокоясь о графике.Вы можете даже делать это партиями в одночасье со сценариями.
В общем, мой совет вам таков: разбивайте ваш проект на мельчайшие фрагменты, которые вы можете, и разбирайте их по одному за раз, так что где бы вы ни находилиськогда закончится время, у вас будет что-то интересное, чтобы похвастаться.