Где-то месяц назад мне попалось видео с переводчиком, а теперь, когда я перешёл на Java (перешёл с С++ а ещё раньше - с С#) и мне попалось это видео. Ну, это судьба. Подписываюсь
Вам не стоит использовать это видео как пособие по джаве. Как Джава разработчик я скажу что жто один из самых диких кодов которые я видел. А я повидал много индусского щита
Круто объясняешь Я попробовал самостоятельно написать движок рендера на OpenGL API (неудачно), и мне многое было непонятно, но твои объяснения действительно дали понять некоторые вещи
Я искренне надеюсь что Вы - регулярно сдаете свой генетический материал Сэр! Если у Вас не будет как минимум 500-1000 детей то сие будет упущением для человечества!
По поводу 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). Даже не ожидал увидеть именно эту версию в ролике) Но, увы, пока дальше руки не дошли... По поводу Тазов, привет от москвичиста)
Я твою Ява игру для мобильных телефонов понемногу меняю) Поменял управление, добавил "прыжок" и не совсем понял зачем нужно было для каждой геометрии камеру пересчитывать ( я так это понял). А так лайк)
Mascot Capsule оперирует не сценой, как M3G, а низкоуровневыми вызовами отрисовки + под капотом сортировки треугольников по отдалению от камеры. Поэтому необходимо вручную задавать трансформацию каждого объекта с помощью Transform (это обёртка над 4x4-матрицей) и перемножать трансформацию сначала из World space в Camera space, затем умножать на матрицу проекции, и затем гапи у себя под капотом переводит в клипспейс
@@monobogdan Я сделал расчет камеры перед отрисовкой геометрии путем создания матрицы камеры затем я ее переиспользую в renderer.drawMesh. Метод расчета камеры вызываеться в начале метода render в классе level.
@@monobogdan так то хороший тел. Но вы или на переднюю камеру пишете, или на заднюю но у вас затёрто стекло. Потому как такой ореол от источника света создаёт затёртое стекло камеры. Я клиентам своим делал так- просто наклеивал скотч на стекло. Оно разглаживает матовость стекла и изображение становится чётче. Ну или самый страшный вариант- заляпана затёрта сама камера. У s8 картинка должна быть отличная.
Я расстроился, что нельзя сменить оружие поэтому полез в код и добавил слушателя в цикле по созданию списка пушек в магазине, а в коде движка добавил метод, который возвращает игрока, дабы было кому давать оружие. В моём билде теперь можно выбирать оружие при начале игры.
@@monobogdan но вообще работы много, нужно сделать так чтобы игрок мог погибнуть от атак зомби, экран смерти вывести при этом. Так же нужна кнопка магазина, механика накапливания бабла и механика паузы (смотрел вроде в коде есть её зачатки). И есть баг (по крайней мере на свежем ведроиде) когда игру сворачиваешь а потом разворачиваешь спрайты снарядов и зомби куда то пропадают и за место них белые текстурки
Андроид "прибивает" контекст GLES на неактивных приложениях и пересоздаёт при разворачивании. Из-за этого, игра обращается к невалидным хэндлам. Нужно реализовать механизм горячего релоада графических ресурсов.
Давно хотел спросить. Есть ли где-нибудь сборник, пак, архив с jdk, sdk, ndk, ide что там нужно чтобы начать писать java midlet приложухи чтоб распаковал и готово. (Да на кнопочные) Когда узнал про jtube и прочий софт 😂 прям преисполнился лично поковырять. (Есть навыки ковыряния python, java android, c#, delphi 😅)
К слову о совместимости. Я не частый игрок, но есть на памяти любимая игра TouchMix, она наподобие OSU, но там гораздо выше сложность и вовлечение в ритм. Она запускалась на андроид 2.3 нормально, но у меня был только планшет prestigio с резистивным сенсором, и поэтому мультитач мне был недоступен, и пройти дальше первого уровня сложности я не мог никак. На андроиде 4.4 игра уже запускается с глюками, не везде. На 5.0 уже начинается рассинхрон с нажатиями и играть невозможно. На 8 и выше игра вообще не запускается из-за проблем с разрешением экрана видимо. Эту игру и загуглить уже с первого раза не получится, нужно обязательно добавлять что это игра на андроид. Хотя там просто произведение аниме искусства, и музыка от корейского композитора написана специально для игры (композитор r300k, музыка оттуда есть на Ютубе).
Все верно. Особенно большие проблемы совместимости у нативных игр, т.е написанных на плюсах/паскале и иных нативных языках. В разные годы в дроиде ломали совместимость сначала с библиотеками без -fPIC, затем поломали рекурсивный вызов dlopen в libc, а край был добавление нового механизма разрешений. Вот многий софт и поломался.
Такая оптимизация называется пулом объектов, однако конкретно в данном кейсе на данных девайсах не сильно поможет, только чуть снизит число аллокаций (что в любом случае не боттлнек сейчас). Однако во времена консолей N64, PS1 или Atari Jaguar, когда динамические пулы объектов были дороговаты, а аллокаторы - не совершенные и фрагментировались, так действительно делали)
Интересный комментарий! Однако дело в том, что на ARMv6 девайсах и ниже (было несколько ARMv5 смартфонов на дроиде - но они крайне редкие) зачастую тоже не было FPU из коробки, из-за чего использовался альтернативный ABI для взаимодействия с легаси кодом. В ядре Linux есть специальный хак, который ловит аппаратное исключение Illegal instruction и если там была инструкция к FPU, то софотово эмулирует нужную операцию. На пс1 была фиксед-поинт арифметика, причем её аппаратно держал GTE.
Огромная просьба к автору: когда снимаете блоги (себя в комнате), отключайте мониторы. Камера у вас не очень, в связи с этим мониторы дают очень сильный засвет (световой ореол), камера размывает и получается не очень.
Это с чего ты взял?) Я в первую очередь говорил о производительности рендерера и при отправке дравколлов CPU-wise нагрузка ложится именно на нативный код (т.е под капотом glDraw). GC при минимальных аллокациях тоже не проблема. Вся остальная логика слишком простая, чтобы быть "тяжелой" из-за выбора языка. Вот в условном Project Zomboid действительно есть боттлнек по процу из-за JVM в некотором смысле, поскольку там зомби постоянно перестраивают путь к игроку с помощью A*, и похоже игра даже не группирует толпы в группы, чтобы находить один путь для всех зомби в большом скоплении.
Сыноок, а ну давай, хватит бездельничать! Сейчас дом будем разбирать, а потом - по новой собирать, и чтоб как надо, не тяп-ляп. Времени нет, быстро давай!
@@yourate8538 блин, я думал тут за километр видно иронию :) В видосе вообще нет никакого подтекста. Название Z2D - это Zombie2D, рабочее название проекта. А если посмотреть на заголовок окна в студии - то можно увидеть что сама папка проекта называется All Zombies Are Bastards :)
Я люблю АвтоВАЗ
Чо, мож запилить по приколу мини-тазовлог? Чисто по угару))
Сердолик
Конечно, это будет шагом к совместному видео с Maddy Murk’ом
Нужно прислать Maddy Murk’y
@@monobogdan срать в плафон обязательно нужно будет в этом влоге)
Хули медди мурк такой умный стал, втирает мне что-то про движки и программирование, а еще вчера на даче в таёте какал
автоваз - это уже не клиника, это вероисповедание
Где-то месяц назад мне попалось видео с переводчиком, а теперь, когда я перешёл на Java (перешёл с С++ а ещё раньше - с С#) и мне попалось это видео. Ну, это судьба. Подписываюсь
Вам не стоит использовать это видео как пособие по джаве. Как Джава разработчик я скажу что жто один из самых диких кодов которые я видел. А я повидал много индусского щита
Круто, побольше бы таких роликов )
Круто объясняешь
Я попробовал самостоятельно написать движок рендера на OpenGL API (неудачно), и мне многое было непонятно, но твои объяснения действительно дали понять некоторые вещи
Спрашивай, попытаюсь объяснить доступным языком если что)
Я искренне надеюсь что Вы - регулярно сдаете свой генетический материал Сэр! Если у Вас не будет как минимум 500-1000 детей то сие будет упущением для человечества!
Сдаем вместе с другими братьями - мутным мраком и меддисоном. После смешивания можно получить ачивку "белок сильных мира сегон"
Вроде Нерон 1 в н.э
Ждем совместное видео на тему АвтоВАЗа с Maddy Murk’ом!
напомнило игру про мужика с ружьем и еще голыми из кустов олды на месте
Да, но референс скорее Crimsonland) веселая игрушка из начала нулевых
По поводу 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спасибо
Я твою Ява игру для мобильных телефонов понемногу меняю) Поменял управление, добавил "прыжок" и не совсем понял зачем нужно было для каждой геометрии камеру пересчитывать ( я так это понял). А так лайк)
Mascot Capsule оперирует не сценой, как M3G, а низкоуровневыми вызовами отрисовки + под капотом сортировки треугольников по отдалению от камеры. Поэтому необходимо вручную задавать трансформацию каждого объекта с помощью Transform (это обёртка над 4x4-матрицей) и перемножать трансформацию сначала из World space в Camera space, затем умножать на матрицу проекции, и затем гапи у себя под капотом переводит в клипспейс
@@monobogdan Я сделал расчет камеры перед отрисовкой геометрии путем создания матрицы камеры затем я ее переиспользую в renderer.drawMesh. Метод расчета камеры вызываеться в начале метода render в классе level.
@@monobogdan могу в телегу код кинуть если интересно)
Игра выглядит довольно хорошо, только проджектайлы медленно летят, по возможности увеличьте им скорость 👍
я посмотрел 6 видео к ряду на одном дыхании
ты охуенен!
жду видео с компан
Ничего непонятно но очень интересно 😂
А на что съёмку ведёте, на вэбку? Или телефон?
Galaxy S8, очень уставший и весь побитый.
@@monobogdan так то хороший тел. Но вы или на переднюю камеру пишете, или на заднюю но у вас затёрто стекло. Потому как такой ореол от источника света создаёт затёртое стекло камеры. Я клиентам своим делал так- просто наклеивал скотч на стекло. Оно разглаживает матовость стекла и изображение становится чётче. Ну или самый страшный вариант- заляпана затёрта сама камера. У s8 картинка должна быть отличная.
@@iAr2r у меня задней крышки нет, там уже мутный сам объектив :)
@@monobogdan, даже объектив мутный))
Спасибо Monobogdan за шикарное видео!
Комментируйте в поддержку автора
Спасибо за теплые слова!
Я расстроился, что нельзя сменить оружие поэтому полез в код и добавил слушателя в цикле по созданию списка пушек в магазине, а в коде движка добавил метод, который возвращает игрока, дабы было кому давать оружие. В моём билде теперь можно выбирать оружие при начале игры.
О, уже первый форк? :) Да, я там в первую очередь морду для магазина не успел допилить.
@@monobogdan но вообще работы много, нужно сделать так чтобы игрок мог погибнуть от атак зомби, экран смерти вывести при этом. Так же нужна кнопка магазина, механика накапливания бабла и механика паузы (смотрел вроде в коде есть её зачатки). И есть баг (по крайней мере на свежем ведроиде) когда игру сворачиваешь а потом разворачиваешь спрайты снарядов и зомби куда то пропадают и за место них белые текстурки
Андроид "прибивает" контекст GLES на неактивных приложениях и пересоздаёт при разворачивании. Из-за этого, игра обращается к невалидным хэндлам. Нужно реализовать механизм горячего релоада графических ресурсов.
Вот это я удачно зашёл ❤
Игру эсхантер напомнило
Давно хотел спросить. Есть ли где-нибудь сборник, пак, архив с jdk, sdk, ndk, ide что там нужно чтобы начать писать java midlet приложухи чтоб распаковал и готово. (Да на кнопочные) Когда узнал про jtube и прочий софт 😂 прям преисполнился лично поковырять. (Есть навыки ковыряния python, java android, c#, delphi 😅)
Тебе нужен NetBeans 7.3 и Sony Ericsson WTK
@@monobogdan благодарю. А на какую винду предпочтительнее ? Xp, семерка или без разницы ?
@@NarutoUzumaki-li4jf без разницы. Но на 10ке хреново работает Sony Ericsson SDK
какой твой любимый язык программирования который ты используешь?
Больше всего люблю шарп, затем C и Java
@@monobogdan выбор настоящего сигмы
К слову о совместимости. Я не частый игрок, но есть на памяти любимая игра TouchMix, она наподобие OSU, но там гораздо выше сложность и вовлечение в ритм.
Она запускалась на андроид 2.3 нормально, но у меня был только планшет prestigio с резистивным сенсором, и поэтому мультитач мне был недоступен, и пройти дальше первого уровня сложности я не мог никак.
На андроиде 4.4 игра уже запускается с глюками, не везде. На 5.0 уже начинается рассинхрон с нажатиями и играть невозможно.
На 8 и выше игра вообще не запускается из-за проблем с разрешением экрана видимо.
Эту игру и загуглить уже с первого раза не получится, нужно обязательно добавлять что это игра на андроид. Хотя там просто произведение аниме искусства, и музыка от корейского композитора написана специально для игры (композитор r300k, музыка оттуда есть на Ютубе).
Все верно. Особенно большие проблемы совместимости у нативных игр, т.е написанных на плюсах/паскале и иных нативных языках. В разные годы в дроиде ломали совместимость сначала с библиотеками без -fPIC, затем поломали рекурсивный вызов dlopen в libc, а край был добавление нового механизма разрешений. Вот многий софт и поломался.
Блин. Жаль нет апк, чтобы затестить.
Нет компа чтобы собрать апк.
Для оптимизации игры можно заново не создавать зомби, а скрывать и перемешать в область спавна. Так экономится память, может с пулями так же.
Такая оптимизация называется пулом объектов, однако конкретно в данном кейсе на данных девайсах не сильно поможет, только чуть снизит число аллокаций (что в любом случае не боттлнек сейчас).
Однако во времена консолей N64, PS1 или Atari Jaguar, когда динамические пулы объектов были дороговаты, а аллокаторы - не совершенные и фрагментировались, так действительно делали)
@@monobogdan в юнити до сих пор так делают
Когда приложения под Symbian?
Пока думаю :)
@@LihMeh Оооо это тоже будет интересно.
Замути ещё порт вторых дальнобольшиков класс будет)))
Подскажите пожалуйста какое расширение игр у китайских телефонов
MRP в ранних, VXP в поздних
Нормально: арктангенс, 32 бит, еще, наверное, до кучи... А на ПС1 плавающей точки вообще не было... За плчаса, наверное,посчитает.
Интересный комментарий! Однако дело в том, что на ARMv6 девайсах и ниже (было несколько ARMv5 смартфонов на дроиде - но они крайне редкие) зачастую тоже не было FPU из коробки, из-за чего использовался альтернативный ABI для взаимодействия с легаси кодом. В ядре Linux есть специальный хак, который ловит аппаратное исключение Illegal instruction и если там была инструкция к FPU, то софотово эмулирует нужную операцию.
На пс1 была фиксед-поинт арифметика, причем её аппаратно держал GTE.
Люди! Я только начал изучать c++, можно ли как нибудь делать с помощью него игры на кнопочные телефоны, которые поддерживают java
Привет. Нельзя :( Но под андроид игры пилить на плюсах можно)
@@monobogdan жаль, но видос классный
Огромная просьба к автору: когда снимаете блоги (себя в комнате), отключайте мониторы. Камера у вас не очень, в связи с этим мониторы дают очень сильный засвет (световой ореол), камера размывает и получается не очень.
У меня даже видеодрайвер прислушался к комментарию и пару раз крашнулся в конце, это можно заметить по морганию монитора :)
Я думал ogl 1.0 уже не поддерживается, и можно только 2+
Поддерживается и будет поддерживаться. На ффп огл завязано много легаси
@@monobogdan понятно.
а на 14 пойдет?
Ух, не знаю, смартов на дроиде свежее 10ки у меня нет.
Из 14'ого у меня только про макс китайский :))
Ахаха, мы знаем что ты любишь автоваз. Правда ведь, ребята из чата Богдана?
Рассказывал про производительность и в итоге взял высокоуровневый яп java, который перемножает на ноль этот довод)))) нада было тогда брать С или С++.
Это с чего ты взял?) Я в первую очередь говорил о производительности рендерера и при отправке дравколлов CPU-wise нагрузка ложится именно на нативный код (т.е под капотом glDraw). GC при минимальных аллокациях тоже не проблема.
Вся остальная логика слишком простая, чтобы быть "тяжелой" из-за выбора языка. Вот в условном Project Zomboid действительно есть боттлнек по процу из-за JVM в некотором смысле, поскольку там зомби постоянно перестраивают путь к игроку с помощью A*, и похоже игра даже не группирует толпы в группы, чтобы находить один путь для всех зомби в большом скоплении.
напоминает игру 2d strike
Сыноок, а ну давай, хватит бездельничать! Сейчас дом будем разбирать, а потом - по новой собирать, и чтоб как надо, не тяп-ляп. Времени нет, быстро давай!
На андроид 4.1 пойдет?
Да, начина с 1.6
@@monobogdan ура, galaxy s1 и s2 поддерживают
@@monobogdanсвежие ведроиды поддерживаются? Или у них повыпиливали то что использовалось в ранних андроидах?
@@stikmango2.032 да, игра не использует ничего особо кроме GLES
Андроид 2.3 поддерживает OpenGL ES 2.0
GLES 2.0 появился с 2.2 :) При этом гпу в смартфонах с чипсетами Qualcomm поддерживали GLES 2.0 еще до выхода 2.2
Вы очень умный, но как у вас хватает времени на все это?😮
Не работаю))
Я сбросил на игру 250000 тонн монобогдана
Потом можно создать донатную помойку, и покупать масло для ЛАДЫ ( АВТОВАЗ ) хоть каждый день!
Сибойл?
@@monobogdan Сибойл это настоящий нектар!
все круто но слишком ужато, ничего не понятно
Z 2D - "Нет преград для патриотов"
Если посмотришь имя проекта в студии - вообще обалдеешь))
@@monobogdan было бы за что патриотить,зетничать не хорошо,ведь тебя смотрят не только с раши,будь человеком!
Это рофл что ли?
@@user-rf47CwB72 нет и нет,но желаю автору быть Мурком ,но не опускаться до уровня мэдисона
@@yourate8538 блин, я думал тут за километр видно иронию :) В видосе вообще нет никакого подтекста.
Название Z2D - это Zombie2D, рабочее название проекта. А если посмотреть на заголовок окна в студии - то можно увидеть что сама папка проекта называется All Zombies Are Bastards :)