Задать вопрос

Как создать «библиотеку» для NPC на языке C++?

Товарищи Программисты, Я новичок в С++ так что объясняйте "понятным" языком.
Как создать "библиотеку" для NPC на С++ включающую в себя всю необходимую о нем информацию: его характеристики(сила, уровень и т.д.), данные (имя, вес и т.д.), его передвежение по карте и т.д.
Спасибо за внемание, пока это все.
P.S. Примеры кода будут кстати.
  • Вопрос задан
  • 259 просмотров
Подписаться 1 Простой 22 комментария
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
Из такого вопроса видно, что человек всё ещё нетвёрдо знает программирование, а уже пытается программить игру.
И тут есть два варианта.

1. Движок с нуля. Тонкая графическая прослойка наподобие SDL, оставляющая 100%-ю свободу движкописателям — это тоже «с нуля» и всячески рекомендуется даже продвинутым (не нужно писать всякие там Alt-Tab’ы и прочую дрянь, далёкую от игры). Тогда пусть начнёт с «питончика» (https://ru.wikipedia.org/wiki/Snake_(игра) ) или текстового квеста.
А потом, когда доберётся до платформера или CRPG, он поймёт, каким образом привязать к монстру характеристики.

Первое приближение (не слишком удобное для скриптования и подходящее для платформеров/action-RPG, но негодное в настоящих RPG) — сделать каждому компьютерному персонажу «класс» (не путать с классом ООП), включающий кол-во HP, внешний вид и прочее. А также «набор скриптов» — для поведения в диалогах, запрограммированного передвижения, превращения из «болванчика» в компьютерного врага, и т.д. Без набора скриптов он просто компьютерный враг, тупо нападающий на ПиСя.

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

2. На чужом движке. Это уж смотрите, что движок может, какие возможности в нём «в коробке», а какие придётся дописывать своим кодом и чужими модулями. Не знаком ни с одним. Чужой движок — довольно противное дело для начинающего программиста: он автоматически формирует какую-то структуру программы, и программисту приходится не столько творить, сколько разбираться с этой структурой. С одной стороны, можно быстро написать довольно сложную игру, с другой — не так много радости «а у меня заработало».
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы