Архив

Архив Январь 2009

ExtJS Tips and Hacks — делаем красивый список с DataStore, DataView и XTemplate

Приветствуем читателей. Этот материал первый в нашей новой рубрике, посвященной различным небольшим хитростям, практикам и просто реализации каких-то частных но интересных или полезных задач при помощи ExtJS. Так как я уже достаточно долгое время работа с ExtJS, начиная еще с версии 1.0, и реализовал уже несколько достаточно сложных проектов, то у меня (и моих коллег-разработчиков) уже набралось некоторое количество таких решений, вот и будем ими делится. В то же время эти заметки некоим образом не рецепт успеха, не объект копи/паста, а часто даже не предмет обсуждения - понятно, что в большинстве случаев можно сделать по другому, лучше, а для каких-то целей наше решение вообще не подойдет, кому-то не понравиться стиль или архитектура. Так что рассчитывайте на эти заметки как на руководство к действию, описание того, что и как вообще можно сделать на ExtJS и как просто на некоторую выжимку чужого опыта. Сегодня мы расскажем вам о создании красивого списка, например, товаров или других объектов, когда надо визуально полностью показать параметры объекта и, допустим, его фотографию. Кстати, почему мы - это решение предложено моим сотрудником и просто хорошим другом, Богданом Хрупой (связаться с ним можно здесь, а также посмотреть его личный блог), так что это наш совместный материал. Читать далее...

AGPsource Game Platform — заметки о способах общения в онлайн играх

27 января 2009 4 комментария

logo3

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

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

Англоязычные подкасты или что послушать ИТ-специалисту

21 января 2009 1 комментарий

332Продолжая тему ИТ-подкастов, начатую в предыдущей статье, сегодня расскажу об англоязычных источниках. На западе подкастинг развивается намного дольше и интенсивнее, поэтому по многим параметрам англоязычные подкасты зачастую лучше русскоязычных. Еще несомненным плюсом их прослушивания будет тренировка восприятия слитной речи и терминологии, что для профессионала будет очень даже полезным навыком. Также замечу, что распространен и формат официальных подкастов, которые ведут сотрудники компаний, основываясь на своем опыте или рассказывая более глубоко и “человечнее”, чем это в сухих пресс-релизах или речах на выставке.

Читать полную версию материала (написана специально для портала developers.org.ua)

AGPsource Game Platform — эксперименты с игровым движком, РНР <> JSON <> JDBC

logo3

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

И так, доступ к базе данных. Изначально мы имеем игру, которая написана на РНР, соответственно, если отбросить промежуточные библиотеки, используется либо mysqli или же PDO, который, в свою очередь, опирается теперь на новый драйвер Mysqlnd. К сожалению, на этом уровне внедрить какие-то более продвинутые методики работы с базой сложно.
Читать далее...

Экзамен для веб-проекта — статья для журнала Хакер

117Статья написана для журнала Хакер и опубликована в 117 номере (сентябрь, 2008). Журнальная версия доступна он-лайн на сайте журнала. Ниже представлена авторская версия, без сокращений (вызванных ограничением объема материала в печатной версии).

Какие тесты есть и какие вам нужны

Вы научились создавать сайты! Да, все эти мучения с изучением HTML, CSS и PHP (или, упаси бог, Perl) закончились и вы теперь создаете реальные веб-проекты и находятся люди (на удивление много!) которые готовы платить за это деньги. Но ведь все не так просто. Просто взять и создать сайт, написать все скрипты и связать с макетами страниц - этого уже недостаточно! Как минимум, от вас требуется проверить работу сайта в самых распространённых браузера и добиться одинакового отображения в каждом из них (поверьте, только одно это доставит вам немало хлопот и бессонных ночей). В процессе работы вы неоднократно захотите проверить, как же загружаются все элементы страницы, как они взаимодействуют и вообще, что это за квадратик воон там, в углу? А самый требовательный заказчик захочет знать, выдержит ли его сайт одновременное нашествие сотен или даже тысяч посетителей, или, если это модное веб-приложение, то захочет проверить, все ли кнопки нажимаются и правильно ли сайт на них реагирует (в зависимости от введённых пользователем данных, а он то может ввести такое...). А вы готовы к этому? Не бойтесь, если что - этот материал вам поможет быстро и легко разобраться в этой хитрой задаче тестирования веб-сайтов.

Сначала давайте разберемся, о каком тестировании будет идти речь. Если вы опытный программист, то при слове "тесты" сразу вспомните различные виды UnitTest или тестирования кода, когда вы вместе с каким-либо алгоритмом сразу пишете для него специальные тесты, всесторонне проверяющие как же работает ваш великий код. Такая известная практика или парадигма проектирования, как "гибкая разработка" (Agile development) предлагает целый принцип создания программ - Test Driven Development (разработка через тестирование). Многие популярные фреймворки имеют в своём составе инструменты и код для быстрого создания таких тестов (юнит-тестов), однако сейчас мы поговорим о немного других тестах. Конечно, тестирование кода на этапе, когда вы увлечённо пишете очередной шедевр, нужная и полезная вещь, однако оставим это программистам, а сами поднимемся немного выше. Читать далее...

WarAliance Game — постмортема проекта он-лайновой браузерной стратегии, часть 2.

logo1Приветствуем наших читателей! Сегодня я продолжу рассказывать о проекте WarAliance, начало читайте в этой статье.

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

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

WarAliance Game — постмортема проекта он-лайновой браузерной стратегии, часть 1.

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

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

Начну с далекого. Последние четыре года (гм.. а может и больше) я плотно работаю над различными проектами в области игровой индустрии, а конкретнее, занимаюсь проектированием и разработкой браузерных игр. Проработав год главным администратором, совмещая в себе и геймдизайнера и техподдержку и комьюнити-менеджера, в отличном проекте SanCity.ru, в один прекрасный момент я ушел оттуда на вольные хлеба. Сначала вместе с несколькими друзьями мы усиленно проектировали и просто мечтали о собственном игровом проекте, однако по ряду причин дальше концепта и первой демки карты и перемещения (кстати, и сейчас реализованное там достаточно уникально для современных игр, думаю, об этом как то расскажу отдельно) мы не продвинулись. Впрочем, думаю, на этом этапе застряло множество команд, вне зависимости от опыта или амбиций. Позже, играя активно в стратегию OGame, мы ее буквально разобрали по косточкам, всю игровую механику, социальную составляющую и т.п., в общем - набирались опыта в анализе успешных проектов (рассматривали все аналогичные игры космической темы). Читать далее...