J2me - клиент, которого не было.

В данном опусе я планирую поделиться с комьюнити мытарствами в попытках найти возможности для игры с мобильного телефона. В то, уже далекое время, когда телефоны могли запускать только java приложения, а миникомпьютеры, известные как КПК поддерживали только flashplayer 7, который с 2008 года игра перестала поддерживать.

Повествование будет разбито на несколько частей, которые будут публиковаться по мере готовности.
27.07.2017 17:05
 3просмотров 9 0

J2me - клиент, которого не было. Часть 2.

Выбор платформы клиента.

На тот момент у меня было 2 устройства,для которых можно было что-то программировать. Это КПК с WINCE и телефон с поддержкой java в вариации j2me.
В теории, экран КПК больше подходил для показа боёв - 320*240 и 3" экран, но на практике отсутствие нормального интернет соединения(блютуза ещё не было) нивелировало все его достоинства. Дополнительно, написание программ для WINCE оказалось ещё тем удовольствием.
Телефон же - напротив давал и  интернет соединение без задержек напрямую, и удобство в управлении одной рукой ( на КПК без стилуса невозможно было что-то сделать - в итоге заняты были обе руки). И сама система ява оказалась намного удобней в программировании.

Итак, был выбран телефон сименс с экраном 132x176, под который и планировалось писать клиент боёв.



Проектирование интерфейса.


Далее пошло планирование имеющегося размера экрана под стандартное поле 10 на 12.
Даже не так - 12(+2 на героев с краю) по ширине было фиксированным, а по высоте от 10 и выше ужималось автоматически. Нехитрыми расчётами: 132/14= 10*12 карта + 2*6 герои сбоку (их немного ужмём, иначе все не влезают) получает ширину спрайта около 12-14 пикселей (по 1-2 пикселю разрешим спрайтам налазить друг на друга с каждой стороны).

Высоту же, необходимо было спланировать так, чтобы даже в каше 3х3 можно было что то разобрать. Тоесть, юниты не должны полностью перекрываться. 8*3=24 клетки в высоту, + 1 клетка вверху, чтобы не обрезалась верхушка верхних спрайтов, так как спрайты выравниваются по нижнему краю клетки и выступают (если) - то вверх.
Однако, кроме поля боя, необходимо отобразить и шкалу атб и окно сообщений.


Также был введён режим увеличения, при котором поле делилось на 2 вертикальные части, которые и показывались "во весь экран". Данный приём очень помог разбирать кто где стоит в боях с большим полем (гв,2*2,3*3).
Забиндил их кнопками " 3" - вся карта, "6" - увеличенная верхняя половина, "9" - увеличенная нижняя половина.



23.07.2017 15:31
 2просмотров 47 5

Часть 1. Начало.

Шёл  2007й год .
Май, жара, и тут гдето:
18-05-07 16:22: Зарегистрирован. Фракция: Эльф.
я шагнул в гвд :)

Игры браузерные были и тогда, но вот чтобы игра была с реализованной битвой как в оригинальный Героях - такого никто ещё не видел. Такого и не было больше нигде  долгие годы после.

Играл себе я дома по вечерам в гвд, а игра затягивала всё больше и больше. Думаю, многие сталкивались с необходимостью выбора - или уделить вечер семье или поиграть в игру. А ГВД такая игра, в которую зайти на 10-15 минут за вечер очень мало.
Вот, если бы можно было в течении дня время от времени заходить - тогда бы "освободилось" вечернее время для семьи и был бы баланс :) ... в теории, естесственно ;

В начале, в 2007-м игра работала на 7й версии флешплеера, и её можно было играть на КПК. Как это выглядело на деле: а дело в том, что в КПК не было модуля GSM и выход в интернет был возможен через инфрокрасный порт (ИК), работающий на расстоянии полуметра и требующий определённой ориентации обоих устройств. Назвать удобным данное соединение язык не поворачивается, к тому же скорость была раза в 2-3 медленнее 2G.
Но бои можно было загружать. Около минуты-две загружалась расстановка и 2-3 минуты сам бой.
Но это всё меркнет на фоне того, что в _любом_ бою были таймеры. И время на расстановку и ход было очень мало ( это потом его добавили, а в боях соло вообще убрали). Таким образом, расстановка пропускалась вместе с первым-вторым ходом, что как-то влияло на геймплей :)

А в конце 2007 начале 2008 игра перешла на флеш 8й версии, которого для КПК не было, и что печально, не планировалось :( . И с тех пор последний использовался только для ввода кода ГР.




Управление боем без флеша.

И сразу предупреждение : не используйте сами ничего подобного, если вам дорог ваш персонаж. Даже на мультах - основа высчитывается.
Автор в своё время успешно избежал блокировки обратившись напрямую к Администраторам.


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

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

С помощью плагина к браузеру, показывающего все входящие/исходящие запросы вычислил команды и что они делают.

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

И, как это ни странно, но сервер принимал вручную введённые данные (в адресной строке всё вводилось) и двигал картинки :)

Побаловывавшись таким образом пару дней, решил как то упростить ввод данных, да и визуализировать всё это хоть как, не помешало бы. Так как надоело воевать с невидимым, в буквальном смысле, противником невидимой же армией. (дома смотрел эти мультики с фейспалмом :)).