Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 32

Если честно, я очень хотел успеть доделать играбельную демку к сегодняшнему дню... но то там дела, то сям и по итогу не успел :) Так то те же самые танчики хоть за 24 часа написать можно, если делать всё по принципу KISS ;)

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

Ну и объявлю розыск. Дело в том, что я недавно купил интересный MIPS-ноутбук на процессоре Ingenic JZ4750, точь в точь как был у @dlinyj . У моего экземпляра слетела прошивка: ядро загружается, а вот раздел с Qtopia поврежден. Если вдруг у кого-то есть такой ноутбук и вы готовы посодействовать снятию дампа - буду ждать вашего сообщения в личку!

Скрытый текст

А ещё я выкупил из Китая один очень редкий, предсерийный прототип Fujitsuo Intretop CX300. Кто-то знает, что это за девайсы такие? :)

Скрытый текст

Этакий топовый эквивалент того нетбука, что выше?

Совсем нет. Это топовый японец

Но, я так понял, внутри у него не х86.

Нет) там MIPS

велик уже придуман - kkrieger by the produkkt - там еще меньше 600кб можно сделать)

но да не j2me и под win

kkrieger крутая технодемка, но она далека от концепции разработки миниатюрных игрушек для мобильных платформ)

Я то не просто так опенсорснул наработки, может в будущем кто-то захочет что-то намутить с моим великом для ретро-устройств)

Не так уж и далека. Сжатие, процедурная генерация контента на лету - применимы и в J2ME. Есть примеры нетрёхмерных, однако игр, в которых игровое поле создавалось заново каждый раз (Revival, Mystic Islands).

Проблема в том, что kkrieger очень долго генерировал ресурсы и весил 300мб в озу

я говорил скорее об общих принципах, а не о безумной задаче "уместить 300 мб инфы в 150 кб heap бюджетного телефона")

интересна рубрика разработки самопальных игр

Очень интересно! Недавно начал познавать ЯП с мощным ООП и такие проекты очень вдохновляют. А то как у вас расписаны прямо целые кейсы, так вообще подарок, можно хоть немного разобраться человеку, далёкому от геймдева

У меня описана классика проектирования игр :) незаменимый паттерн

Когда-то играл в Dungeon Warrior 3D: 128 кБ псевдотрёхмерная игра работала даже на телефонах вроде Nokia 2610 (S40v2, экран 128x128, не поддерживал загрузку файлов > 300 кБ и запуск j2me > 250 кБ, мало heap из-за чего часто случался OutOfMemoryError). Помню псевдо3D гонки с весом менее 100 кБ, но название вылетело из головы :(

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

Кстати, они еще и крайне необычные под капотом. Дело в том что многие такие игры не использовали API M3G или Mascot Capsule, а писали софтрендер с нуля... На Java! Для кнопочных телефонов!!!

Вспоминается движок Quantum с софтверным рендером) Даже игры на нём делали. Правда по фпс он зачастую проигрывал Маскоту или m3g

В памяти всплыл ещё Labyrint с Siemens C35. Тут и генерация коридоров (емнип), и псевдо3D, из-за чего у меня в 1 классе сломался мозг: месяц в принципе не понимал как в это играть, потом осенило.

raycasting и спрайты - напоминает Wolfenstein 3D

Некоторые были с честными треугольниками

Doom RPG и Doom 2 RPG - отличные примеры игр и игровых движков (доступных к изучению, правда в обфусцированном виде). Там и для отрисовки кастомные вещи и для хранения текстур и для логики. Копайся не хочу)

Такое на мой телефон не удалось бы скачать, а даже если бы и удалось - OutOfMemoryError. Я имел ввиду псевдотрёхмерные игры, запускающиеся на бюджетных мобильниках, а не на Sony Ericsson)

Спеки Nokia 2610

А, там лимит в 150 кб. Только в это упирается, понял вас

Не-не. На практике лимит на загрузку файлов и воспроизведение мультимедиа до 300 кБ, на установку и запуск jar - до 250 кБ, но всё упирается в heap. Если запустить jar-приложение слишком большого размера (чаще всего > 150 кБ), получится вылет в OutOfMemory Error. Именно из-за малого объёма heap сидел на Opera Mini 3.1 (60 кБ jar) и стандартном Jimm 0.5.1 без модулей и наворотов (111 кБ jar). Музыка только в midi, MP3 и AMR чаще всего весили > 300 кБ.

Именно поэтому 3D, пусть и имитируемое, произвело на меня в своё время большое впечатление: думал, что на моей звонилке это вообще невозможно.

десятки готовых игровых движков под самые разные задачи

не десятки

все игры на Unreal engine и Unity выглядят примерно одинаково что выхолащивает жанр

Да самопалов много разных. Из успешных выделяется юнити, уе, годот, урхо

во 2 г. не хватает варианта по типу "во мы свое время писали на асме и..." а впрочем сайзкодинг всяких демок и сейчас популярен, сколько там keriger занимает :)

На асме бышло бы больше))

mipLevels[i].Buffer.put(palette[pixel1 + 1]);

каждый раз, когда видел в статье что-то такое на Java, представлял себе насколько неэффективно это все работает

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

Неэффективно это если б я вместо статического массива нахлобучил ArrayList, дергал бы каждый пиксель get и только потом пушил бы пиксель, а затем еще и вызвал бы toArray. Или речь о том, что Buffer[i] можно было кэшировать? Это сделает оптимизатор :)

Или вы не о моем коде, а об общих принципах интеропа с нативным кодом в Java? Если так, то соглашусь, дотнет сильно круче) можно спокойно дергать указатели на буфер с value типами) на джаве сделать софтовый морфинг или скиннинг дороговато. Во времена шейдерных гпу это не то чтобы актуально, но все равно как факт некоторой ограниченности Java

речь о том, что за доступом по индексу почти всегда стоит его валидация

Сейчас декомпилировал свой код и правда Javac не заоптимайзил даже простые кейсы) Спасибо, ну там есть еще что оптимизировать под капотом, так что не стыдно :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий