Telegram Group Search
This media is not supported in your browser
VIEW IN TELEGRAM
Навайбкодил движок за месяц до такого состояния. Я ввязался в это, не потому что это легко, а потому что я ДУМАЛ, что это будет легко.

Вообще, хотел позаморачиваться с рендерингом графики, а выяснилось, что в данном случае — рендеринг, это самая легкая часть.

Че, как на счет N-часового видоса в котором поэтапно раскрываются все нюансики производства такого движка?

P.S.
Но в любом случае, нужно сначала докодить, тут еще месяц на допиливание оставшихся функций и полировку, как минимум.
Специально для неслишком умных чуваков из каментов: Я воссоздаю движок уже готовой игры, а не пилю игру с нуля. Где вы тут смогли увидеть противоречие в принципе? Игра называется Scratches / Шорох.

1. Игра Abandonware; в правовом аду, она не может продаваться
2. Оригинальный движок игры максимально хреново сохранился:
2.1 SCream это скриптовый хост, который работает, как стейт машина, т.е. обрабатывает команды подающиеся в него последовательно, в зависимости от текущего стека состояний.
2.2 Вся игра написана на Lua, байткод легко декомпилируется — но он содержит в себе только игровую логику, а не стек состояний / рендеринг / звук / интеракцию с предметами / etc

Пример создания кубмапа на Lua в игре, который обрабатывает движок:
  scCreate(SC_ROOM, "house-guest")
scBegin(SC_ROOM)
scCreate(SC_NODE, "n1")
scBegin(SC_NODE)
scTexture(SC_FRONT, "hs-guest_n1f.jpg")
scTexture(SC_BACK, "hs-guest_n1b.jpg")
scTexture(SC_LEFT, "hs-guest_n1l.jpg")
scTexture(SC_RIGHT, "hs-guest_n1r.jpg")
scTexture(SC_UP, "hs-guest_n1u.jpg")
scTexture(SC_DOWN, "hs-guest_n1d.jpg")
scFootstep("fx-foot_hollow1.ogg")


И вот подобной хуйни там на 23к строк кода. Как воссоздать движок по таким наскальным рисункам? Загадка Жака Фреско. Очевидно по названию функции и передаваемым аргументам. Вот в инициализации кубамапа все очевидно. Но есть места и неочевидные, вроде
  scFXPlayEx(SC_3DD, "fx-hammer_hall.ogg", 0, 1)


2.3 Игра захардкожена в разрешении 1024х768, из-за оригинальной реализации движка она не может рендерить картинку в большем разрешении, т.к. все hotspot'ы (интерактивные области) имеют абсолютные координаты. В моей реализации я конвертирую все входные координаты в относительные, под любое разрешение.

1 скриншот — оригинальное разрешение
2 скриншот — оригинальная игра, растянутая на полный экран
3 скриншот — моя реализация двигла, с относительными хотспотами

Скриншоты мартовские, сейчас я уже далеко вперед продвинулся.
!string.IsNullOrEmpty(str)


Или

string.IsNullOrEmpty(str) == false


???

Встречаю популярное мнение, что АРЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ МЕНЬШЕ БУКАВ ЛУЧШЕ, ПОТОМУ ЧТО МНОГА БУКАВ ЭТО ПЛОХА, БУКАВЫ ЧИТАТЬ ТЯЖЕЛО, а в первом варианте буковок меньше. Но ведь == false читается легче, потому что мы читаем сначала, а не с конца.

Первый вариант читается: "Не строка пустая или null".
Вторая читается: "Строка пустая или null - ложное утверждение"

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

!string.IsNullOrEmpty(str) - трахает по читаемости, если только ты читаешь справа налево.
Считаю == вообще не очевидным, что за двойное присваивание, кто это придумал вообще? Абсолютно не читабельно.

String.IsNullOrEmpty(str) is false


Единственно верный вариант.

P.S.
Если я что-то утверждаю, я не обязан представлять доказательства, если вы утверждаете обратное, опровергая меня, это вы должны доказательства представлять 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа фронтендера сложнее и это математически доказуемо.

Сколько времени вам нужно чтобы написать свой фотошоп? Я полагаю, что где-то примерно X часов. Сколько времени вам нужно будет, чтобы написать АБСОЛЮТНО точно такой же фотошоп, но в условиях, когда вы ограничены ресурсами браузера + ваш код работает в разных браузерах по разному.

Это же будет X + ((организация кроссбраузерности + пердолинг по овероптимизации)/скилуха).

Как вы понимаете X + ((Y + Z) / S) > X. Чем меньше S(скилл), тем больше пердолинга, но при это насколько бы большой не был скилл, (Y + Z) / S Никогда не будет равен 0.

P.S. Я не говорю, что бекендеры хуже. Да и большинство фронтендеров не осилят написать фотошоп в браузере, потому что от фронтендеров в основном требуют делать margin-left:10px;. Просто во фронтенде на тех же задачах больше пердолинга.
Как попердолит IT в будущем?

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

Исходя из этой логики, мой план развития выглядит так:

> Становлюсь тестировщиком
> Осваиваю бэкенд
> Развиваюсь в фронтенд
> Дрочу PM
> Вырастаю в продакт-овнера
> Перекатываюсь в DevOps

Я хочу уметь обеспечивать полный цикл разработки приложения в одну ебучку. Возникающие пробелы буду закрывать с помощью нейросетей (пока они на это не способны, но к моменту их развития я уже буду готов).
А Я ВАМ ГОВОРИЛ, ГОВОРИЛ! Ну что, кто нибудь из хейтерков скажет Флёнову (пост ниже), что он дерьмовый программист? Просто намекаю: https://www.youtube.com/watch?v=RhLy26sZD_E&ab_channel=ExtremeCode

Когда нибудь вам с монитора и Линус Торвальдс скажет, что кодить пяткой это норма.
ВНИМАНИЕ! Не воспринимайте это видео, как призыв писать плохой код. Просто не стоит зацикливаться на чистом коде. Пишите так, чтобы вам было удобно, особенно в игровой индустрии. А потом всё легко переписывается, переделывается так, чтобы работало долго и без проблем.

Ютуб / ВК / Рутуб
Когда только начинал программировать, каждый раз удивлялся, почему во всех гайдах работа с файлами выглядит как херня из под коня.

Сначала открой поток. Потом оберни его в StreamReader. Потом какой-нибудь буфер добавь. Потом подумай о том, как всё это всё подиспоузить. А зачем? Есть же File.ReadAllLines — вызвал, прочитал, пошёл играть в варкрафт.

Прошло время. И до меня начало доходить, что работа с файлами — это целый сраный квест:

> Права доступа. Файл можно читать, но нельзя писать. Или наоборот. Или вообще ничего нельзя. Надо проверять, запрашивать, обрабатывать отказы.

> Платформозависимость. Windows, Linux, Android, холодильник, тапочек твоего бати — у всех свои приколы.

> Файл может быть занят. Какая-нибудь другая прога уже с ним работает. Всё, облом (или не облом 🤨).

> Файл может быть гигантским. Читать его целиком — ОЗУ не хватит. Надо по частям (подписчики из Питера на месте?).

> Кодировки. UTF-8, ANSI, CP1251, древний шумерский — угадай, попробуй, приятного аппетита.

> Параллельный доступ. Попробуй-ка из двух потоков одновременно туда что-то записать. Увидишь, что бывает 🚫.

И вот тогда ты понимаешь, почему нормальные люди делают эту всратую обёртку из стримов и ридеров. Это не из вредности, а из-за здравой анальности.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Linux теперь в Telegram!

Ребята сделали крутейший канал про Linux, где на простых картинках и понятном языке обучают работе с этой ОС, делятся полезными фишками и инструментами

Подписывайтесь: @linuxos_tg
👉 Новое видео на канале: https://youtu.be/Yrt9Q9Rzl_U

P.S.
Ну и если я какой-то текст дочитываю до конца, то никогда не поленюсь поставить лайк и в комменте написать что-то типа: "Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?"
С штеудовским x87 есть еще мемная история — Nvidia PhysX может работать в двух режимах — на GPU и на CPU; Естественно и там и там упор в расчет большого объема данных для симуляции физики.

Только вот прикол в том, что код для CPU был СПЕЦИАЛЬНО написан под устаревший x87 (обратная совместимость ёпта, даже в 2025-ом году под неё можно бахать код), который работает В РАЗЫ медленнее SSE; Буквально, SSE расшифровывается как Streaming SIMD Extensions, т.е. он хорош для векторизации и операций с матрицами.

Конечно-же из-за таких муток, CPUшный PhysX показывал отвратительную производительность, в сравнении с SIMD на видеокарте, что хорошо работало в маркетинге этой технологии.

Да и прямо сейчас можно в панели управления Nvidia переключить режим и насладиться производительностью в старых игрульках (с датой релиза до 2010-го года). Процессоры с тех пор кратно нарастили вычислительную мощь, а вот игрульки эпохи ~2008 года тупо проседают до 1 FPS 🙂

После того, как обман вскрылся, Nvidia потихонечку переписала весь код под SSE и оптимизировала его под многопоток. Оказывается, не так уж и сильно процессор просасывает у GPU в подобных вычислениях 🤟
Please open Telegram to view this post
VIEW IN TELEGRAM
А знаете в чём хороши нейросети? В цензуре. Можно просто дать цензурируемым правильную нейросеть для поиска и выдавать им всю информацию с нужным посылом. Саму информацию при этом изменять не обязательно. Очень удобно получается.

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

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

Ну и как мне находить друзей-подруг? Только в дота 2 на телеге подкатывать к игрокам с женскими никами.

Ну или скачать приложение Кавёр. Оно объединяет в себе дейтинг и афишу необычных событий. Там-то я точно смогу найти с кем сходить на какой нибудь андеграундный стендап и необычно провести время вместе.

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

Ну а если нужно просто новых людей встретить, то можно воспользоваться разделом «Знакомства» – там без свайпов и алгоритмов можно найти интересные знакомства, отфильтровав анкеты в соответствии со своими предпочтениями

Во всяком случае это будет интерейсней, чем наворчаивать круги в парке или прикармливаться в кофейне. Вот такой вот лайфках для поиска друзей, а возможно и пары. Пользуйся.
2025/06/11 10:13:20
Back to Top
HTML Embed Code: