Долго искал открытый и бесплатный ММО движок в интернете. Либо это был откровенный бред, либо платный проект. Вообще, этих движков среди компаний, делающих ММО РПГ, полно, но каждая компания пишет свой движок. Единого стандарта нет. Пришлось самому его писать — и я таки сделал это. Долго продумывал интерфейс библиотеки. Потом также долго воплощал в жизнь. Потом допиливал безопасность (AES и RSA на основе OpenSSL, проблема «Man-in-the-middle» устранена). Движок получился кроссплатформенным (работа с сетью благодаря boost). Обмениваться пакетами можно как с помощью TCP, так и UDP.
Читать полностью »
Рубрика «Программирование» - 869
Описание ММО компонента в составе игрового движка «Tornado»
2014-08-20 в 10:10, admin, рубрики: c++, game development, MMO, openssl, Программирование, сетиУчим детей делать игры
2014-08-19 в 11:48, admin, рубрики: Scratch, stem, дети, образование, обучение, ПрограммированиеХочу рассказать о некоммерческом проекте Кодабра. Здесь мы учим детей программировать и создавать игры.

Предыстория
Как-то пришло осознание того, что максимум удовольствия в этой жизни фаундерам приносят три процесса — программирование, обучение других и общение с детьми. Мысли стали активно бурлить по поводу школы для детей, а активные действия начались с января 2014. Нас вдохновили такие проекты как codeclub.org.uk, code.org, cs-first.com. И мы решили использовать их опыт и организовывать бесплатные уроки на базе существующих школ, детских домов и иных детских учреждений.
Явный акцент сделали на мотивацию детей. Мы учим их делать мультфильмы, компьютерные игры, творить в цифровой вселенной.
Memcached в PHP Kohana и его тестировние
2014-08-18 в 13:26, admin, рубрики: Kohana, php, ПрограммированиеУже много описано про memcache, однако я помучался прежде чем нашел оптимальный вариант для одного проекта на PHP, достаточно ресурсоемкого с большим объемом расчетов в Kohana.
Memcache пришлось отфутболить сразу же, так как когда ключей набегает пару сотен, нереально отследить, когда и какой ключ нужно убить. Смотрел в сторону MemcacheTag, где применено использование тэгов для объединения нескольких ключей, однако он оказался слишком сырым и весьма неудобным для работы. В конце концов был найден самый, на мой взгляд, оптимальный вариант работы с memcached.
Описание принципа работы данной технологии лучше всего посмотреть здесь
или на первоисточнике.
Я же напишу как подключать и использовать в фреймворке Kohana, каким образом отследить ключи кэшей и собственно протестировать как работает кэширование в проекте.
Итак, начнем:
Читать полностью »
Распродажа книг по Linux
2014-08-18 в 10:46, admin, рубрики: linux, издательство питер, Программирование, электронные книги 
Издательство Питер решило освободить полки от компьютерных книг. Объединили последние актуальные книги по Linux в серию, добавили epub версии и, конечно же, специально для Хабры сделали скидку от прайсовых цен.
Читать полностью »
Минкомсвязи хочет увеличить количество программистов в России с 350 тыс до 1 млн
2014-08-18 в 8:24, admin, рубрики: информационная безопасность, Минкомсвязи, Никифоров, ПО, Программирование, программистыВыступая на молодежном форуме «Таврида-2014» глава Минкомсвязи Николай Никифоров высказал мнение, что Россия должна заботиться о сохранении информационного суверенитета страны:
Светодиодный «смайлик». Технология мультиплексирования методом «Чарли»
2014-08-15 в 10:00, admin, рубрики: arduino, печатная плата, Программирование, светодиоды, сделай самПривет всем!
Хочу рассказать историю появления одного устройства, на примере которого я начал учиться работать с электроникой. Возможно, это будет интересно тем, кто тоже хочет приобщиться к сообществу разработчиков электроники, но не знает, с чего начать.

Под катом я попробовал рассказать о том, что у меня получилось, как я это сделал и что хочется сделать дальше.
Читать полностью »
Реализация перечислений (Enum) в PHP с проверкой типа
2014-08-14 в 14:34, admin, рубрики: enum, php, ПрограммированиеИногда в коде приходится использовать строго типизированные параметры, однако сам язык PHP не является строго типизированным (как, например, C#, в котором присутствует такой тип данных, как перечисления – Enum). Однако выход из данной ситуации все равно можно найти. Порывшись по просторам интернета я так и не нашел подходящего мне решения. Предлагаю вам мое решение данной проблемы.
Проблема заключалась в следующем. Необходимо реализовать функцию, которая бы на вход принимала строго типизированный объект (класс), однако в теле функций необходим перебор значений данного класса и сравнение его с предопределенными константами (этого же класса):
Читать полностью »
Разбираемся с прямым и обратным порядком байтов
2014-08-14 в 11:49, admin, рубрики: перевод, ПрограммированиеПеревод статьи Халида Азада — Understanding Big and Little Endian Byte Order
Проблемы с порядком байтов очень расстраивают, и я хочу избавить Вас от горя, которое довелось испытать мне. Вот ключевые тезы:
- Проблема: Компьютеры, как и люди, говорят на разных языках. Одни записывают данные “слева направо” другие “справа налево”. При этом каждое устройство отлично считывает собственные данные — проблемы начинаются, когда один компьютер сохраняет данные, а другой пытается эти данные считать.
- Решение: Принять некий общий формат (например, весь сетевой трафик передается в едином формате). Или всегда добавлять заголовок, описывающий формат хранения данных. Если считанный заголовок имеет обратный порядок, значит данные сохранены в другом формате и должны быть переконвертированы.
Как мы делали XVM — популярный мод для World of Tanks. Часть вторая: развитие серверной части
2014-08-14 в 11:34, admin, рубрики: game development, Gamedev, wargaming.net, XVM, оленемер, Программирование 
Приветствуем, уважаемое читатели! Сегодня мы продолжаем начатый в первой части рассказ о создании модификации XVM (eXtended Visualization Mod) для игры World of Tanks. Во второй части вас ждет описание истории развития серверной части мода.
Читать полностью »
Рентабельный код
2014-08-13 в 12:43, admin, рубрики: best practices, код, Программирование, проектирование, Проектирование и рефакторинг, разработка, риски, управление проектами, черный властелинЖили-были в двух соседних деревушках Вилларибо и Виллабаджо две команды разработчиков. И те и другие делали ревью кода, писали тесты, приводили рефакторинг, но через год разработки в Вилларибо уже выпустили релиз и вышли в продакшн, а в Виллабаджо все еще проводят рефакторинг и чинят баги. В чем же дело?
Разработка ПО – область, подверженная рискам. В нашей сфере при наступлении одного или нескольких рисков, срок поставки рабочей версии может сдвинуться не на привычные и комфортные 10-20%, а на все 150-300%. И надо признаться, что это далеко не предел.
Мы можем либо скрестить пальцы и надеяться, что удача будет сопутствовать проекту во всем, либо признать, что по статистике большая часть проектов по разработке ПО «проваливается» и предпринять дополнительные усилия по ослаблению возможных рисков.
Моя практика показывает, что клиенты крайне неохотно работают по схеме T&M и чаще предпочитают Fixed Price. В условиях зафиксированной стоимости наступление рискового случая означает автоматическое снижение рентабельности проекта: сотрудники получают зарплату ежемесячно, а не за сданные проекты.
До Agile и XP вся ответственность за работу с рисками ложилась на менеджеров. В гибких методологиях разработчики гораздо больше вовлечены в процесс и делят ответственность с менеджерами. Однако, принципы XP и Agile – больше методологические, чем технологические. Я думаю, что с рисками эффективнее работать комплексно на всех уровнях, в том числе на самом низком уровне, т.е. во время проектирования и написания кода.
Почему об этом следует думать разработчику, если есть менеджер?
- Не секрет, что если факап случится, менеджмент примет единственное «супер-умное» решение: «давайте поработаем сверхурочно и в выходные»
- Премии сотрудники получают тоже обычно за в срок сданные, а не за проваленные проекты
- Чувство сделанного дела, в конце концов. Гораздо приятнее сдать проект во время и видеть улыбку клиента, чем с опозданием в пол года отвязаться от «трудного ребенка»
С моей точки зрения спокойная рабочая обстановка вместо авралов и бонусы – неплохая мотивация, чтобы начать заботиться об этом.
Читать полностью »
