Предложения по доводке TrT и выше

OpenTTD - современная игра, клон Transport Tycoon Deluxe с открытым исходным кодом, написанный на C и С++. Содержит ряд ключевых улучшений и возможность игры по сети. На данный момент это главное направление развития игры.

Модераторы: eraserkry, Mihamster, Smoky555, Группа модераторов

Сообщение Pk » Пт янв 04, 2008 12:43

Вообще-то не размоет, а просто переведёт проеткт из "Town Replacement Set" в "SimulationCity" вид.
За что я давно ратую.

А хамоватость... Это скорее уже рефлексия. Почитай Кварка в этой ветке - поймёшь откуда.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Re: Предложения по доводке TrT и выше

Сообщение Pk » Вт янв 20, 2009 13:07

Как говорится, "Русские, подумав, открыли Изобретения"(с) Sid Meyer's Civilization.

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

ИИ м4. "Коллега"/"Сотрап"/"Ассистент"

Методика работы.
раз в n циклов "Ассистент" может выполнить одно действие: считать массив, модифицировать массив в памяти (1 операция/ход), передать массив.

Части "Ассистента"
- файл ".dll" - хранит общий код "Ассистента".
- файлы ".dat" - хранят конкретный код, алгоритмы и выполняет роль памяти "Ассистента" (*-ai.dat - код и свойства; *mem.dat - память; *dmp.dat - файл подкачки памяти).
- файл "ai-game.sys" - хранит протокол передачи данных (параметры эмуляции мышки и клавиатуры ИИ-игра и оптимизации видео и аудио данных игра-ИИ). Является частью игры, а не "Ассистента". Так же хранится болванка-Ассистент, без памяти (или минимально язык+навыки) для особых оказий или на случай проблем.

Примечание: * - некое имя, нужно для подцепления всех файлов ИИ. Имя "Ассистента" хранится в файле *-ai.dat.
(возможно, кто-то будет запускать на FAT16)
Так же, разные части Ассистента могут выставить "флаг" на их эксплуатацию: если ими не пользуются и они готовы - они требуют работы.

Цель "Ассистента".
Как любое порядочное создание "Ассистент" должен иметь цель в жизни. Предлагаю этой целью назначить "максимальный эффект" - он хочет получить каждый следующий раз больше/качественней чем в предыдущий. Не важно что - хоть ругаться, хоть машины соперника взрывать, хоть просто поезда гонять.
Это нужно только для автономной работы "Ассистента".

Работа "Ассистента"
Ассистент имеет 3 режима работы:
- Наблюдение.
- Работа.
- Отдых.

В режиме "Наблюдение" Ассистент анализирует только нужную ему часть данных (в памяти, в игре). После этого он принимает решение: игнорировать, запомнить*, работать. (* - ресурсоёмко! Требуется разрешение игрока в меню "Опции").
В режиме "Работа" Ассистент выполняет стандартные функции обработки данных, в которых так же могут использоваться алгоритмы и действия из памяти. В этом режиме он может как подготавливать комманду игре для модификации поверхности/покупки техники, так и "понимать".
Подрежим "понимание": Ассистент набирает кучу данных и пытается их забить в универсальный алгоритм, где нет случайных элементов (если что-то "не понято", то ИИ не сможет использовать непонятную часть алгоритма или же будет использовать её как "штамп", только если все условия совпадают).
Подрежим "Работа с памятью": во избежание переполнения памяти отработанные данные помечаются как "ненужные" и могут быть затёрты. Так же при нехватке объёма кэша ИИ может перекинуть часть данных в "память", где они хранятся долгосрочно, оставить "сноски" и позже запросить нужное.
Режим "Отдых" является штрафом игроку (см. "Дополнения"), при нём ИИ пропускает свой ход.

Вне "сознания" Ассистента работает его память: она так же пытается архивировать данные (если что-то совпадает, то память пытается это сжать, выдавая каталожные "номера" одинаковым сочетаниям и помечая старую запись как не нужную, затем копирует весь новый блок на место старого и успокаивается.
Если к памяти нет обращений, то проводит фоновую дефрагментацию данных.
Длина каталожного номера не ограничена, просто писать сейчас решение этой теоретической проблемы долго. Для указания "начало номера"-"конец номера" используются спец. символы.

Примечание: Для Ассистента работа с памятью и работа с Игрой выполняется одними и теми же инструментами !НО! "память" не требует работы по модификации, только архивирование, а "работа" требует работы в "реальном" мире.
Иначе у нас будет самый обычный сумасшедший.

Общение с "Ассистентом".
Игрок может поставить 2 режима работы/обучения "Ассистента"
- работа-по-требованию (кнопочка "сделай мне хорошо", как в "Adobe Photoshop")
- самостоятельная работа (ИИ будет сам искать чем он может заняться - орать в чате, копать землю).
Второй режим гораздо более тяжёл для компьютера, зато позволит отдать ему на откуп какую-нибудь рутину... Скажем, машинки перед переездом останавливать или на станции поезда разгонять когда пробка будет.
Игрок может обратить внимание ИИ на что-нибудь своё внимание. В этом случае ИИ закинет указанное в кэш на понимание.
Так же игрок может заставить обращать внимание ИИ только на указываемое игроком.
("указателем" можно сделать сочетание alt+левая кнопка мыши, при этом так же продолжают работать все действия и комбинации по левой кнопке).

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

Чат для ассистента - примерно то же, что и для игрока. Если он не будет знать язык - ему на него пофиг, т.к. он не понимает написанное.

Компания и ассистент.
ассистент имеет полный доступ к компании (в т.ч. дочерней), исключая запрещённые моменты.
Запрещения выставляются 3-мя уровнями доступа.

Игра и Ассистент.
Игра открывает для ассистента новое окно, в которое отправляются все нужные данные (но не отрисовываются до требования!).

ИИ и Ассистент.
ИИ может нанять Ассистента так же, как и игрок, другой вопрос, что он его вряд ли чему научит. Зато может сплавить работу.

Примечание: Ассистент и Ассистент.
Если в ходе работы потребуется использование белее одного Ассистента, то они смогут общаться друг с другом только через чат или иные общедоступные каналы.

Сеть и Ассистент.
Если ассистент играет в одной компании с игроком для игры это один игрок.
Если ассистент играет не в той же фирме - то игра делает вид, что в ней 2 разных клиента.

---===---
Возможные дополнения.

Индивидуализация Ассистента.
Для разнообразия игры и для создания "слабых мест" у ИИ можно привязать его свойства к его аватаре, т.е. как он выглядит - так и действует.
Тёмные очки - не будет отчитываться перед игроком, если тот не потребует;
Золотая оправа - не будет браться за то, у чего относительно низкая прибыль;
и проч.
Поддополнение (сыро!)
Мужские персонажи более стремятся к разнообразию всего.
Женские персонажи стремятся всё решить одним способом.

Сторонние приложения.
Если похимичить, то было бы не плохо дать возможность для ассистента работать со сторонними приложениями, запуская их "под игрой" - например, можно будет затребовать с него фин. отчётность в блокноте/экселе. Да, надеюсь вы обратили внимания, что считать он по умолчанию не умеет?

---===---
Возможные проблемы:
Ассистенты могут начать выяснять друг с другом отношения в чате;
Медленная скорость работы Ассистентов;
Сумасшедшие Ассистенты и Ассистенты - психопаты из-за неправильного обучения.
Анализируй то, как ты делаешь сам. Потом объясни это компьютеру.
Кладу асфальт, гружу Лейланды.
новый вариант мышления ИИ
Pk
Директор
Директор
 
Сообщения: 320
Зарегистрирован: Пт сен 30, 2005 06:50
Откуда: Москва

Пред.

Вернуться в Общие вопросы по OpenTTD

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9