Как я написал 2D-игру для Android с нуля за 2 дня весом в 800 килобайт

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ธ.ค. 2024

ความคิดเห็น • 109

  • @monobogdan
    @monobogdan  2 หลายเดือนก่อน +12

    Я люблю АвтоВАЗ

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +8

      Чо, мож запилить по приколу мини-тазовлог? Чисто по угару))

    • @НасухАскаров-ш8с
      @НасухАскаров-ш8с 2 หลายเดือนก่อน +1

      Сердолик

    • @romankoregin991
      @romankoregin991 2 หลายเดือนก่อน +5

      Конечно, это будет шагом к совместному видео с Maddy Murk’ом

    • @romankoregin991
      @romankoregin991 2 หลายเดือนก่อน +2

      Нужно прислать Maddy Murk’y

    • @ViaDolorosa-
      @ViaDolorosa- 2 หลายเดือนก่อน +2

      ​@@monobogdan срать в плафон обязательно нужно будет в этом влоге)

  • @Миша-Белкин
    @Миша-Белкин 2 หลายเดือนก่อน +11

    Хули медди мурк такой умный стал, втирает мне что-то про движки и программирование, а еще вчера на даче в таёте какал

  • @Z3R0H3R0
    @Z3R0H3R0 2 หลายเดือนก่อน +17

    автоваз - это уже не клиника, это вероисповедание

  • @isaeff_sv
    @isaeff_sv 2 หลายเดือนก่อน +6

    Где-то месяц назад мне попалось видео с переводчиком, а теперь, когда я перешёл на Java (перешёл с С++ а ещё раньше - с С#) и мне попалось это видео. Ну, это судьба. Подписываюсь

    • @zhennik263
      @zhennik263 2 หลายเดือนก่อน

      Вам не стоит использовать это видео как пособие по джаве. Как Джава разработчик я скажу что жто один из самых диких кодов которые я видел. А я повидал много индусского щита

  • @D0herarh
    @D0herarh หลายเดือนก่อน +1

    Круто, побольше бы таких роликов )

  • @HellingOut
    @HellingOut 2 หลายเดือนก่อน +4

    Круто объясняешь
    Я попробовал самостоятельно написать движок рендера на OpenGL API (неудачно), и мне многое было непонятно, но твои объяснения действительно дали понять некоторые вещи

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +2

      Спрашивай, попытаюсь объяснить доступным языком если что)

  • @modronmk2289
    @modronmk2289 2 หลายเดือนก่อน +3

    Я искренне надеюсь что Вы - регулярно сдаете свой генетический материал Сэр! Если у Вас не будет как минимум 500-1000 детей то сие будет упущением для человечества!

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +2

      Сдаем вместе с другими братьями - мутным мраком и меддисоном. После смешивания можно получить ачивку "белок сильных мира сегон"

    • @XattabChorny
      @XattabChorny 2 หลายเดือนก่อน

      Вроде Нерон 1 в н.э

  • @romankoregin991
    @romankoregin991 2 หลายเดือนก่อน +5

    Ждем совместное видео на тему АвтоВАЗа с Maddy Murk’ом!

  • @LopkaUna
    @LopkaUna 2 หลายเดือนก่อน +5

    напомнило игру про мужика с ружьем и еще голыми из кустов олды на месте

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      Да, но референс скорее Crimsonland) веселая игрушка из начала нулевых

  • @Kostyan_Sigaev
    @Kostyan_Sigaev 2 หลายเดือนก่อน +4

    По поводу Unity скажу даже больше: проводил тест одной и той же сцены с теми же моделями на разных версиях Unity, а конкретно на 5.6.7f1, 2017.x, 2019.x, 2021.3.x и 2022.2.x, поставил x так как конкретную версию уже не помню. Итог был печален: на любимой 5.6.7f1 нагрузка на телефон была небольшой, сцена не такая уж и тяжелая, но выдавала стабильные 60 кадров, так как стоял ограничитель, потому нагрузка была небольшой. На 2017.х по сути было почти тоже самое, но нагрузка выше, при этом частота кадров уверенно держалась на 60, версию 2018 я пропустил, решил сделать большой скачок, в итоге на версии 2019.х получил почти полностью загруженный процессор и нестабильные 60 кадров с падением до 55, на 2021.3.х уже нагрузка была высокая, но ФПС был в районе 50-55, в редких случаях бывали 60 кадров, на 2022.2.х при максимальной нагрузке горячий телефон выдавал 30 кадров с падением до 12 и редкими скачками до 45, 60 кадров я так и не увидел. Подумаешь, 10 миллионов полигонов на сцене...
    По поводу самой игры, я давно хочу начать проект по реинкарнации своего BlackBerry Passport путём разработки стилизованных под BBOS 10 приложений, к примеру клиенты TH-cam, VK, Telegram и т.п., чтобы помимо звонилки телефон можно было использовать по полной. И у меня есть идея для таких Паспортов сделать какой-то 2D эксклюзив. Начал искать инструкции по разработке нативных .bar приложений, но после официальных похорон системы разработчиками этот вариант отпал, скачал Android Studio 2022.1.1 (версию подбирал вручную, искал с поддержкой Android 4x). Даже не ожидал увидеть именно эту версию в ролике) Но, увы, пока дальше руки не дошли...
    По поводу Тазов, привет от москвичиста)

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      У меня на канале есть видосы о самопальных клиентах ВК и ютубчика для ретро-дроидов. Можешь форкать и брать под основу.

    • @Kostyan_Sigaev
      @Kostyan_Sigaev 2 หลายเดือนก่อน

      ​@@monobogdanспасибо

  • @aviator1472
    @aviator1472 2 หลายเดือนก่อน +1

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

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Mascot Capsule оперирует не сценой, как M3G, а низкоуровневыми вызовами отрисовки + под капотом сортировки треугольников по отдалению от камеры. Поэтому необходимо вручную задавать трансформацию каждого объекта с помощью Transform (это обёртка над 4x4-матрицей) и перемножать трансформацию сначала из World space в Camera space, затем умножать на матрицу проекции, и затем гапи у себя под капотом переводит в клипспейс

    • @aviator1472
      @aviator1472 2 หลายเดือนก่อน

      @@monobogdan Я сделал расчет камеры перед отрисовкой геометрии путем создания матрицы камеры затем я ее переиспользую в renderer.drawMesh. Метод расчета камеры вызываеться в начале метода render в классе level.

    • @aviator1472
      @aviator1472 2 หลายเดือนก่อน

      @@monobogdan могу в телегу код кинуть если интересно)

  • @sleepyNovember_project
    @sleepyNovember_project 2 หลายเดือนก่อน +2

    Игра выглядит довольно хорошо, только проджектайлы медленно летят, по возможности увеличьте им скорость 👍

  • @maxpayne3225
    @maxpayne3225 2 หลายเดือนก่อน

    я посмотрел 6 видео к ряду на одном дыхании

  • @notme-mx9ye
    @notme-mx9ye 2 หลายเดือนก่อน

    ты охуенен!
    жду видео с компан

  • @iAr2r
    @iAr2r 2 หลายเดือนก่อน +2

    Ничего непонятно но очень интересно 😂

  • @iAr2r
    @iAr2r 2 หลายเดือนก่อน +1

    А на что съёмку ведёте, на вэбку? Или телефон?

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Galaxy S8, очень уставший и весь побитый.

    • @iAr2r
      @iAr2r 2 หลายเดือนก่อน

      @@monobogdan так то хороший тел. Но вы или на переднюю камеру пишете, или на заднюю но у вас затёрто стекло. Потому как такой ореол от источника света создаёт затёртое стекло камеры. Я клиентам своим делал так- просто наклеивал скотч на стекло. Оно разглаживает матовость стекла и изображение становится чётче. Ну или самый страшный вариант- заляпана затёрта сама камера. У s8 картинка должна быть отличная.

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      @@iAr2r у меня задней крышки нет, там уже мутный сам объектив :)

    • @pga370
      @pga370 2 หลายเดือนก่อน

      @@monobogdan, даже объектив мутный))

  • @romankoregin991
    @romankoregin991 2 หลายเดือนก่อน +1

    Спасибо Monobogdan за шикарное видео!
    Комментируйте в поддержку автора

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Спасибо за теплые слова!

  • @stikmango2.032
    @stikmango2.032 2 หลายเดือนก่อน +1

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

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

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

    • @stikmango2.032
      @stikmango2.032 2 หลายเดือนก่อน +1

      @@monobogdan но вообще работы много, нужно сделать так чтобы игрок мог погибнуть от атак зомби, экран смерти вывести при этом. Так же нужна кнопка магазина, механика накапливания бабла и механика паузы (смотрел вроде в коде есть её зачатки). И есть баг (по крайней мере на свежем ведроиде) когда игру сворачиваешь а потом разворачиваешь спрайты снарядов и зомби куда то пропадают и за место них белые текстурки

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Андроид "прибивает" контекст GLES на неактивных приложениях и пересоздаёт при разворачивании. Из-за этого, игра обращается к невалидным хэндлам. Нужно реализовать механизм горячего релоада графических ресурсов.

  • @Тупойдибил-л4ю
    @Тупойдибил-л4ю 2 หลายเดือนก่อน +1

    Вот это я удачно зашёл ❤

  • @XaxaguJI
    @XaxaguJI 2 หลายเดือนก่อน +1

    Игру эсхантер напомнило

  • @NarutoUzumaki-li4jf
    @NarutoUzumaki-li4jf 2 หลายเดือนก่อน +1

    Давно хотел спросить. Есть ли где-нибудь сборник, пак, архив с jdk, sdk, ndk, ide что там нужно чтобы начать писать java midlet приложухи чтоб распаковал и готово. (Да на кнопочные) Когда узнал про jtube и прочий софт 😂 прям преисполнился лично поковырять. (Есть навыки ковыряния python, java android, c#, delphi 😅)

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      Тебе нужен NetBeans 7.3 и Sony Ericsson WTK

    • @NarutoUzumaki-li4jf
      @NarutoUzumaki-li4jf 2 หลายเดือนก่อน

      @@monobogdan благодарю. А на какую винду предпочтительнее ? Xp, семерка или без разницы ?

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      @@NarutoUzumaki-li4jf без разницы. Но на 10ке хреново работает Sony Ericsson SDK

  • @mierce
    @mierce 2 หลายเดือนก่อน

    какой твой любимый язык программирования который ты используешь?

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Больше всего люблю шарп, затем C и Java

    • @mierce
      @mierce 2 หลายเดือนก่อน

      @@monobogdan выбор настоящего сигмы

  • @Механизм-ж9я
    @Механизм-ж9я 2 หลายเดือนก่อน +1

    К слову о совместимости. Я не частый игрок, но есть на памяти любимая игра TouchMix, она наподобие OSU, но там гораздо выше сложность и вовлечение в ритм.
    Она запускалась на андроид 2.3 нормально, но у меня был только планшет prestigio с резистивным сенсором, и поэтому мультитач мне был недоступен, и пройти дальше первого уровня сложности я не мог никак.
    На андроиде 4.4 игра уже запускается с глюками, не везде. На 5.0 уже начинается рассинхрон с нажатиями и играть невозможно.
    На 8 и выше игра вообще не запускается из-за проблем с разрешением экрана видимо.
    Эту игру и загуглить уже с первого раза не получится, нужно обязательно добавлять что это игра на андроид. Хотя там просто произведение аниме искусства, и музыка от корейского композитора написана специально для игры (композитор r300k, музыка оттуда есть на Ютубе).

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      Все верно. Особенно большие проблемы совместимости у нативных игр, т.е написанных на плюсах/паскале и иных нативных языках. В разные годы в дроиде ломали совместимость сначала с библиотеками без -fPIC, затем поломали рекурсивный вызов dlopen в libc, а край был добавление нового механизма разрешений. Вот многий софт и поломался.

  • @Alferov_Igor
    @Alferov_Igor หลายเดือนก่อน +1

    Блин. Жаль нет апк, чтобы затестить.
    Нет компа чтобы собрать апк.

  • @vladyslavvladov403
    @vladyslavvladov403 2 หลายเดือนก่อน +1

    Для оптимизации игры можно заново не создавать зомби, а скрывать и перемешать в область спавна. Так экономится память, может с пулями так же.

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      Такая оптимизация называется пулом объектов, однако конкретно в данном кейсе на данных девайсах не сильно поможет, только чуть снизит число аллокаций (что в любом случае не боттлнек сейчас).
      Однако во времена консолей N64, PS1 или Atari Jaguar, когда динамические пулы объектов были дороговаты, а аллокаторы - не совершенные и фрагментировались, так действительно делали)

    • @vladyslavvladov403
      @vladyslavvladov403 2 หลายเดือนก่อน

      @@monobogdan в юнити до сих пор так делают

  • @LihMeh
    @LihMeh 2 หลายเดือนก่อน

    Когда приложения под Symbian?

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Пока думаю :)

    • @NarutoUzumaki-li4jf
      @NarutoUzumaki-li4jf 2 หลายเดือนก่อน

      @@LihMeh Оооо это тоже будет интересно.

  • @Башкурдистанскиймаппер
    @Башкурдистанскиймаппер 2 หลายเดือนก่อน +3

    Замути ещё порт вторых дальнобольшиков класс будет)))

  • @ДанилКабузько-е6и
    @ДанилКабузько-е6и 2 หลายเดือนก่อน

    Подскажите пожалуйста какое расширение игр у китайских телефонов

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      MRP в ранних, VXP в поздних

  • @АнтонПетров-д7ф
    @АнтонПетров-д7ф 2 หลายเดือนก่อน +3

    Нормально: арктангенс, 32 бит, еще, наверное, до кучи... А на ПС1 плавающей точки вообще не было... За плчаса, наверное,посчитает.

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Интересный комментарий! Однако дело в том, что на ARMv6 девайсах и ниже (было несколько ARMv5 смартфонов на дроиде - но они крайне редкие) зачастую тоже не было FPU из коробки, из-за чего использовался альтернативный ABI для взаимодействия с легаси кодом. В ядре Linux есть специальный хак, который ловит аппаратное исключение Illegal instruction и если там была инструкция к FPU, то софотово эмулирует нужную операцию.
      На пс1 была фиксед-поинт арифметика, причем её аппаратно держал GTE.

  • @1FireKnight1
    @1FireKnight1 2 หลายเดือนก่อน

    Люди! Я только начал изучать c++, можно ли как нибудь делать с помощью него игры на кнопочные телефоны, которые поддерживают java

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Привет. Нельзя :( Но под андроид игры пилить на плюсах можно)

    • @1FireKnight1
      @1FireKnight1 2 หลายเดือนก่อน

      @@monobogdan жаль, но видос классный

  • @iAr2r
    @iAr2r 2 หลายเดือนก่อน +1

    Огромная просьба к автору: когда снимаете блоги (себя в комнате), отключайте мониторы. Камера у вас не очень, в связи с этим мониторы дают очень сильный засвет (световой ореол), камера размывает и получается не очень.

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      У меня даже видеодрайвер прислушался к комментарию и пару раз крашнулся в конце, это можно заметить по морганию монитора :)

  • @kelltater
    @kelltater 2 หลายเดือนก่อน +1

    Я думал ogl 1.0 уже не поддерживается, и можно только 2+

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      Поддерживается и будет поддерживаться. На ффп огл завязано много легаси

    • @kelltater
      @kelltater 2 หลายเดือนก่อน

      @@monobogdan понятно.

  • @W10USR
    @W10USR 2 หลายเดือนก่อน +1

    а на 14 пойдет?

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Ух, не знаю, смартов на дроиде свежее 10ки у меня нет.
      Из 14'ого у меня только про макс китайский :))

  • @AirShowOfFlasher
    @AirShowOfFlasher 2 หลายเดือนก่อน +1

    Ахаха, мы знаем что ты любишь автоваз. Правда ведь, ребята из чата Богдана?

  • @TheDJs3000
    @TheDJs3000 2 หลายเดือนก่อน

    Рассказывал про производительность и в итоге взял высокоуровневый яп java, который перемножает на ноль этот довод)))) нада было тогда брать С или С++.

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Это с чего ты взял?) Я в первую очередь говорил о производительности рендерера и при отправке дравколлов CPU-wise нагрузка ложится именно на нативный код (т.е под капотом glDraw). GC при минимальных аллокациях тоже не проблема.
      Вся остальная логика слишком простая, чтобы быть "тяжелой" из-за выбора языка. Вот в условном Project Zomboid действительно есть боттлнек по процу из-за JVM в некотором смысле, поскольку там зомби постоянно перестраивают путь к игроку с помощью A*, и похоже игра даже не группирует толпы в группы, чтобы находить один путь для всех зомби в большом скоплении.

  • @DarkSouls-g3h
    @DarkSouls-g3h หลายเดือนก่อน

    напоминает игру 2d strike

  • @GodotModer
    @GodotModer หลายเดือนก่อน

    Сыноок, а ну давай, хватит бездельничать! Сейчас дом будем разбирать, а потом - по новой собирать, и чтоб как надо, не тяп-ляп. Времени нет, быстро давай!

  • @НасухАскаров-ш8с
    @НасухАскаров-ш8с 2 หลายเดือนก่อน

    На андроид 4.1 пойдет?

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      Да, начина с 1.6

    • @НасухАскаров-ш8с
      @НасухАскаров-ш8с 2 หลายเดือนก่อน

      ​@@monobogdan ура, galaxy s1 и s2 поддерживают

    • @stikmango2.032
      @stikmango2.032 2 หลายเดือนก่อน

      ​@@monobogdanсвежие ведроиды поддерживаются? Или у них повыпиливали то что использовалось в ранних андроидах?

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      @@stikmango2.032 да, игра не использует ничего особо кроме GLES

  • @sleepyNovember_project
    @sleepyNovember_project 2 หลายเดือนก่อน

    Андроид 2.3 поддерживает OpenGL ES 2.0

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      GLES 2.0 появился с 2.2 :) При этом гпу в смартфонах с чипсетами Qualcomm поддерживали GLES 2.0 еще до выхода 2.2

  • @mysweethouse6289
    @mysweethouse6289 2 หลายเดือนก่อน

    Вы очень умный, но как у вас хватает времени на все это?😮

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Не работаю))

  • @НасухАскаров-ш8с
    @НасухАскаров-ш8с 2 หลายเดือนก่อน +1

    Я сбросил на игру 250000 тонн монобогдана

  • @МистерМагнетто
    @МистерМагнетто 2 หลายเดือนก่อน +1

    Потом можно создать донатную помойку, и покупать масло для ЛАДЫ ( АВТОВАЗ ) хоть каждый день!

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Сибойл?

    • @МистерМагнетто
      @МистерМагнетто 2 หลายเดือนก่อน

      @@monobogdan Сибойл это настоящий нектар!

  • @artem5451
    @artem5451 2 หลายเดือนก่อน

    все круто но слишком ужато, ничего не понятно

  • @Z3R0H3R0
    @Z3R0H3R0 2 หลายเดือนก่อน

    Z 2D - "Нет преград для патриотов"

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน

      Если посмотришь имя проекта в студии - вообще обалдеешь))

    • @yourate8538
      @yourate8538 2 หลายเดือนก่อน +1

      @@monobogdan было бы за что патриотить,зетничать не хорошо,ведь тебя смотрят не только с раши,будь человеком!

    • @Чебурашка-п2у
      @Чебурашка-п2у 2 หลายเดือนก่อน

      Это рофл что ли?

    • @yourate8538
      @yourate8538 2 หลายเดือนก่อน

      @@user-rf47CwB72 нет и нет,но желаю автору быть Мурком ,но не опускаться до уровня мэдисона

    • @monobogdan
      @monobogdan  2 หลายเดือนก่อน +1

      @@yourate8538 блин, я думал тут за километр видно иронию :) В видосе вообще нет никакого подтекста.
      Название Z2D - это Zombie2D, рабочее название проекта. А если посмотреть на заголовок окна в студии - то можно увидеть что сама папка проекта называется All Zombies Are Bastards :)