UEF -- виртуальный мир и игра на его основе

14 views
Skip to first unread message

Zachesa

unread,
Jun 21, 2009, 6:55:54 AM6/21/09
to Erlang в России
Разрабатываю проект, вот примерно структура серверной части проекта
UEF:

1. В распределённой базе данных хранятся все без исключения данные,
это константы, формулы и простые алгоритмы (подпрограммы, функции,
процедуры), а также статичные и динамические данные отражающие текущее
состояние зарегестрированных в системе объектов и сущностей
виртуального мира UEF. Объекты (и сущности) имеют наборы постоянных и
изменяемых свойств, возможность применения функции к объекту или
сущности зависит от определённого набора этих свойств и диапазона их
состояний.

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

3. Обработчики событий не содержат в себе функций и алгоритмов, а
поэтому имеют небольшой объём кода, обработка события происходит за
счёт выборки подходящих функций из базы данных вместе с другими
данными и комбинирования их между собой в зависимости от решаемой
задачи. Применённые комбинации функций и использованные данные
кешируются в оперативной памяти для ускорения доступа к постоянно
используемым данным и функциям.

4. Для повышения быстродействия системы прилагаются максимальные
усилия для оптимизации кода на выполнение паралельных вычислений.
Основная вычислительная мощь направляется на ускорение вывода и ввода
данных в СУБД. Для повышения быстродействия и устойчивости системы
виртуальный мир делится на логически обособленные группы объектов
(звёздные системы, крупные объединения, возможно отдельные
высокоразвитые планеты) которые обслуживаются своим комплектом
менеджеров системы.

5. Каждое действие над объектами легко документируется средствами
СУБД, что позволяет на основе журналов обращений к базе и модификации
значений просматривать историю. Создание новых объектов легко
контролируемо, нет необходимости в их уничтожении. При физическом
уничтожении экземпляра объекта, записи о нём не уничтожаются, а просто
записывается, что объект был уничтожен когда и по какой причине.

Система не будет содержать больших программ. Каждая программа
(менеджер системы, обработчик события) легко модифицируется. Любая
функция может менятся на лету, может иметь варианты (версии) по
быстродействию и точности. Данные доступны для любого обработчика
событий, что позволяет менять логику работы элементов системы на ходу
без правки кода вообще! Добавил новый алгоритм (функцию) и
определённое событие обрабатывается по новому алгоритму.

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

Какие будут мнения у участников группы на этот счёт?

Дмитрий Омелечко

unread,
Jun 21, 2009, 8:12:31 AM6/21/09
to erlang-...@googlegroups.com
а сколько землекопо-часов отведено заказчиком на этот кусок работы? 

21 июня 2009 г. 13:55 пользователь Zachesa <zac...@ya.ru> написал:

Zachesa

unread,
Jun 22, 2009, 6:35:48 AM6/22/09
to Erlang в России
Мне до старости ещё далеко :)

On 21 июн, 23:12, Дмитрий Омелечко <dvar...@gmail.com> wrote:
> а сколько землекопо-часов отведено заказчиком на этот кусок работы?
>

> 21 июня 2009 г. 13:55 пользователь Zachesa <zach...@ya.ru> написал:

Roman Sokolov

unread,
Jun 22, 2009, 11:52:01 AM6/22/09
to erlang-...@googlegroups.com


22.06.09, Zachesa <zac...@ya.ru> написал(а):

http://python.su/forum/viewtopic.php?id=3996

и еще несколько форумов.

прожектёр.


--
Roman V. Sokolov

Mikhail Kashkin

unread,
Jun 22, 2009, 12:56:20 PM6/22/09
to erlang-...@googlegroups.com
Господа, может быть посоветуем какие технологии лучше использовать для
данного проекта?

--
Mikhail Kashkin
http://www.devcult.ru/
http://www.mediavirus.ru/

Дмитрий Омелечко

unread,
Jun 22, 2009, 6:24:56 PM6/22/09
to erlang-...@googlegroups.com
почитал питоновский форум. к-то злые стали, наверное задели за джангу :)

ядро системы похоже на грань ИИ + экспертная система. А посему нужна _ЧЕТКАЯ_ мат.задача после чего выбор языка вопрос прежде всего к команде. Напрашивается LISP для "мозга" :) На нем такие вещи легко пишутся, но тут вопрос снова таки последующей поддержки и кадров. Математика лучше пишется на языках для математиков. 

Веб-морда. Хоть рассылка и по Erlang тут я бы джангу так быстро тоже не сбрасывал. Если откинуть дурацкий ORM (а любой ORM есть зло) и все завязки к нему - то получаем достаточно не плохой фрейм, и разработчиков расплодилось что php-ков. 

Тут у меня попутно вопрос ewgi: http://code.google.com/p/ewgi/wiki/EWGISpecification можно использовать в продакшн?

SQL. Postgresql + plproxy + pgbouncer + londiste. - эта связочка не плохо бесплатно трудится на нагрузках.

Опыт по использованию erlang в больших проектах у меня не большой, но он мне очень понравился, и все потенциальные дыры в производительности отписываю исключительно на нем. Было бы в команде больше увлеченных людей, может и большую часть веба тоже на erlang отписал.

ЗЫ: Как знать, возможно у Вашего проекта большое будущее, при условии что задачи Вы будете ставить конкретнее. 

Удачи :)


22 июня 2009 г. 19:56 пользователь Mikhail Kashkin <mkas...@gmail.com> написал:

Houdini

unread,
Jun 22, 2009, 7:29:21 PM6/22/09
to Erlang в России
Когда код может себя изменять, и делать это на ходу, я бы использовал
руби.
Во многих программах написанных на нем подобные вещи норма. То есть к
примеру вытащить из БД код, который модифицирует поведение какого-то
конкретного объекта, это в руби можно сделать очень просто.

Я не оч большой спец в эрланге но не припомню в нем намеков на мета
программирование.

Эрлангу можно предоставит роль управлять всем этим.

On Jun 23, 2:24 am, Дмитрий Омелечко <dvar...@gmail.com> wrote:
> почитал питоновский форум. к-то злые стали, наверное задели за джангу :)
> ядро системы похоже на грань ИИ + экспертная система. А посему нужна
> _ЧЕТКАЯ_ мат.задача после чего выбор языка вопрос прежде всего к команде.
> Напрашивается LISP для "мозга" :) На нем такие вещи легко пишутся, но тут
> вопрос снова таки последующей поддержки и кадров. Математика лучше пишется
> на языках для математиков.
>
> Веб-морда. Хоть рассылка и по Erlang тут я бы джангу так быстро тоже не
> сбрасывал. Если откинуть дурацкий ORM (а любой ORM есть зло) и все завязки к
> нему - то получаем достаточно не плохой фрейм, и разработчиков расплодилось
> что php-ков.
>

> Тут у меня попутно вопрос ewgi:http://code.google.com/p/ewgi/wiki/EWGISpecificationможно использовать в


> продакшн?
>
> SQL. Postgresql + plproxy + pgbouncer + londiste. - эта связочка не плохо
> бесплатно трудится на нагрузках.
>
> Опыт по использованию erlang в больших проектах у меня не большой, но он мне
> очень понравился, и все потенциальные дыры в производительности отписываю
> исключительно на нем. Было бы в команде больше увлеченных людей, может и
> большую часть веба тоже на erlang отписал.
>
> ЗЫ: Как знать, возможно у Вашего проекта большое будущее, при условии что
> задачи Вы будете ставить конкретнее.
>
> Удачи :)
>

> 22 июня 2009 г. 19:56 пользователь Mikhail Kashkin <mkash...@gmail.com>написал:

Dmitrii Dimandt

unread,
Jun 23, 2009, 2:03:16 AM6/23/09
to erlang-...@googlegroups.com

On Jun 23, 2009, at 2:29 AM, Houdini wrote:

> Когда код может себя изменять, и делать это на ходу, я бы использовал
> руби.
> Во многих программах написанных на нем подобные вещи норма. То есть к
> примеру вытащить из БД код, который модифицирует поведение какого-то
> конкретного объекта, это в руби можно сделать очень просто.
>
> Я не оч большой спец в эрланге но не припомню в нем намеков на мета
> программирование.
>

Самое близкое к нему — это parse ransforms, но это скорее просто
кодогенерация, потому что они отрабатывают на этапе компиляции.



> Эрлангу можно предоставит роль управлять всем этим.
>


Так делают, например, в MochiAds. Веб-морда у них на питоне, вся
логика по рассылке рекламы и ее обработке — Эрланг

Zachesa

unread,
Jun 26, 2009, 8:40:45 AM6/26/09
to Erlang в России
Всем спасибо за ответы.

Более конкретные вопросы возможно появятся позже. Главная идея проекта
моделирование мира вместе с продвинутыми NPC с сильным упором на
алгоритмы искусственного интеллекта.

Вот ещё вопрос: дружит ли Эрланг с CUDA от NVIDIA?

Phil Pirozhkov

unread,
Jun 30, 2009, 7:08:20 AM6/30/09
to Erlang в России
А что, ты планируешь в сервер много видеокарт запихнуть?
Или предложить пользователю установить эрланг на своей машине?

Не обижайтесь, но я тоже придерживаюсь мнения о прожектёре
относительно вас.

Alexey Kalinin

unread,
Jun 30, 2009, 9:09:55 AM6/30/09
to erlang-...@googlegroups.com
Он мат вычисления хочет на них кинуть =)

2009/6/30 Phil Pirozhkov <pirj...@gmail.com>



--
Alexey M. Kalinin
ICQ: 693333
kali...@gmail.com

Mikhail Kashkin

unread,
Jun 30, 2009, 9:19:32 AM6/30/09
to erlang-...@googlegroups.com
Тогда лучше Erlang совмещать с BCI и Augmented
Reality.

Zachesa

unread,
Jul 9, 2009, 3:37:59 AM7/9/09
to Erlang в России
На счёт прожектёра, вполне типичное мнение, тем более учитывая, что я
не профессиональный программист и мои высказывания кому-то могут
показаться нелепыми. Но занимаюсь проектом UEF более года и стараюсь
восполнить пробелы в знаниях.
Знаю, что проект нереально поднять одному и потребуется команда
специалистов, соответственно иллюзий что кто-то займётся этим на голом
энтузиазме не питаю.
У меня стартует небольшой коммерческий интернет проект, который
надеюсь позволит заработать достаточно, чтобы нанять некоторых самых
необходимых специалистов, прежде всего программистов, для развития
этого коммерчекого проекта и работ по проекту UEF.
Но пока суть до дела, некоторые вопросы пытаюсь решать самостоятельно.
Прежде всего хочу определиться с архитектурой проекта и соответственно
с технологиями и инструментами которые понадобятся для этого. Суть в
том что я не хочу попасть в просак и нанять спеца, который будет
навязывать мне удобную для него архитектуру, которая в конце концов не
позволит реализовать какие-то из ключевых моментов проекта
виртуального мира.
Как я понял из ваших постов Erlang можно использовать для системы
менеджеров, управляющая запуском обработчиков событий и контроля их
функционирования, а для самих обработчиков событий лучше использовать
какой нибудь другой язык высокого уровня допускающий
метапрограммирование, как вариант Python или Ruby.

Zachesa

unread,
Aug 4, 2009, 4:50:42 AM8/4/09
to Erlang в России
Работая над проектом и в первую очередь над его архитектурой задумался
над тем, для серверных приложений проекта потребуется наиболее
быстродействующая ось, возможно в ущерб юзабилити для администраторов
и разработчиков, какую операционную систему можете посоветовать, что
поддерживает Эрланг. Может есть ось написанная непосредственно на нём?

Maxim Treskin

unread,
Aug 4, 2009, 4:54:31 AM8/4/09
to erlang-...@googlegroups.com
Сдаётся мне, не работаешь ты ни над каким проектом :)

--
Maxim Treskin

Igor Artamonov

unread,
Aug 4, 2009, 5:09:58 AM8/4/09
to erlang-...@googlegroups.com
В каком конкретно месте у тебя возникли проблемы с производительностью ОСи?
Приведи конкретный пример, его можно решать, иначе проблемы нет.

2009/8/4 Zachesa <zac...@ya.ru>:

--
Igor V Artamonov | www.artamonov.ru | ICQ: 120170178 | Skype: splixed

Mikhail Kashkin

unread,
Aug 4, 2009, 5:22:33 AM8/4/09
to erlang-...@googlegroups.com
Ну почему же сразу не работает. Как
только таблетки перестают действовать
то сразу начинается кипучая
деятельность.

Zachesa

unread,
Aug 5, 2009, 4:18:10 AM8/5/09
to Erlang в России
Сабж не в тему, похоже ты тролль

Zachesa

unread,
Aug 5, 2009, 4:26:06 AM8/5/09
to Erlang в России
Что значит в каком месте? Поставил на винду и учу язык, пока ни каких
затруднений не считая, что для работы с юникодом приходится
извращаться.
Просто как уже писал сейчас прорабатываю архитектуру проекта, вот
думаю на винде не стоит его делать, а возможно на freebsd... Как
говорится мысли вслух.

On 4 авг, 20:09, Igor Artamonov <i...@artamonov.ru> wrote:
> В каком конкретно месте у тебя возникли проблемы с производительностью ОСи?
> Приведи конкретный пример, его можно решать, иначе проблемы нет.
>

> 2009/8/4 Zachesa <zach...@ya.ru>:

Maxim Treskin

unread,
Aug 5, 2009, 5:00:14 AM8/5/09
to erlang-...@googlegroups.com
Пока что тебе только кажется, что ты что-то разрабатываешь. Но больше это походит на троллинг и пустозвонство.
На данный момент ты только изучаешь язык и то, как на нём разрабатывать, до непосредственной разработки ещё далековато.
И как, интересно, на архитектуру софта на ерланге может влиять выбор операционной системы? Само собой, на UINIX-like системах всё делать проще, но выбирать конкретно, freebsd, solaris, linux или что-то ещё, можно только имея достаточные знания об этих системах.
Пока что твои сообщения выглядят пространственными рассуждениями, оторванными от реальности, к разработке ПО они не имеют отношения. Весь "проект" выглядит как расписание основных преимуществ ерланга:

1. В распределённой базе данных хранятся...
2. Децентрализованная система менеджеров обработчиков событий...
4. Для повышения быстродействия системы прилагаются максимальные усилия для оптимизации кода на выполнение  паралельных вычислений...
5. Каждое действие над объектами легко документируется средствами СУБД...

В общем, писанина на уровне "менеджера по маркетингу", к разработке ПО, а уж тем более, к ерлангу отношения не имеет.
Так что не надо троллить.

--
Maxim Treskin

Zachesa

unread,
Aug 6, 2009, 5:58:06 AM8/6/09
to Erlang в России
>Весь "проект" выглядит как расписание основных преимуществ ерланга:

Самое интересное, что это всё я писал до того, как мне предложили
обратить внимание на Эрланг :)

Программирование на Эрланге я изучаю для общего развития так сказать,
сам писать программы для проекта не буду, так как не имею достаточно
опыта программирования. Для проекта проработаны структура и
взаимосвязи объектов и сущностей виртуального мира, написан концепт.
Сделаны наброски по экономической и социальной моделям мира. Возможно
программисту работа геймдизайнера не совсем понятна, но это уж не мои
проблемы, а ваши. Вопросы задаю конкретные, не знаете что отвечать
молчите...

Igor Artamonov

unread,
Aug 6, 2009, 9:44:01 AM8/6/09
to erlang-...@googlegroups.com
Где прозвучали конкретный вопросы? Я даже просил задать конкретный вопрос:
# В каком конкретно месте у тебя возникли проблемы с производительностью ОСи?
на что был получен ответ что
# Поставил на винду и учу язык, пока ни каких затруднений
из чего становится понятно что проблемы не было, цифр на руках нет, и
вообще вопрос не стоял, ответ ничего не решил бы, а просто хотелось
пошуметь.

В общем конкретного вопроса, по делу, еще не было.

А вопросы типа "посоветуйте чтонить чтобы было круто, пока не знаю
зачем" ни в коем разе не считаются конкретными, даже наоборот.


2009/8/6 Zachesa <zac...@ya.ru>:

--

Reply all
Reply to author
Forward
0 new messages