http://zelych.livejournal.com/ ([identity profile] zelych.livejournal.com) wrote in [personal profile] catpad 2008-06-20 11:26 am (UTC)

Я тут прикинул, если писать на хаскелле и на хаскелоидов же в качестве целевой аудитории ориентироваться, то рабочий прототип можно уложить пару сотен строчек.

Бота можно описать такой функцией:
bot
  :: Serializable memory 
-- состояние текущей и соседних клеток, боты которые их занимают и т.п.
  => Environment
-- состояние бота, которым управляет система (типа жизни, инвентаря, скилов)
  -> BotState
-- user defined состояние бота, тут можно запоминать свои предыдущие действия и их последствия
  -> memory
-- случайное число, источник рандомности
  -> Int
-- что бот решил делать на этом шаге + новое состояние памяти
  -> (BotAction, memory)


Дружественные боты могут друг с другом общаться: либо прямым доступом к user defined состоянию, либо через сообщения в BotAction. Т.е. можно создавать команды.

Бонусы такие:
- игроки получают в распоряжение выразительный язык для описания поведения ботов;
- при этом (теоретически) можно получить гарантии того, что боты ничего деструктивного с системой сделать не смогут (надо только подумать, что делать c unsafePerformIO);
- очень быстро можно написать прототип и постепенно дорабатывать его.

Самое сложное придумать хороший геймплей.
А самое интересное -- написать способный держать кучу ботов движок на хаскелле.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting