От автора: Добрый день. Совсем недавно я описывал теорию (и несовсем) инстинктов, написаное не совсем коректно вышло, но теперь я решил написать полную теорию мира ангоров, в большинстве ИИ. Хотел бы предупредить сразу, я пишу что я зделал/зделаю/делаю для своего мини-проекта, а то что тут пишу, лиш предложение для внедрения в игру. Редактор о котором я буду далее писать впринципе могу дать. Вступление: Итак пожалуй начнём с самого начала. Когда каждый человек рождаеться, он только и знает как орадь да "гадить", но со временем он получает навыки жизни, некоторые страхи, к чему-то имунитеты, в целом развиваеться человек постоянно. поэтому я решил зделать подобное и с юнитами в игре. Юнит должен раждаться на свет практически ничего не зная, ведь так? Скажем при рождении он будет иметь пару примитивных инстинктов, и несколько умений(типа: рыдать, ползать). Со временем ему нужно будет развиваться, развиваться он тоже не с пустого места будет. Он сможет обучаться примерно такими путями: 1. Его кто-то обучит 2. Он сам ето узнает (методом тыка так сказать) 3. Он где-то об етом узнает (ну прочитает книгу или есчё что-то) Но он сможет и терять навыки, например из-за очень редкого использования, или просто от ненужности. Все достижения (как научные, так и религиозные) не будут как-бы "достижение страны/цивилизации/клана/и всё такое" у каждого юнита будет список своих знаний, умений, достижений и всё такое, таким образом юниты будут развиваться практически независемо друг от друга, и в тоже время довольно тесно зависимыми. Так как юниты смогут передавать свои знания, они, возможно, будут с каждым поколением улучшаться и улучшаться, до тех пор, пока юнит не станет более умным существом, и не научеться строить дома и всё такое, и так далее. Мозг: Ну теперь, пожалуй, немного собсно о его "мозге" более конкретно. у юнита пока-что будет несколько списков: 1. Инстинкт - это список простых "мыслей" (не знаю как по-другому написать)юнита, в нём описуеться всё самое простое, примерно такое: Если я рядом с водой, и жажда не в норме, то я буду более преймуществено думать о том чтобы попить воды, ну а если я отойду далеко или напьюсь, то моя жажда попить воды сново уменшиться. Тоесть ето как-бы функция с простым условием, простым Эфектом, и таким же простым условием конца действия эфекта. 2. Умения - с умениями куда сложнее, это список того, что юнит умеет делать (хотя практически всё предводительно нужно будет записывать в движке игры, всёже вариант "методов реализации" будет довольно обширный, да и исходные действия могут быть куда более разные). По сравнению с Инстинктами у умений етсь всего 1 условие и 1 эфект, но те более сложные по своей структуре. Условие как и действие по сути ето 2 функции, в них будут проводиться операции по исчеслению, проверки выражнеий и всё такое. Пример приведу по тойже воде: Если я хочю попить и приоритет на питьё воды достаточно высок да при этом я нескем не дерусь, не особо занет делами (бле-бле-бле и так далее условия) то я активирую действие умения. Далее действие умения. Если я голоден, меня некто не атакует. Если вода у моих ног то я выполняю действие питья воды (тут должно добавиться действие в список выполняемого у юнита). Если вода не у моих ног, то я выполняю поиск воды, иду к ней, и пью ее (аналогично ето всё прибавляеться к списку действий). Думаю не стоит особо всё расписывать, поэтому для теории хватит этого. 3. Знания - Тоже не мало важный момент, знания нужны чтобы юнит знал кого как бояться, с кем лучше дружить, что сьедобно, что нет, что он любит есть, что не любит и так далее. как реализоувать ее я есчё особо не задумывался (так как по сути это прилагаемое), но можно примерно так: чтоб у знания было несколько параметров, допустим параметр "имя" будет примерно такой "пища хлеб", показатель - список строк, в которых будет описнао что да как, например "Предпочтение + 25", "Сытность + 10", и потом, каждый рас при выполнении действия питания, если ето прописано, то юнит будет просматривать что у него самое более любимое, и при этом не слишком сытное/или наобород. 4. Память - один из важнейших частей, по сути где-то 70% памяти будет в других частях "мозга"(тоесть в выше описаных), например как давно он последний рас использовал то или иное действие и так далее. Но будет и чисто своё так сказать. Например если другой юнит приказал данному что-то зделать, этот юнит может и забыть о приказе, ровно как и его хоязин. Ну а записываться оно должно на усмотрение програмиста, как ему проще, так пусть и пишет. Я бы писал примерно так: Название "<имя> приказал мне ловить рыбу", дата последнего вспоминания, дата приказа, приблизительное максимально время которое он будет помнить (лучше на каждую писать своё, более динамично будет выглядеть), ну и есчё кое-что, естесно особо и это не обдумывал, моё дело в теории. Собсно примерно так должно строиться его мозг. Несмотря на предпологаемую гибкость этой теории, кодом тоже нужно будет много писать, я думаю писать всё скриптово (тоесть чтоб информация о техже умениях хранилась как текст, а при загрузке игры он считывался, обрабатывался, и сохранялся так, чтобы потом код быстро знал что ето такое, и как его делать), кодом прыйдёться на каждый скрипт писать свою формулу, она может быть как в пару строк, так и в несколько сотен). Но тут есть и свой огромный "+", можно используя редактор зделать систему аддонов, так чтобы при другом сочитании этих-же скриптов, выходила совсем другая игра. Аддоны - аддоны будут хранить информацию о "мозге" юнита, и всю остальную информацию (зависит что там будет в игре). и при этом он будет сортироваться по папкам, а при запуске игры будет высвечиваться окошко с выбором аддона. Редактор: Редактор я планирую писать полнофункциональный, в нём я зделаю 2 мода, админ-мод и любительский. Зачем это нужно? Да затем что в админ-моде будет доступ к изменению списков самих скриптов, так как всё будет строиться на них, списки скриптов, знаков всяких, условий, типов значений и всё такое. Если это всё будет в обычном моде, то человек может даже ненароком изменить что-то, а код-то не поймёт ненароки, и игра пойдёт ко всем чортям! Итак что будет в редакторе (имеетьса введу обычный мод): 1. Редактор инстинктов 2. Редактор Знаний 3. Редактор Умений 4. Редактор Памяти 5. Редактор "Предпологаемых зданий" (об этом не совсем охото писать, вообще всё что "предпологаемое" описывать не буду, если нужно, опишу в другой теме) 6. Редактор "Предпологаемых предметов" 7. Редактор Расс, класов, имён, названий кланов (и название как оно называеться (тоесть может быть слово не "Клан", а "Караг")) Конец: Ну пока думаю хватит, хотя сумневаюсь что ето всё, скорее всего далее, при ходе работы будет продвигаться список возможностей.
|