Привет Гость!
Ты можешь:
Войти или зарегистрироваться

Забыл пароль
Регистрация
Меню сайта
Главная страница
Моды ПК игр Форум Flash игры/журналы Помощь сайту WAP/PDA версия сайта Мы вКонтакте
Категории
Уроки по модификации java [176]
Уроки по переводу java игр [15]
Программы для компьютера [102]
Программы для телефона [85]
Модификация смартфонных игр [15]
Symbian, Android, iPhone и т.д.
Прочее [35]
Уроки по модификации ПК игр [10]
Мини-чат
Главная » Статьи » Уроки по модификации java

18.08.2011, 20:47

Мобильное 3D и адаптация к запуску

Значится чтобы развеять еще один миф - "чего-то насыпать, размешать и будет суп", порассуждаем на тему мобильного 3D.

Зададим себе вопрос - что происходит, когда мы "добавляем в мидлет классы с других телефонов"? Что, неужели появляется поддержка mmf, mp3, подсветки, вибры? Ответ отрицательный. Возникают ли глюки с корректным отображением графики? Ответ положительный.

Так что же мы тогда делаем и почему это работает? Все очень просто: Виртуальная Ява Машина (далее ВМ) есть промежуточное звено между мидлетом и ОС самого телефона. Мидлет работает в своеобразной песочнице, где его изолируют от всех возможностей телефона предоставляя только гарантированный набор, который регламентирован в MIDP и CLDC. Учтем, что этот набор жестко описан и мидлет, написанный только по этим стандартам будет одинаково работать на разных платформах, правда UI (пользовательский интерфейс) может отличаться.

С целью облегчения жизни программистам, увеличения производительности (ведь всегда есть некие особенности реализации ВМ) производители выпустили расширения для стандартов. Например, доступ к файловой системе - по стандартам MIDP 1 и CLDC 1.0 это не возможно.

Итак, допустим, в игре мы используем звуки в mmf. Для этого мы загружаем специальный Нокиевский объект sound, который входит в Нокиевское расширение MIDP 1.0

Запустим такой мидлет на Сименс: при запросе инициализации sound, ВМ начнет искать класс, который отвечает за это и, естественно, не найдет его. ВМ сгенерирует исключительную ситуацию и выдаст сообщение об ошибке. Добавим этот класс в мидлет, теперь ВМ находит объект, инициализирует его, но, фактически, работает с пустышкой, потому что на уровне самой ВМ поддержка этого формата у нас не реализована. Т.е. нами была создана своеобразная "заглушка", с которой большинство мидлетов могут нормально функционировать.

Какие варианты возможны?

  • Расширения просто дополняют стандартные классы, вводя новую функциональность - тогда добавив их в мидлет мы полностью восстановим работу (например расширение для канвы, чтобы воспринимать коды от разных джойстиков)
  • Расширения дают доступ к специфическим возможностям телефона - объекты изолируются на уровне ВМ, т.к. в ней нет для них обработчиков (или ВМ "падает", так например если включить вызов вибры, то стандартный эмулятор из WTK2 падает)

Все это справедливо и для технологии 3D. Функциональность 3D движка описывается, естественно, не в файлах class - они не более чем "обертка", описание интерфейсов создания, инициализации и уничтожения (как например paint() у объекта canvas - это событие связано с экраном и ответственность за него лежит на ВМ). Добавив оберток, мы "конфетку" не получим Единственный путь - писать "враппер", который будет реализовывать функциональность движка средствами другого движка (помните OpenGL через DirectX?? вот тут полная аналогия).

Только для j2me такой враппер НИКОМУ не нужен! Представьте, к примеру, что в CLDC 1.0 нет даже чисел с плавающей запятой: реализация 3D движка силами j2me + другой 3D движок = страшный неповоротливый геморрой.

Автор статьи - iceman345
© Доступно только для пользователей

Категория: Уроки по модификации java | Добавил: Tommy_M | Автор: iceman345
Просмотров: 2324 | Комментарии: 1 | Рейтинг: 0.0/0

Всего комментариев: 1
Спам
sevas   (06.09.2011 08:12) [Материал]
Я непонял к чему это статья?Что мы тут делаем?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

о, привет
Новинки
  • Файлы
  • Статьи
  • Новости

Rise Of Antares
Комментов: 1 | Загрузок: 41
РЕЗНЯ 3D: Not city of sins
Комментов: 0 | Загрузок: 97
Vice Multi-Player 0.1 beta RC 8-4-9-5
Комментов: 0 | Загрузок: 17
GTA San Andreas Beta 1
Комментов: 1 | Загрузок: 170
Galaxy Force 2 FINAL
Комментов: 42 | Загрузок: 1
Haunting abandoned mansion (color mod)
Комментов: 0 | Загрузок: 148
Deadly game Resident Evil 7 DLC
Комментов: 0 | Загрузок: 225
GTA SA FLY
Комментов: 0 | Загрузок: 278
GTA SA Mobile: Definitive Edition
Комментов: 1 | Загрузок: 491
QUAKE
Комментов: 51 | Загрузок: 431

ODN Remake - скриншоты
Комментов: 0 | Просмотров: 46
O. D. N Remake
Комментов: 0 | Просмотров: 117
Новый сайт с мобильными загрузками - Oldfag
Комментов: 7 | Просмотров: 1479
Здорово и вечно 2 свободное человечество анонс номер два
Комментов: 9 | Просмотров: 1408
Дневник разработки "Шизофрения 3D" #2 - Концепция
Комментов: 2 | Просмотров: 1423
Дневник разработки "Шизофрения 3D" #1 - Общая инфа
Комментов: 0 | Просмотров: 1372
Maximum Carnage: No Way Home
Комментов: 0 | Просмотров: 1284
Случайный мод
Fighter Jet Cosmo - это новый мод от AlexRad. Вам предстоит играть за космический корабль в открытом космосе, уничтожая полчища врагов.
2184 335 2 3.5
Статистика
Онлайн всего: 3
Гостей: 3
Пользователей: 0
Пользователи
Гости сайта

[ Нас сегодня посетили ]
При копировании материалов, желательно оставлять ссылку на этот сайт!
© Tommy_M 2009-2024 | Хостинг от uCoz