Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 28.05.2016, 11:29   #1
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 733
Написано 270 полезных сообщений
(для 698 пользователей)
Система оружия

Как бы сделать, чтобы было легко добавлять бесконечно много нового оружия в игру.

Кто какие варианты видит? У кого-нибудь был опыт в этом?
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 28.05.2016, 12:14   #2
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 4,546
Написано 1,995 полезных сообщений
(для 4,758 пользователей)
Ответ: Система оружия

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

По крайней мере я бы сделал как-то так
(Offline)
 
Ответить с цитированием
Старый 28.05.2016, 12:44   #3
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Система оружия

Хорошо сделано в серии action RPG "Borderlands".
Там, насколько я понимаю, за вычетом сотни уникальных пушек каждый ствол делается из "запчастей", каждая запчасть модифицирует базовые параметры оружия определённого типа.

Следим за руками:
1. Тип оружия (снайперка, автомат, пистолет, гранатомёт, etc.)
2. Производитель (тебе может и не подойдёт; в борделе у каждого вендора был свой "flavor")
3. Собственно, запчасти: приклад, коробка, ствол, рукоятка, прицел, магазин.
4. Уровень пушки (опять же, тебе может не подойти)

По байту на каждый кусочек паззла - вот и получили "код" пушки. Дальше комбинируем как понравится/делаем генератор. Расширение арсенала: сделал новый приклад - сразу получил много-много новых возможных комбинаций.
В "запчасти" можно ещё докинуть паттерн выстрелов (как временной, так и пространственный - одиночные/burst/очередь; в одну точку/дробовик/линией/крестиком), какие-нибудь эффекты типа упомянутых кровотечения/сжигания/взрывов/кислоты.

P.S.
Помню, как развлекался с редактором сейвов во втором борделе, подгоняя запчасти на понравившуюся мне снайперку, чтобы сделать себе идеальное оружие)) Было бы круто, конечно, если бы в игре была возможность запилить пушку "на заказ"...
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 28.05.2016, 13:47   #4
ant0N
Бывалый
 
Аватар для ant0N
 
Регистрация: 10.06.2011
Адрес: В горах
Сообщений: 733
Написано 270 полезных сообщений
(для 698 пользователей)
Ответ: Система оружия

не, я наверное неправильно задал вопрос.
Меня интересует реализация системы оружия в коде (абстрактный пример). Т.е как правильно написать базовую систему, чтобы она получилась простой и гибкой.
Создать класс болванки и потом только подменять модель оружия и параметры?
__________________
Абсолютли!
(Offline)
 
Ответить с цитированием
Старый 28.05.2016, 15:34   #5
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,888
Написано 1,183 полезных сообщений
(для 3,292 пользователей)
Ответ: Система оружия

Сообщение от ant0N Посмотреть сообщение
не, я наверное неправильно задал вопрос.
Меня интересует реализация системы оружия в коде (абстрактный пример). Т.е как правильно написать базовую систему, чтобы она получилась простой и гибкой.
Создать класс болванки и потом только подменять модель оружия и параметры?
Тебе уже написали способы аля контра и аля борделенд/фаллаут4/прочий_рпг_шутер.

Если по говнокоду, то создаешь класс Weapon и в нем описываешь все возможные варианты оружия. Далее если ты на Unity3d можно при помощи enum задавать допустим тип "пуль" - пуля, лазер, ракета, гранаты. Добавляешь методы Fire(), Reload(), Drop(), etc.

Можно более правильно. Создаешь базовый класс Weapon и описываешь общие методы и поля у всего оружия (например скорость перезарядки, урон, ссылка на модельку/анимацию). Далее для каждого типа оружия/стрельбы (обычное, лазерное, ракетницы, гранотометы) создаешь свой класс, перезаписываешь базовые методы override Fire, Reload, Drop, etc., в которых уточняешь конкретные тонкости для данного типа оружия/стрельбы (например если пули, то пули летят прямо и может быть имеют некоторую скорость полета. Если лазер, то моментальный урон после выстрела. Если гранатомет, то гранаты вылетают по некоторой траектории., etc).

Далее в скрипте игрока делаешь поле public Weapon weapon. И тебе будут доступны методы weapon.Fire(), weapon.Reload(), weapon.Drop(), etc не зависимо каким способом сделал. Вызывая эти методы оружие будет стрелять, перезаряжаться, падать, etc.

Если бы ты уточнил что ты именно хочешь от системы оружия, то можно было бы конкретней написать абстрактный код. А так возможных способов создания мильен.

В любом случае должен быть некий класс WeaponManager например, который будет при старте загружать конфиг оружия из файлов.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (28.05.2016)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 05:07.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com