Size: a a a

2020 August 23

TS

Till Schneider in supapro.cxx
Денис Кузнецов
А какой вариант определения типа объекта может быть? И при этом, чтобы он был динамичным?
Новую логику в игре в рантайме ты не добавишь, только сможешь менять какие-то мелкие части
источник

SS

Sergey Sobolev in supapro.cxx
Ты действие объекта огнестрела определяешь по енуму внутри него? Ну обычно, это виртуальный метод с переопределением в подклассе решает
источник

TS

Till Schneider in supapro.cxx
Наследование и полиморфизм твои друзья, тебе нужны интерфейсы, а в в реализации уже будешь менять поведение
источник

ДК

Денис Кузнецов... in supapro.cxx
Till Schneider
Новую логику в игре в рантайме ты не добавишь, только сможешь менять какие-то мелкие части
Это не совсем новая логика. Это добавление списка для обработки. То есть, было 5 видов оружия. Стало 10. Весь функционал ссылается на файлы, звуки, но принцип работы всех одинаковый. Тут нет смысла делать полиморфизм - анимация переключается по ID объекта, а не внутри кода огромная разница в логике.
Вид оружия переключается по его ID, а не разницей в логике, поэтому полиморфизм здесь - усложнение, которое не имеет смысла.
источник

TS

Till Schneider in supapro.cxx
Денис Кузнецов
Это не совсем новая логика. Это добавление списка для обработки. То есть, было 5 видов оружия. Стало 10. Весь функционал ссылается на файлы, звуки, но принцип работы всех одинаковый. Тут нет смысла делать полиморфизм - анимация переключается по ID объекта, а не внутри кода огромная разница в логике.
Вид оружия переключается по его ID, а не разницей в логике, поэтому полиморфизм здесь - усложнение, которое не имеет смысла.
Как знаешь 🤷‍♂
источник

RN

Ruslan Neshta in supapro.cxx
Денис Кузнецов
Да, зависит.
Например, Объект - огнестрельное оружие в игре.
Инстансы - дробовик, пистолет, автомат.

Три типа, по которым определяется что-то там.
И вот я хочу добавить в ДЛС Гранатомет. Но не хочу создавать отдельный класс или дописывать в енум тип, потому что этот ДЛС может быть, а может и не быть, поэтому основной игре незачем знать об этом типе до тех пор, пока не будет добавлено ДЛС. А когда оно будет удалено - игра просто забудет о нем, как о страшном сне.

В таком ключе енумы не подойдут. Остается вариант с int
длц уже будет в твоем клиенте(а как иначе ты его добавишь игрокам?)
дело в том что если я не купил длц то у меня и не будет этого оружия
это так работает в реальности
источник

RN

Ruslan Neshta in supapro.cxx
в любом случае при добавлении чего то в клиент все пользователи должны скачать обновление
источник

ДК

Денис Кузнецов... in supapro.cxx
Окей, тогда такой вопрос.
Как быть, если есть 4 типа оружия, и дальше я не работаю над проектом, а игрок делает свой мод, в котором добавляет 5-ый вид оружия?
источник

ДК

Денис Кузнецов... in supapro.cxx
Как сделать так, чтобы для игрока это было тривиально просто?
источник

RN

Ruslan Neshta in supapro.cxx
дать ему движок и исходники игры
источник

RN

Ruslan Neshta in supapro.cxx
не известно изначально как у тебя все архитектурно
источник

RN

Ruslan Neshta in supapro.cxx
мб у тебя хардкод сплошной
источник

AS

Anatoly Shirokov in supapro.cxx
Денис Кузнецов
Окей, тогда такой вопрос.
Как быть, если есть 4 типа оружия, и дальше я не работаю над проектом, а игрок делает свой мод, в котором добавляет 5-ый вид оружия?
Перестань мыслить энумами. Мысли интерфейсом оружия.
источник

EV

Eduard Voronkin in supapro.cxx
Денис Кузнецов
Как сделать так, чтобы для игрока это было тривиально просто?
Сделать отдельный модуль, который считает файл «конфигурации» оружия, и динамически его добавит
источник

AS

Anatoly Shirokov in supapro.cxx
Тогда любой возьмет интерфейс и реализует свое оружие
источник

ДК

Денис Кузнецов... in supapro.cxx
Ruslan Neshta
дать ему движок и исходники игры
Хаха
источник

RN

Ruslan Neshta in supapro.cxx
а как по твоему это делают на проде?
источник

RN

Ruslan Neshta in supapro.cxx
в движке(внезапно)
источник

ДК

Денис Кузнецов... in supapro.cxx
Eduard Voronkin
Сделать отдельный модуль, который считает файл «конфигурации» оружия, и динамически его добавит
Вот это уже интереснее.
А как добавлять функционал новый в таком случае? Допустим, к этой пушке в придачу идет отображение информации в новом окне, которое создано специально для него.
Какие-то взаимодействия пушки с инвентарем
источник

ДК

Денис Кузнецов... in supapro.cxx
Anatoly Shirokov
Тогда любой возьмет интерфейс и реализует свое оружие
Оно так и реализовано. Но типы дают контроль над тем, какие звуки включать и модель подгружать с анимацей.
источник