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

Показаны сообщения с ярлыком начало. Показать все сообщения
Показаны сообщения с ярлыком начало. Показать все сообщения

четверг, 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) Нужно делать каждый день, хотябы понемногу. Не позволяйте рутине заслонить от вас процесс.

Ну вот и всё,

Владимир