Обновить

Пишем 3D-игру для ретро-устройств весом в 600Кб…

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели5.6K
Всего голосов 41: ↑39 и ↓2+55
Комментарии21

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

Ну что друзья, вот такая интересная статья у нас с вами получилась. Надеюсь, вам было интересно! Вот обещанные ссылки на другие мои статьи:

Пишем 3D-игру весом в 600кб... - первая часть

Как работали трёхмерные игры на кнопочных телефонах нулевых

Сам написал, сам полетал: как и зачем я написал 3D-игру для компьютеров из 90-х

Касательно судьбы этой игрушки, я пока подумываю. Скорее всего я доделаю играбельный клон BattleCity и релизну в маркет, при этом главная фича будет в том, что игра должна весить менее 600Кб в ПОЛНОМ виде - включая пак уровней, текстуры, модели и соответственно код. Никаких AppCompat'ов, androidx и прочих Google Play Services API - только голое API Android и GLES, без рекламы и донатов!

На следующей неделе мы с вами постараемся установить Linux на один очень интересный детский ARM-ноутбук из 2010 года. Некий российский бренд выпустил "Бумбук" с интересным процессором от VIA, для которого есть исходный код ядра...

Красноглазие обеспечено!

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

Помню их. Живьём не встречал, но пиарили их усиленно. Если не ошибаюсь, там изначально ARM и Windows CE, и некий SDK то ли выпущен был, то ли планировался.

Верно, WinCE)

с интересным процессором от VIA

А что там за камень?

Помню кучу таких нетбуков на процессоре WM8650. Они ещё продавались на выбор в двух исполнениях: с ведроидом и с WinCE на борту.

Ещё вот такой интересно поковырять. Это пульт от какого-то школьного лабораторного комплекса "Архимед" (более древние версии были с КПК Palm Tungsten E2) в виде псевдозащищённого планшета. Интересно, что там за железо стоит...

8650, да)

Очень интересная статья, хотя я никогда не занимался разработкой такого рода с нуля.

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

Уместить 3D игру в 600кб, для меня это на уровне фантастики.

Очень хорошо проведенное время за чтением. Спасибо.

Благодарю за теплые слова) Стараюсь)

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

Уместить 3D игру в 600кб, для меня это на уровне фантастики.

Вы поищите такой шутер, как kkrieger, только если стоите — лучше сначала сядьте :-)

Это высший пилотаж))

<грамар наци>какие легкие раньше устройства были, всего 600кб</>

А статья торт.

Ахах, спасибо, да я как то не подумав заголовок поменял в последний момент

Уместился в 640кб, получается...

А вы под PS1 умеете разрабатывать?

Чуть чуть NetYaroze ковырял, но опыта пока нет) но понимаю технические ограничения платформы и перспективы.

Если вы что-то задумаете писать под плойку, сообщите, я бы вам с радостью моделек\текстур нарисовал. Т.к. сам очень люблю эту платформу.

Раз не для кнопочных телефонов с Java2me, то можно было бы взять dotnet и опционально Monogame.

Тогда бы работало ещё и на Windows Phone 8, Mobile 10, Windows RT, Windows Desktop, Xbox One/Series, Hololens, Linux,

а не только Android, iOS

А шо, JVM на Linux уже оказывается не работает?))

Рантайм .NET Core во первых не работает на устройствах старше 5 дроида (Mono не работает на Android старше 2.3), во вторых рантайм с GAC прибавит добрый десяток-полтора мегабайта веса "просто так", а MonoGame ещё пару мегабайт сверху, а значит цели, поставленные в начале статьи, были бы не достигнуты и это были бы очередные танчики без изюминки

В статье вижу скриншоты с устройств, где доступен Android 2.3.

Если размером не нравится monogame, то можно взять враперы для OpenGL, Dx - у них может быть размер меньше моногейма.

А сколько весит игра на не андроиде? уместились ли вы в поставленный размер там? Или надо менять заголовок: "..640кб, но только на Android"

Поэтому я решил написать загрузчик для материалов, описанных в простом текстовом формате по типу ini-файлов. В секции Texture описываются используемые текстуры, которые затем подгружаются из пула ресурсов, в RenderStates — напрямую указаны поля в классе Material, а в Combiners — очень-очень примитивная вариация на тему шейдеров!

Изначально я хотел сделать чтобы материалы описывали эдакий набор инструкций как «шейдеры» в Quake 3.

Если кому интересно почитать поподробнее, о чём речь: https://fabiensanglard.net/quake3/renderer.php.
На Хабре был перевод, но ссылка на PDF там сдохла.

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

Информация

Сайт
timeweb.cloud
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Timeweb Cloud