LodeRunner Постановка задачи Общая постановка задачи: ------------------------ Данное приложение "LodeRunner" создается и будет предназначено для игровых целей для WEB. Данное игровое приложение - однопользовательское т.е. расчитывается на одного человека, который будет играть против компьютера, управляя персонажем в игре. Данное приложение планируется реализовать на языке Java и реализовать в виде Java аплета, которое можно поместить в Internet и сделать доступным для игры любому человеку. Общее описание игры: -------------------- "LodeRunner" - это аркадная игра, суть которой заключается в том, что игрок управляет маленьким человечком, который должен бегать по уровню (состоящему из этажей и лесенок, соединяющих эти этажи) и собирать ящики. Если игрок собирает все ящики, то появляется выход, в который игрок должен попасть, чтобы пройти на следующий уровень. Сложность игры заключается в том, что игроку мешают другие человечки, которыми управляет компьютер, и которые пытаются помешать игроку, преследуя его. Столкновение игрока с данным человечком ведет к смерти игрока и потери жизни. Детальное описание игры: ------------------------ Главный герой: Маленький человечек, который способен передвигаться по уровню вправо/влево (если он находится на этаже), а также вверх/вниз (если находится на лестнице). Главный герой управляется при помощи клавиатуры (Клавиши уточняются в процессе написания игры. Возможно также переопределение клавиш в самой игре). Главный герой, кроме того, что он может бегать, также способен собирать ящики (см. описание ящиков), а также способен рыть ямы (перед собой), правда только в том случае, если находится на этаже, и клетка перед ним построена из кирпича (см. также описание уровня). Враги: Это человечки, которыми управляет компьютер. Передвигаются по уровню по таким же правилам, как и главный герой. Обычно, в самом начале уровня находятся на разных этажах, чтобы не создавать толпы. С течением времени враги начинают охотится за главным героем, пускаясь за ним в погоню. Так как врагами управляет копьютер, то в программе должен присутствовать технический интеллект, управляющий данными человечками (чем сложнее уровень, тем умнее должны быть враги). Также, чем сложнее уровень, тем больше врагов может быть. Уровень: Как было сказано ранее, уровень представляет из себя многоэтажный лабиринт или можно сказать игровую комнату, где этажи соединены лестницами. Каждый участок этажа построен из какого-то материала. Разновидностей материала два - кирпич (можно рыть ямы) и бетон (нельзя рыть ямы). Вырытая яма в лабиринте через некоторое время зарастает и если игрок или враг в момент зарастания ямы находится в ней, то он погибает. Если погибает враг, то он восстанавливается в игре, падая с верхнего края экрана. Ящики: По всему уровню раскиданы ящики (положение ящиков, игрока и врагов задается в файле определения уровня), которые могут быть собраны как главным героем, так и врагами (в случае, если ящик собирает враг, то он обязан этот ящик положить обратно, в доступное для главного героя место. А также, если в случае смерти врага в зарастающей яме, если он имеет ящик, то этот ящик появляется над ямой). Ящик собранный героем, защитывается на его счет и в тот момент, когда все ящики собраны, появляется новая лестница, ведущая на вершину экрана, забравшись по которой игрок проходит уровень. Враги не могут переносить более одного ящика. Очки: В игре ведется подсчет очков. Очки начисляются за каждый собранный ящик, а также за время прохождения уровня (чем меньше время прохождения - тем больше очков). Также в игре ведется учет результатов, т.е. Top участников. Конкретная формула подсчета очков может быть вычисленна в процессе проектирования программы. Типы должностей и разделение труда: ----------------------------------- При разработке данного игрового приложения потребуются люди со следующими навыками (специализацией): * Руководитель проекта - ответственность за организацию и руководство проектом * Главный программист - проектировка структуры приложения, реализация скелета приложения * Программист(ы) - реализация приложения на языке Java * Проектировщик уровней - разработка и тестирование уровней * Дизайнер - разработка всех графических элементов в игре и разработка общего вида приложения * Тестер(ы) - тестирование данного приложение * Составитель документации - создание и поддержка документации, а также создание всего необходимого материала для презентации