Как стать автором
Обновить

Комментарии 131

В своё время хотел делать что-то подобное только чтобы исследовать образование речи и животных. Но идея как и многие так и осталась в голове :)
т.е. вы решили написать свой Spore, с блекджеком и прочим. )
Тема очень интересная, будет ли продолжение?
В то время я ещё не слышал о Spore ничего, кроме названия.
Но соглашусь с вами — получилось действительно похоже по смыслу.
Продолжение будет, как только всё наладится с сервером и свободным временем :)
Spore тут никаким боком, у человека тут настоящая симуляция а не рилтайм стратегия по мотивам эволюции.
На чем писали?
Язык реализации был выбран самый привычный для меня — php.
Ого!
На php подобное!!! Ого-го… Здорово. Я тоже, к сожалению, кроме php толком ничего не знаю. Мне тоже всегда хотелось написать что-то подобное. Возможно когда-нибудь дотянутся руки.

Кстати, а ведь при этом как раз тоже можно сделать полноценную игруху… ну вроде того же spore, только многопользовательскую и он-лайновую.
Здорово :) Написано так художественно, сочные картинки — уже начал представлять себе флэксов, как они хавают друг друга, как у них отрастают крылья… но внезапно консоль и сине-фиолетовые точки вернули в реальность ;-)

Еще тут подумалось, что так можно миры для вских кинов и книг «придумывать». Миры продуманне, детальные, без нелепых противоречий. Если задать побольше каких-нибудь нетривиальных параметров можно будет получать существ, которых человек в жизни б не придумал.
С нетерпением жду продолжения. Мне кажется, эпический момент будет, когда у Флэксов появится религия — вера в Вас.
НЛО прилетело и опубликовало эту надпись здесь
Но забавнее всего будут те верующие, которые искренне будут считать, что автору не пофиг на каждый конкретный экземпляр, и автор готов вмешаться в ход эксперимента, чтобы решить его (экземпляра) мелкую личную проблему.
Куда забавнее будет если каждое обращение к Создателю будет показываться в его консоли и он может выбирать реакцию на него. Вспоминаю Брюса Всемогущего.
Ага, и если будет лень прислушиваться к мольбам простых флэксов, будете выбирать кого-то на роль «Брюса Всемогущего»
неа, следующий эпик будет когда Флексы будут считать что они сами Боги и будут кодить на Флекс-PHP уникальную Гаму, имитирующую жизнь Флексов
Мы имеем дело с многоуровневой вложенностью, все объекты и классы которой унаследованы от одного Родителя. Не исключено, что мы так же не болтаемся у кого-нибудь более разумного на флешке, рядом с ключами.
я это и имел ввиду. Вы правильно уловили мысль ;-)
Хотелось закрепить мысль словами ;)
по ней уже не один фильм сняли… 13 этаж, например…
Кстати хотя на эту тематику матрица более раскрученна, 13-й этаж мне гораздо больше понравился
Каждую ночь мы создаем новую вселенную, которая к утру исчезает из наших мыслей. Сон во сне.
Вы только что пересказалаи в двух словах сюжет фильма 13 Этаж
Рульный фильмец! :-)
Прототип матрицы. Только спецэффекты не те, и не попса. Потому не так популярен как матрица
А следующий топик напишет флекс-вундеркинд.
Еще интересно — рано или поздно они дойдут присерно до уровня нынешнего человечества. А потом? Так же можно будущее предсказывать!
И будут развивать педофилиюлюбовь к маленьким мальчикам в своих монастырях.
Ах да, а ведь такую систему можно запустить локально? Не планируете релиз? Было бы архиинтересно понаблюдать за миром воочию.
Я думал над этим и решил, что когда появится более-менее годная и сбалансированная версия — сделать свободный доступ и регистрацию, чтобы люди сами смогли поуправлять своими собственными мирами с возможностью вмешательства в ход событий.
А как дополнительный эксперимент — было бы очень интересно посмотреть, отчего в разных мирах ход событий пошел так, а не иначе, что влияло на вымирание или появление каких-либо уникальных видов.

А самые лучшие сбалансированные новые виды можно будет называть по придуманному названию(а не по генератору, как сейчас придумываются имена) и заносить в энциклопедию :)
Миры лучше объединить. Чтобы было соревнование между ними. Чьи существа более хорошо развились и т.д. Да и интереснее так.
Но без графики будет интересно далеко не всем.
И насчет этого была идея — выставлять самые удавшиеся эволюционные находки друг против друга в боях.
Но это уже какая-то онлайн игра получается :)
Так чем больше возможностей в игре, тем больше шансов на развитие. Иначе это может быть подхвачено большинством, потом через какое-то время станет не интересно, а после и вообще все забросят. А потом кто-то напишет ещё одну похожую вещь но уже более развитую :)
Тут главное решить, что важнее — бросить ли все силы в развитие самой системы, либо тратить часть их на разработку игровой системы.
Киньте клич, наберите команду. Распределите обязанности :)
Может кто заинтересуется.
Я бы с удовольствием скооперировался с людьми, разбирающимися в нейронных сетях.
Так же, при наличии заинтересованных лиц, было бы хорошо сделать графическую оболочку. С портом кода на сяхи, естественно.
Но последнее — это ведь Spore какие-то получатся :)

Хотя графики не помешало бы в любом случае. В онлайне тоже можно сделать интересно обставленный графический движек. jQuery, спрайтовая анимация и подобное.
Можно сделать систему импорта графики, чтобы участники сами рисовали своих зверушек и там растения, окружающий мир. Что-то типа SecondLife для бога.
Напомнило www.amebas.ru
В своё время много часов убил на амеб, в чемпионатах участвовал.
До сих пор мечтаю написать сделать нечто подобное.
создавать виртуальный мир-арену и на ней брать 2-3-4 и тд пользовательских цивилизаций:)
Видел подобное. Там нужно было растить амёб, выбирая те, которые мутировали удачнее, а потом они на сервере сражались с другими :)
Называлось вроде просто Amebas.
Не заметил, что уже про это написали.
ну а что.
если сделать аналог «Годвиля» (godville.net), в котором персонажи не тупо совершают рандомные действия, но ещё както эволюционируют и чему-то учатся — это будет на порядок, а то и два интереснее.
НЛО прилетело и опубликовало эту надпись здесь
Примерно к этому времени, думаю, как раз сложится отличный и мощный баланс ;)
Еще скажите что сеть называется SkyNet… :)
НЛО прилетело и опубликовало эту надпись здесь
в компьютерре был обзор пакета моделирования эволюции
наверное можно найти при желании…
А погонять как аватар там нельзя?)
Дайте им ядерное оружие, посмотрим что произойдёт
Симулятор Б-га.
Всегда мечтал посмотреть, что произойдет если вмешаешся в природу :)
достаточно просто выглянуть в окно
на комп упадет метеорит.
Жучуба умирает!
Скорбим о Жучубе!
А как же все таки без нейронных сетей, пусть даже простых? Как же эволюция? Как же они «поняли», что нужно группироваться в кучки?
Держались рядом с противоположным полом — это, наверное, основной фактор был :)

И не решались отходить отсамок\самцов особо далеко(параметр «обзора» видит в определенном радиусе кусты\существ и дальше идет решение — что делать, убегать, есть или делать что-то ещё :) Правда, блок решений пока что на уровне амеб, но и это уже не мало.

Очень часто они кочевали по группкам, индивид отрывался от толпы и перебегал в другую, привнося туда не только себя, но и вирус, быстро расходящийся в тесной среде.
Интересно. Если даже так есть результаты, то представляете, какие результаты будут при наличии простейшего
язык+огонь=больно — :(
Язык+дерево=ничего — :/
язык+мороженко=круто — :)
язык+мороженко — :)
язык+мороженко — :)
язык+мороженко — :)
язык+мороженко — :)
1. (язык+мороженко * N) = вирус болезни
2. вирус болезни = ослабление
3. ослабление = догнал плотоядный
4. догнал плотоядный = смерть
отсюда следует, жрать мороженка меньше… )
Вот да, как-то так :)
При том работать будет только, в случае правила «обезьянка видит – обезьянка (не)делает»
или придется сделать коллективный разум с общим доступом к базе опыта :)
Ну опыт должен передаваться по наследству.
Опыт не передается по наследству :)

Можно было сделать так для упрощения модели… но в любом случае, не часто кто-то пред смертью будет спариваться… так что бесценный опыт опять пропадет :(
Да, точно не передается же:)
Тогда должна строится социальная модель, которой они будут учиться от родителей, в садиках и школах.
А вот, я когда говорил «по наследству» имел ввиду от родителей детям. Теперь вспомнил.
Но некоторые все равно должны предпочесть будущим благам сиюминутное удовольствие. Для этого нужно еще насоздавать социотипы, которые в свою очередь уже будут формироваться наполовину рандомно и наполовину зависимо от социотипов родителей.
И еще, не весь опыт должен оставаться в базисе общества. Некоторый опыт должен теряться, так будет правдоподобней. Мы же не хотим сделать идеальное и скучное общество :)
Это уже На'ви…
Единственное расхождение — это то, что ослабление = смерть не может передаться генами(если они, конечно, не некрофилы ;), следовательно, не может передаться к последователям или к поведенческому инстинкту то, что жрать мороженку — смерти подобно :)
Вообще-то мне кажется что будет это не наследственное, а передача все-таки опытным путем… Т.е. стадо увидело что жрать мороженко — круто, начали все жрать… те кто послабее были, или первые увидели, то те начали подыхать быстрее… остальные увидев, впадут в панику и в выяснение одного из основополагающих вопрос эволюции — «Какого хера он сдох?». И после уже своему потомству передавать не генетическим путем опыт, а обучающим… Вам же ведь не генетикой привиты что: спички — не игрушка, колесо — можно катить, язык разговора… Эти знания приходят не генетически, а с обучением. Генетически можно заложить только часть характера, еще передаются инстинкты, но я сомневаюсь что у кого-то есть Инстинкт написания программ на Assembler'e с детства, даже если папаша всю жизнь был прогером-асмовцем… ))
культивация сорта вроде 30 поколений требует. Так что вот через 30 поколений и посмотрим на потомственных асмовцев =)
существует так называемая «информационная теория эмоций», даже две.
у нас её развивает (или развивал) П.Симонов,
в штатах есть аналогичная, имён на вскидку не помню, надо поисакть найти.

смысл в том, что на достаточно примитивных механизмах (уровня примерно замыкания рефлекса), можно соорудить довольно «живых» персонажей.
в качестве примера можно погуглить диалоги персонажей проекта «Oz» в CMU (универ Карнеги-меллон). и игрушку «Facade» одного из студентов того проекта.

но не совсем понятно, насколько индивидуально поведение в твоём проекте.
ну и да. под «живостью» персонажей имеел ввиду не «правдоподобность» (это основная идея Бэйтса — руководителя проекта Oz),
сколько «максимально эффективное принятие адекватных решений не задействуя аналитические способности»
deg.li/p/m.jpg
Напомнило.
Почему-то картинку не вставляются.
Карма минусовая )
НЛО прилетело и опубликовало эту надпись здесь
подумалось, что интересно было сделать такую вещь кросс-платформенную и чтобы это была распределённая сеть, чтобы можно было поставить себе на комп и наблюдать время от времени. Правда, не совсем понятно, что делать с выключением компа.

Хотя можно считать что ночь наступила :)
ага!

сделать к этому миру API (протокол передачи восприятия/воздействия)
а на своём компе пускать отдельных аватаров или популяции, со своими законами эволюции :)

а время выключения компа называть медитацией :)
Напомнило игру детства Жизнь ) очень интересно.
The Game of Intelligent Life
Круто! Жаль на php, я его конечно знаю, но не люблю… Было бы классно поучаствовать.

Ну и ввести нейронные сети было бы классно. Что бы тварючки стартовали с малым количеством нейронов, каждый нейрон требовал пищи, в новых поколениях количество нейронов могло случайным образом меняться. Живые твари передавали самые «полезные» коэффициенты связей своим потомкам. Еще неплохо, что бы просто между собой был шанс обменяться коэффициентами…

Вообще стоит изначально ввести хищников, падальщиков, травоядных, больший шанс травоядных заболеть рядом с трупом.

Для разнообразия карты стоит ввести общий для растений и животных ресурс, например воду(=
Тогда можно будет еще и растения сделать с параметрами: скорость роста, потребление воды, частота дачи семян, радиус распространения семян, живучесть семян, порог проростания, порог лёгкого поедания(когда травоядные предпочтут пойти на поиски более целого растения, если оно в поле зрения), регенерация…
Короче много чего можно придумать и код будет становиться всё более и более ужасным(=
Хотя я конечно за минимизацию параметров…
Т.е. то что вы хотите ввести доп.пар-мы животным мне не нравится. Сила, скорость и здоровье как по мне самое-то. Вес можно считать по максимуму здоровья, которое будет зависеть от питания. От веса будет зависеть скорость. Сила просто меняется в зависимости от стартовой и от интенсивности бега.

А для растений основные пармы, то же три: здоровье, скорость роста, твёрдость.

А вот параметры связанные с размножением это уже тьма-тьмущая всякой фигни с которой я даже не знаю что делать ;( Можно тоже как-то из основных статов вычислять. Частота дачи потомства от скорости роста, радиус распространения от здоровья и твёрдости, потребление воды от скорости роста, живучесть семян от твёрдости, порог проростания от скорости роста и твёрдостии т.п.

Главное правильно всё организовать, что бы можно было легко реализовывать взаимодействия организмов. Т.е. иделально каждый организм получает и отдаёт в мир одинаковый список данных, например что-то такое
данные об окружении, тип каждого организма(растение, животное, неизвестное/непонятное), вид организма, состояние организма(процент жизней), вектор скорости организма.
Т.е. хочется, что бы «интерфейс» каждого организма был одинаков
Идея такова, чтобы не придумывать «параметры» в целом, а организовать некий геном содержащий, например, сотню характеристик. По ним же выходят предрасположенности, вариации мутаций, по совокупности некоторых из разных генов выходят отдельные свойства организмов.

Как и в живом мире, потомство может наследовать вперемешку(кроме некоторых исключений и устоявшихся типов) гены, чем порождает новые устоявшиеся формы, идя таким путем к совершенству.

Но абсолютного баланса не бывает. Да и случайные нарушения хромосом — дело обычное.

Самое интересное и полезное здесь — возникновение новых видов :) И от маленькой вариации баланс всего изменяется, толкая на изменения всё вокруг.
С генами отличная идея(= действительно получается у всех набор «параметров» одинаковый, хоть и большой, но по ним можно рассчитать маленький список нужных, круто.
А как у вас сейчас с «интерфейсом» организмов?(= Да и воду было бы приятно увидеть
Пока что не так, как запланировано, но отдельные свойства заложены(пусть и не используются).

Просчет поврежденных конечностей\ран — это очень емкая область, особенно когда существ тысячи. А представьте многопользовательский мир с миллиардами существ?

В будущем, при доступных мощностях, не вижу ничего невозможного в редких мутациях на манер «выросла пятая нога». Но так как природа лучше всего относится к зеркальным типам организма — такое существо, с непарным количеством ног, испытает сложности в передвижении(сказавшиеся на скорости) и будет съедено каким-нибудь расторопным хищником.

Тут главное помнить: нужно закладывать свойства не только организма, но и базовых законов.
с базовых законов мира стоит вообще начинать.

в контексте «наблюдение за организмами» должно быть минимум два уровня:
окружающая среда, и собственно организмы, со всеми своими физиологиями.
и у них должны быть разные законы, ну хотябы в целях оптимизации.

потом можно добавить и третий. интеллектуальный, для которого физиология — «окружающая среда».
идея образования структуры из одного нейрона, который «сам разовьётся» не нова,
но, мне кажется, весьма бесперспективна просто из-за ресурсоёмкости.

хотя зависит от целей — для моделироваиня эволюции в дарвинском понимании — она единственно приемлема, ибо как раз там нужно «само».
а если цель — создать мир и посмотреть «как оно могло бы быть» — стоит моделировать на более абстрактном уровне.

у автора, насколько я понял — цель где-то какраз посередине.
Может, стоит создать проект на google code или подобном сервисе, привлечь тех, кому это интересно?
Много раз пытался сделать что-нибудь подобное, но каждый раз упирался в то, что не мог научить своих подопечных ставить себе цели в жизни. В итоге они бродили по карте, размножались, ели и воевали, но без всякой самомотивации и развития. Более-менее разумных существ создать не удалось.
По моему даже более-менее разумных людей практически нет (с целью и мотивацией, кроме еды и размножения). Можно просто ввести еще одну «еду» — удовольствие, которое для разных организмов будет получатся разным случайным путём.
Вот так и возникнут некоторые «любители» потереться о кактус и похлестать друг-друга кожаными хвостами ))
Была попытка. В итоге выели все под корень, устроили потасовку за остатки. Выжившие вернулись к истокам. Эволюции не произошло.
Ну жно тогда вводить особоодаренных особей (вожди или как то так) которые могли бы заставлять совершать какие либо осмысленные действия часть народа… Возможно и с определенными прописанными установками. Ну а что такое гениальность, если не данность свыше (в данном случае программистом).
Чтобы заставить что-то сделать, нужно иметь хоть какое-то представление об итоге. Я хотел, чтобы существа могли сами придумывать себе все новые и новые занятия без моего участия. Хотелось увидеть в их действиях нечто такое, чего я сам в них не заложил.
Для этого необходима сложнейшая самообучающаяся нейронная система + достаточно мощностей и времени.

Пока что главная проблема, похоже, за мощностями.
Не уверен. Тут скорее следует перейти к математике хаоса. В последней инкарнации система виделась мне как упорядоченная структура, разрушающаяся сама собой, а цель существ — поддержать ее в порядке. В таком случае хаос привносил бы случайность, а существа могли бы на этой случайности самопроизвольно изменять программу поведения, подстраиваясь под новые условия. В этом случае у них могла бы появиться склонность к труду — к отстройке частей системы, к приведению системы в целом к порядку. В итоге они могли бы создать свою собственную систему мира, отличную от того, что первоначально давал им я. Но такой программы я так и не написал.
Помните «Нирвану» когда при тестировании игры разработчиком (Кристофер Ламберт) персонаж начал с ним разговаривать, типа: «Эй, мужик, ты кто? Откуда ты со мной разговариваешь?».
Ага. Я был бы рад такому повороту событий.
Сначала — рад.
А потом — ухаживать пришлось бы за компом, как за тамагочи. Неловко будет, если нечаянно угробив винт, вы вместе с тем сотрете целую цивилизацию разумных существ.
Угу. А мой мобильник сначала подрастет, потом отыщет Сару О`Коннор, а, возмужав, баллотируется на пост президента США.
чтобы чем-то мотивировать, у подопечных должны быть _потребности_.
а также какое-нибудь представление о способах их достижения.

пирамиду Маслоу в них зафигачить не пробовали?
В том-то и дело, что потребности — это не все. Необходима тяга к чему-то большему.
НЛО прилетело и опубликовало эту надпись здесь
Напомнило Dwarf Fortress.
Спасибо.
Точно! Тоже про DF думал, пока читал.
А наблюдаются ли популяционные волны в вашем мирке:
много травоядных -> много хищников -> мало травоядных -> мало хищников -> много травоядных?

Я так понял, у вас пока реализована только движущий и стабилизирующий формы естественного отбора. Движущий отвечает непосредственно за развитие каких-то способностей, а стабилизирующий за поддержание баланса. Неплохо бы еще реализовать и дизруптивную форму отбора, когда особи одного вида начинают занимать разные ниши и в результате разделяют на два новых вида.

Кстати, а как обстоит дело с размножением? Можно ведь учитывать R- и K-стратегии размножения: R — это как у рыб, когда выживаемость потомства обеспечивается за счет многочисленного потомства, из которого выживает только часть. А К-стратегия — это как у львов, например, когда лучше родить одного дитенка, но зато уж он наверняка выживет.
у нас преподаватель по программированию помешан на таких вещах )
На чем написано ваше творение и чем был выбор языка обоснован?
Как я уже отвечал выше — php, так как более близок и удобен лично для меня :)
НЛО прилетело и опубликовало эту надпись здесь
Возможно, Бог тоже был вначале всего лишь программистом с комплексом бога? =)
Угу. Правда, я полагаю, он использовал нечто более гибкое, чем PHP ;)
Судя по всему, последние две тысячи лет он занимается каким-то другим проектом, хотя раннее активно принимал участие в этом, безусловно интересном, проекте ;)
"""
Всякий, кто читал генетический код, с его багами, закомментированными кусками, криво реализованными функциями — отлично понимает, что Бог не мог создать жизнь на планете. В лучшем случае он писал ТЗ, а создание жизни аутсорсил каким-то индийским богам.
"""
[lj user=nenastja, биолог и программист]

НЛО прилетело и опубликовало эту надпись здесь
Я так понимаю, каждый ген нужно вбивать отдельно и ручками, да? Как например ген держания вместе, ген антиканнибализма (с порогом его преодоления).

Как выбраться из этой ограниченности?
Нет, гены идут на более примитивном уровне. Сплоченность достигается какими-то иными целями, отличными от основных. Например более собранными — чтобы выжить и выживать(размножение).

Антиконнибализм также может быть достигнут идеей сохранения в действующем виде членов своей группы для охоты на врагов, наносящих вред группе. Хотя на любых врагов(даже их вида другой группы) это может не распространяться.

Однако же среди слаборазвитых племен современного мира этот закон действует так же — те народы, у которых в ходу каннибализм — едят лишь тех, кто не из их племени.

Не считая жертвенные приношения из-за предрассудков.
связь «более собранными — чтобы выжить» заложена в скрипте, или они «сами до этого дошли», или как?
Это же основной инстинкт — самосохранения :)

Голод подстегивает на поиск пищи, ослабление организма — на восстановление и так далее.
Ждем продолжения. В следующих сезонах я так полагаю флэксами будет изобретен флэксонет, а затем и флексохабр? :)
«Шитинэша заболел вирусом bsod» Oo
У меня ощущение, что присутствую при историческом событии. При грамотной политике и инвестициях этот проект может стать очень популярным и активно развивающимся.
Успехов Вам!

НЛО прилетело и опубликовало эту надпись здесь
Напомнило bitozoa. Там есть четкое деление на растения, травоядные и хищники. Используются нейронные сети, также есть очень много различных параметров, которые передаются по наследству.
идея, конечно, безумно интересная.
и всёже интересно было бы узнать ТТХ мира, набор характеристик особей, итд.
как моделируюся события — насколько всё это статистическое/радомное.
В далёком 2002 году Microsoft, для популяризации своего нового на тот момент языка программирования C#, запустила проект Terrarium — Был создан описан мир со своими правилами, а программисты могли населять его своими существами. Писали алгоритмы поведения существ и потом их стравливали в банке помещали в общий мир и смотрели за развитием популяции среди других существ. Найти статьи про этот Террариум и сейчас очень легко.
Интересно знать, есть ли на просторах интернета на данный момент что-то аналогичное, пользуется ли популярностью.
Хотелось бы поподробнее услышать о технической части — какие алгоритмы и краткое описание классов, принципы работы, если это не секрет конечно.

Ну и было бы здорово посмотреть программу в живую.

Очень интересный проект.
Картинки протухли. Ссылок нет. Грустьпичаль.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации