Игры, математика, программирование, и просто размышлизмы

четверг, 20 августа 2009 г.

Сетевые игры, которые может сделать джуниор

Привет всем.

Вот что по моему будет посильно для джуна

1) Самое простое - морской бой. Делать броузерного клиента для неё не имеет смысла т.к. человеку, которому доступен броузер легко найдёт флешовую игрушку поинтереснее. Поэтому клиент лучше всего сделать мобильный использовать для этого можно J2ME, flash light, WinForms mobile, обжектив С если для айфона симбеан си и другие. Выбирай, что ближе. Сервер для игры можно сделать вебовским, используя Java + Spring + Hibernate + MySql. Должна быть авторизация юзера, выбор боёв т.е. список пользователей, которые хотят сейчас играть опционально таблица лучших игроков, чат и так далее. Прикинь, ты сидишь на скучной лекции и играешь со своим другом в морской бой, круто?
Можно ещё написать искуственный интеллект игрока, чтоб играл, когда нет других желающих. Для этого погугли журнал квант, в каком то номере за 80 - й год был алгоритм.
2) Игры типа шашек, шахмат, го и так далее. Тут уже можно сделать и броузерный клиент, делать его лучше используя флеш. Action Script 3.0 по идеологии очень похож на яву, тьюториалов туева хуча. Сервер будет состоять из тех - же частей, что и в морском бое


Дальше идут игры реального времени. Отличие их от первых двух в том, что http - сервером не обойтись, при большой частоте запросов он ляжет даже если игр и игроков мало. Нужно писать сокет - сервер, использовать что - то вроде red5, wowza или WebOrb я не советую. Во первых изучение займёт много времени, во вторых это специфические сервера, они мало где нужны, в третьих нужно понимать как работают сокет - сервера на самом низком уровне, без обёрток. Это поможет в дальнейшей работе.

Итак
3) Worms - погугли и станет ясно. Собственно, эта игра скорее пошаговая, чем риалтайм, но управлять движением червячка лучше через сокет.
4) Арканоид на шестиугольнике. Представьте себе шестиугольник по каждой грани которого ездит тележка и отражает мячик. Каждый игрок управляет своей тележкой, задача отразить мячик (их может быть и несколько) Для усложнения задачи можно поместить в центр окружность от которой мячик будет отражаться.
5) Простейшая стрелялка. По игровому полю ездят несколько танков, каждый стреляет пульками, для упрощения проблем с синхронизацией нужно, чтобы пульки и танки двигались медленно.
6) Можно придумать ещё много таких игр. Главное, чтобы они были простыми, без излишних расчётов и сложностей.

Несколько слов о общем дизайне и организации труда:

1) Никаких принятий решений на клиенте. Весь игровой алгоритм нужно реализовывать на сервере - клиент лишь отображает ситуацию на сервере и передаёт управляющие воздействия: нажатия клавиш, кнопок и т.п.
2) Не экономь на правильном решении - используй шаблоны, библиотеки, тесты везде, где только можно. Ты учишся и в спину тебя никто не гонит.
3) Нужно делать каждый день, хотябы понемногу. Не позволяйте рутине заслонить от вас процесс.

Ну вот и всё,

Владимир

6 комментариев:

orest комментирует...

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

vkozhaev комментирует...

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

Unknown комментирует...

А стоит ли вообще делать сетевые игры? Какие другие варианты Вам кажутся подходящими для junior developer? Да и не забывайте, что разные технологии, языки позволяют сделать один и тот же продукт с разными трудозатратами.

vkozhaev комментирует...

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

andriy dmytrenko комментирует...

Автор сего никогда не задумывался, почему же русский язык вообще в школах преподают? Читать этот поток сознания - крыша едет. Не позорились бы.
С удовольствием не читал бы, но вот в Планету DOU какой-то нехороший человек запихнул...

vkozhaev комментирует...

Я русский, а так - же другие языки учил давно, если подскажешь что не так буду очень благодарен :)