Обновить
39
0

Пользователь

Отправить сообщение

ИМХО, Смотря с какой java сравнивать. Последняя LTS 21 очень даже хороша с var, виртуальными потоками, pattern matching'ом, записями, try with resources и другими полезными нововведениями.

Крупняк пока переходит с 8 явы, но новые проекты можно начинать на 21 версии и получить все плюшки, либо начинает на kotlin.

Отличная идея, учитывая что через JS можно запросить FullScreen и рисовать на нём что угодно, например синий экран смерти или что-то подобное :)))

О, спасибо. Обновлю QR и код, как будет время.

Смотря какие игры и как программировать.

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

Второй способ - начинать с CS, с машинного уровня. В геймдеве с этим скорее всего придётся столкнуться, когда речь зайдёт об оптимизации или минимальной защите игры от взлома. Но такой подход долгий и за 2-3 года может пропасть желание "изучать IT, чтобы делать игры", а игры не будет. Зато может появиться стремление к чему-то другому: бэк, фронт, мобайл, дизайн, десктоп, тестирование, аналитика и так далее.

Вопрос поиска баланса при запросе "хочу научиться делать игры" для меня остаётся открытым, уж слишком много надо для этого изучить, чтобы сделать что-то сложнее (а в большинстве случаев это именно так) гиперказуалок.

Мой список того, что нужно изучить, чтобы начать геймдевить на c++ / java / js:
0. Структурное программирование, операторы, типы данных.

  1. Многофайловая структура программы

  2. Main loop

  3. Загрузка/выгрузка ресурсов (текстуры, звуки, модели, анимации)

  4. Пайплайн рендера, opengl или vulkan

  5. Шейдеры

  6. Матрицы, кватернионы, линейная алгебра

  7. Текстуры, форматы текстур

  8. Форматы данных вершин, нормали, тангенты, кости, веса костей

  9. Multi render target, framebuffer, отложенный рендер

  10. Анимации (кости, кватернионы, матрицы, интерполяции)

  11. Сеть - сокеты / http / websocket

  12. Бэк, если есть сеть. Стек не важен, главное не пхп.

  13. Многопоточность, синхронизация

  14. Физика - какой-либо движок, aimo.js, bullet

  15. Аудио

  16. GUI, рендер элементов управления, рендер текста, статические и динамические шрифты

  17. 3д моделирование, текстурирование, риггинг, анимации

Список можно продолжать.

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

Таков путь. В начале чувственно изучаешь мир, потом агрегируешь до эмпирических правил, потом принимаешь как теорию.

В данном случае чувственные измерения не дали ответа, и поиск продолжился в области математики.

Много весит (170кб) / (1300кб)

Ужели в 2024 170 кб или 1.3 мб так иного для 3d рендера и игрового движка? Нет смысла уменьшать размер js, если модели, текстуры, звуки будут весить 10+ мб.

Поставляется со своей UI либой

Это плюс - не нужно шаманить дебаг меню, а модно взять готовое

Не поддерживает реактивность

Ленивая загрузка ресурсов 3д сцены не тривиальная тема, так что в любом случае придётся загружать вручную. В каких-то случаях, окэй, принимаю как минус THREE.js

Шейдеры пишутся в строковых литерах, а не в отдельных файлах

На мой взгляд это плюс, так как можно сделать shaders.json и грузить все разом, а не делать 10 запросов на сервер за каждым файлом.

Копипаст кода через препроцессор а-ля С++ замедляет компиляцию

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

Нет стандартной библиотеки шейдеров

Зато есть стандартные материалы, например https://threejs.org/docs/#api/en/materials/MeshStandardMaterial

Нет автоматической группировки инстансов с одинаковым шейпом

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

Рендеринг либо треугольниками, либо всё руками на шейдерах

Как бы да, все GPU рендерят либо треугольники, либо линии.

А теперь по плюсам THREE js:

  1. Есть куча стандартных материалов

  2. Есть скелетная и морфовая анимация, блендинг, инверсная кинематика

  3. Поддержка множества форматов 3д моделей, ибо gltf не панацея

  4. Подробная документация

  5. Множество статей, вопросов и ответов, решений проблем новичков

  6. Рендер текста

С Вавилоном вы получаете полноценный движок игры, и нужно делать только игру, а не возиться с рендером, загрузкой/выгрузкой ресурсов и так далее.

Чем не угодил THREE.js, в котором и функционал шире, и поддержка устройств лучше, и примеров больше? Или, например, движок babylon, в котором и 3д графика, и физика?

Постарайтесь ответить без гонора ("Вакансия, разумеется, для интеллектуального меньшинства. Вам она, к сожалению, не подойдёт."), и сарказма ("У нас не только разработчиков нет, но и документации: https://mol.hyoo.ru/#!section=docs"), а по пунктам: у THREE.js / babylon нет, а у $mol есть, или в THREE js / babylon это не настраивается, а у $mol - настраивается, и так далее.

А ещё "привет, вонь", что делает необходимым не только бокс, но и вентиляцию.

GitLab CE, GitHub - ваш выбор. Версионирование, коммиты, Actions / CI/CD.

Вы можете настроить в гитхабе Actions так, что при пуше автоматически собирается новая версия вашей утилиты и кладётся в releases. Это ж круто. Можете сделать репу публичной и давать утилиту знакомым, им не нужно будет собирать из исходников.

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

Просмотр и редактирование структуры БД (не через консоль, которая безусловно есть, а через GUI), автодополнение SQL в коде на java / go / node. Подключение к локальным БД и по SSH, удобный редактор таблиц, сразу с поиском по каждой колонке, пагинацией, нормальным копи-пастом, позволяющим как скопировать записи из других таблиц, открытых в IDE, так и из csv файла.

Самое необходимое из этого - подсветка sql в коде проекта, с остальным кое-как справляется либо консоль, либо отдельные клиенты бд.

Ежели у вас 4 гб оперативки, то все верно.

Из моей практики, потребление оперативки средами jet brains до 4 гб (с запасом). Я считаю это разумной платой за функционал, который предоставляет IDE.

Фреймворк $mol, за авторством Дмитрия Карловского.

Сам глубоко в $mol не погружался - отталкивает гонор автора и язвительная модель рекламы $mol, что в совокупности множит на ноль возможно хорошие идеи фреймворка.

Так это ж ти́пикал ма́ркетинг. Автор называет оптимизацию без потери видимого качества "оптимизацией без потери качества". Так что всё верно, чтобы на глаз найти различие в двух картинках, их нужно жать с сильно различающимся качеством (> 0.1..0.2), сравнивать попиксельно и умножать дальту на 2..5..10.

Есть нюанс, avif по тестам обыгрывает jpeg, и по точности у него баллы выше, но на глаз сжатие jpeg как будто приятнее и детальнее (хотя это не так), а avif слишком гладкими делает фотки.

В реальности автор молодец, но в мир саасов, хотелось бы оффлайн решения, чтобы картинки жались в браузере, а не на сервере. С использованием wasm производительность будет достаточной. Да даже на js, если не жать 4к картинки.

У дилетантов всегда всё легко решается...

Что будет с новыми проектами, если затраты на рекламу - максимум 5-7% от себестоимости (даже не от цены продажи)? Для стартапов норма - уходить в минус на несколько месяцев, так как на рекламу расходы есть, а выручки нет. И выручки не будет, пока не будет пользователей, а их не будет без продвижения (в том числе рекламы).

Как будете считать себестоимость разработки ПО, если себестоимость - зп программиста. Для примера 200 т.р./мес, значит рекламный бюджет - 14 тыс / мес. Снять рекламный ролик - 50+ т.р., сделать интеграцию на канале (чтобы привлечь пользователей и оплатить работу программиста) - 100+ т.р., а у вас 14 т.р. максимум. Что наймёте второго программиста, чтобы повысить рекламный лимит до аж 28 т.р.? :)

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

Вузы не ограничиваются техническими. Естественно, для таких будет не "с нуля", хотя о ценности навыков программирования на асме и подгонки лаб под бессмысленные требования препода можно поспорить. "С нуля" - это после нетехнического вуза (мед, пед, юр, бух - что угодно).

Лучше страшилка "не потратишь 2к часов не войдёшь в IT", чем курс с якобы гарантированным трудоустройством на <250 часов, так как первое показывает объём работы, а второе - наглый маркетинг.

Пет проекты и фриланс - выход.

IMO, больше шансов у тех, кто начал вкатываться в IT со средней школы, и к 11 классу имеет 3-5 лет опыта либо самообуча, либо тех же курсов.

Войти с нуля после школы / вуза возможно, если уделять 30+ часов в неделю на IT в течении нескольких лет, а эта возможность есть далеко не у всех.

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

Отдельная плюшка - поддержка шейдеров из OpenGL и словоохотливость в ошибках вплоть до ссылки на документацию (если включена отладка).

OpenGL хорошо работает на маленьких проектах, либо при тестах на десятке устройств.

Отличный тариф для школьника, накопившего 130 рублей в месяц со школьных обедов)

По опыту, в 512 МБ разворачивается MySQL и JVM или Node js. Для npm run build нужно выделить 3 ГБ свопа, но это мелочи. А для MySQL уменьшить кэш, снизив потребление до 200 мб. Пустая JVM потребляет 60-70 МБ, оперативки 50-100 МБ развернуться хватит. Ну и диска после установки софта и настроек останется пару ГБ. Норм, хватит за 130 р/мес, зато самый крутой в классе :)

Deflate применяет алгоритмы сжатия в лучшем для конкретных данных порядке для минимизации размера на выходе.

За первого и второго ребёнка вычет 1400, за третьего и последующего - 3000. Право на вычет пропадает после превышения 350 т.р. суммарного дохода за год, то есть IT'шник получит вычет 0-3 раза, что в пересчёте на 13% составит по 182 или 390 рублей за ребёнка в месяц. Вычет производится из базы НДФЛ, если сотрудник работает по найму. Соответственно фриланс и самозанятые вычет не получат.

Хоть сколько-нибудь полезным вычетом можно считать вычет из того же НДФЛ на обучение ребенка суммой в 50т.р. = 6500 р.

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

Информация

В рейтинге
6 604-й
Зарегистрирован
Активность