Нужно разработать быстрый клиент для игры в покер на windows машинах, но лучше кросплатформенно.
Пишу на Python/Django дружу с JS.
Так же делаю иногда игры на GameMaker studio.
Теперь вопрос, в какую сторону копать, что изучить?
Вариант (как я считаю):
- заняться колхозом: сделать на джанге и все заверстать (Django + html + css+ js)
- сделать игру в GM на html5 + сокеты и раскурить торнадо или тарнадис и т.п. (html5, tornado, tornadis и т.е. не знаю, как это лепят)
- сделать игру в GM на html5 + сокеты, а ради сервера раскурить NodeJS
Или может другие инструменты больше подойдут?
Что посоветуете? Есть всего 6 месяцев.
А чем обусловленная повышенная надежность у эрланга по сравнению с нодей?
У меня хорошие знание питона (года 3-4), как быстро могу вникнуть в эрланг и сделат проект?
Кратко - ерл делали, как надежный язык, для многопоточной обработки информации.
Скорость обучения - штука индивидуальная.
Попробуй elixir-lang.org/getting_started/1.html
Но, повторюсь, выбор решения тут на стороне клиента - ты не знаешь что ему нужно и что он расчитывает получить
Ну мы планируем дублировать функционал, чтобы над клиентом особо не издевались. Ну делали-то делали, но действительно нужно-ли ради этого уходить на другой язык?
Что даст ерл:
- горизонтальную масштабируемость (добавил сервак = держишь х2 соединений),
- утечки памяти - сделать очень сложно (если сделал, то это проблемы только конкретной сессии)
- хочешь задеплоить, когда у тебя висят клиенты - без проблем и довнтаймов
- похерился при деплое, все плохо - ерл сам откатиться на предыдущую версию
- надо держать 100к+ клентов на стандартном серваке - будет круто сделать это на торнадо и обыденно делать на ерланге
Вклинюсь в тред. Могу проконсультировать про Erlang в частном порядке.
Касаемо пунктов выше:
> - горизонтальную масштабируемость (добавил сервак = держишь х2 соединений),
да, но сервер должен быть спроектирован соотвествующим образом, т.е. это не просто пишешь пишешь, а потом хуяк и на 10 машин сделал сервак.
> - утечки памяти - сделать очень сложно (если сделал, то это проблемы только конкретной сессии)
сами по себе их нет, но если написал кривую логику, и что-то где то не очищается, а копится (например в ETS-таблицах) то конечно будет течь.
> - хочешь задеплоить, когда у тебя висят клиенты - без проблем и довнтаймов
ограничено, можно конечно на горячую переходить с версии №1 на версию №2, но для этого надо писать своего рода "миграции" текущего состояния сервера. Если состояние сервера не меняется (меняется какая-то логика, но внутренние структуры остаются не изменными), то обновляться на горячую можно легко и спокойно. Т.е. опять же вот просто так хуяк хуяк и ты нагорячую обновился --- не получится, надо готовится к этому. А сам язык конечно позволяет.
> -похерился при деплое, все плохо - ерл сам откатиться на предыдущую версию
Вот не откатится он на предыдущую, если сам руками не заменишь нужные модули на старые. Но опять же см пункт выше про "миграции". Все должно быть подготовлено.
> - надо держать 100к+ клентов на стандартном серваке - будет круто сделать это на торнадо и обыденно делать на ерланге
да это так. Обыденно. Главное чтобы памяти хватило :), ну там тюнинги и т.п. не отменяются. Ну и конечно структура ПО должна соотвестствовать.
Что касаемо Elixir --- соваться не советую, у него значительно меньше комьюнити, чем у чистого ерланга, и по сути ничего нового он не привносит. Только меняет одну "непонятную" (Erlang) форму записи на другую как будто более понятную (ruby like) форму, что на самом деле не особенно актуально для ерлангистов (они же ведь ерлангисты). Внутренности там одни и теже, это beam виртуальная машина исполнения байт кода.
По сути обычная браузерная онлайн игра.
Серверную часть делаете сами, для визуальной части используете какую-нибудь библиотеку или движок. html5gameengine.com
Здесь не полный список, можно ещё много найти.