doom2d.org

Главная база плоских морпехов
It is currently 24 Oct 2020, 01:02

All times are UTC + 3 hours




Post new topic Reply to topic  [ 98 posts ]  Go to page 1, 2, 3, 4, 5  Next
Author Message
 Post subject: Doom 2D Mobile
PostPosted: 24 Mar 2014, 17:18 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 372
Location: Equestria
Попытка перенести старый добрый двухмерный русский дум в мобильный телефон. Всё это дело пишется на MidletPascal 3.5 с небольшим использованием java и jvm-ассемблера. Как всегда, обещать ничего не могу и с успехом могу всё забросить, но делаю пока есть желание и время.

Build 1:

Умеет загружать карты из оригинального Doom 2D и рисовать их, есть немного физики.

Управление:
Джойстик/2/4/6/8 - двигать игрока
0 - вкл/выкл режим полёта.

Скачать


Build 2:

Изменения:
- Исправлена обрезка
- Прикручен счётчик и ограничитель фпс
- Рисуется небо
- Закрытые двери не пропускают игрока, по ступенькам можно лазить(пока сделано через ж), в воде/кислоте можно плавать, на лифтах можно ездить(не проверено)

Управление:
Джойстик/2/4/6/8 - двигать игрока
0 - вкл/выкл режим полёта.
Кнопка 9 - вкл/выкл ограничитель фпс
Кнопки */# - загрузить пред/след уровень, не работает из за русского в названиях и недостатка этих самых текстур в архиве игры.

Скачать


Build 3:

Изменения:
- Добавлены [недо]монстры.
- Добавлены триггеры "открыть дверь", "закрыть дверь" и "дверь". Требования к ключам пока игнорируются.
- Ещё загружаются MAP02 и MAP03. Для остальных нужно всего лишь добавить текстур.
- Что то там ещё, не помню что.

Управление:
Джойстик/2/4/6/8 - двигать игрока
0 - вкл/выкл [недо]ai.
1 - активировать триггер
7 - изменить контролируемого монстра
9 - вкл/выкл ограничитель фпс
*/# - загрузить пред/след уровень

Скачать


Build 4:

Изменения:
- Добавлены триггеры:
-- Выход
-- Секретный выход(чем он отличается от обычного?)
-- Дверь 5 сек
-- Секрет(работает, но увидеть это пока что не возможно)
-- Расширитель
-- Телепорт
-- Лифт вверх
-- Лифт вниз
-- Лифт
- Типы активации триггеров ("игрок нажал", "игрок близко" и др) привязываются к типу монстра
- Уровень №19 загружается
- Начато введение графики и анимации монстров. Пока что рисуются все объекты на карте, так что тормоза на реальных устройствах неизбежны.

Управление:
Джойстик/2/4/6/8 - двигать игрока
0 - вкл/выкл [недо]ai.
1 - активировать триггер
7 - изменить контролируемого монстра
9 - вкл/выкл ограничитель фпс
*/# - загрузить пред/след уровень

Скачать


Build 5:

Изменения:
- Исправлено небо.
- Монстры с [недо]ai действуют адекватнее и у них отображется то, куда они смотрят.
- Монстры "просыпаются" если увидят игрока.

Управление:
Джойстик/2/4/6/8 - двигать игрока
0 - вкл/выкл [недо]ai.
1 - активировать триггер
7 - изменить контролируемого монстра
9 - вкл/выкл ограничитель фпс
*/# - загрузить пред/след уровень

Скачать


Build 6:

Изменения:
- Добавлены предметы(пока ничего не делают)
- Исправлена загрузка файлов с русскими назнаниями, список подмены названий более не требуется.
- Новая система текстур.

Управление:
Джойстик/2/4/6/8 - двигать игрока
0 - вкл/выкл [недо]ai.
1 - активировать триггер
7 - изменить контролируемого монстра
9 - вкл/выкл ограничитель фпс
*/# - загрузить пред/след уровень

Скачать



Top
 Profile  
 
 Post subject: Re: Беседка
PostPosted: 24 Mar 2014, 17:20 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5915
Location: Владивосток
DeaD DooMER wrote:
Товарищи, есть у кого человеческое описание формата карт классического дума 2Д?
А в чём проблема посмотреть исходники D2D и/или конвертера LMP2MAP?

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
 Post subject: Re: Беседка
PostPosted: 24 Mar 2014, 17:27 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 372
Location: Equestria
Совершенно не умею читать чужой код.

UPD:
Пока всё таки попробую поковырять исходники, может что пойму.


Top
 Profile  
 
 Post subject: Re: Беседка
PostPosted: 24 Mar 2014, 18:10 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5915
Location: Владивосток
Да там-то и читать нечего, структура формата и типы блоков расписаны в отдельном файле что в D2D, что в LMP2MAP.
А зачем тебе, если не секрет?

UPD: Отделил тему.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 24 Mar 2014, 21:05 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 372
Location: Equestria
Черный Думер wrote:
Да там-то и читать нечего, структура формата и типы блоков расписаны в отдельном файле что в D2D, что в LMP2MAP.

Уже частично разобрался, теперь сижу, пытаюсь понять как работает сжатие блоков фона, типов тайлов и переднего плана.
Черный Думер wrote:
А зачем тебе, если не секрет?

Уже года два хочу засунуть Doom2D в телефон(жаба-звонилки), сейчас пытаюсь это сделать. Уже написал самую основу для игры, но многое не добавить без редактора карт, тестировать проблематично, а делать его скучно. Конечно, не могу гарантировать что оно будет доделано, уже не первый раз бросаю.


Top
 Profile  
 
PostPosted: 24 Mar 2014, 21:13 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5915
Location: Владивосток
Разве там есть сжатие?
А D2D для телефонов - это круто. Дерзай.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 24 Mar 2014, 21:21 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 372
Location: Equestria
Ничего другого о этой функции сказать не могу, размер блока меньше чем 10000 байт.

Code:
static void unpack(void *buf,int len,void *obuf) {
  byte *p,*o;
  int l,n;

  for(p=(byte*)buf, o=(byte*)obuf, l=len; l; ++p, --l)
   if(*p==255) {
    n=*((word*)(++p));
    memset(o,*(p+=2),n);
    o+=n;
    l-=3;
   }
  else
   *(o++)=*p;
}



Top
 Profile  
 
PostPosted: 24 Mar 2014, 23:01 
Offline
User avatar

Joined: 08 Dec 2012, 18:42
Posts: 622
Location: Куда?
Ты не понял, что она делает, или просто привел пример, что есть сжатие?
Если первое, то: если в файле байт равен 255, то за ним 2 байта - количество (n), еще 1 байт - символ, которым заполняются n байт в выходном буфере.


Top
 Profile  
 
PostPosted: 24 Mar 2014, 23:47 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 372
Location: Equestria
Уже разобрался, весело сегодня. :)
Вот что получилось:
Attachment:
doom2d_b1.zip [20.68 KiB]
Downloaded 144 times

Джойстик или 2/4/6/8 двигает игрока, 0 включает режим полёта. Поддерживаются одновременные нажатия.


Top
 Profile  
 
PostPosted: 25 Mar 2014, 03:55 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5915
Location: Владивосток
Посмотрел. Уже неплохо.
Конечно, работа предстоит ещё большая (как минимум портирование оригинальной физики и написание игровой логики и ИИ монстров), но я надеюсь, что рано или поздно что-нибудь да выйдет. :)
Как насчёт преобразования этой темы в тему по проекту? Если согласен, то переименуй её и напиши что-нибудь содержательно-информативное в первый пост.

Два пожелания от увиденного:
1. Слишком яркие текстуры жидкостей. Возьми лучше из Doom2DMP. Светофильтрами же если и делать, то с возможностью отключения - не каждый мобильник потянет.
2. Текстуры и спрайты придётся, я так думаю, делать из тех, что сейчас в Doom2D:F, уменьшая их с применением интерполяции. Потому что текстуры из оригинального D2D хоть и подходят по разрешению, но уменьшены очень криво.

Если понадобится иконка, то могу нарисовать.

Да, вот скрины для тех, кто не хочет качать:

Image Image

Тем, кто хочет посмотреть сам, могу порекомендовать для этого отличный эмулятор KEmulator.

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
PostPosted: 25 Mar 2014, 10:47 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 372
Location: Equestria
Черный Думер wrote:
Как насчёт преобразования этой темы в тему по проекту? Если согласен, то переименуй её и напиши что-нибудь содержательно-информативное в первый пост.

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

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


Top
 Profile  
 
PostPosted: 25 Mar 2014, 18:51 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
Прикоооольно :) Nokia N97 Mini, полёт нормальный. Хотя медленно, это так должно быть или моя мобилка тупо не тянет?

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
PostPosted: 25 Mar 2014, 21:10 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 372
Location: Equestria
St.AnGer, Обрезка не корректно работает, сегодня ещё одну версию выложу, там это профиксено. На полу-убитом SonyEricsson k530i в местах где не так много текстур фпс 70-100, там где вода на весь экран ~30.


Top
 Profile  
 
PostPosted: 25 Mar 2014, 22:55 
Offline
Приколист
User avatar

Joined: 17 Oct 2009, 21:30
Posts: 1127
Location: оттуда
Ахахаха. На w300i пашет. Но не работает кнопка назад. И когда ушел к "выходу" просел фпс нехило так.
Attachment:
DSC_2476.jpg
DSC_2476.jpg [ 120.53 KiB | Viewed 7563 times ]

_________________
Image


Top
 Profile  
 
PostPosted: 25 Mar 2014, 23:14 
Offline
User avatar

Joined: 04 Feb 2010, 14:42
Posts: 372
Location: Equestria
Изменения:
- Исправлена обрезка
- Прикручен счётчик и ограничитель фпс
- Рисуется небо
- Закрытые двери не пропускают игрока, по ступенькам можно лазить(пока сделано через ж), в воде/кислоте можно плавать, на лифтах можно ездить(не проверено)

Кнопка 9 - вкл/выкл ограничитель фпс
Кнопки */# - загрузить пред/след уровень, не работает из за русского в названиях и недостатка этих самых текстур в архиве игры.
Attachment:
doom2d_b2.zip [105.27 KiB]
Downloaded 141 times

Физику из оригинала пока не стал трогать, пока займусь вводом монстров для дальнейшей реализации оружия и триггеров.

UPD: Изменил первое сообщение.


Top
 Profile  
 
 Post subject: Re: Doom 2D Mobile
PostPosted: 26 Mar 2014, 07:13 
Offline
Приколист
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 5915
Location: Владивосток
Небо рисуется неправильно.

Image

Сделай так, чтобы оно растягивалось по размеру игрового поля. Да, я не думаю, что там нужен Hi-Res 256x256 (ну, это по меркам мобильников). Обычного 128x128, ИМХО, хватит с лихвой, особенно учитывая тот факт, что разрешение у труЪ-мобильников дальше 320x240 не ушло.
Вот, уменьшил по-человечески, держи:
Attachment:
doom2dm_rsky.zip [37.93 KiB]
Downloaded 110 times

Да, есть небольшой совет. Дабы не жрать драгоценную память, неплохо бы пересохранять все текстуры с аккуратным подбором настроек сжатия PNG. Я для этого использую FastStone Image Viewer. Это помогает неплохо сбросить размер - например, вышеприведённые текстуры неба я уменьшил примерно на 40% в размере каждую. В масштабе большого количества текстур выигрыш будет ощутимым. Если хочешь, то могу этим заняться.

Что касается русского в названиях - мне кажется, проблема в том, что Doom 2D использует кодировку OEM-866, а следовательно все названия используемых ресурсов внутри файлов карт записываются именно в ней. Эту проблему, мне кажется, можно решить следующими способами:
1) сконвертировать карты Doom 2D в собственный формат (заодно можем облегчить использование памяти), однако это весьма трудоёмко;
2) перекодировать названия используемых ресурсов в ANSI-1251 (или какая там на мобильниках используется?) внутри самих файлов карт;
3) написать вспомогательную функцию-перекодировщик (однако это лишняя морока, да и ресурсы будет дополнительные отжирать, ИМХО).

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Top
 Profile  
 
 Post subject: Re: Doom 2D Mobile
PostPosted: 26 Mar 2014, 08:57 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
Стало ещё прикольнее! Но проблема в том, что у меня разрешение экрана 360 x 640, и потому всё дико мелкое и я вижу почти всю карту. Следовательно - фпс не поднимается выше 12 (10-12 колеблется). Ну и да, не хватает клавиатуры системной сенсорной. Это у меня хорошо, есть QWERTY-клава хардварная (хотя и на ней неудобно играть), а вот на той же nokia 5800 - всё, пролёт, играть нельзя. Я понимаю, что расчёт в первую очередь идёт на древние midlet2.0-фоны, но ведь тот же Symbian вплоть до версии 9.4 (включительно) тоже прекрасно поддерживает midlet'ы. Я бы в первую очередь нашёл как клаву сенсорную забацать для таких случаев (потому что во всех древних ява-мидлетах которые я устанавливал она включалась автоматически, может что то добавить в установщик надо... никогда не понимал ява-мидлеты и их настройки, честно :) ).

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
 Post subject: Re: Doom 2D Mobile
PostPosted: 26 Mar 2014, 10:35 
Offline
Приколист
User avatar

Joined: 29 Jun 2010, 16:18
Posts: 1107
Location: Россия, Санкт-Петербург
St.AnGer wrote:
Стало ещё прикольнее! Но проблема в том, что у меня разрешение экрана 360 x 640, и потому всё дико мелкое и я вижу почти всю карту. Следовательно - фпс не поднимается выше 12 (10-12 колеблется). Ну и да, не хватает клавиатуры системной сенсорной. Это у меня хорошо, есть QWERTY-клава хардварная (хотя и на ней неудобно играть), а вот на той же nokia 5800 - всё, пролёт, играть нельзя.
На моей старой 5800 я играл в Quake 2, Rise of the Triad, Duke Nukem и многие другие игры. Ставишь прогу Virtual Key и без лишних проблем играешь во всё что хочется. Вот к примеру инструкция по установке Duke Nukem. Сейчас правда моей нокии у меня больше нет, поэтому протестировать игру не смогу. Но с помощью Virtual Key она просто обязана работать.

_________________
Хочешь сделать что-то полезное - сделай бэкап!


Top
 Profile  
 
 Post subject: Re: Doom 2D Mobile
PostPosted: 26 Mar 2014, 10:38 
Offline
User avatar

Joined: 16 Nov 2012, 09:22
Posts: 341
OutCast wrote:
Но с помощью Virtual Key она просто обязана работать.

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

_________________
Image

Скачать Doom 2d: Remake v0.3.8a

Скачать Doom 2d на движке ksTech2d (v0.05)


Top
 Profile  
 
 Post subject: Re: Doom 2D Mobile
PostPosted: 26 Mar 2014, 11:00 
Offline
Приколист
User avatar

Joined: 17 Oct 2009, 19:57
Posts: 3683
Location: Киров
Ух ты! На моём стареньком Nokia 6300 тоже запустилось:
Image
Правда, если в будущем игра станет весить где-то 1Мб, то на моём мобильнике идти не будет. Небо тоже неправильно отображается. ФПС в воде падает до 9, а так 25 держится.
Из пожеланий:
1)Удобное управление. Раньше очень много игр на мобильнике играл, но запомнились и стали моими любимыми только те, которые были удобны в управлении. В качестве примера могу назвать Gish и Dangerous Dave 2. Тут явно надо основное управление ставить на цифры. 1-бежим и целимся вверх влево, 2/джойстик вверх-целимся вверх, 3-бежим и целимся вверх вправо, 4/джойстик влево-бежим влево, 6/джойстик вправо -бежим вправо, 7-бежим и целимся вниз влево, 8/джойстик вниз-целимся вниз, 9-бежим и целимся вправо вниз, 5/кнопка джойстика - стрельба, *-прыжок, 0/#-смена оружия, кнопка верхней панели (которая на моём телефоне синяя слева от джойстика)-использовать.
2)Замедлить немного игру. Как ни крути, но на компьютере играть удобней, на маленьком экранчике играть сложнее (как я выяснил из версии под Android). Особенно, если представить бой с кибером или манкубусом. В общем, для комфортной игры скорость лучше сделать 85-90% от оригинала.
3)Игра по Bluetooth в КООП и ДМ. Опять же, не будь в Gish такой возможности, прошёл бы я его и забыл. А так мы в него постоянно с другом на переменах играли. Интерес к игре явно повысится.

Черный Думер wrote:
Да, есть небольшой совет. Дабы не жрать драгоценную память, неплохо бы пересохранять все текстуры с аккуратным подбором настроек сжатия PNG. Я для этого использую FastStone Image Viewer. Это помогает неплохо сбросить размер - например, вышеприведённые текстуры неба я уменьшил примерно на 40% в размере каждую. В масштабе большого количества текстур выигрыш будет ощутимым.

Прогнал твои небеса через PngOptimizer (который мне когда-то Джа посоветовал) ещё больше сжались. Вообще крутая вещь, постоянно его для текстур в МП использую. Единственное, что могут возникнуть проблемы у текстур с прозрачностью и полупрозрачностью. Хотя с прозрачностью отображаются в просмотрщиках правильно, а в МП баг какой-то, и там чёрный цвет в местах прозрачности отображается.

_________________
Давай, картечью демонов
Размажем по стене.
Давай, берсерком выпустим
Весь ливер сатане!

Сделайте нормальный огнемёт! :evil:


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 98 posts ]  Go to page 1, 2, 3, 4, 5  Next

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
doom2d.org, since 2007