Я отвечаю за клуб разработки игр в моей школе, и я бы хотел поработать над проектом этим летом, который я мог бы использовать в качестве учебного пособия в следующем семестре. Я никогда не делал ничего подобного, поэтому мне было интересно, есть ли у кого-нибудь руководящие принципы или идеи.
В основном я хочу сделать очень простую игру. Что-то вроде шутера сверху вниз, куда приходят враги, чтобы вы убили их и собрали добычу. Тем не менее, я хочу, чтобы все было очень легко изменить. У людей в клубе мало опыта разработки игр, поэтому, если бы я мог настроить свою игру таким образом, чтобы люди могли легко изменять и добавлять функциональность, это было бы здорово для них.
Например, иметь класс противника, с которым легко играть, или заставлять оружие стрелять по-другому / добавлять новое оружие и новую добычу. Даже добавление новых элементов в игру. Каков наилучший способ создать игру, допускающую такого рода гибкость?
источник
Ответы:
Традиционным способом достижения этой цели в разработке игр является использование управляемой данными архитектуры для игровых систем.
По сути, это означает, что код не реализует определенный тип оружия (оружие) с явно определенными значениями для его диапазона / урона / проникновения, а заполняет общие концепции оружия дальнего боя (дальность / урон / проникновение ...) из внешнего (к коду) источника данных. Этот внешний источник может варьироваться от разбираемых (возможно, XML) файлов, считываемых с диска, до двоичных файлов или элементов базы данных, созданных с помощью инструментов, внутренних или внешних для самого игрового движка.
Определяя что-то наподобие врага, система ИИ может быть спроектирована для поддержки некоторого количества общих поведений (агрессивных, оборонительных, поддерживающих, трусовых), которые затем настраиваются элементами, управляемыми данными.
«Мой новый враг» начинается с агрессивного поведения базового ИИ с управляемыми данными значениями для: -игнора игроков> моего уровня + Х-преследования игроков до X юнитов вне точки возрождения-бой, когда здоровье <Х-приоритеты способностей -приоритеты-приоритеты способностей (когда игроки подходят слишком близко)
Более сложная схема, управляемая данными, может позволить определить конкретные точки данных (события), в которых состояние ИИ переходит (конечный автомат) в другое состояние (или даже возможность перехода в одно из N других состояний), что позволяет вашим пользователям определять сложная иерархия поведения.
Все это, конечно, больше, чем просто кодирование поведения, но это интересная задача, позволяющая пользователям создавать контент без изменения источника.
Есть бонусные баллы, которые должны быть достигнуты:
Для обучающей игры, нацеленной на более техническую аудиторию, большая часть работы заключается в разработанных классах / объектах, которые предоставляют пользователям чистые интерфейсы для расширения, что, в свою очередь, также может управляться данными.
источник
Если вы ищете несколько идей о том, как начать свой проект и создать его шаг за шагом, чтобы его можно было преобразовать в учебное пособие, посмотрите XNA Game Programming Adventures . Автор имеет несколько учебных пособий с пояснениями и исходным кодом, который постепенно увеличивается.
источник
Я бы посоветовал взглянуть на учебник по разработке игр для Java на сайте www.thenewboston.com.
Это может быть не совсем то, что вы ищете с точки зрения парней с оружием и всем этим джазом, но это дает хороший пошаговый анализ ряда ключевых факторов в развитии игры. Ведущий "Баки" также имеет охлажденный, просто для развлечения стиль обучения. Наслаждаться.
источник