На мой призыв рассказать о своем проекте откликнулись несколько человек. Один из них согласился ответить на мои вопросы.

skitched-20100423-200157.png
(ссылка с картинки ведет на сайт игры)

Об игре

Gum Wars — Это казуальная стратегия с возможностью играть онлайн с другими игроками. В приложении реализован comet способом polling, т.е. браузер постоянно посылает к серверу запросы на новые события. В качестве сервера используется Google App Engine.

Автор проекта Григорий Темченко, персональный блог Soid.

Краткое интервью

Какие технологии используются на серверной стороне?

Я использовал Python, и выбор обусловлен, конечно, удобством для меня. Во-первых, у меня уже был некоторый опыт работы с ним. Во-вторых, пользуясь случаем, хочу поругать Java'вские IDE. Очень уж они медленные, а это для меня достаточно важно (недаром я все еще продолжаю использовать vim как редактор кода). А без IDE Java громоздка и страшна. В остальном я использую webapp фреймворк и разные части django, вроде шаблонов, форм, сериализации.

Какие сервисы предоставляемые Google задействованы?

Для отрисовки игры на клиенте я использовал Google Maps API 2-ой версии. Из App Engine сервисов используется memcache, datastore, queues, cron. Кажется, все.

Что можно кратко рассказать о технической реализации?

Профили пользователей и подобные постоянные записи хранятся в Datastore. Самое интересное - это обработка polling, организация потока сообщений в условиях, когда каждый пользователь присылает запрос раз в секунду. Для этого частично использован memcache, частично Datastore (для важных данных). Есть в планах кешировать в памяти App Cache, но от memcache это пока не избавит.

Сколько времени заняла реализация проекта?

В течение трех месяцев я старался выкрадывать время на выходных, праздниках и иногда по вечерам, чтобы довести проект до приемлемого состояния. Хотя основная часть была сделана в Великие русские новогодние праздники, в остальное время оказалось довольно проблематично заставить себя заняться делом, работая в режиме 5/2 и тратя 2 часа в день по дороге на работу.

Были ли какие-то сложности специфические для GAE?

Конечно, любая новая технология вызывает определенные сложности. То, к чему привыкли разработчики на SQL, оказывается неправильным в идеологии GAE, во многих привычных вещах приходиться до смешного бороться за производительность. С одной стороны это сложности, но кому-то это может оказаться "по кайфу".

Вопросы

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

Еще раз ссылка на сайт http://www.gumwars.com

Если у вас есть интересный проект работающий на Google App Engine, то я бы с удовольствием рассказал о нем в своем блоге



blog comments powered by Disqus

Support

If you like my posts, please support me on Gittip

Published

15 March 2011

In tags we trust

Fork me on GitHub