пятница, 18 ноября 2011 г.

Текущий проект

Привет! Как я и обещал в комментариях к прошлому посту, расскажу немного о том, чем в данный момент занимаюсь.

Собственно, где-то с конца лета я помогал питерским ребятам делать социалку, однако как-то не срослось, через какое-то время устал и ушёл. Совсем не комфортно, когда ты знаешь, что ты кому-то должен что-то и не имеешь над этим контроля.

Ну а делать что-то нужно, без дела слишком уж уныло становится через какое-то время. Поэтому решили с друзьями делать тоже социалку. Тем более что у них тоже были идеи и они мне понравились :).

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

Игра про магию. Больше толком ничего не расскажу. Мы ориентируемся на социалку, однако по стилю игры это не совсем «тупо нажал, получил пряник, подарил пряник другу», там даже есть онлайновые PvP-битвы между игроками. Ну и их заменители, если с онлайном не ок.

Если будет чего рассказать по архитектуре, или ещё по чём-нибудь, то напишу. Тут я не ограничен никакими неразглашениями.

P.S. Эти картинки — скриншоты из экрана создания персонажа, если что :)

5 коммент.:

  1. АнонимныйNov 18, 2011 08:26 AM

    Заебато :) Но магия - довольно заезженно. Можно было бы сделать по какой-нибудь книге научной фантастики

    ОтветитьУдалить
  2. Ну, это конечно можно было бы, однако мы уже слишком много расписали и продумали, чтобы сильно всё так менять.

    Сначала хоть что-нибудь сделаем, а там уже чего-нибудь будем думать.

    ОтветитьУдалить
  3. АнонимныйNov 18, 2011 11:52 AM

    По книге для нубов) это нужно вселенную хорошо знать. Можно и свое придумать

    ОтветитьУдалить
  4. АнонимныйNov 19, 2011 12:05 AM

    А почему выбрали Erlang? В чем его преимущества?

    ОтветитьУдалить
  5. Сложно сказать, в чём преимущества то.

    В конкретном этом случае сильно помогает параллельность, я могу обрабатывать каждого клиента в отдельном потоке, при этом если что-то где-то там у одного закрэшится, то этот поток просто умрёт и никак не повлияет на другие (т.е. ошибка, появляющаяся только с 12 до 13 часов по пятницам не закрэшит сервер на несколько часов, а просто убъёт одного клиента).

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

    Довольно простой синтаксис, конструкций не так уж и много, можно по пальцам посчитать. И при этом это никак не влияет на возможности.

    Много всего есть, например, поведения. Супервизоры (наблюдают за потоками/процессами, рестартуют их, если что-то вдруг пошло не так), gen_server'а (обрабатывают синхронные/асинхронные запросы от клиентов-процессов), gen_event'ы (можно создать EventManager, прикрепить к нему обработчиков, потом говорить EventManager'у о происходящий событиях и оно будет рассказывать обработчикам о этих событиях (например, создать менеджера ошибок, присоеденить к нему обработчика, который бы писал эти ошибки на экран и обработчика, который бы писал ошибки в файл, ну и при оповещении менеджера о ошибке, она будет выведена на экран и записана в файл, ну и если нужно можно отключить один из обработчиков, или всех выключить, или новых добавить). Воот.

    Есть, конечно и недостатки, но простота и скорость разработки перекрывают их в данном случае.

    ОтветитьУдалить