Главная | Настройки | NSFW
Тема:
Доски


[Ответить в тред] Ответить в тред

[Назад] [Обновить тред] [Вниз] [Каталог] [ Автообновление ] 320 / 150 / 148

Gamedev тред !tsGpSwX8mo No.120101
15931632080020.jpg (12 KB, 474x405)
15931632080191.png (34 KB, 1200x800)
15931632080562.webp (62 KB, 789x728)
15931632082133.webm (7523 KB, 1320x1040, 00:00:11)
Gamedev тред #1
Прошлый: >>96153 (OP)
В этом треде обсуждаем GaaaaaameDeeeev! Тут уже где-то 40 тредов про создание компьютерных видеоигр, а есть объединённый. Началось с того, что я, команда PredposledniyRubikon мучился во сне, мне снилось, что я в своей игре на 0,0,0 блоке на адресе 0x5XXXXXXX..., в итоге я выпустил игру и написал об этом на тучке-пучке.
Но я также продолжу и новые игры делать, когда закончу █████████████ и ██████████ спойлер: уже.
И вы тоже пишите в этот тред про свои игры и наработки, спрашивайте ответы, задавайте вопросы.

FAQ:
0. Не хочу разбираться в движках типа Unity, Godot, УЕЧ/П и GameMaker, хочу сразу делать игру. Как?
Ответ: Учи C или C++, смотри туториалы по SDL2, OpenGL, OpenAL, делай игру. Алсо, если тебе в туториале по OpenGL предлагают glBegin или glEnd, то этот туториал сильно устарел, но можешь попробовать для общего развития, работать будет. Если тебе не нравится опенгл, то пиши рейтрейсер или растеризатор.
1. Не хочу учить OpenGL, какой выбрать графический движок?
Ответ: Я незнаю, но можешь попробовать Ogre3D
2. Я офигею писать физику, какой движок использовать?
Ответ: Bullet (вероятно, лучший), NewtoneEngine (вероятно, лучший), ODE (вероятно, плохой, но я юзал). Это всё под 3D.
Под 2D Box2D зайдёт.
3. Как скомпилировать игру под виндовс/гнулинукс/макось?
Если у тебя GNU/Linux, то для виндовс есть mingw-X, где под X gcc и другие инструменты.
Как под линукс не из-под линукса скомпилить, я незнаю, не пробовал.
Для МакОС придётся либо покупать Apple-компьютер с XCode, либо качать некий Хакинтош. Но учти, что хакинтош это не уровень стим-игр, где-то ошибёшся и потом не будешь понимать, почему у эппл-игроков не работает, а их почти 3% от всего количества.
4. Хочу запилить реалистичную физику жидкостей.
Ответ: Наверное, тебе надо копать в сторону уравнений Навье-Стокса. Векторные поля, диффуры, всё это можешь учить на mathprofi.ru.
Вопрос в том, где ты найдёшь достаточно вычислительной мощи.
5. Как рисовать текстуры?
Овтет: В графическом редакторе, их много. GIMP, Krita. Например, Krita неплохая для графического планшета, а в гимпе тебе будет неудобно даже пиксельную графику рисовать.
6. Как делать музыку?
Ответ: Если не можешь в реале, то тебе понадобится llms.
7. В моих звуках слишком много шума, как его убрать?
Ответ: Звуковые эффекты, в т. ч. и избавление от шума можно сделать в программе Audacity.
8. Как делать 3D-модельки?
Ответ: В блендере. В недавнем обновлении ГУИ изменили, так что если ты начинающий, то тебе будет сложно смотреть старые уроки по блендеры, хотя при первом запуске ты можешь выбрать старый ГУИ.
9. Как загружать 3D-модельки?
Ответ: libassimp, tinyobj (obj), tinygltf (gltf).
10. Как выложить игру на Steam?
Ответ: Регистрируешься в steamworks, на каждую игру единоразовая комиссия 100 долларов + от продаж около 30% (не считая налогов). Тебе придётся внести свои реальные данные, возможно и пасспорт. Читаешь документацию по стиму и стимапи (там ссылки кругом, разберёшься), создаёшь игру, проверяешь, она запускается хотя бы или нет, отправляешь на проверку в стим и тебе говорят, можно выпускать или какие-либо фатальные ошибки или рекомендации. Потом 2 недели минимум игра висит чисто страничка, затем пользователи могут покупать. Цены и скидки сам накладываешь когда тебе удобно, но с некоторыми ограничениями.
11. Как выложить игру на Google Play?
Ответ: Регистрируешься в гугл плей консоль, на каждого разработчика единоразовая комиссия 25 долларов. мобилочки подходят для рекламы и внутриигровых покупок, но никто тебе не мешает её ещё и платной её сделать.
12. Как выложить игру на itch.io?
Ответ: Регистрируешься на itch.io, выкладываешь игру. Можешь даже продавать, получая на пейпал.
13. Как сделать игру?
Ответ: Мотивация + воздействие x время.
14. Как продать игру?
Ответ: Маркетинг и пиар.
15. Как делать трейлеры к игре?
Ответ: ffmpeg, OpenShot. Нужна хорошая музыка.
Gamedev тред !tsGpSwX8mo No.120105
>>120054
Это да. Если бы я хотел делать игры то просто взял бы какой-нибудь годот и на нём делал бы. А может, даже, обычные движки, посмотрел бы тот Ogre3D. Но я не такой. Некоторые продукты не находят общего языка с моим психическим организмом, происходит отторжение. Если смотреть на графические программки, то mpv, блендер и lmms (хотя с ним у меня мало XP) мне больше всего зашли (несмотря на то, что мне не нравится блендер, внутри я понимаю, что его просто не понимаю).
Всё остальное — говно, либо продукт ненадлежащего качества.

А вообще, вместо игр можно было бы и ассеты пилить. Я заходил на godot магазины assэтов и там сплошной лохотрон — всё бесплатно, и как на этом можно заработать? Вот юнити ассерт стор другое дело, но сам понимаешь, что происходит с желудкмб.
Существовал бы Лайси в нормально обличии на свете, можно было б запилить отдельный формат ассетов с эмбеддед-лайси скриптами. И конвертировать их хоть в юнитексные, хоть в гондотные ассеты (если это будет позволительно). Можно и отдельный "движок" запилить с такими ассетами и продавать в стиме (я сторонник СПО, так что выбрал бы полусвободную лицензию, где я могу продавать, а другие могут скомпилировать).

Я уже вышел на новый уровень развития, но закрепиться на нём не смог из-за отторжения C/C++. Это как если некоторые кирпичи класть, не прогрунтовав. Или если водоросль ризоидами крепится к камушку, а он промаслен. Нет, это когда пытаешься термоклеем на жирную поверхность наклеить что-то. Мне пора использовать отдельные библиотеки, но надо было изначально продумать полностью архитектуру и все функции, даже не спрограммировав их.
Сейчас я разнёс свою систему ГУИ и собираю её заново, отгородив отдельный модуль с комплексными, но часто встречающимися виджетами. Кнопка, Слайдер, виждет с контекстным меню, лейбел и всё такое. Я одновременно пишу этот модуль и портирую систему ГУИ под рейтрейсер. Поддержку опенгла удалил, чтоб не мешалась, но, может быть, потом введу обратно и частично.
Anonymous No.120109
>>120101 (OP)
>Регистрируешься в steamworks, на каждую игру единоразовая комиссия 100 долларов + от продаж около 30% (не считая налогов).
Почему почти треть?

Есть ли доход от продажи пользователями карточек? Вроде бы где-то читал, что есть.
Anonymous No.120114
>>120109
>Почему почти треть?
Потому что стим даёт очень удобный сервис для продажи игр. Даже лютое говно может окупиться за пару лет.
Вот если бы ты выдавал самиздатом, то сколько бы продаж у тебя получилось бы? 0? 1? 2?

>Есть ли доход от продажи пользователями карточек?
Я не знаю, чтобы получить возможность создавать карточки, игра должна стать очень популярной.
Anonymous No.120150
>>120101 (OP)
>FAQ
Сверни его в разворачивающийся спойлер в следующий раз что ли.
Который вот этот
Anonymous No.120178
15932669818990.png (27 KB, 1200x800)
Генерирую текстуру чанка. На этот раз у меня будет не пиксельная графика.
Anonymous No.120385
15933391749450.png (59 KB, 1200x800)
Я хотел сделать текстурирование треугольника, но вместо этого занялся преломлением. Но я не понял как повернуть 3D-вектор на некоторый угол, относительно плоскости, которую пересекает direction луча и нормаль поверхности, потому что плохо знаю линейную алгебру. Поэтому просто сделал среднее между -нормалью и дирекшионом.
В платформер надо будет потом завезти декоративные линзочки, которые будут скакать по экрану и если попадут в голову ГГ, то визуально уменьшат её, а игрок, может быть, рассмеётся с такого исхода.
Anonymous No.120389
15933416933900.webm (420 KB, 1200x800, 00:00:07)
Мда, 2.5 ФПС на фулл хд.
Параллеливание в 8 потоков увеличивает производительность в 5 раз.
Мне надо довести хотя бы до 10 ФПС на одном потоке, чтобы было нормально.
Anonymous No.120395
Где можно кратко (в виде статьи) прочитать про гейм-дизайн и его основы?
Anonymous No.120396
>>120389
Как ты добился фпс более низкого, чем с шарами в объёме с матрицами и лучами?
Вот это точно в реальном времени рендерится на процессоре. Причём на старом.
Anonymous No.120416
>>120396
На самом деле нет, при фуллхд с теми сферами, если близко подойти к объекту (чтоб экран занял), получится тоже 2.5 ФПС. Хотя, когда я портировал свой сырой рейтрейсер на свой абстрактный движок, мне показалось, что на одном моменте ФПС уполовинился.
Что же мне делать, если не смогу поднять ФПС до приемлимого уровня? Наверное, придётся вводить поддержку опенгл и динамически генерировать шейдер для рейтрейсинга всех объектов. Только не получится коллбеки для специальных объектов вызывать, либо и их портировать на GLSL/SPIR-V. Вот же производители процессоров! Лишают меня возможности делать нормальные продаваемые игры. Действительно опенглогулаг. По моим процессорам пока застой. Смог напылить немного меди на кусочек стекла (в самом лучшем образце образовались множественные островки, а на краю даже полноценная блестящая плёнка, которая с небольшим усилием стирается металлической иглой). Теперь пора заняться обработкой кремния.
Anonymous No.120420
>>120416
>тоже 2.5 ФПС
Но в плоском случае тебе не нужно ворочать матрицы, углы или ретрейсить. Если теоретическое преимущество ретрейсера в 3d очевидно есть, то в плоском случае просто полностью эквивалентные картинки будут - если у тебя глубина - то просто рисуй по слоям - это не 3d и слои дискретные, вряд ли их больше 5.
Или, если так хочется - ты можешь по сетке разбить экран на куски 32х32 - пройтись по объектам и записать традиционной растеризацией в каждый из кусков номер объекта - и потом ретрейсить только локальный список каждой отдельной клетки 32х32. Но ты просто в десять раз больше вычислений сделаешь, чтобы получить ничего. Твой подход это примерно как использовать сортировку пузырьком, потому что быстрая сортировка с рекурсией это ересь и квиксортогулак по каким-то надуманным причинам.
Anonymous No.120433
>>120420
Я, кстати, ошибся. Если на демке со сферами отключить освещение, то ФПС возрастёт до 15, в 3 раза больше, чем в игре. Значит, я где-то там с объектами напортачил. У меня в движке есть ноды и эти ноды могут содержать другие ноды со своей относительной матрицей. И перед рейтрейсингом я их компилирую в один список объектов с просчитанными матрицами.
>ретрейсить
Не, опенгл это конечто плохо, но чтобы менять его на растеризацию, это плохое решение. По-моему лучше оставить рейтрейсинг. Мне надоело уже переписывать своё ПО. Если я буду вводить то одни, то другие алгоритмы, то так и буду писать пустой код.
Опять же, производительность это не столько мои проблемы, сколько проблемы железной части. Вот почему современные процессоры не дружат с рейтрейсингом? Потому что монополия и маркетинг.
Anonymous No.120441
15934101910700.png (218 KB, 363x626)
Anonymous No.120447
>>120433
>Потому что монополия и маркетинг.
тут должна быть шутка про штаны
Anonymous No.120459
15934198594000.webm (170 KB, 1888x1024, 00:00:05)
Сука! У меня ФПС просаживался, потому что я забыл -O2 поставить!
Ну всё, теперь можно полноценно игру писать, 60 ФПС на 12 ядрах в фуллхд!
Anonymous No.120468
>>120459
Поздравляю с открытием. Кстати у всех в среднем всего 4 ядра, а не 12.
Anonymous No.120481
>>120468
>4 ядра, а не 12.
Но они сильнее моих амдшных или нет?
Anonymous No.120511
>>120433
>Вот почему современные процессоры не дружат с рейтрейсингом?
А почему они не дружат то?
Мне кажется процессор любой архитектуры будет ретрейсить дольше растеризации с буфером глубины. Это просто разные алгоритмы как O(n^2) и O(n), и собрать процессор на котором будет быстрее работать первый алгоритм нельзя.
Anonymous No.120514
Где можно найти гайд степ бай степо по геймдеву?
Anonymous No.120538
>>120514
Таких нету.

Заголовок спойлера
1. Придумываешь идею. Геймдев разный и нужно примерно представлять что ты хочешь делать и на какой роли.
2. Игра состоит из кода и контента.
Код:
- Можно использовать движок. Придётся изучить 30..50% программирования, просто чтобы мочь эффективно использовать движок, подходит не для всех жанров. Рекомендуется начать с базовых основ программирования без движка - изучить (можно в теории) что такое переменные, функции, циклы и массивы, дополнительно посмотреть что такое объекты и методы в ооп (99% движков используют ооп). После этого садиться за гайды по движку, если не понятно - вернуться к основам программирования.
- Можно не использовать движок. Нужно изучить 90% программирования, и помимо этого изучить многие из нижепредставленных разделов:
- линейная алгебра (матрицы, расстояния от прямых до точки, решение систем уравнений - нужно для всего кроме визуальной новеллы или другой текстовой игры)
- основы компьютерной графики (знание какого-то апи для вывода графики, общие сведения про текстуры и полигоны - нужны чтобы нарисовать хоть что-то)
- пользовательский интерфейс, многие игры годами страдают от невнятного интерфейса, которым неудобно пользоваться. Особенно этим страдают инди-игры вроде майнкрафта или project zomboid, и даже использования движка не всегда спасает от этой беды. Логика работы интерфейса может быть очень сложной и требует отдельного изучения.
- представление игрового мира - может быть довольно нетривиальной задачей разобраться каким образом должны храниться и взаимодействовать игровые объекты. Например, даже простое взаимодействие рельефа, игроков и каких-то боевых способностей можно сделать множеством разных способов. А если это ещё рпг с квестами, которые взаимодейтсвуют друг с другом... Скорее всего это тоже требует отдельного изучения и практики.
- библиотеки для загрузки разнообразных форматов изображений, анимаций, моделей или звуков - представление этого в коде (использования движка очень хорошо тем, что избавляет от всех этих проблем разом - разобраться и сделать то, каким образом загружается и используется трёхмерная моделька с костной анимацией может быть довольно трудоёмкой задачей)
- вычислительные алгоритмы (тонкости работы чисел с плавающей запятой, эффективные алгоритмы и структуры данных - нужны для любой трёхмерной игры с картой больше чем 30х30 метров, или двухмерной игры с множеством объектов)
- сеть и мультиплеер (знание какого-либо апи для передачи данных, p2p и клиент-серверная модель, lock step и компенсация пинга - понимание что и в каких случаях лучше подойдёт)
- подробности компьютерной графики (тени, шейдеры, hdr, DoF, скелетные анимации и прочее - если игра трёхмерная и там нужна более красивая картинка)
- основы физики при использовании физического движка (численные методы интегрирования, минимальные сведения про обнаружение столкновений, вращения в пространстве через кватернионы - нужны просто чтобы эффективно использовать уже имеющийся физический движок) Разработка собственного физического движка задача намного более трудоёмкая, чем создание игры.
- кучи мелких мелочей, вроде воспроизведения звука, которые не такие крупные - но всё ещё могут потребовать нескольких часов изучения.
(плохие новости - из всего этого "степ бай степо" гайды есть только по компьютерной графики и движкам, численным методам - какого-то внятного хотя бы просто сборника статей про физику или ui я никогда не встречал)
Контент:
- модельки
- создание геометрии
- текстурирования моделек
- анимация моделек
- эффекты (взрывы, искры и анимации способностей могут потребуют чего-то большего, тем моделька с текстурой)
- левел-дизайн (придётся создавать собственный редактор карт или использовать процедурную генерацию мира, алгоритмы которой могут быть очень сложны)
- Если есть квесты или другие события изменяющие глобальное состояние мира, то задача усложняется ещё сильнее
- компьютерные противники
- разработка внятного интеллекта даже для отдельных мобов может быть сложна (если уровни имеют сложную форму, укрытия или если есть какие-то сложны способности)
- разработка внятного глобального противника (вроде вражеского игрока в стратегии) контролирующего множество юнитов и с возможностью создавать новых юнитов выходит за возможности соло-разработчика в любой нетривиальной игре.
- музыка и звуки

3. Выписываешь вышепредставленные разделы необходимые для твоей игры, то за какие разделы в ней ты будешь отвечать. Нанять художника для создания модельки просто - он может сделать часть работы и уйти, нанять программиста сложно - скорее всего он должен быть один на протяжении всей разработки, он не может сделать часть работы и уйти, в противном случае следующему будет намного сложнее - возможно настолько, что будет проще начать с начала скопировав лишь отдельные части.
4. Выбираешь языки и инструменты. По очереди исследуешь выписанные разделы, возможно по "степ бай степо" гайдам, которые для отдельных разделов могу существовать.
5. Создаёшь техникал-превью - простейший прототип с демонстрацией основных идей.
6. В этом месте нужно подумать про маркетинг - разобраться для какой ца ты делаешь игру, как много денег и времени ты готов на это потратить, где продавать и чем завлекать игроков.
7. Теперь можно переделывать более чистую альфа-версию, куда внедрять часть контента. Возможно будет смысл начать с начала, а не модернизировать техникал-превью. Есть смысл создать план, что в альфе будет и чего там быть не должно.
8. После завешения альфы нужно тестировать и балансировать, ты её создал - ты знаешь её как пять пальцев, но для стороннего игрока она может оказаться невероятно непонятной и сложной, неудобной в управлении.
Anonymous No.120761
15936192289280.png (59 KB, 1029x793)
15936192289711.png (24 KB, 776x432)
Новости вторжения альенов.

1. Запилил стрельбу альенам.
2. Дамаг по игроку теперь проходит.
3. Джва новых типа кораблкиков. У всех разный урон, скорость и злобность.
4. Добавл анимацию вращения альенов на цель. Теперь очень правдоподбно(нет) летают.
5. Пофиксил пути движения. Но они все равно получаются с резкими перегибами, что не очень красиво.
6. Увеличил разрешения игоря с 800х600 до 1024х768. Хотел сдеать камерную арену, но чет потом стало тесно.

Завтра или послезавтра запелю видосик, в динамике намного лучше выглядит, чем на скрине(выстрелы лучше видно).

Что еще надо зделоть до конца:
1. Все эффекты - анимация попадания, анимация врыва кораблики, врек, след движения, щит.
2. Несколько мегадвевайсов для прокачки корабля игрока. Да будут элементы РПГ между сражениями, возможно с любовной кулсторей между ГГ пилотом и ученым(это белая женщина - уточнение для барнаульцев).
4. Учет очков.
5. Несколько новых видов оружия альенов и типов атак. Это очень спорно из-за того что игроку уже сейчас не хватает живучести и если альенам дать что-нибудь помощнее то будет непроходимый жопоразрыв. В любом случае у них будут еще лучи.
6. Нормальные тайминги атак. Есть подозрения, что синус и косинус могут помочь.
7. Финальный босс вертолет материнский корабль. Это пидос, я не осилю графон. У него будут атаки в стиле булет-хелль, но уже заранее понятно, что подвижности у игрока нет, он неизбежно соснет. В этом главня трагедия игры.
8. ИНТЕРФЕЙС - это настоящий босс игры для меня. Есть готовая библиотка, но она не протестирована, что гарантирует приключения в отладчике.

Такие дела.
Anonymous No.120774
>>120538
Просто вау!
>>120761
Ты молодец анон, продолжай в том же духе
Anonymous No.120801
Годаны, объясните кто-нибудь, как без огромных массивов малопонятного кода сделать машину состояний для 2Д-платформера? Сколько ни смотрел, у каждого свои способы - от массивов магических рун кода на целые экраны до отдельных нод.
Anonymous No.120812
15936648178490.webm (542 KB, 1200x800, 00:00:12)
Для платформера одна из основных сложностей (фич) — сделать контроллер персонажа. У меня даже стокновения еле идут.
Anonymous No.120814
15936658895910.png (5 KB, 795x489)
Хахахаха, рандомная генерация текстуры! Как вам такое, опенглогулагеры? В опенгле пришлось бы буфера какие-то генерировать, текстуры инициализировать. На ЦПУ все буфера уже в ОЗУ!

>>120801
У меня во всех играх ноды, у которых могут быть коллбеки для определения поведения.
Anonymous No.120855
>>120814
>Как вам такое, опенглогулагеры?
Всё ещё ничего такого, что нельзя нарисовать с использованием opengl с минимумом изменения кода.
Anonymous No.120859
15936856082680.webm (478 KB, 1200x800, 00:00:09)
Эта женщина бегает неправильно!

>>120855
А если запускать bare-metal на микроконтроллере? Не думаю, что на МКУ легче портировать какой-нибудь LLVM-pipe, чем софтрендер.
Anonymous No.120869
>>120859
>bare-metal на микроконтроллере
>МКУ
>LLVM-pipe
>софтрендер
Что?
Anonymous No.120874
15936947262490.webm (2420 KB, 640x360, 00:01:44)
Anonymous No.120895
>>120859
> Эта женщина бегает неправильно!
Больше на полет в невесомости похоже.
Anonymous No.120920
>>120874
Бляяяядь, я надеялся, что ты на сосаче останешься.
Anonymous No.120921
>>120869
bare-metal на микроконтроллере это частный и частый случай запуска программ на МКУ.
МКУ это микроконтроллер, по английски Micro Controlling Unit.
LLVM-pipe это софтовая видеокарта, можно опенгл на процессоре считать.
Софтрендер это софтрендер.
Anonymous No.120928
>>120921
Какое отношение имеют микроконтроллеры к рендеру картинки для платформера?
Anonymous No.120935
15937286972350.webm (19756 KB, 800x600, 00:05:50)
15937286976941.png (53 KB, 1027x791)
Обещанный видосик с геймплеем на кончиках пальцев. Минуту в конце отрезал где меня слили, на 3мб не влезал в лимит.

Алсо, сегодня проебал первые 5 фпс. Еще заметил, что течет память когда игра свернута в трей, лол.
Anonymous No.120937
>>120935
прикольно. А как траектории движения сделаны, когда они летают и стреляют?
тред выше не читал
Anonymous No.120938
15937320692050.png (25 KB, 806x625)
>>120937
Траектория это сплайн Катмулл-Рома: https://en.wikipedia.org/wiki/Centripetal_Catmull–Rom_spline

По этому сплайну можно идти как по прямой задавая некторое время t от его начала и получая интерполированые координаты точек в пространстве. Он гарантировано проходит через все заданные точки включая начало и конец плавно скругляя повороты. У меня перегибы получаются только в местах где курс меняется на 180 градусов. Сами точки пути для сплайна генерется случаным образом в заданных регионах экрана, есть специальный плавающий регион напротив игрока чтобы он не заскучал, а последняя точка пути атаки находится за краем экрана. Альен понимает что атака закончена когда время t его сплайна равно количеству входящих в него точек и генерит новый сплайн возвращения во флот.

Пикрелейт старый скрин с дебагом полета.
Anonymous No.120948
>>120928
На них легче рендерить софтрендер, а не щзутпд
Anonymous No.120949
>>120935
Неплохо, хорошо.

Но для современной аудитории, наверно, надо сделать больше снарядов, с разнообразными спрайтами и большим количеством как в тохе. Ну и твой корабль в таком случае, должен двигаться во все стороны.
Anonymous No.120958
>>120935
Почему свои и вражеские снаряды ничем не отличаются?
Почему твой корабль такой медленный, по сравнению с вражескими?
Anonymous No.120986
>>120949
>как в тохе
О нет только не тоха. Отвратительная хрень с позиции здравого смысла. Заливать весь экран разными снарядами которые летят куда угодно кроме как в игрока это фейл. По лору сражения идут со всякими могущественными феечками-волшебницами. Чтобы показать какие они ниибаться могущественные каая первая создает шитшторм снарядов. Но сильный могущественный противник именно и тем силен, что он может одним ударом точно в лоб сделать игроку неприятно, а не изображать из себя клоуна - смотри какие спецэффекты я могу колдовать. И да, у меня все альены действительно на полном серьезе хотят убить игрока и целятся точно в него, а не изображают как они хотят его убить попукивая в левый верхний угол экрана.

>корабль в таком случае, должен двигаться во все стороны
Может добавлю потом небольшой маневр по Y. Вообще можно будет сыграть в игру вдвоем за одной клавиатурой, у каждого игрока есть своя высота, так чтобы они не пересекались. Если добавить перемещение по Y, то нужно решить, что делать с пересекающимися игроками.

>>120958
>Почему свои и вражеские снаряды ничем не отличаются?
Оружие на одних и тех же физических принципах, поэтому и одинаковые. У игрока лазер чуть похуже кстати, у него релоад 2 секунды, против 1 секунды у чужих.
>Почему твой корабль такой медленный, по сравнению с вражескими?
Чужие развитая цивилизация ослившая дальние путешествия со сверхсветовыми скоростями. Понятно что у них ветка движков будет прокачена лучше чем у человечков сычующих на земле. Жестокая галактика короче.
Anonymous No.120990
>>120986
>попукивая в левый верхний угол экрана
Тучую, в реальном мире мне бомбы из-за этого не нравятся. Зачем они взрываются во всех стороны, они что, такие тупые? Взяли бы бомбу, да направлили бы всю энергию в одну точку, так что можно снимать террориста с расстояния в километры. Или в банках поставить по бомбе и пусть они взрываются, убивая только грабителей.
А Ким Чен Ын уже давно мог взять свою ядерку, направить её под углом в землю и задестроить вашингтон. Но он же даже не тиран, а простой позёр.
Anonymous No.121006
15938680151810.webm (1233 KB, 1200x800, 00:00:24)
Запилил новый дизайн+анимацию персонажа. Пока только анимация бега есть.
Я не могу сейчас заниматься игрой фуллтайм, ведь на стим директ тоже нужны деньги
Планирую потом сделать игру пиксельной. А для этого надо нормальные координаты для текстур обрабатывать, а то сейчас у меня просто берутся икс и игрек луча для частного случая ортогональной проекции.
Тайлов размер сменить с 32 до 24, ГГ будет умирать через несколько секунд, если пройдётся в однотолщевой тоннель (на голову давит).
Пост отредактировал Anonymous
Anonymous No.121017
>>121006
>Планирую потом сделать игру пиксельной.
Это как? Сделать текстуры с пикселями размером с кулак? Зачем так уродовать графин, сейчас неплохо ведь выглядит. Остави так.

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

Алсо, у тебя прыжки неправильно сделаны. В полете нельзя управлять направлением меняя его чуть ли не на протвоположное как у тебя.
Anonymous No.121031
15938789864410.gif (972 KB, 819x729)
>>121017
>пикселями размером с кулак
Размером с 3-5 реальных пикселей.

>правильные пиксельный игорь должен следовать разрешению экрана, а не огрублять и растягивать текстуры как принято у всяких каргодаунов делающий индиговно под ретро
Полнейший бред! Это во всяких ретро редко была хорошая пиксельная графика, обычно они мылили возьми что попало, шакалили видео и даже теней не было. Если взять пиксельного марио, то это пример некачественного пиксель-арта. Просто в то время это было одним из самых реалистичных отображений героев в играх, учитывая железо, время, мылящий дисплей и квалификацию роботников.
Настоящий пиксель-арт это как импрессионизм. Надо при помощи квадратиков с ограниченной палитрой передать что-то, что напомнит о настоящем изображении и будет выглядеть уместно, круто, красиво.
В моей же игре можно было бы делать непиксельарт, если бы я включил антиалиазинг, то есть контуры были бы сглажены. Но для этого пришлось бы текстурку рисовать большим размером, а это сложно! Можно было бы даже на графическом планшете рисовать мульяшные кадры и запускать их вместо пиксельной анимации.
Даже во всяких рейтрейсингах и пастрейсингах можно включить антиалиазинг, если для пикселя выпускать больше одного луча, картинка станет реалистичнее.

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


Кста, персонажа я рисовал, смотря на превью платного ассета как на референс.
Anonymous No.121206
15939687277260.gif (25 KB, 240x370)
>>121031
Я вот персонажа почти целиком обрисовал по шаблонам старбаунда.
Разве что псевдоанимацию груди добавил. И надо будет исправить движение бёдер, наверное, но не знаю, как. Это ж всё сломает.
Блядъ, зачем я написал это вообще? Теперь это "похвастайся персонажем"-тред.
Anonymous No.121275
>>121206
В такое я играть нибуду! Серьезно, уебищные же пиксели-мутанты все портят.

Оставь графен как вот в этом видосе >>121006 Один пиксель богоугодно соответсвует одному пикселю реального экрана, выглядит збс.

>похвастайся персонажем
Прогрессом же.
Anonymous No.121281
>>121275
> уебищные же пиксели-мутанты
Но ведь не так уж и плохо... а что рук нет - так их потом прикрутим отдельной нодой...
Anonymous No.121412
>>121275
Можешь назвать хоть одну успешную игру, где виртуальный пикусель соответствует физическому?
Anonymous No.121473
15940563218740.png (792 KB, 1024x768)
>>121412
Unepic. Или еще вариант - жукорыцарь. Да вообще любой игорь где не делают пиксельную блевоту, а стараются сделать графон достаточно детализированым под большое разрешение экрана(зашакалить всегда можно успеть). Для меня загадка насколько надо иметь отбитое чуство вкуса, чтобы рисовать пиксели под экран 380х230 и натягивать их на фулхд. Раньше это выглядело из-за того что экран был меньше и сам мылил картинку, а теперь бешеные диагонали у каждого первого и острые края у любого контура.
Anonymous No.121482
15940578365120.png (119 KB, 1920x1080)
>>121473
>Unepic
>over 4000 ревью в стиме
Ну ладно, пример засчитан. Но что-то пиксельные там только мобы и ГГ, судя по твоему скриншоту, остальное проантиалиазено.
А причём тут Hollow Knight я вообще не понимаю. Он же не пиксельный, а мультяшный.

>рисовать пиксели под экран 380х230 и натягивать их на фулхд
Не, во многих современных пиксельных играх есть непиксельные эффекты типа освещения, "туманов" и подобного.
Хотел привести пикрилейтед Celeste и кружки тени и света на заднем плане, но они оказались пиксельными. Но, по крайней мере, с плавной палитрой, а не как у пиксель-арта.
>острые края у любого контура
Как я и говорю, это просто стиль такой.

Извини, но мне кажется, что ты какой-то инопланетян с плонеты жопа, не разбирающийся в видеоиграх. Именно такие как ты и покупают у меня Индустриворкс и Чессмейтс.
Пост отредактировал Anonymous (Причина: минус ин)
Anonymous No.121486
>>121275
>Один пиксель богоугодно соответсвует одному пикселю реального экрана, выглядит збс.
По-моему, в таком случае игра перестаёт быть пиксельной и становится просто 2д.
Anonymous No.121493
>>121412
АоЕ 2. Её 20 лет и до сих пор в неё играют тысячи игроков через воблу. Может быть сейчас меньше из-за DE-версии (это ремейк).
Anonymous No.121554
15940938837520.png (54 KB, 320x180)
15940938837791.gif (602 KB, 506x500)
>>121482
Твой пикрелейт имеет размер "пикселя" 6х6 при разрешении 1920х1080. Если сжать эти кубы до одного православного пикселя то получим разршение картинки 320х180 - пикрелейт. На экранах доисторической эпохи первых компов кортинка действительно была охуительная, но теперь это просто говноедство и каргокульт ретродаунов. Под 1920 надо рисовать честные 1920 пикселов, тут какбы ленивым сракам очевидно, что это ручной работы в 36 раз больше чем нахалтурить "у меня ретро азаза".

>>121486
Не перестает. Пиксели это ручная работа с формой и цветом. Разница прирмерно также как между вином, виноград которого давили ногами девствениц, и вином из винограда выдавленного бездушным промышленным пресом. При прямых руках артиста ее нет, лол.

Второй пик это тру пиксель арт. Зацените детализацию.
Anonymous No.121563
>>121554
>Второй пик это тру пиксель арт
Что? Это совсем не пиксель арт. Паул Робертсон рисует в мультяшном стиле, просто контуры без антиалиазинга. Есть такое движение, когда рисуют обычные картинки, но с пиксельным контуром. И это совсем не пиксель-арт. Как я и говорю, пиксель-арт схож с импрессионизмом.
С таким большим разрешением может любой дурак художник рисовать, а ты попробуй уместить лицо персонажа в размер 4x3 пикселя.
Anonymous No.121579
15941032321630.png (2 KB, 300x400)
>>121563
>попробуй уместить лицо персонажа в размер 4x3 пикселя.
Пффф. Да я и в один могу. Только зачем нужен трешак?

Пиксели это детализация, а не попытка всё сжать.
Пост отредактировал Anonymous
Anonymous No.121589
>>121579
И что это за лицо? То, что ты нарисовал это уровень дошкольника. Где тени, где ресницы, где эмоции? Такое вряд ли пойдёт в коммерческий геймдев.

Кстати, вот список успешных пиксельных игр: https://store.steampowered.com/tags/en/Pixel+Graphics#p=0&tab=TopSellers (правда, там не все игры пиксельные). Это говорит о том, что пиксель-арт это нормальное художество.

Мне не нравятся всякие графонослайсы типа зе ласт оф аз, резидент эвил ремейк, анчартед, но, всё-таки, такие игры существуют и не считаю их чем-то плохим или неправильным. Просто они для детей.
Anonymous No.121612
15941113045870.jpg (10 KB, 474x350)
>>121589
>Где тени, где ресницы, где эмоции?
Всего двенадцать пикселей. Чо ты хочешь за таие деньги в таком разрешении, поехавший?

А эмоции кстати есть. Рот в говне от ваших пиксельных поделок.
Anonymous No.121620
>>121612
Всё ясно, автору 12 лет.
/thread
Anonymous No.121654
>>121554
>Пиксели это ручная работа с формой и цветом.
Любая работа с растровыми изображениями – это работа с формой, цветом и пикселями.
Но ты почему-то не отличаешь пиксель арт от остального 2д.

>Второй пик это тру пиксель арт. Зацените детализацию.
Если для тебя обычный алиасинг – это пиксель арт, то ок.
Anonymous No.121955
>>120101 (OP)
>Наверное, тебе надо копать в сторону уравнений Навье-Стокса
Аноньчик, я никогда этим не занимался, но давай порешаем уравнение Навье-Стокса на этой неделе? Ну, кто как сможет. Например, я даже не знаю как решать такое уравнение численно.
Для начала начать с двумерного случая, если там всё плохо с вычислительными мощностями.
Anonymous No.121965
15942866980650.png (16 KB, 640x480)
15942866981391.png (18 KB, 960x720)
>>121554
>размер "пикселя" 6х6
Во многих стандартах изображения можно определить pixel aspect ratio, поэтому размер пикселя может быть любым.
Вот тру пиксель арт.
Anonymous No.121971
15942910188040.png (0 KB, 132x200)
>>121965
Да это ТРУЪ. Эффект полутеней и переходных цветов достигается дизерингом, а не расширенной палитрой как у петухов косящих под ретро. Кстати вот здесь на гифке >>121554 сделано везде также.

Пикрелейт пример с вики - получение фиолетового цвета из красных и синих пикселей.
Anonymous No.121977
>>121955
Можно попробовать, но надо разобраться со всеми операторами. Вот что такое ∇ {\displaystyle \nabla } \nabla — оператор набла и Δ {\displaystyle \Delta } \Delta — векторный оператор Лапласа? Смотрим на википедии, ага, это из векторных полей. Если не знаешь, что такое векторное поле и с чем его едят, то можно зайти на сайт mathprofi.ru.
Я пока не рассматривал что это такое.

>если там всё плохо с вычислительными мощностями.
https://www.shadertoy.com/view/WdVXWy
https://en.wikipedia.org/wiki/Computational_fluid_dynamics
кину попавшиеся сслыки
Anonymous No.121978
>>121977
>Вот что такое ∇
Довольно странно что кто-то связанный с программированием может этого не знать.

Мне скорее непонятно как от вот этого теоретического уравнения навье-стокса перейти к тому, как посчитать как плещется в бутылке вода, масло и воздух из которых масло и вода условно несжимаемые. Как описывается граница между поверхностями и всё в таком роде.
Anonymous No.122109
15943889164890.png (33 KB, 243x710)
15943889165241.png (18 KB, 594x326)
Новости вторжения чужих.

На этой неделе земные ученые сделали прорывные открытия в области высоких энергий, что позволило создать прототип потокового бластера. Новейшее оружие дает небольшие шансы отразить объединеному флоту земли угрозу исходящую из глубин космоса, но надежды по прежнему очень мало.

Также замечен новый корабль в составе атакующих флотов вторжения. Его предназначение пока разгадать не удалось. Он избегает прямых атак и никак не проявляет себя на поле боя. Ученые теряются в догадках и строят самые смелые гипотезы начиная с телепатического контроля других кораблей чужих, до дипломатической миссии данного корабля, но пока толком ничего не подтверждается.
Anonymous No.122121
>>122109
Придумал новою механику, и предлагаю её тебе. Корабль игрока должен лететь вперед с любой скоростью, но не 0 и плавно уклоняться. Чем больше скорость корабля, тем больше его урон. Когда корабль выйдет за границы экрана, то он должен обратно появится снизу с той же скоростью.
Anonymous No.122126
>>122121
Это будет уже больше похоже не скролл шутер. Надо чтобы хоть в чем-то оставалс элемент классики, я из-за этого не хочу даже добавлять движение по Y.

А возрастающего урон можно запилить всякими мегадевайсами, которые игрок сможет купить в маркете и поставить на свой кораблик. Тут удобно тем, что есть прямая зависимость от денег, т.е. есть вариация не от скилла игры, а от стратегии игрока.
Anonymous No.122150
15944102478470.webm (824 KB, 1200x800, 00:00:21)
Наконец-то освободился от работы. Теперь можно заняться геймдевом. Планирую с этой игры взять минимум 10XX баксодоллвров в первую неделю, но по моим расчётам, получу всего лишь 250.

Я пытался ввести в свой рейтрейсер маппинг текстур, но не смог, так как там какие-то матричные вычисления для барицентрических координат. В итоге продолжаю использовать костыли. Вспомнил, что можно заскейлить камеру, а не вертексы уровней и сделал 1x2 соотношение пикселей.
Нарисовал нижнюю анимацию ГГ, но надо бы ещё 2-3 боковых. Контроллер персонажа так и не написал.
Чтобы флипать ГГ, я её скейлю в -1 по иксу, но из-за этого её альфаобласти перемещают задний лучи и шипы видны не там, где надо.
Мне надо как-то научиться высчитывать UV-координаты для маппинга текстуры.
Кстати, после некоторых манипуляций ФПС упал с 45 до 35. Думаю, большинству игроков и 40 ФПС хватит, но не уверен.
Anonymous No.122156
>>122150
Пока не сказал я не замечал баг с шипами, лол.

Почему ГГ в конце видео падает, хотя вроде стоит на блоках?
Anonymous No.122157
>>122150
Прикольный персонаж.
Anonymous No.122159
>>122126
С такими вот стратегиями игр полно, я не говорю что это плохо, просто игроки остаются в играх где важен скилл, а с помощью интернета они будут хвастаться, тем самым продвигая твою игру.
Anonymous No.122186
15944594199920.webm (740 KB, 1200x800, 00:00:20)
Что за бред я выше писал?! Конечно же пользователям нужно 60 ФПС, а некоторым и 144. GLSL генерировать лучше, чем работать. Надо будет написать бекенд для моей графической библиотеки, чтобы рейтрейсить глсл-шейдером, который, в свою очередь, динамически генеировать при каждом новом добавлении объекта.
А если ввести поддержку геймпада, то продажи можно увеличить в 1.5-2 раза, но я таким никогда не пользовался и не уверен, можно ли мышкинскую механику на геймпаде юзать.

Добавил одну анимацию, одну картинку-неанимацию (к стене) и сделал отталкивание от стен, но только, когда ГГ сползает вниз. Надо ещё ввести микроконтроль (?): когда разная длительность нажатия на пробел продуцирует разную высоту прыжка. Потом сделать механику дашей, чтобы по ПКМ врываться в сторону. И настроить скорости, либо надо будет уровни больше делать.
Ещё у ГГ будет огнестрел, инициируемый по ЛКМ, который даёт иметь только одну пулю в мире. Если продолжать жать на ЛКМ, то пуля притягивается к ближайшим живым существам, это можно использовать в головоломках.
Тайлы теперь 24 пикселя.
Кстати, почти везде, и в Индустриворк, и в других проектах я всё делаю очень медленно, так как не могу приручить собственное тело и волю, но в последнее время появились подвижки в лучшую сторону. Может быть эту игру я сумею сделать до конца Июля?

>>122156
>Почему ГГ в конце видео падает, хотя вроде стоит на блоках?
Потому что я ввёл коллайдеры только для одного уровня, а переход на другой уровень ещё не ввёл.
Проблемы велосипедных игр

>>122157
Спасибо. Это девочка-помидорка, когда она умирает, то разбрасывает десятки семян, из которых вырастают новые девочки-помидорки, но они начинают с платформера-яслей за кадром, а когда кто-то дошёл до того же места, где продул игрок, то история продолжается как бы от её лица.
Anonymous No.122191
>>122186
>чтобы рейтрейсить глсл-шейдером
Да просто отрендери без шейдера ванильным opengl. Ну что же ты так упорствуешь, чем это тебе повредит? Думаешь он не в состоянии нарисовать твои 16-цветные картинки?

А ещё у тебя не может быть для такой картинки меньше 60 фпс, это просто дичь какая-то.
Anonymous No.122192
>>122191
По-моему, растериазция для такой графики это бред. Ну ладно, может для 2D ещё зашло бы, но нет.
А моя игра будет требовать рейтрейсинг и обязательно. преломление света, отражения, рендеринг 3D-фракталов, мб, всё это будет.
А опенгл это как и точка.

>это просто дичь какая-то
Это неправильное использование системы по объектам, вычислениям, неоптимизировано.
Anonymous No.122196
>>122192
>По-моему, растериазция для такой графики это бред.
Для двухмерной?

Рестеризация: Ты указываешь для прямоугольника координаты x1, y1, x2, y2, сдвигаешь и масштабируешь их, и потом двойным циклом проходишь по прямоугольнику, получая st координаты текстуры как (x-x1)/(x2-x1). Нагрузка - 4х(время преобразования координаты)x(количество полигонов) + (количество пикселей полигонов)х(время выборки из текстуры). При этом тебе даже делить (деление работает раз в несколько десятков раз медленнее умножения) для каждого прямоугольника нужно только один (два) раза, ты считаешь чему равно 1/(x2-x1) и потом умножаешь на это для вычисления текстурных координат.

Ретрейсинг: Ты считаешь координаты луча-пикселя, проходишь по всем объектам высчитывая его st-координаты, при этом ты в каждом пикселе проходишь по всем объектам. Нагрузка - 2x(количество пикселей экрана)x(время преобразования координаты)+(время выборки из текстуры)х(количество полигонов)х(количество пикселей экрана).

Если у тебя весь экран разрешения 1200х800 закрашен мелкими квадратами и их 113 штук, то в первом случае нагрузка 452k1+960000k2, а во втором 1920000k1+108480000k2, в десятки раз больше даже с оптимизациями.
Вот давай сравним софтверный 2d-растеризатор, и софтверный 2d-"ретрейсер". Я думаю растеризатор победит абсолютно на всех задачах.
Anonymous No.122200
15944798662610.png (22 KB, 598x408)
Ух, наконец сделал UV-маппинг текстур на треугольник. Я использовал алгоритм Мёллера-Трумбора с этой https://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-rendering-a-triangle/moller-trumbore-ray-triangle-intersection статьи.
Он оказался довольно прост, мне просто пришлось немного матрицы подучить. Зато узнал много нового, например, что такое детерминант матрицы или как сделать обратную матрицу. Вот бы мне для какой-нить задачи пришлось изучить интегралы и диффуры...
Я ещё на одном моменте немного сдался и захотел попробовать просто переносить вектор AP (треугольник ABC и точка пересечения на нём P) на базис/систему координат из AB и AC, чтобы, возможно, получить UV-координаты. Но там я что-то напутал с матрицами и вообще, вышепоказанный алгоритм гораздо лучше. Ещё и быстрый, вроде как.

>>122196
Да, растеризация победит, чтобы рисовать кводратики.
Но насколько легко с помощью растеризации сделать преломления, отражения в шаре, а в моей игре всё это я планирую сделать. Да, у меня будет 3D-игра, где в основном 2D идёт.
Да и зачем растеризацию эту пихать куда попало, когда рейтрейсер уже готов? Когда появятся процессоры с инструкциями пересечения луча и треугольника или даже луча и NURBS, тогда посмотрим на целесообразность.
Anonymous !Honey9.XOE No.122203
>>122200
>Вот бы мне для какой-нить задачи пришлось изучить интегралы и диффуры...
В прикладных задачах в комплюктере это всё равно считается численными методами, которые аппроксимируют поиск решения уравнений. Это вычислительная математика.
Но ты можешь выучить интегралы и диффуры для решения лабораторных задач студентам.
Пост отредактировал Anonymous
Anonymous No.122204
15944833262840.webm (18356 KB, 1920x1080, 00:00:44)
Сделал полноэкранное множество Жюлиа, с тысячей итераций. Можно накладывать на трёхмерный треугольник. 60 фпс стабильных (счётчик sfml в углу врёт, а православный счётчик в правом верхнем углу захватывается только в начале записи по каким-то причинам), хотя там самый тупой алгоритм в лоб, ещё и для раскрашивания синус считается (вместо шумовой функции там синус с малым периодом). Интересно, сколько фпс будет на лайси-куновском софтверном ретрейсере.
Вебм в 30 фпс, тому что в 60 фпс не хочет конвертироваться.

>>122203
А то ему не придётся изучить интегралы и дифуры, чтобы осмыслить вычислительные методы. Не, можно конечно какой-нибудь метод рунге-кутты четвёртого порядка точности, лол, скопировать бездумно.
Например он хочет сделать туман из сферических частиц - его прозрачность можно описать интегралом, считать его численно в каждом пикселе аутизм, когда можно посчитать формулу и за условно одной действие сразу получать прозрачность (сферического) облака по формуле.
Ещё, думаю, возможно если он будет писать какую-нибудь жидкость на частицах, возможно будет эффективнее считать взаимодействие пары частиц аналитически (пусть даже с каким-то приближением), чем итерировать это 20 раз только численными дифурами - но это уже в зависимости от уравнений взаимодействия зависит. Наверное. Я бы попробовал в общем.
Anonymous No.122208
>>122204
>шебм
Блин анон, это охуенно!
Anonymous No.122209
>>122204
>софтверном ретрейсере
Так зачем на рейтрейсере считать фракталы? Я вон мандельброта на сферу считаю вручную, исходя из координат текстуры.
>>122208
Тучую, он меня немного вдохновил тоже подобное сделать — с масштабированием. Только я, может быть, сделаю с темплейтами и посмотрю с флоатами, даблами и своим рациональным велосипедом.
Сейчас, если мою волю не перемнёт какая-нибудь другая вещт.
Anonymous No.122214
15944886985040.webm (20428 KB, 1920x1080, 00:00:56)
>>122208
>это охуенно!
Да ну, это весьма разочаровывает.
Колышущаяся трава из прошлого треда получилась в десять раз красивее и ретрейсер освещения для кубов тоже очень красивый, и там старания было больше - но они никому не понравились. А какой-то мусор на 80 строк написанный за 20 минут значит нравится - хотя там вебм конвертировалась дольше (я указываю битрейт 1600 - а он кодирует в 3500 всё-равно). Бред какой-то, это прям неприятно - когда хвалят то что ты сам считаешь говном и где даже не старался.
Запощу ещё вебм - только потому что на ней прикольные vp9-блоки пикселей начиная с тридцатой секунды. Что любопытно, vp8 конвертирует такое видео при том же битрейте с качеством заметно более высоким - то есть там буквально в два раза всё чётче на любом из кадров кроме ключевых. И быстрее в десять раз.
Anonymous No.122216
15944903672710.webm (8518 KB, 1200x800, 00:00:30)
У меня почти ничего не получилось. Сначала я долго пытался сделать масштабирование в место, куда показывает курсор, а потом забил и сделал как получилось. Что насчёт рендеринга, то double у меня 5 раз быстрее флоата оказался и при этом на 8 потоках double 1000 итераций 5 ФПС, когда весь мандельброт виден.
Точность у флоата плохая, а у дабла немного лучше. Надо будет попробовать с long double, но это позже.

Я, кстати, собирался использовать видео с фракталом для своей игры, как раз превращу эту технодемку в видеорендер и в 60 ФПС наделаю.

>>122214
Мне понравились твои пастрейсеные кубики.
Пост отредактировал Anonymous
Anonymous No.122217
>>122214
Не обижайся, анон, ценности и градация их собственной оценки от нуля до сверхценности у каждого свои и странно было бы ожидать полного совпадения у двух разных людей. А фракталы очень даже завораживают и визуализация у тебя хорошая вышла, имхо. У тебя ещё вложенные тобой старания влияют, другие затрачивают время только на просмотр.
мимо
Anonymous No.122221
15944956363150.webm (19909 KB, 1200x800, 00:00:02)
Уже поздно, так что сделал вам лишь 2 секунды.
Anonymous No.122224
15944979049410.png (330 KB, 1219x832)
>>122221
У меня пикрелейт. Так и задумано?
Anonymous No.122226
>>122216
>Сначала я долго пытался сделать масштабирование в место, куда показывает курсор, а потом забил и сделал как получилось.
Ты передвигаешь изображение так, чтобы кусок под мышкой оказался в центре, масштабируешь, и потом передвигаешь обратно на то же количество пикселей но с другим масштабом. Можно один раз перенести после, если вычесть из 1.4 1.0 и из 1.0 1.0/1.4
#p1 - точка (тупл из двух чисел) соответствующая центру экрана
#zoom - соотношение размера экрана и масштаба фрактала
#self.mx - позиция мышки (симметричная, от -1 до +1)
self.p1=self.p1[0]+self.zoom*(self.mx),self.p1[1]+self.zoom*(self.my)
if (z<0):#Вращение колёсиком в одну сторону
self.zoom*=1.4
else:#в другую сторону
self.zoom/=1.4
self.p1=self.p1[0]-self.zoom*(self.mx),self.p1[1]-self.zoom*(self.my)
Пост отредактировал Anonymous
Anonymous No.122234
>>122224
Нет, то ли тучка, то ли тор-браузер, то ли файрфокс, первый при 429 Too Many Requests, вторые в случае "повреждения" файла показывают твой пикрелейтед. Не знаю, кто именно так делает, но явно, что лучше не использовать веб и смотреть через mpv. Но админ всё никак не хочет убрать ошибку 429 Too Many Requests.

Я ставил -qmax 0 в ffmpeg. Кстати, ПНГ-картинки суммарно занимали меньше места, чем данная вебемка.
Пост отредактировал Anonymous
Anonymous No.122235
15945383321350.png (1 KB, 255x184)
Я ввёл поддержку треугольников в свою библиотеку и ФПС упал с 40 до 20.

Что не так с этим кодом (за исключеием, что нормали можно считать сразу, а не для каждого пикселя):
Код
u8 TriangleRaycast(vec3_t a,vec3_t b,vec3_t c,mrlRay_t* ray) {
vec3_t AB = b - a;
vec3_t AC = c - a;

vec3_t T = ray->pos - a;

vec3_t P = cross(ray->dir,AC);
vec3_t Q = cross(T,AB);

float t,u,v;

float delim = 1.0/(dot(P,AB));

t = delim*dot(Q,AC);
u = delim*dot(P,T);
v = delim*dot(Q,ray->dir);

if (t >= 0 && (u + v) <= 1.0 && u > 0.0 && v > 0.0) {
ray->normal = normalize(cross(AB,AC));
ray->intersect = ray->pos + ray->dir*t;

ray->u = u;
ray->v = v;

return 1;
}

return 0;
}

u8 TraceTriangles(mrlObject_t* obj,mrlRay_t* ray) {
float pos_z = obj->trans.v[14];
if (ray->pos.z < Mat4ZeroVec(obj->trans).z) {
return 0;
}

s32 axis = obj->data->mesh->axis;

vec3_t a,b,c;

float* vertex = obj->data->mesh->vertex;

b.x = vertex[0*axis + 0];
b.y = vertex[0*axis + 1];

c.x = vertex[1*axis + 0];
c.y = vertex[1*axis + 1];

if (axis == 3) {
b.z = vertex[0*axis + 2];
c.z = vertex[1*axis + 2];
}
else {
b.z = 0;
c.z = 0;
}

b = obj->trans*b;
c = obj->trans*c;

for (s32 t = 2; t < obj->data->mesh->num; t++) {
a = b;
b = c;

c.x = vertex[t*axis + 0];
c.y = vertex[t*axis + 1];
if (axis == 3) {
c.z = vertex[t*axis + 2];
}
else {
c.z = 0;
}

c = obj->trans*c;

if (TriangleRaycast(a,b,c,ray)) {
ray->vertex_index = t - 2;
return 1;
}
}
return 0;
}

Зато спрайт флипается.
Anonymous No.122241
15945433878050.webm (566 KB, 1200x800, 00:00:02)
>>122234
Вот я зделол работающую версию.

Твой шебм не воспроизводился на VLC даже офлайн. Короче конвертнул его в мп4 и получил 372кб при тех же параметрах - 1200x800x60, битрейт 1400. Потом это дело закодил VP9 с дефолтными параметрами исходника и получил за пять минут терпениума 430кб невоспроизводимого говна. Серьезно, видос тупо не открывается. Потом конрвентнул еще раз в VP8, тут за 30 секунд(примерно столько же занял конверт webm в mp4) получилось 580кб воспроизводимого видео.

Вывод: WebM - формат червь-пидор, формат мразь. У него нет ни скорости ни воспроизводимости, ни размера. Пеарят это говно только гуглорабы с анальным зондом в сраке.
Anonymous No.122242
>>122241
Пофиксил качество и ещё замедлил до 15 фпс - а то не видно ничего.
У меня открывается оффлайн, и в vp9 сконвертировалось без ошибок с дефолтными настройками. Не открывает только браузер-лисичка, возможно из-за gbrp(pc, gbr/unknown/unknown), 1200x800, lossless.
Пост отредактировал Anonymous
Anonymous No.122243
15945455082710.webm (1927 KB, 1200x800, 00:00:09)
>>122242
...
Anonymous No.122245
>>122235
>Что не так с этим кодом
Нужно усложнить структуру треугольника. Хранить не только вершины, но ещё и нормаль, две "бинормали", возможно коэффициенты abcd нормального уравнения плоскости - это можно сделать заранее до просчёта лучей, а потом в просчёте лучей просто использовать это.

>ray->normal = normalize(cross(AB,AC));
У тебя идёт цикл по всем треугольникам, верно? То есть ты определяешь пересечение, считаешь и нормализуешь нормаль (корень очень тяжёлый), а потом на луч попадает ещё один другой треугольник и ты снова считаешь нормаль? Хотя бы нормализовать уж точно можно было бы после всех операций.
Нужно проходить циклом по всему, записывая лишь глубину пересечения, и лишь в самом конце записывать одну нормаль, и один раз проводить рассчёт текстурных координат/освещения - по крайне мере в случае cpu, которое дружит с ветвлением и не дружит с корнями.

Ещё возможно нужно изучать квадрат расстояния до треугольника, как в случае со сферами.
Вроде бы вот тут написано что-то похожее для точки, судя по формулам: https://www.geometrictools.com/Documentation/DistancePoint3Triangle3.pdf
Но я не читал, не знаю английского.
Кстати, зашёл на их сайт: https://www.geometrictools.com/Source/Intersection3D.html#LinearPlanar - там что-то потенциально полезное для задач тобою решаемых.

По хорошему нужно сгенерировать массив лучей и треугольников разными способами и смотреть насколько быстро какой способ поиска пересечения использовать, прям отдельно вне рейтрейсинга тестировать функцию TriangleRaycast.
Пост отредактировал Anonymous
Anonymous No.122324
15946477666930.webm (2285 KB, 1200x800, 00:00:32)
Что за фигню я делаю?!
Надо делить не на уровни с дискретным и безвозвратным X, а чанки (я же делал ивс, 2D гораздо легче). Можно даже запилить ответвления от основных веток уровней, куда поставить интересные штуки или даже сделать нелинейное прохождение, чтобы можно было пойти в одну развилку или в другую и в итоге прийти к концу. Такое реплей-валуе, а раз реплей-валуе, то можно заодно и несколько плохих концовок добавить, в которых ГГ убьёт себя, спалив с семянами в результате психического шока и придётся начинать игру этап заново.

Кстати, у меня случился БАГ в рейтрейсере и теперь вокруг ГГини чёрный квадрат.
Также я добавил оптимизацию — проверить, трейсится ли сфера, описывающая меш, а потом трейсить сам меш. Это дало прирост в 2 раза.
Потом я добавил оптимизацию — сравнивать не длины, а квадраты длин (без корня), когда проверяю, объект ближе или дальше. Это дало никакого видимого прироста.

Когда же я перестану с механикой и буду с уровнями? Я собираюсь запилить 5 этапов по 10 чекпоинтов/уровней. После каждого этапа босс-уровень с графической индивидуальностью.
Пост отредактировал Anonymous (Причина: А, нет, это не рейтрейсера баг, а самой игры.)
Anonymous No.122330
15946557903490.webm (680 KB, 640x360, 00:00:09)
>>122324
Это помидорка?
Anonymous No.122344
>>122324
Красиво получается.
Anonymous No.122345
>>122330
Это твоя мамка, анон
Anonymous No.122346
>>122324
Зайчем ты это делаешь, анон? Ведь есть ж гейммайкер.
Anonymous No.122348
>>122346
Я свой путь гейпдевера начал раньше, чем программиста при помощи гейммейкера и юнити и я знаю, что обычное программирование гораздо лучше, ведь оно гибкое. Если бы я использовал гондот или юнитекство, то получались бы лагающие багающие глитчащие проваливающиеся коллайдеры, каждый раз игра вылетала, а я злился на элементы ГУИ этих конструкторов игр.
Кроме того, разве способен гейммейкер в рейтрейсинг? Я собираюсь добавить 3D-уровни с рейтрейсингом.
Anonymous No.122371
15946735387570.webm (18649 KB, 1762x984, 00:00:36)
126349 частичек в 120 фпс (2 обновления на один кадр - пришлось так сделать, потому что или медленно, или неустойчиво (как на вебм, только ещё более запущено) - а способ интегрирования более высокого порядка точности какой-то очень замороченный получается, там нужно производные проекций сил считать).

Наверное, я вечность могу смотреть на эту фиготу - жалко как заставку такое всё-таки не поставить.
Anonymous No.122372
>>122371
Это имитация волн? Они сами генерируют направление или можно управлять с помощью мышки?
Anonymous No.122381
15947084053240.webm (2639 KB, 1200x800, 00:00:34)
Теперь у девочки есть пушка!

Пока всё топорно, потом надо будет сделать и анимацию выхода пороховых газов, и след от пули и чтоб оружка не по кругу крутилась, а шаталась в некотором силовом поле в виде кольца вокруг главной героини.
Anonymous No.122382
>>122381
Мне кажется, что тебе надо сначала убрать следы от пуль, в конце фпс жестко просел.

А еще можно сделать чтобы девочка по команде крепко схватывала пушку и когда начнет стрелять, то имела дополнительную инерцию
Anonymous No.122383
15947100571630.webm (15060 KB, 1744x964, 00:00:45)
>>122372
Можно и с помощью мышки.
Вообще сами. Оно само, потому что там написано что-то вроде:
vx+=ax*dt; <-Изменение скоростей
x+=vx*dt; <-Изменение координат

При этом vx=10, dt=0.01, ax=-3000 и соответственно за одно обновление vx меняет значения с 10 до -20. И частички вместо того чтобы отталкиваться взрываются подобным образом. Нужно уменьшать ax - тогда частички станут ещё более "мягкими" и будут проваливаться друг в друга сильнее, либо уменьшать dt - но это замедляет симуляцию. Либо писать интегратор более умный, чем vx+=ax*dt, чем я сегодня, возможно, и займусь.
Anonymous No.122385
15947121474120.png (65 KB, 500x500)
>>122381
Выглядит как летающий дилдак.
Anonymous No.122387
>>122385
Для русских это так, им только такими делают.
Anonymous No.122399
>>122371
>>122383
Можна код? Хочу запустить.
Anonymous No.122412
15947441733470.webm (19731 KB, 800x600, 00:02:55)
15947441733621.png (81 KB, 1016x763)
ПРОЕБАТЬ ФПСЫ - Achievement Unlocked

Я написал в коде страшные вещи, зато почти довел до ума лучи, с остальным проще будет. Большими костылями сделал так, что луч впирается в первую цель, а не проходит всех насквозь. Это нужно чтобы пара игроков могла друг друга прикрывать от лучей, хотя это сомнительно конечно.
Anonymous No.122431
>>122399
Не хотелось бы, он пока очень уродский.
Тебе именно вот тот с этой неустойчивостью или просто сами частички? Если именно неустойчивость, то скину - а если посмотреть код, то я бы его переписал разок.
Anonymous No.122449
>>122431
Хорошо, перепиши и скинь.
Anonymous No.122646
15949790005290.png (66 KB, 1242x558)
ОП это ты там на политачике советуешь всем вкатываться в геймдев на самом низком уровне? Про дата-классы я тебе отвечал. :3
Anonymous No.122653
>>122646
Дата-классы это структуры из си?
Anonymous No.122654
15949852859920.png (25 KB, 1078x243)
>>122653
Да. Тот анон сказал, что вместо богомерзкого ООП пишет дата ориентированом стиле, я ему ответил, что доведенный до логического конца этот стиль приводит к классическому ООП. Но свои профиты у него тоже конечно есть.

Скринить свои посты это дно, но мне просто лень писать текст заново.
Anonymous No.122761
15951454820590.webm (10346 KB, 1200x800, 00:00:24)
Разбрасываю очертания уровней. Вы можете видеть баги в отрицательном игреке. Я решил сделать не 50 уровней : 5 этапов, а 4 этапа. После каждого этапа идёт спец-уровень с рейтрейсингом.
ФПС очень мало, поэтому, когда закончу с уровнями, надо будет сделать ГЛСЛ-графику, чтобы было 60 FPS, а за ним и управление будет 60 раз в секунду. Тогда я смогу понять, на что способен контроллер персонажа и подправить его возможности. А вслед за возможностями пойдут и ключи прецижин платформера. У меня их лишь горстка, так как в дизайне уровней я не оч, поэтому решил нарисовать просто контент.

Кроме того, мне в голову пришла гениальная идея. Если я смог неплохо срисовать пиксельную анимацию с референса, то можно использовать и референсы музыкальных нот, чтобы делать свою музыку неплохой. Я попробовал просмотреть ноты имперского марша, время вперёд, полёта шмеля и андертейла, но там что-то сложно, много каналов. Хотя, подобрать ключевые конструкции всё-равно можно.
Но не будет ли это считаться наглым воровством нотных конструкций? Я и так уже забрал у анона с сосача идею о персонаже, хоть и перерисовал его. А помню, когда играл в селесту, там в одной из глав фоновая музыка содержала что-то этакое из одного классического произведение, скорее всего, Моцарта.
Anonymous No.122764
>>122761
>Но не будет ли это считаться наглым воровством нотных конструкций?
Если позаимстовать один в один, то копирасты доебутся, а если сделать адаптацию по мотивам, типо почти тоже самое но чуть-чуть не похоже, то может прокатить. Если ты собираешься срисовывать ноты, то вряд ли у тебя получится точный оригинал, поэтому мне кажется не доебутся.
Anonymous No.122766
>>122761
>ФПС очень мало
Я бы удалил игру с таким графоном тут же, если бы она потребляла больше 2% загрузки cpu или gpu. Это графон уровня gameboy advance с 17 мгц и половиной мб оперативки. Только что разрешение больше.

Даже флеш рисовал графику намного быстрее, причём во весь экран и со сглаживанием: https://files.catbox.moe/gokxl9.swf
Anonymous No.122768
>>122766
Это же прототип, я собираюсь ввести преломлящие элементы типа линз. Во флеше есть линзы?
Anonymous No.122773
>>122768
Вроде бы нету, но всё остальное он рисует намного быстрее. Стало быть если в него добавить такие же лизны как ты добавишь в свой код, то он будет за счёт рисования всего остального всё ещё быстрее.

>преломлящие элементы типа линз
Зачем тебе линзы? У тебя игра про линзы и оптику? А если это визуальный эффект, то это того не стоит и ты можешь сделать нереалистичные линзы через костыль вроде линейного растяжения изображения в линзе.
https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%81%D0%BF%D0%B5%D1%80%D1%81%D0%B8%D1%8F_%D1%81%D0%B2%D0%B5%D1%82%D0%B0
Что ты думаешь про это? Разные цвета преломляются по разному. Тебе придётся отказываться от rgb-модели и задавать цвета массивом-гистограммой, верно?
Пост отредактировал Anonymous
Anonymous No.122783
>>122773
Да, я мог бы сделать графический движок гибридным — растеризация+рейтрейсинг, но зачем? Зачем переделывать код? Ради парочки оптимизаций, чтобы быстрее исполнять на тупых древних процессорах? Оставь свои микроконтроллеры и демосцены фанатикам. А то потом начнутся ошибки, баги, я не пойму, что не так. Прозрачность будет багованная как в опенгле. Это не нужно. Я всё-равно собирался делать бекенд для исполнения на видеокарте через GLSL.
>если это визуальный эффект, то это того не стоит и ты можешь сделать нереалистичные линзы через костыль
Вот именно, я не хочу делать костыль.

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

>Тебе придётся отказываться от rgb-модели и задавать цвета массивом-гистограммой, верно?
Что? Нет, это реалистичное преломления и освещение это уже из разряда path-трейсинга и суперреалистичного рендеринга. У меня игра с фантастической, а не реалистичной графикой.

Кроме того, в финальных для этапа уровнях понадобится рейтрейсинг, так как игра станет почти тридешной и с отражениями.
Anonymous No.122785
>>122766
Все-таки поговорка что дуракам половину работы не показывают верна.
Anonymous No.122819
15952366242340.webm (1206 KB, 1200x800, 00:00:10)
Для разминки написал технодемку с GLSL-рейтрейсингом сфер.
Теперь надо написать такое, но для треугольников и с текстурками.

Код из кинда лайсик:

GLSL
#version 420

uniform mat4 camera;
uniform mat4 camera_notrans;

out vec4 FragColor;

#define WIDTH 1200.0
#define HEIGHT 800.0

#define FOV 1.309


vec3 objposs[2] = {vec3(0.0,0.0,-35.0),vec3(7.0,-5.0,-38.0)};
float radiuss[2] = {5.0,3.5};
vec3 colors[2] = {vec3(1.0,1.0,0.0),vec3(1.0,0.0,0.0)};

vec3 lightposs[1] = {vec3(-4.0,15.0,-5.0)};


struct CastRet_t {
bool casted;

vec3 normal;
vec3 intersect;
};

CastRet_t SphereRaycast(vec3 o,vec3 d,vec3 pos,float r) {
CastRet_t ret;
ret.casted = false;

vec3 o_minus_c = o - pos;

float k1 = dot(d,d);
float k2 = 2dot(o_minus_c,d);
float k3 = dot(o_minus_c,o_minus_c) - r
r;

float undersq = k2k2 - 4k1k3;

if (undersq >= 0.0) {
float t_test = (-k2 - sqrt(undersq));

if (t_test >= 0) {
float t = t_test/(2
k1);

vec3 intrs = (o + dt);

ret.intersect = intrs;
ret.normal = normalize(intrs - pos);

ret.casted = true;
}
}

return ret;
}

#define OBJ_NUM 2

#define SMALLADD 0.004

vec3 RaytraceObjects(vec3 pos,vec3 dir) {
vec3 color = vec3(0.0,0.0,0.0);

int index = -1;
vec3 intersect = pos;
vec3 normal = vec3(0.0,0.0,0.0);

CastRet_t ret;

for (int i = 0; i < OBJ_NUM; i++) {
ret = SphereRaycast(pos,dir,objposs[i],radiuss[i]);
if (ret.casted) {
vec3 lvec0 = ret.intersect - pos;
vec3 lvec1 = intersect - pos;
if (index == -1 || dot(lvec0,lvec0) < dot(lvec1,lvec1)) {
index = i;
intersect = ret.intersect;
normal = ret.normal;
}
}
}


if (index != -1) {
int shadow_index = -1;

vec3 lightvec = normalize(lightposs[0] - objposs[index]);

vec3 shadow_pos = intersect + lightvec
SMALLADD;



for (int i = 0; i < OBJ_NUM; i++) {
ret = SphereRaycast(shadow_pos,lightvec,objposs[i],radiuss[i]);
if (ret.casted) {
shadow_index = i;
break;
}
}

if (shadow_index != -1) {
color = vec3(0.0,0.0,0.0);
}
else {
color = colors[index];
}

color = dot(normal,lightvec);
}


return color;
}

void main() {
vec3 pos = (camera
vec4(0.0,0.0,0.0,1.0)).xyz;

float x = gl_FragCoord.x;
float y = gl_FragCoord.y;

vec3 dir = (camera_notransnormalize(vec4((x - WIDTH/2)/WIDTHtan(FOV/2)WIDTH/HEIGHT,(y - HEIGHT/2)/HEIGHTtan(FOV/2),-1.0,1.0))).xyz;

FragColor = vec4(RaytraceObjects(pos,dir),1.0);
}
Anonymous No.122821
>>122819
>#version 420
>
>uniform mat4 camera;
>uniform mat4 camera_notrans;
>
>out vec4 FragColor;
>
>#define WIDTH 1200.0
>#define HEIGHT 800.0
>
>#define FOV 1.309
>
>
>vec3 objposs[2] = {vec3(0.0,0.0,-35.0),vec3(7.0,-5.0,-38.0)};
>float radiuss[2] = {5.0,3.5};
>vec3 colors[2] = {vec3(1.0,1.0,0.0),vec3(1.0,0.0,0.0)};
>
>vec3 lightposs[1] = {vec3(-4.0,15.0,-5.0)};
>
>
>struct CastRet_t {
>bool casted;
>
>vec3 normal;
>vec3 intersect;
>};
>
>CastRet_t SphereRaycast(vec3 o,vec3 d,vec3 pos,float r) {
>CastRet_t ret;
>ret.casted = false;
>
>vec3 o_minus_c = o - pos;
>
>float k1 = dot(d,d);
>float k2 = 2dot(o_minus_c,d);
>float k3 = dot(o_minus_c,o_minus_c) - rr;
>
>float undersq = k2k2 - 4k1k3;
>
>if (undersq >= 0.0) {
>float t_test = (-k2 - sqrt(undersq));
>
>if (t_test >= 0) {
>float t = t_test/(2k1);
>
>vec3 intrs = (o + dt);
>
>ret.intersect = intrs;
>ret.normal = normalize(intrs - pos);
>
>ret.casted = true;
>}
>}
>
>return ret;
>}
>
>#define OBJ_NUM 2
>
>#define SMALLADD 0.004
>
>vec3 RaytraceObjects(vec3 pos,vec3 dir) {
>vec3 color = vec3(0.0,0.0,0.0);
>
>int index = -1;
>vec3 intersect = pos;
>vec3 normal = vec3(0.0,0.0,0.0);
>
>CastRet_t ret;
>
>for (int i = 0; i < OBJ_NUM; i++) {
>ret = SphereRaycast(pos,dir,objposs[i],radiuss[i]);
>if (ret.casted) {
>vec3 lvec0 = ret.intersect - pos;
>vec3 lvec1 = intersect - pos;
>if (index == -1 || dot(lvec0,lvec0) < dot(lvec1,lvec1)) {
>index = i;
>intersect = ret.intersect;
>normal = ret.normal;
>}
>}
>}
>
>
>if (index != -1) {
>int shadow_index = -1;
>
>vec3 lightvec = normalize(lightposs[0] - objposs[index]);
>
>vec3 shadow_pos = intersect + lightvecSMALLADD;
>
>
>
>for (int i = 0; i < OBJ_NUM; i++) {
>ret = SphereRaycast(shadow_pos,lightvec,objposs[i],radiuss[i]);
>if (ret.casted) {
>shadow_index = i;
>break;
>}
>}
>
>if (shadow_index != -1) {
>color = vec3(0.0,0.0,0.0);
>}
>else {
>color = colors[index];
>}
>
>color = dot(normal,lightvec);
>}
>
>
>return color;
>}
>
>void main() {
>vec3 pos = (cameravec4(0.0,0.0,0.0,1.0)).xyz;
>
>float x = gl_FragCoord.x;
>float y = gl_FragCoord.y;
>
>vec3 dir = (camera_notransnormalize(vec4((x - WIDTH/2)/WIDTHtan(FOV/2)WIDTH/HEIGHT,(y - HEIGHT/2)/HEIGHTtan(FOV/2),-1.0,1.0))).xyz;
>
>FragColor = vec4(RaytraceObjects(pos,dir),1.0);
>}


Разметка потерялась. Я имел ввиду


#version 420

uniform mat4 camera;
uniform mat4 camera_notrans;

out vec4 FragColor;

#define WIDTH 1200.0
#define HEIGHT 800.0

#define FOV 1.309


vec3 objposs[2] = {vec3(0.0,0.0,-35.0),vec3(7.0,-5.0,-38.0)};
float radiuss[2] = {5.0,3.5};
vec3 colors[2] = {vec3(1.0,1.0,0.0),vec3(1.0,0.0,0.0)};

vec3 lightposs[1] = {vec3(-4.0,15.0,-5.0)};


struct CastRet_t {
bool casted;

vec3 normal;
vec3 intersect;
};

CastRet_t SphereRaycast(vec3 o,vec3 d,vec3 pos,float r) {
CastRet_t ret;
ret.casted = false;

vec3 o_minus_c = o - pos;

float k1 = dot(d,d);
float k2 = 2*dot(o_minus_c,d);
float k3 = dot(o_minus_c,o_minus_c) - r*r;

float undersq = k2*k2 - 4*k1*k3;

if (undersq >= 0.0) {
float t_test = (-k2 - sqrt(undersq));

if (t_test >= 0) {
float t = t_test/(2*k1);

vec3 intrs = (o + d*t);

ret.intersect = intrs;
ret.normal = normalize(intrs - pos);

ret.casted = true;
}
}

return ret;
}

#define OBJ_NUM 2

#define SMALLADD 0.004

vec3 RaytraceObjects(vec3 pos,vec3 dir) {
vec3 color = vec3(0.0,0.0,0.0);

int index = -1;
vec3 intersect = pos;
vec3 normal = vec3(0.0,0.0,0.0);

CastRet_t ret;

for (int i = 0; i < OBJ_NUM; i++) {
ret = SphereRaycast(pos,dir,objposs[i],radiuss[i]);
if (ret.casted) {
vec3 lvec0 = ret.intersect - pos;
vec3 lvec1 = intersect - pos;
if (index == -1 || dot(lvec0,lvec0) < dot(lvec1,lvec1)) {
index = i;
intersect = ret.intersect;
normal = ret.normal;
}
}
}


if (index != -1) {
int shadow_index = -1;

vec3 lightvec = normalize(lightposs[0] - objposs[index]);

vec3 shadow_pos = intersect + lightvec*SMALLADD;



for (int i = 0; i < OBJ_NUM; i++) {
ret = SphereRaycast(shadow_pos,lightvec,objposs[i],radiuss[i]);
if (ret.casted) {
shadow_index = i;
break;
}
}

if (shadow_index != -1) {
color = vec3(0.0,0.0,0.0);
}
else {
color = colors[index];
}

color *= dot(normal,lightvec);
}


return color;
}

void main() {
vec3 pos = (camera*vec4(0.0,0.0,0.0,1.0)).xyz;

float x = gl_FragCoord.x;
float y = gl_FragCoord.y;

vec3 dir = (camera_notrans*normalize(vec4((x - WIDTH/2)/WIDTH*tan(FOV/2)*WIDTH/HEIGHT,(y - HEIGHT/2)/HEIGHT*tan(FOV/2),-1.0,1.0))).xyz;

FragColor = vec4(RaytraceObjects(pos,dir),1.0);
}
Anonymous No.122855
Как продумать геймплей игры?
Anonymous No.122862
>>122855
Погугли хуету про геймлупы, наверное. Там есть что-то core-механиками называлось вроде бы. И ещё какие-то термины были.
Anonymous No.122867
>>122855
Берешь и играешь в голове в свое поделие. Оцениваешь насколько увлекает, просто или наоборот неприятно. Потом придумываешь как все пофиксить чтобы игорь всплыл.
Anonymous No.122888
15953301691090.webm (18652 KB, 800x600, 00:02:28)
15953301693431.png (89 KB, 1029x794)
15953301694822.png (18 KB, 800x600)
Новости вторжения альенов.

На прошлой неделе титаническими усилиями запилил ракеты. Три дня рисовал графон взрыва и все равно УГ какое-то, поставлен новый рекорд криворукой слоупочности. А еще походу придется разделять ракеты с самонаведением и просто торпеды без него. Проебывать дорогие боеприпасы на одиночные цели это антифан.

Еще запилил новый вид таргетинга у чужих, теперь они умеют пользоваться потоковым оружием правильно. На прошлом видосе видно, что иногда луч указывает не в ту сторону куда смотрит нос корабля. Это происходит потому что альен сам не знает чем он стреляет. Он думает что стреляет импульсным оружием: выстрелил -повернулся на новую цель. Из-за импульсного таргетинга есть небольшая вероятность(17%) что игроку стрельнут лучом прямо в лоб, увернуться от этого невозможно. Инстант дамаг это не очень, поэтому запилил новый тип целеуказания специально для лучей - противники сразу в лоб игроку не стреляют, но зато ведут луч всегда в правильную сторону. Алсо самый лулз, что после фикса поворота импульсный таргетинг все равно можно использовать для лучей - выглядит это как огнаненая стена в одной точке на несколько секунд.

В следуей серии чужим завезут волны и на этом с оружием всё.
Баланс получится такой:
Человеки: импульсные лазеры + лучи + ракеты
Чужие: импульсные лазеры + лучи + волны

Алсо, на втором скрине из-за бага нарисовано 2к спрайтов. Запас для проеба ФПС еще есть, может через систему частиц потом запилю эффект взрыва получше(но это не точно).
Anonymous No.122892
Какой сервис посоветуете, чтобы вести публичный документ с информацией об игре?
Anonymous No.122915
>>122855
Кроме того, что аноны свыше сказали, помни, что люди любят планировать. Используй их любовь к планированию, чтобы создать геймплей. Например, если монстры в игре генерируются совершенно рандомно, то игрок не знает их способностей и не может спланировать тактику и игра становится скучной!
Anonymous No.122918
>>122892
Гитхаб? Вообще не улавливаю, что тебе нужно от такого сервиса и почему инфу об игре нужно держать публичной. У меня опыта работы в команде нет, но меня устроило бы получать самую актуальну версию диздоков на игорь из соответсвующей ветки репозитория.
Anonymous No.123008
15954437617440.png (104 KB, 1032x568)
>>122761
>делать свою музыку неплохой
Долго же будет. Вот смотри кто-то даже музон умеет писать на том дваче.
Anonymous No.123046
>>122819
Я случайно твоё сообщение, где приводится пример кода через вычислительный шейдер.
Ты будешь пробовать, чтобы сравнить производительность вычислительного с фрагментным?

Я могу взять один из вариантов - предлагаю сделать какую-нибудь простую сцену, где 50 треугольников, 10 сфер, из которых 2 сферы и 5 треугольников полностью зеркальные. Просто как несколько си-массивов их указать, а дальше каждый уже сам как захочет эти массивы использует.
Можно с текстурами или ещё чем-нибудь.
Anonymous No.123408
15959640767050.webm (2879 KB, 800x600, 00:00:15)
15959640767931.png (30 KB, 784x410)
Бульдозер силы воли репортинг ин.

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

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

Скорее всего на следущей неделе в нашем кибермагазине откроется распродажа всякого хлама для улучшения кораблей. Продавать все будем разумеется за реал. Можно не покупать, но тогда игру будет не пройти.

Такие дела.

PS: Что-то ОП на связь не выходит. Забухал штоле.
Anonymous No.123410
15959676037340.jpg (149 KB, 1684x1191)
>>123408
>Что-то ОП на связь не выходит
Угу. Не хочет играть со мной в шейдеры, бака такая.
Anonymous No.123420
Как на Си делать замедление экрана лучше всего?
Anonymous No.123424
>>123420
Что такое замедление экрана; и какое отношение к этому имеет си, если это вопрос исключительно к архитектуре движка, а не к си?
Anonymous No.123427
>>123424
Причём здесь движок?
Допустим, моделирую движение звёздочки по экрану. Мне нужно же как-то её рисовать. Для этого нужно замедление.
Anonymous No.123441
>>123427
Движок, не в смысле движок, а в смысле ядро твоей программы, то как она работает и моделирует звёздочки.

Не могу понять что такое "замедление".
Например, у тебя звёздочка двигается по закону x=a+b*t, в момент рисования получаешь, например, системное время, и считаешь t как текущее системное время минус начальное системное время, после чего рисуешь звезду в соответствующем месте?
Пост отредактировал Anonymous
Anonymous No.123442
>>123427
>Мне нужно же как-то её рисовать. Для этого нужно замедление.
Рисуй ее каждый кадр по одним и тем же координатам. А сами координаты изменяй со временем. Для времени используй что-нибудь системное типо GetTickCount. Формула движения оче проста: x = x + (Vel * dt), тут dt твое время между кадрами, а Vel желаемая скорость в пх/сек.

>на Си
Это конечно непрошеный совект, но если ты нюфаг(судя по вопросу), то лучше выкини богоподобную Си начни с чего-нибудь полехче. Я рикаменду связку C# + XNA. Профит в том что есть базовый каркас приложения в котором уже за тебя решили проблемы вроде расчета времени и управления окном и при этом есть полный доступ к низкому уровню графона - пиши какие угодно шейдоры и как угодно реализуй свой конвеер отрисоркив и в целом любую архитектуру игры.
Anonymous No.123480
сап, тучка, подкинте русскоязычных доков а лучше туторов степ бай степ по Vulkan.
Anonymous No.123485
Мне нагуглился сайт https://vulkan-tutorial.com/Drawing_a_triangle, там всё понятно расписано, но что-то я почти в голос расхохотался от всего этого кода, который нужен просто для создания контекста или как там это называется. Ненормальные, там в самом деле почти тысяча строк (https://vulkan-tutorial.com/code/16_swap_chain_recreation.cpp).

Я бы порекомендовал изучать opengl 4, при его изучении всё-равно вникнешь во все эти буферы, поллы команд и конвейер - но не нужно вникать сразу во всё ради отрисовки треугольника, что позволит немного более последовательно изучать это. Вулкан выглядит как что-то с высоким порогом вхождения, можно сказать я вовсе не понимаю зачем он нужен.
Anonymous No.123490
>>123485
> что-то я почти в голос расхохотался от всего этого кода, который нужен просто для создания контекста
Издержки полного и детерменированого контроля стейта на видеокарте. Раньше этим всем рулил драйвер видеокарты напополам с ГАПИ, и было слегка неоптимально в некторых местах отчег разработчики очень плакали. А теперь все можно сделать очень круто, но вручную, но зато очень круто.
Anonymous No.123491
>>123410
Баловство это всё. На шейдоры можно угробить кучу времени, а импакт на игру будет 0.5% вау-эффекта.

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

Вот взять туже сверу что есть выше по треду (кстати вот она >>122819). Ее тупо не существует в коде, она есть только на экране ибо целеком захардкожена в шейдоре. Как к ней прикрутить например физон? Завести еще одну сферу в коде? А нахера их две, если мы можем одну и рисовать передавая ее как вершины, и сразу считать по ней физон. Она будет реально в коде, т.е. с ней потенциально можно делать все что угодно, в отличии от вкомпилиной в шейдер.

Шейдеры это та еще ересь.
Anonymous No.123494
>>123490
>было слегка неоптимально в некторых местах отчег разработчики очень плакали
>но зато очень круто
И сколько эти дополнительные расходы на работы драйвера и апи составляли от общего времени рендера? 3% или 1%? Брр, бред какой-то.
Мне кажется, что это даст заметный выигрыш только если постоянно переключаешь глобальное состояние и другим способом злоупотребляешь вызовами функций opengl. Достаточно просто держать низким соотношения количества геометрии к количествам вызовов opengl.

>>123491
>ибо целеком захардкожена в шейдоре.
Достаточно прикрутить ubo или ssbo со всей информацией про геометрию. Это раньше даже ubo не было, и люди кодировали геометрию в текстуру, которую в шейдере "распаковывали" потом.
Пост отредактировал Anonymous
Anonymous No.123514
15960873951510.webm (11678 KB, 1200x800, 00:00:48)
Пока тучка была в очередной раз убита админом (на самом деле она и сейчас полуубита), вы пропустили море контента. Но электровоз уже уехал.
Видео — суммари.

>>123046
>чтобы сравнить производительность вычислительного с фрагментным
Я не умею в вычислительные шейдеры.
А сам опенгл у меня чего-то не выдаёт больше 60 ФПС, наверное, интервалы какие-то надо настроить, незна.

>>123427
Тебе нужен "таймер"?
Вот пример кода из моей недоделанной ГУИ-библиотеки. Эта функция вызывает другую N раз в сек (если успевает) и делает ещё некоторые штуки, разберёшься.
void wlutInfExecute(wlutInfinity_t* inf) {
struct timespec time1,time2;
struct timespec sleep;

while (1) {
clock_gettime(CLOCK_MONOTONIC,&time1);

clock_t start = clock();
inf->func(inf);
clock_t end = clock();

if (inf->brk) {
break;
}

clock_gettime(CLOCK_MONOTONIC,&time2);

u64 usec = time2.tv_sec*1000000 + time2.tv_nsec/1000 - time1.tv_sec*1000000 - time1.tv_nsec/1000;

float cpu_time_used = (float)usec/1000000.0;

inf->realcps = fmin(inf->cps,1.0/cpu_time_used);

sleep.tv_sec = 0;
sleep.tv_nsec = 0;

if (usec < (double)1000000.0/inf->cps) {
s64 nsec = ((double)1000000.0/inf->cps - usec)*1000;
sleep.tv_sec = nsec/1000000000;
sleep.tv_nsec = nsec%1000000000;
}

nanosleep(&sleep,NULL);
}
}


>>123491
>Как к ней прикрутить например физон?
Вычислять физику на видеокарте не нужно, либо нужно использовать другие технологии типа OpenCL, вычислительных шейдеров (?).
Чтобы сфера двигалась, надо через юниформы передавать положения.
Anonymous No.123574
15961334508800.gif (13991 KB, 800x450)
>>123514
Норм, проснулся-потянулся.

>тучка была в очередной раз убита админом
Шта? У меня нормально робила.

>Чтобы сфера двигалась, надо через юниформы передавать положения.
Это полумеры. Все равно ее не существует в коде. Если надо чуть сложнее чем менять координаты, то уже будет вторая сфера в коде.

Шейдеры про "казаться, а не быть", я ненавижу показуху. Например пикрелейт гладкая стена по физону, очень страно, если в образовавшуюся огромную дыру нельзя будет залезть, значит картинка с геймлейной точки зрения не имеет значения - просто выкинутые вычеслительные ресурсы на показуху. Однократный вау-эффукт при полной пустоте содержания.
Anonymous No.123648
15961861025650.webm (6491 KB, 1200x800, 00:00:14)
Сегодня я смог делать игру 3 часа, когда в другие дни получается 2 часа и не каждый день. Моя воля растёт? Кстати, я недавно следил за собой, и оказалось, что на прокрастинацию я трачу всего лишь треть времени бодрствования. Куда утекает остальное время, я не понимаю.
Помню, когда я регулярно находился в школе, одноклассник спросил "А у тебя сильная сила воли?". Я ответил нет. "Почему? Если положить рядом с тобой батончик, то ты его не съешь?" — "Не съем" — "Так почему же ты говоришь, что у тебя слабая сила воли" не подумайте про него плохо, он тоже глупый пример привёл. Я и в самом деле не уверен, почему ответил так. Я подумал и решил, что у меня слабая сила воли, потому что, если меня накачают наркотиками или будут воздействовать электродами на центры удовольствия, то я не смогу сопротивляться.
Этот пример очень сложен и фантастичен, но недавно я понял что: человек является слабым волей, если потакает своему мозгу, идя против своей воли. Когда он прокрастинирует, наносит себе увечья, агрится на то, что ему указали на ошибки и много чего. Например, взять человека, который трудился над проектом, но через 1.5 года выгорел. Он всё ещё хочет сделать проект, ведь это классно (то есть, соответствует его воле), но он не получает эмоций и не может делать проект, не хочет. Это слабовольный человек. Если хочешь доделать проект, то надо решить этот вопрос и доделать его. Если ему так нужны эмоции, то пусть воспользуется мозговыми костылями и попробует выработать их искусственно или действительно взять свою волю в кулак и просто делать не смотря ни на что.
Проблемы начнутся, если человек на самом деле не хочет делать этот проект (как я и игры, но игры немного мне нравятся).
Не важно где находится его воля, в самом мозге, в некоей душе, да хоть в капельке метилметакрилата, главное, что бы она была.



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


>>123574
>Шейдеры про "казаться, а не быть", я ненавижу показуху
Понимаю о чём ты. Я так же ненавижу растеризацию, потому что это ненастоящий рендеринг для 3D. При помощи растеризации нельзя сделать правильное освещение, отражение (path-трейсинг и фотон-трейсинг это усовершенствованный рейтрейсинг). Также я ненавижу, когда ту же сферу описывают полигонами, а не нурбсами или другими кривыми (да хоть самой сферой).
Растеризация подошла бы для рендеринга шрифтов, графиков, линий. Но я этим заниматься не собираюсь. Графики я тоже буду рейтрейсить, лол.
А GLSL это просто костыль для использования мощностей видеокарт, ибо нельзя давать в массовый рынок игру с 10 ФПС.
Anonymous No.123761
Как написать точный физический (механический) движок?
Меня интересует как описывается вращение тела. Есть некий тензор инерции, но я не совсем понимаю, что он означает.
Меня интересует как сделать его точным. Не получится сделать прямую зависимость от формулы, так как задача трёх тел неразрешима, значит, придётся итерировать. Существует алгоритм Гилберта — Джонсона — Кирти, можно ли при пересечении сделать так, что используется одна дельта, если пересечение есть, то уменьшаем дельту и считаем заново и так до тех пор, пока пересечение не станет достаточно маленьким или есть более простой метод?
Anonymous No.123779
Придумал вам идейку для выживалки. Сам я реализовывать её не буду.

Жизнь монстра с нуля в человеческом мире. Игра начинается историей эмбриона, о том как он живёт, как развивается, он это рассказывает. Что он недавно осознал себя, исследовал окружающий мир (утробу), про поток крови извне. Что он научился управлять своими тканями и вырастил себе 4 ноги, 4 руки и 2 декоративных отростка, так как посчитал привлекательным. О том, как он децентрализовал себе сердце и некоторые другие органы (в т.ч. мозг, но его сложнее), так как считает децентрализацию более правильной. Но потом случилось непроправимое. Он родился.
Почувствовал как что-то происходит вокруг, это было очень страшно и неприятно, как его перевернуло головой и начало толкать. Когда он вышел, то сразу же заорал как резанный, ведь ничего не понятно, раньше он жил в прекрасном мире, а теперь его выбросило в совершенно неизвестную среду обитания. Приниматель родов стоит в кататании и офиге, ассистентка заорала и сбежала, мать спрашивает, что не так, что с её ребёночком. А сам ГГ встаёт на свои 8 конечностей и инстинктивно убегает. В этом этапе нельзя управлять им точно, разброс движения большой и он бежит по одному нажатию, пока не врежется в стену (не привык ещё). После того как он смог выбежать в коридор и перепугать весь персонал, добегает до поворота и показывают катсцену, где его мать с потными патлами, кровью падающей с низа и дикой болью в нижней части туловища добирается (думала, что какое-то животное утащило ребёночка), но осознает, что это то, что она родила и падает на четвереньки. Тут у главного героя проявляется нёбное жжение вокруг зубов (знаете, когда волнуешься или что-то типа того), он кусает свой рот и чувствует вкус своей крови. На экране появляется резкая надпись ГОЛОД, экран мутнеет, но обозначается цветом. Мать обозначена жёлтым цветом еды. Теперь ему надо побежать к ней, он врывается в неё и... Через несколько минут мирно сосёт молоко из груди. Врачи боязно положили нашу парочку на кушетку. Вызвали полицию на всякий случай, так как полученное существо точно не человек и очень непредсказуемо.
Когда ребёнок накормлен, пора на волю. Теперь ГГ научился управлять руками и может нелепо, но бегать. Тут управление нормальное, игроку надо прорваться сквозь полицию и сбежать в природные места. Лес, пустыня, равнина, дикий пляж, что-то из этого. А дальше идёт обычный геймплей выживалки. Построить укрытие, научиться искать еду. Бонусом надо сделать возможность ему изменять своё тело как в Spore или подругому.

Можно использовать такой сюжет и не для игры, а для комикса/мультфильма/фильма, но вряд ли он многим зайдёт, ведь ГГ — одиночка и alien. Иначе давно были бы популярны манги про протаганистов линуксоидов, безумных учёных, единственных оставшихся человеках на Земле.
Anonymous No.123781
15963653704270.png (8 KB, 1040x442)
>>123761
>точный физический (механический) движок?
Что такое точный? У вычислительных методов обычно есть порядок точности, например от шага по времени dt квадратично, от мелкоты разбиения пространства dx как четвёртая степень. Вопрос в том, насколько точно тебе оно нужно. Скорее всего оно не будет движком реального времени даже приблизительно. Ну это так, просто на всякий случай.
>механический
Насколько механический? Простые абсолютно твёрдые тела двигаются и сталкиваются? Волны внутри тел, их собственные колебания (вроде звучания связки ключей) - это вроде как тоже механика, которая описывается дифференциальными уравнениями, только там ещё и граничные условия будут сложные. А если у тебя разрушения тела, или сыпучие тела вроде песка - то скорее всего там даже более-менее общей теории особо нет - только какие-то отдельные методы для разрушения балки или разрушения кристалла, которые к абстрактной детали произвольной формы будут не очень применимы.

>если пересечение есть, то уменьшаем дельту и считаем заново
Можно попробовать на этапе просчёта столкновения определять через какую дельту столкнуться тела (из предположения, что они равномерно двигаются и вращаются). То что ты предложил - это ещё очень простой способ.
Посмотри на картинку (левую часть). Квадрат падает на две опоры (или стоит на них). Он должен оттолкнуться от двух симметрично. Почти все движки игровые (это же геймдев-тред, а не тред вычислительной математики для научных приложений) не дадут симметрии, потому что они просчитывают пары столкновения тел по очереди - и после отталкивания квадрат будет немного вращаться, а вместо стояния он может дрожать и дёргаться. Если это слишком просто - посмотри на правый пример. Ирл подобный квадрат (куб) незначительно деформируется по дуге, и его центральная часть как пружина выталкивает его вверх (рыжим примерно нарисовал деформацию). Когда добавляется третья несимметричная опора, то деформация неравномерна (зелёным), и куб после отскакивания (как мне кажется) будет вращаться, если материалы достаточно упругие. Вообще со стоянием одних тел на других много проблем, сила трения работает очень фигово - в действительности тела проминаются и есть некоторый люфт в котором оно двигается с трением, а в физическом движке тела будут дрожать, так что трение может "мигать" из-за дрожания.
>Меня интересует как описывается вращение тела.
Это незначительная проблема по сравнению с вышеуказанной. Можешь начинать делать 2d-движок, когда решишь там вышеуказанные проблемы одновременного столкновения больше чем двух тел - то перекатится в 3d с тензором инерции вместо одного момента инерции не составит труда.
Anonymous No.123821
>>123761
>Как написать точный физический (механический) движок?
Хз что имеешьпод словом "точный", но написать двиг чтобы считал точно как ирл за разумное время(реалтайм) невозможно. Всегда тела будут немного наезжать друг на друга при столкновениях, это лечится грязными хаками расталкивания или сткрытия фейловых пересечений.

Применительно к играм дествительно ценное качество физ.движка - детерминированость. т.е. он для одних и тех же исходных данных он должен давать одинаковые ответы. Из-за повторяемости результатов например в онлайндрочильнях можно исключить синхронизацию физики по сети каждый кадр, а делать ее значительно реже проверяя что игрок не читерит.
Anonymous No.123830
>>123821
А почему вообще можно написать недетерменированный движок? Я понимаю, что это возможно, но для чего? Авторы таких движков данные из /dev/urandom берут? Или сортируют указатели по адресам?
Anonymous No.123835
15964336880570.webm (12918 KB, 1200x800, 00:00:16)
Разум раскалывается и сростается, раскалывается и сростается. Таким образом, он растёт.

Почти доделал первый уровень, а ведь впереди их ещё много.

Я тут подумал, что было бы удобно иметь что-то типа ассетов. Когда связываешь графическую, физическую и другие составляющие в одно, добавляешь к ним скрипты и вводишь в игру. Этим можно упростить много чего. Может быть и попробую сделать что-то такое, но когда Лайси в полной мере выйдет, чтобы использовать лайси эмбеддед скрипты. А там до игрокового движка конструктора не далеко. И будет игровой движок, объединящий мой графический движок, мою ГУИ-либу и физических наделаю до кучи и добавлю встроенные 3D-редактор, вызываемый из рантайма, чтобы менять вертексы и ломанных, и кривых.
Ещё хорошо бы иметь возможность конвертировать мои ассеты в ассеты юнити, годота и другого, но вряд ли так получится и уж я-то точно этим заниматься не буду.
Ещё мне надо лучше познакомиться с ECS, что он из себя представляет на практике.
Но я не хочу связывать свою жизнь с геймдевом, так что не думаю, что дойдёт до чего-то большого.
Anonymous No.123857
>>123830
>А почему вообще можно написать недетерменированный движок?
Любой физон сам по себе получается недерменированым. На хардварном уровне влияет тот как реализован числа с плавающей точкой. Вроде как есть для этого стандарт, но он не покрывает граничных случаев и на разных процессорах можно получить результаты различающиеся в младших разрядах. Еще влияет как на системном уровне сделана функция времени, в туже копилку функция рандома. Все это дает расхождение результатов со временем для одинаковых физических тел.

>>123835
Хорошо получается. Тем временем я вообще обленился, лол.
Anonymous No.123881
>>123857
А что если использовать числа с неплавающей точкой ака инты, а дельту считать исходят из тиков (N тиков в секунду), то есть будет одинаковый шаг? Тогда она должна быть детерменирована (если шаг будет одинаков).
Вообще я вчера придумал как сделать дельты. Пусть будет дельта максимальная и дельта минимальная. Дельта максимальная это обычный шаг, обозначающий пройденной время, но если тела начинают сталкиваться, то можно уменшить дельту и просчитать заново и так до тех пор, пока он не будет равной минимальной дельте. Таким образом, столкновения будут более точными. Но будет ли это работать в риалтайме, я не знаю.

Я что-то вообще в механике плох, хотя и читал когда-то учебник по теормеху. С материальной точкой всё ясно, у неё одна мера инертности — масса. Вектора скорости и силы, вот и всё.
С 2D-телом я вчера пытался вспомнить, как разложить силу, приложенную в произвольную точку на силу, приложенную к центру масс и момент сил, но не смог. Ладно, сейчас пойду снова читать.
Я также не понимаю как происходит вращение 3D-тел. Они что, вращаются относительно трёх осей? Можно ли приложить к телу один момент сил в произвольном направлении и разложить его на моменты сил относительно ортогональных осей? Мне надо будет это узнать и понять. Также я не понимаю, почему волчок не падает и почему существует эффект Джанибекова.
Anonymous No.123894
15964479550440.webm (7881 KB, 640x360, 00:02:36)
>>123881
На количество тиков ещё будет влиять произвольное исходное состояние автоматов после прошлой задачи. Их ведь ещё нужно в заданное привести по какому-то алгоритму. Если глупости сейчас не ляпнул.
>Они что, вращаются относительно трёх осей?
Могут.
>Можно ли приложить к телу один момент сил в произвольном направлении и разложить его на моменты сил относительно ортогональных осей?
Да.
>почему волчок не падает
Потому что гироскоп. Объяснять долго, но суть в том, что по третьему закону Ньютона вместе с воздействием внешней силы вокруг оси, перпендикулярной оси вращения гироскопа возникнет момент реакции (гироскопический момент), направленный на внешние тела, который и будет стремиться сохранить ось вращения гироскопа. Наблюдаться при этом будет явление прецессии. Чем больше скорость вращения, тем меньшего углового радиуса будет создаваться прецессия при действии равной силы. Именно поэтому при замедлении волчка он начинает всё больше отклоняться от заданной оси вращения пока своей стороной не коснётся поверхности и окончательно не остановится под действием силы трения скольжения.
>почему существует эффект Джанибекова.
Потому что неустойчивое равновесие. Потому что у тела 3 разных момента инерции (по разным осям). Есть ось с максимальным моментом инерции вокруг которой самое устойчивое вращение, есть с минимальной в теории вращение вокруг ней также устойчиво, но реальные тела под воздействием внешних сил всё же однажды перейдут к вращению вокруг оси с максимальным моментом инерции и третья ось соответственно будет иметь некое значение между минимальным и максимальным и вот вращение вокруг этой оси будет самым неустойчивым. При вращения тела вокруг этой оси угловые скорости перпендикулярной оси (к оси вращения) от внешних возмущений продолжают нарастать вектора угловых скоростей в этом случае сонаправлены пока в какой-то момент угловая скорость не перестанет быть такой малой величиной как в случаях вращения вокруг других осей и тело перевернётся. Возрастание угловой скорости со временем, кстати, будет идти по экспоненте.
Anonymous No.124078
15966095268220.png (72 KB, 1030x793)
Принес вам скриншот. Два щита, два оружия, и новый реактор у игрока.

За неделю переписал все корабли на компоненты. Теперь корпус, движки, реактор, орудия и все остальная требуха - компоненты кораблика. Зачем? Во славу сатаны! Понадобилось сделать слоты под два оружия и еще два общих оборудования у игрока, и возникла проблема, что слоты имели свой графон, физон и меняли другие параметры корабля, поэтому проще было сделать все стандартными компонентами. Отдельный профит теперь даже оружие в слоте можно разное нарисовать при желании.

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

Сейчас шиты до ума довожу - их надо заставить стекаться одинаковые. Потом буду физон им докручивать - нужно чтобы корабли прикрытые объемным щитом получали остаток урона если тот упал. Такой кейс нужен для ракеты.

Еще пара крупных компонентов которых пока нет - модули ремонта и модуль невидимости(хз нужен ли он вообще). Модулей ремонтов будет джва. Один только на себя, примерные параметры - 8 раз по +40 хп, за 10 сек на раз. Второй для себя и другого корабля - параметры 12 раз по +60 хп, за 20 сек/раз. У чужих будет что-то похожее в плане ремонта.
Anonymous No.125168
15972341597620.webm (15804 KB, 1200x800, 00:00:17)
Я чуть не сошёл с ума.

Но сейчас я снова взялся за игру и сделал второй уровень, начал делать третий.
Посмотрим, на один уровень 9 дней, всего их будет около 60, ну можно сказать 70.
Если использовать логику, то игра выйдет 15 Апреля 2021 года.
Если использовать мои навыки планирования, то она выйдет до 27 Сентября 2020 года.
Если использовать межушную нейросеть, то игра выйдет до 27 Октября 2020 года.

Пробелмы с прозрачностью, так как я улучшал свой графический движок и добавил багов.
Пост отредактировал Anonymous
Anonymous No.125225
15972506577110.webm (19164 KB, 800x600, 00:03:00)
Тоже отпишусь.

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

Полный список мегадевайсов у игрока за исключением оружия (все характеристики еще поменяются):

Броня (у корпуса корабля базовых 200 хп) - слот брони только один
Базовая - +100 хп
Продвинутая - +200 хп
Тяжелая - +350 хп
Варпброня - +500 хп

Реакторы - слот реактора только один
Базовый - Батарея 450 / Реген 5
Быстрый - Батарея 250 / Реген 15
Эффективный - Батарея 1000 / Реген 7
Совершенный - Батарея 500 / Реген 12

Все остальное ставится в слоты оборудования - их всего 2.

Щиты персональные
Базовый - Прочность 100 / Реген 2 / Перезарядка 25 сек / радиус 20
Быстрый - Прочность 50 / Реген 8 / Перезарядка 15 сек / радиус 20
Тяжелый -Прочность 450 / Реген 4 / Перезарядка 35 сек / радиус 30
Совершенный - Прочность 350 / Реген 12 / Перезарядка 40 сек / радиус 30

Щиты объемные
Базовый - Прочность 450 / Реген 4 / Перезарядка 25 сек / радиус 70
Тяжелый - Прочность 900 / Реген 10 / Перезарядка 35 сек / радиус 70

Ремонтники персональные
Малый ремонтник - Чинит +40 / Ресурс 8 / Время ремонта 15 сек
Большой ремонтник - Чинит +50 / Ресурс 12 / Время ремонта 10 сек

Ремонтники внешние
Внешний ремонтник - Чинит +60 / Ресурс 12 / Время ремонта 20 сек
Тяжелый внешний ремонтник - Чинит +100 / Ресурс 16 / Время ремонта 25 сек

Ускорители движков
Малый бустер - +25% скорости игрока
Большой бустер - +50% скорости игрока

Улучшение реактора
Дополнительный энергоконтур - +100 к запасу энергии / +200% реген
Дополнительный массив батарей - +500 к запасу энергии / +50% реген

Улучшения щитов
Поляризатор щита - +200% прочности / +25% времени перезарядки / +25% энергопотребления
Ускоритель щита - -25% прочности / +100% реген / -50% времени перезарядки / +25% энергопотребления

Улучшения энергооружия
Оптические системы фокусировки - +35% урона / +50% скорсти полета снаряда
Быстрый накопитель импульса - -25% времени перезарядки лучей и лазеров / -25% расход энергии

Улучшения ректного оружия (расчет на базовые 40 ракет и 8 торпед)
Конвеер подачи боеприпасов - -40% времени перезарядки лаунчеров / +8 ракет / +3 торпеды
Хранилище боеприпасов - +30 ракет / +8 торпед

-- я всё

В чем суть игры? Игра конечна и игрок играет за очки, но за них покупается оборудование, расходни, производится ремонт. Грейдя кораблик он снижает свой рекорд. Нужно зафититься по-минимому для получаения максимума разультата, такой себе челендж.

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

Сейчас надо научить АИ не посылать корабли поддержки в бой, и вообще сделать нормальные мирные корабли. Потом надо пилить флоты и делать расчет очков.

До ололо релиза примерно 4 недели. Делейте предзаказы!
Anonymous No.126680
15978623862770.png (25 KB, 648x532)
Бамп мертвому треду мертвых игор. До второй страницы утонул до того всем похуй.

Пилю глобальную карту, пока показать нечего.

Из мелочи запилил энергобанки для разных подсистем корабля. Суть вот в чем - когда у игрока случается лютый дефицит энергии из-за работы девайсов он теряет возможность атаковать, плюс есть возможность зафитить изначально энергонедостаточный кораблик. Это очень плохо сказывааеся на динамике или вообще делает игру непроходимой, поэтому я решил сделать квотирование батареи и регена по подсистемам. Каждое устройство теперь говорит из какого банка оно хочет брать энергию а не только сколько. Подсистем всего джве - оружие и все остальное, есть еще третий расшареный банк для всех, нужен чтобы каждый энергобанк подсистем не захватывал слишком много резерва батареи без дела. Потом этот код пригодится в другом проекте.

На пикче с поднятым щитом у игрока дефицит энергии в единичку - +5 реген и -6 потребление. Для меня было откровением, что щит не падает, хотя должен разряжаться со скоростью своей регенерации. Неочень интуитивное поведение объясняется просто: 5/6 времени щит делает +реген, и 1/6 -реген, итого недостаток энергии дает всего 2/3 регена от номинала. Когда энергии нехватает то первые 50% недостачи идут как штраф к восстановлению, и только потом он начинает разряжаться.

Еще запилил NSNB-пушку - простой лазор стреляющий серией импульсов с небольшим разбросом. До конца непонятно сделать отдельную линейку таких лазеров или лучше специальный девайс дающий серию и разброс. Можно так и так сделать.

Вот.
Anonymous No.126686
>>120101 (OP)
А куда делся анон с индастриворксом? Треды, если что, не читал.
Anonymous No.126689
>>126686
Вот он >>125168
Anonymous No.126775
>>126686
Я тут есть и был, даже после того, как админ убил тучку джва раза.

Индустриворкс я уже давно забросил, собираюсь и игру про помидорку забросить. Недавно в треде я рассуждал, что у меня слабая воля, так как я не делаю игру, а ведь сделав, я мог бы заработать некоторые деньги. Но что если рассудить подругому? Мне не нравится делать игры. Можно было бы за денёк нарисовать демосценку по фану, но месяцами делать одну игру это не то. Я не хочу. И разве это моё волеизъявление — делать игры? Нет. Мои волепродукты были бы совсем другие.
Когда-то давно я начал и продолжал делать Индустриворкс, питая данный вектор воли надеждой на получении денег. А игра про девочку-помидорку по моим прикидкам принесёт всего лишь 250 долларов с продаж в первый месяц. -100 долларов на стим директ, итого 150. Да, доход, но я и так уже научился зарабатывать гораздо больше за месяц при помощи фриланса и сверхспособностей. Можно сделать игру, а можно просто поработать. В первом случае я смогу избежать большого стресса, а во втором случае всё будет быстрее. В глубине моя психика понимает, что мне ни к чему делать игры.
И ситуация в мире сейчас такова, что некогда развлекаться, надо заниматься реальными делами.
Боюсь, это закат моей игроиндустрии. Но надо подождать ещё пару месяцев для окончательного решения.
Anonymous No.126881
>>126775
>админ убил тучку джва раза
Чего?
Anonymous No.126902
>>126881
Помнишь, когда админ выключал постинг на пару недель, но при этом другие аноны могли постить?
Anonymous No.126907
>>126902
Не помню, у тебя шиза, кажется.
Anonymous No.126911
>>126902
Ты про то когда он без повода треды тёр? Помню-помню, но я бы не оскорблялся от такого
Anonymous No.126980
>>126902
Постинг с тора?
Anonymous No.131281
15988895084130.jpg (282 KB, 2880x1800)
Anonymous No.131291
>>131281
Галактика Сомбреро, наверняка.
Anonymous No.131302
>>120101 (OP)
на последнемм видосе симулятор травы?
Anonymous No.131934
15991024206200.webm (19581 KB, 800x600, 00:04:04)
>>131291
Хз, пик рандом.

Алсо, принес концентрированого геймплея на глобальной карте. Задача игрока не проебаться в открытом космосе с ограниченым ресурсом движка.

Я просто хотел добавить немного аутирования в космосе между потными боями и илюзию нелинейного выбора какой флот чужих мочить следующим, но теперь сижу пишу поехавшую гравитацию, пытаюсь совладать с дорожанием обезумевшей камеры, вообще беспонятия как объединить двух игроков на одном экране если они розойдутся очень далеко. Прикрутил вторую опциональную камеру для сплитскрина и все выглядит как омск из-за разных маштабов на камерах. СЛОЖНА СЛОЖНА, а в глове все так красиво выглядит.
Anonymous No.131952
>>131934
Можешь станций прикрутить?
Напомнило reassembly
Anonymous No.132175
>>131952
Прикручу. Но потом.

Скорее всего их будет всего три с половиной штуки - пару добывающих в поясе астеройдов, одна научная на самой дальней орбите пару станций наблюдения на той же орбите что и земля, но с другой стороны звезды. Станции наверно остануться декорациями, с ними никак нельзя будет взаимодействовать. В игре на них можно только поставить метку вражеского флота - типо альены захватили, лети воевать, лол. Игрок сможет докаться только на орбите земляшки, к ней прикрутим лабу с компонентами корабля и меню прокачки. Простенько(нет) и со вкусом.
Anonymous No.132189
>>120101 (OP)
>хочу сразу делать игру. Как?
>Ответ: Учи C или C++
Это, пожалуй, самый идиотский совет, который можно было бы дать. Если человек хочет сразу делать игру, то он может взять условную lua и начать делать игру (а не учить коболы, которые к играм вообще никакого отношения не имеют (кроме крестов и ААА, но это нерелевантно, если человек только собирается запилить первую игру)).
Anonymous No.132733
15993155472870.webm (8144 KB, 1200x800, 00:00:25)
Ввёл физику боксдвадэ.
Также я решил уменьшить геймплей с четырёх этапов до часа, а то сложно очень.

Пока думал над игрой про помидороводевочку, придумал вторую часть для неё. Она лучше чем игра про нефтедевочку, так как включается в себя смысл игры про нефтедевочку, исключает одну плохую механику, добавляет в себя клоннинг скайрима (квесты и диалоги) и боёвку как в майнкрафте. Не знаю, сделаю ли я когда-нибудь такую игру, ведь для неё мне, прежде всего, надо сделать первую часть. Там надо очень много анимировать, но если подумать, то можно как-то зондировать свои конечности и анимировать с натуры, моушензахват. Ещё и лицо нейросеткой обрабатывать, чтобы анимировать лицо.
Anonymous No.132877
>>132733
>Там надо очень много анимировать, но если подумать, то можно как-то зондировать свои конечности и анимировать с натуры, моушензахват.
Нафига тебе именно свои конечности? Любая 3д-модель с анимациями может быть отрендерена в набор спрайтов. Забытая технология древних.
Anonymous No.132915
>>132877
>Любая 3д-модель с анимациями может быть отрендерена в набор спрайтов.
Это не нужна, вторая часть игры про помидородевочку была бы 3D-шной (так как по сюжету этой, главная героиня освободится от оков двадешного мира и перейдёт в 3D).

Что насчёт анимаций, то чем красивее и разнообразнее анимации, плюс щепотка реализма и будет гораздо лучше.
Anonymous No.132924
15993776671480.webm (8582 KB, 1200x800, 00:00:19)
15993776672031.png (44 KB, 640x519)
Фикстуры и формы для камней и чанков я генерирую отдельной программой, а не на лету.

Вообще, было бы прикольно ещё и привязать пиксели вращающихся предметов к своим UV-координатам или типа того, чтобы пиксели вращались как в Noita.

У меня ещё была странная проблемка. Когда из тел были только помидородевочка и "земля", то при запуске игра первые несколько секунд фризила, но отрисовать уже успела. То есть, это box2d что-то там кешировал. Я думал, ну ок. Но теперь, когда добавил больше тел, игра запускается мгновенно. И я не знаю, в чём проблема.
Anonymous No.135145
15999787678300.png (17 KB, 844x202)
Cpp или Java, чтобы клон марио на андроиде? Пиклейтед?
Anonymous No.135146
>>135145
Попробуй лучше kotlin. А то java слишком оопная, офисная и юриспруденческая. Когда пишешь на джаве, ощущение, будто зашёл в отдел бухгалтерии.

>клон марио на андроиде
Не, тогда выбирай Годот. Можешь ещё юнити попробовать, но он проприетарный.

>Пиклейтед
Я считаю, что если хочешь стать программистом, то надо начинать с Си, Ассемблера.

Если у меня появятся дети, то я постараюсь их вместе с чтением и письмом обучить и программированию. Сначала надо произвести/купить логические блоки, безопасные для жувания и глаз (стандартными ножками и элементами они себе могут глаза или пищеварительный тракт случайно проколоть) и всякие соединяющие элементы, чтобы познакомить их с электроникой и булевой алгеброй, чтоб им в подкорку логика зашла. Если не понравится, то хоть будут понимать, как это работает, а если понравится, то вдруг ненароком процессор соберут, когда я только собирался их познакомить с микроконтроллерами и ассемблером...
Anonymous No.135150
>>135146
>А то java слишком оопная
А чем это плохо? Любишь писать в процедурном стиле?
Anonymous No.135155
>>135145
>на андроиде
Джава. В десять раз больше инфы и примеров.
Anonymous !6bDimaS14A No.135972
Ищу художника чтобы вместе делать игры.
Anonymous No.136110
>>135972
Го
Anonymous !6bDimaS14A No.136386
>>136110
Есть телега, или еще что-нибудь? Пиши в тг если что @sober_sue
Anonymous No.137262
16006763195880.webm (12618 KB, 1600x912, 00:00:30)
Рисую 14 треугольников — 30 ФПС. Придётся писать опенгловский бекенд, мдауж. Растеризовать 2D-графику не зазорно, но в моей игре я собираюсь и 3D...
Anonymous No.137285
>>137262
Очень уже бросатеся в глаза разный размер пикселей на переднем и заднем плане. Мне кажется надо делать одинаковый размер чтобы было #нормально.
Anonymous No.145064
16029427449110.webm (2458 KB, 1200x800, 00:00:10)
.бин делаинг реврайтинг графической и ГУИ библиотек-движкоВ .наверное ,надо будет обновить мои игры ,и чессмейтС ,и индустриворкС
.что насчёт графической библиотеки ,то я изрешетал изрядно ,добавил рендер-контекст и текстуры с ним ,позволяя рисовать игру и другие 3D прямо в виджетЕ .таки сделал рендер в текстурУ
.а в ГУИ библиотеку придумал очень много высокоуровневых виджетов :кнопкА-чекбокС (один и тот же виджет ,просто происходит переключение "фрейма" внутренних виджетов) ,списоК ,тексТэдиТ ,календарЬ ,дропдауН ,таблицА ,всякие цветовые кружки и оси
.реализовал ,конечно же ,только кнопкУ .даже меньше чем в прошлой версии ,мдА .также пересмотрел выбор низкоуровневых виджетов и отказался от безьер-курв ,пусть будет просто полигон с кривымИ .и ещё суперэллипС .увидел недавно статью на хабрЕ ,что эппл юзает не скруглённые квадраты в качестве иконок ,а суперэллипсы ,потому что они выглядят красивеЕ
?также подумал насчёт и стилей и знаете ,чтО .у Qt есть отдельные стили для всяких там чекбоксов ,списков ,бордер сайз и всё прочеЕ .моя же либа более гибкая ,но и сложнее настраиваемаЯ .я думаю, что надо будет ввести структуру как pen ,она будет содержать указатель на материал моей графической библиотеки ,а style-структура будет либо иметь список пенов ,либо иметь правила для замены пенов на свои ,на чужиЕ. вот нажал юзер на меню из списка и у него поменялся стилЬ .белый фон стал синим ,чёрные буквы белыми ,а какой-нибудь указатель жёлтыМ .тока как это реализовать ,я пока не увереН ?шейдерами, чтолИ
.ну ладно, это всё мелкие условностИ

.в последнее время мне не очень нравится ,что происходит на тучкЕ. она мне не нравится ,наверное ,стоит подыскать новую имиджбордУ ?видите ,что со знаками препинания в этом постЕ .вот так они направлены в обратную сторону ,квинтэссенция препинания встретится с моим предыдущим постом и отправится опять сюда ,и обратнО ?застрянет и мои последующие посты будут просто хаотичным набором слоВ
...а может и останусь хмхмхМ
Anonymous No.145183
>>145064

>в последнее время мне не очень нравится ,что происходит на тучкЕ
Ты про набег политоты, который в половину тредов проник?
Мне тоже очень не нравится - я никак не влияю на политику, обсуждение её - пустая трата времени. Даже еот треды лучше - они хотя бы не противные, и тема отношений и психологии интересная. А политота всегда негативная - кто кого обманывает, где и кому плохо.
Пост отредактировал Anonymous
Anonymous No.145191
>>145183
Попробуй пидорни их отсюда. У тебя ничего не выйдет.
Anonymous No.145216
16030104661920.webm (4226 KB, 800x600, 00:01:11)
>>145064
>она мне не нравится
Тоже такая херня. Если перекатишься напиши куда.

Алсо, дело не в политоте.


ОБЕЩАНЫХ АНОНУ СТАНЦИЙ ПО ПРЕЖНЕМУ НЕТ зато есть лампые планетки
Anonymous No.145220
Давайте скатите и Gamedev, один из немногих нормальных тредов, в сраную мету. Долбоёбы, своими же руками борду скатываете в говно.
Anonymous No.145226
16030202919830.jpg (15 KB, 552x372)
>>145220
/ГД/-тред под эгидой свободного рынка.

Тут можно обсуждать всё, но главная тема геймдев.
Если ты хочешь закрыть кому-то рот - тебе тут не рады.
Anonymous No.145265
16030274483450.png (12 KB, 315x390)
>>145226
Свободный рынок не может в геймдев. Продукции много, а игор тонет.
Anonymous No.145274
16030325366270.webm (4976 KB, 1200x800, 00:00:20)
Сделал слайдеры и получил ГУИ на уровне Индустриворкса последних версий.
Раньше у меня кнопка сама имела hover и press блинк-виджеты (появляются при ховер и нажатии соответсвенно, иначе пропадают). Теперь я слелал отделный виджет HoverPress, который состоит из базы, ховер и пресса. Это нужно, чтобы обобщить подвиджеты кнопки и слайдера.

Есть несколько иссуесов.
Как вы можете видеть на видео, abc... и другие не закрываются бело-прозрачным и сине-прозрачным блинками. Раньше закрывалось, потому что оно было внутри виджета кнопки, а теперь виджет с блинками и надписи раздельны. Это можно решить, если немного переделать функции для кнопки и делать дочерними виджеты надписей после базовой части HoverPress и до hover и press. Чтобы последние закрывали их.
Во-вторых, насчёт верхнего виджета. Если зажать и увести курсор, то белый блинк пропадёт по коллбеку FocusOut (надеюсь, вы интуитивно понимаете, за что отвечают эти названия). Это выглядит как-то непонятно. Стоит ли делать так, чтобы он не пропадал, пока press виден или не нужно?
Третье. Если зажать какой-нибудь из этих виджетов, а потом увести курсор на другие, то у всех появится синий блинк. Наверное, мне надо переставить коллбеки и включать синий блинк по press, но если до нажатия этого курсор тоже попадал на виджет. Ахх, надо вводить новый функционал для!
Всё сложно в этом ГУИ. А ведь это только кнопка/чекбокс и слайдер! Что я буду делать, когда писать виджеты для plot 3D-отображения функций?
Кстати, забыл написать, что планирую:
0. Добавить в неё же функции для трассировки моих примитивов. Это позволит создавать в ГУИ-библиотеке тридешные виджеты. То есть, в главном меню какой-нибудь игры можно будет раскидать кубиков и на них жать, чтобы пройти.
Но программисту придётся подзапариться, чтобы сделать их, потому что это не будет стандартным решением.
1. Добавить в графическую либу анимации. Скелетные, текстурные, анимации свойств! Раньше я хотел только в ГУИ добавить их, но решил, что лучше в графическую. Анимации виджетов позволяют сделать красивый и привлекательный интерфейс. Если вы используете приложение telegram-desktop, то могли заметить, что при нажатии на контакт где-то полсекунды проигрывается анимация, как из точки нажатия разрастается сфера. А в обычном gedit (или, скорее, GTK+?) при нажатии на кнопку с дропдаун-меню первую и последнюю доли секунды своей жизни он перемещается на пару десятков пикселей вниз и набирает альфаканал, а потом тоже на пару десятков пикселей вниз и убирает альфаканал. Красота.
Anonymous No.145781
16031762637080.png (68 KB, 795x592)
16031762637431.png (9 KB, 512x642)
Кстати, недавно была статейка на хабре про ГУИ: https://habr.com/ru/post/521306/
Оттуда я подчерпнул такую важную вещь, как пикрилейтед. Что-то не сразу я додумался до такого.
Но это скорее подойдёт для антиалиазед хайрез текстурок и игр, чем для пиксель-арта (можно, если внутреннее монотонное и только края красивые). Хотя, если присобачить процедурную генерацию текстурок...
Надо будет и мне такое реализовать.

Если сравнивать между моим ГУИ и его, то:
0. В лейблах у него чего-то под каждый символ свой меш. У меня виджет лейбла (высокоуровневый виджет из модуля как кнопки или слайдер) это просто рект с текстурой.
1. Насчёт положения виджетов я не совсем понял, но у меня/я планирую сделать так, что виджет имеет во-первых просто положение, во-вторых трансформационную матрицу. Положение может иметь значение в пикселях, в метрах или флоатское значение между двумя виджетами, если он к ним привязан. Кроме того, положение привязано к флоатскому значению на родительском виджете. Например, если это 0.0 по x, то смещение будет происходить относительно левого края виджета (окна, например), если 0.5, то от центра, а 1.0 от правого края. Это касается пиксельного и метрового значения.
А дополнительная матрица исключительно для вращения и скейлинга, но на всякий случай оставлю и трансформацию, и вообще она для 3D-пространства mat4x4.
К сожалению, лейауты я так и не сделал, но думаю, что они будут просто коллбеками, которые перерасчитывают расположения дочерних виджетов.
2. У него есть встроенные антиалиазед линии (да и просто линии), а моём графическом движке такого нет, так как я просто не понимаю, как их рейтрейсить. Вместо этого я планировал написать отдельную библиотеку, которая рисует линии кистями. Эта библиотека будет потом использовать в другом модуле моей ГУИ-библиотеке, plot-библиотеке. Там должны быть 1D-, 2D-, 3D- (!) графики, гистограммы и много чего ещё. Вот такие линии для 2D-графиков и нужны.

Кстати, заметил, что в Qt, что в HTML как-то не просто сделать перекрытие одного виджета другим, так как там вся завязано на лейаутах, если я правильно понял. У меня не так и лейаут это просто дополнительная вещь. Не считая их, есть такая абстрактная вещь как Активити. Его можно пушить и попить. При пушинге прошлое активити не рисуется и не обрабатывается, а следующие начинает рисовать и обрабатываться. Если взять интрейфейс майнкрафта, то там бы активити пушилось при нажатии на кнопку Options, а попилось на кнопку Back.
Anonymous No.145852
>>145781
А мне статья не понравилась.

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

Во-вторых она не отвечает на действительно важные вопросы. Один из таких вопросов например, это лейауты - компоновка экрана под любые разрешения экрана. Проблема сложна и не решается тривиальным - вот эти контролы мы в столбик рендерим когда у нас строка заканчивается. Еще пример это сохранение и восстановление состояния контролов. Можно словить очень много приключений в дебагере, если не будет простого способа воспроизвести гуй.
Anonymous No.146039
16032840074900.webm (1894 KB, 1200x800, 00:00:10)
Список или SelectBox это что-то типа такого.
Anonymous No.146467
16034366224530.webm (2415 KB, 1200x800, 00:00:08)
Начал заново. Дотянулись руки до того, чтобы сваять свою собственную перспективную матрицу, а не глутовскую. Долго была проблема, что камера вращается вокруг какой-то точки, а не вокруг себя, а оказалось, что я ставил значения в единичную матрицу, а не нулевую. 1 в последнем элементе сделал такой эффект. Теперь всё нормально.
Я решил сделать размер чанка не 16x16x16, а 32x32x32. Ещё и размер блока поднять с 0.5 м до 1.0 метра, как в Майнкрафте. Его опыт показал, что это идеальный размер куба для игры, если там присутствует хоть долька аркадности.
Кубы меньших размеров подошли бы для каких-нибудь градостроительных симулянтов. Был когда-то такой клон майнкрафта, а... Он и сейчас есть. Blockscape. Вот там всё есть под строительство именно домиков, с деталями.
Хмм, если посмотреть на Blockscape сейчас, он стоит 10 баксов, его купило около или более 30000 людей и он заброшен. Помню, когда заходил на его сайт в прошлый раз, его можно было купить долларов за 40 и это было несколько лет назад.

Надо, чтобы мой Индустриворкс купило минимум 2000 людей, это число как раз для него. Сейчас готово где-то 7.5%. Теперь главное ни забрасывать, ни добавлять контент, дразнящий мою защиту от создания виртуальных миров, способных заменить жизнь.

Кстати, помните я писал, что разработал технологию по управлению собственным разумом или чем-то там? Так вот она проработала один день и отбросила меня аж в нынешний момент. Сейчас я испытываю новую технологию, более щадящую и очищающую разум.
Anonymous No.146514
16034601331460.webm (6809 KB, 1200x800, 00:00:11)
В общем, мир должен быть прибилизительно таким. Круглый, окружён ледяной стеной. Всего 5 биомов.
Только вместо снега должна быть просто тундра, а вместо воды либо болота, либо частые острова.
В разных биомах разное содержание разных полезных ископаемых. В пустыне золото, в тундре нефть, например.
Кстати, я решил отказаться от той жидкости, что была раньше. Пусть будет океанико-речная вода, которая умеет в ZATOPEELO, а остальные жидкости вести себя как в майнкрафте. Жижа, способная бесконечно растягиваться вниз.
Anonymous No.147068
16036341994190.webm (2673 KB, 1280x720, 00:00:09)
ГУИ сразу похорошел после 9-спрайт текстуры. Только она пока в коде игры, а не ГУИ библиотеки, потому что для ГУИ мне надо сначала лейауты придумать.
Текст на кнопках такой временно, я верну пиксельный шрифт. Такой нужен будет для локализации на всякие японские, китайские и корейские языки. Не буду же я в 5x8 пикселей рисовать какие-нибудь корейские слоги.

Вас не раздражают вращающиеся пиксели сзади?
Anonymous No.147420
Кстати, недавно насасаче я писал, что новый вид Индустриворкса должен стать не как факторио с заклинаниями, сердечными кристаллами и MP, а просто крафтодрочильня, где как в GregTech надо очень много крафтить и это идёт медленно.
Тем не менее, некоторые заводы будут, но я не заставлю игроков строить тонны бельтов, потому что в Индустриворксе теперь должен быть просто крафт ради крафта. А в конце надо улететь на ракете в гигантскую дыру, с которой выпал главный герой.

Но если рассматривать все эти сложные рецепты крафта, то они не могут быть вложенными и иерархичными. Они цикличны. Например, чтобы сделать электрогенератор, надо добыть электричество (намагнитить магниты), а чтобы получить электричество, надо сделать электрогенератор. Придётся вводить дополнительный элемент — химические источники тока. Для первого и единственного раза.
Так же, очень много зависит от "классов" или "уровней" скрафченных предметов. И тут я подумал, а что если сделать каждый предмет возможность, чтобы он был из любого материала и с некоторым классов или значение точности, прочности, и прочих характеристик? И написать в игре игрокам, что это процесс творческий и вам придётся самим подбирать метариалы и устройства.
И в конце концов игрок сделает одну ракету и она упадёт. Вторая полетит гораздо выше, а третья чуть ниже второй. Поймёт, что дело не в этой детали и четвёртая почти долетит до дыры, но взорвётся. А пятая станет концом игры.
Но не уверен пока.
И это надо очень много рецептов крафта, базирующихся на реальности составить. Вот, что пока наваял:
Тут
0. Палка + Палка = Огонь.
1. Палка + Камень = Топор.
2. Камни + Глина = Печь.
3. Печь: Древесина + Огонь = Зола + Древесный уголь.
Доломит — флюс.
Лимонит — поверхностная железная руда.
Магнетит — недровая железная руда.
4. Печь: Глина = Тигель.
5. Печь + Тигель: Лимонит + Доломит + Древесный уголь/Кокс = Чугун.
6. Керамика = Керамический Порошок.
7. Глина = Глинистый порошок.
8. Печь: Глинистый порошок + Керамический Порошок = Шамотный кирпич.
9. Керамический Порошок + Глинистый порошок = Мертель.
10. Вода + Мертель + Шамотный кипрчи = Высокотемпературная печь.
11. Шамотный кирпич = Проволочная насадка.
12. Шамотный кирпич + Чугун = Трубная насадка.
13. Высокотемпературная печь + Проволочная насадка = Проволочно-экструзионный высокотемпературный станок.
14. Высокотемпературная печь + Трубная насадка = Трубно-экструзионный высокотемпературный станок.
... Профильная насадка.
15. Чугун + Трубно-экструзионный высокотемпературный станок = чугунная труба.
16. Древесина + Чугун = Механический Нагнетатель.
17. Древесина = Вал.
18. Древесина + Вал = Гидромельница.
19. Поддувало = Труба + Нагнетатель.
20. Высокотемператураная печь + Поддувало = Печь для стали.
К печи для стали подключить вал.
21. Печь для стали: Чугун = Сталь.
22. Печь: Глина = Литьевая Форма: Наковаленная, Кулачковая, Шестерёночная, etc.
23. Печь для стали + Наковальная Форма: Сталь = Наковальня.
24. Наковальня: Сталь = Режущие инструменты I-ного (наинизшего) класса — свёрла, резцы.
25. Печь для стали + Формы: Сталь = изделие.
26. 3 кулачка + шестерня с архимедовой спиралью + древесина (корпус) = Трёхкулачковый патрон наинизшего класса.
27. Чугун + Профильно-экструзионный высокотемпературный станок = чугунная проволока.
28. Чугунный профиль + трёхкулачковый патрон + сталь + древесина = Токарный Станок (наинизшего уровня).
К токарке подключить вал.
29. Токарный станок + Сталь = Прокатный вал.
30. Прокатный вал + шестерня + профиль = прокатный станок.
31. Прокатный станок: Сталь = стальные листы.

Малахит — медная руда.

32. Печь + Малахит + Древесный уголь/Кокс = медь.
33. Медь + проволочный станок(печь) = Медная проволока.

Напольник — культура для выработки биоспирта.

34. Напольник + Глиняный контейнер: Спирт.
35. Спирт + Смола = Лак.

36. Накручивальник (вал) + Лист металла = Покрывающий станок.
37. Покрывающий станок + Лак + Медная проволока = Лакированная медная проволока.

38. Печь + Медная проволока = Намагничивающий станок.

39. Намагничивающий станок: Сталь (или другая заготовка) = магнит.

40. Лакировання медная проволока + тонкий стальной лист (или другой) + медь + стальной лист + магнит = Электрогенератор.

Сфалерит — цинковая руда.
Касситерит — оловянная руда.
Галенит — свинцовая руда.

41. Цинк + Медь + Вода/Щёлочь/Кислота = химический источник тока.

42. Лакировання медная проволока + тонкий стальной лист (или другой) + медь + стальной лист + магнит + графит = Электродвигатель.
Anonymous No.147729
>>147420
>Вот, что пока наваял
Лучше бы ты это в редакторе майндмапов рисовал, или в какой-нибудь приблуде типа uml если ничего другого не знаешь, лол. По схеме можно сразу одним взглядом оценить что как и из чего получается, а в списке теряешься.

>Придётся вводить дополнительный элемент — химические источники тока.
Ирл для такого хватает магнитного поля земли. Вроде как есть генераторы, которые только его и используют без собственных магнитов - я точно не помню, но картинка такого устройства в "элементарном учебнике физике" вроде как была - может быть она была экспериментальной, я не верю что кто-то в самом деле использует что-то настолько сомнительное.
Это плохая геймплейная практика (в виде одноразового рецепта - который больше никогда не будет нужен) и к реалистичности она тоже не имеет отношения. Отказывайся.
Anonymous No.148648
Аргх, технология не работает, я снова не могу так просто брать и делать игры.

Очень печально, ведь если осознать, то я за 2-3 месяца мог бы сделать игру, которая принесла бы мне десятки тысяч долларов, на которые можно купить не только предметы, но и недвижимость!
Все проблемы в мозгах.

>>147729
Интересно, можно ли как-то сделать витки технологий Индустриворкса такими, чтобы каждый тип игроков своё выбирал? Например, один решил использовать батарейки на алюминий-воздухе, второй литиевые аккумуляторы, а третий водородом заправлять движки? Сделать такое очень сложно, я в геймплее очень плохо разбираюсь.
Моя голова гаразда придумывать разве что сюжеты с высоким уровнем упоротости, но очень мало из них реализовались на практике. А когда реализовались, комьюнити приняло-неприняло (рейтинг ушёл вроде бы в ноль, но на самом деле в небольшой минус). Из-за того что навыки реализации были маленькими.
А в Индустриворкс сюжеты не запихнёшь. Сюжеты надо пихать во вторую часть игры про помидородевочку, а перед этим сделать её первую часть.
Anonymous No.149746
>>148648
>чтобы каждый тип игроков своё выбирал?
Сделать такую систему рецептов, что каждый ресурс требуется в каком-то количестве и незаменим, но помимо этого основную массу все можно делать из любого ресурса.

Например, железо и магний. Есть магниты, где в любом случае необходимо некоторое количества железа, и есть какая-нибудь фигня из химии, для которой нужно какое-то количество магния.
Переложить обязанности "по выбору сюжета" на генератор карты. Все инструменты и металлические конструкции можно сделать как из железа, так и из магния - и если тебя заспавнило на планете где железо в дефиците - то ты будешь играть в "свой путь" вешаясь от сложности производства магния и недостаточной прочности магниевых конструкций, и только в критических местах использовать драгоценное железо, если что-то после магнитов останется.
Anonymous No.150609
16043495101640.webm (5251 KB, 1280x720, 00:00:19)
Ууу как плющит этого наркомана!

Кстати, я только что осознал, что те вращающиеся пиксели в 2 раза больше обычных. Дело в том, что согласно моему движку+ГУИ вся сцена это сцена ГУИ, а на заднем плане рект, в который рендерится просто сцена моего графического движка. А когда я сменяю ГУИ-скейл, размеры рендеринга не меняются, просто текстура растягивается.
Надо будет динамически менять размеры этой текстуры. Как я только что и сделал с текстом, например.
Anonymous No.151959
16046939118400.webm (2343 KB, 1008x704, 00:00:15)
Лол, реймаршинг + булеан модельки. Имплицит тела задаются функцией расстояния от точки до поверхности. А булеаны задаются простыми выражениями расстояний для дочерних тел.
Вычитал это из этой статьи: http://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/
А вы знали, что нормаль такой поверхности можно получить из градиента? Недавно я узнал это и думал да как же так, представляя 3D-поверхность заданную функцией двух аргументов и не понимал, как там градиент является нормалью. А теперь понял, что градиент является нормалью для 3D-объектов, если фукнция принимает 3 аргумента. Так же и для двухаргументной функции градиент будет нормалью для спроецированного, двухмерного тела. А градиент функции одного аргумента будет нормалью оси y, лол.
Также наткнулся на статью, которую когда-то скидывал анон: http://www.cse.yorku.ca/~amana/research/grid.pdf
Но я ещё не прочитал && понял её.
Anonymous No.152030
16047426653590.webm (5768 KB, 1008x704, 00:00:24)
Небольшая вечеринка на 5 друзей.
Anonymous No.152087
16047637817480.webm (17384 KB, 1200x800, 00:00:27)
БЕ3ВbIХОДЫМ
Anonymous No.152089
16047655537580.jpg (29 KB, 187x236)
Здраствуйте. Я, Номад. Я пишу рицензии на саите, аг ру. Хотел бы чтобы вы сделали игру, эрпогэ суть такова… Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы…
Anonymous No.152116
>>152089
Версия 2020
>Здраствуйте. Я, Номад. Я пишу рицензии на саите riotpixels. Делаю обзоры на девайсы фирмы razer, суть такова… Пользователь может купить мембранную клавиатуру за 10k. И если пользователь думает нахуя ему так много платить за то, что в Китае стоит копейки, то тут есть ЛГБТ подсветка, китайские кнопки которые не всегда прожимаются и зелёный геймерский логотип для геймеров. А ещё мне за это платят. Это самое главное. Можно грабить корованы…
Anonymous No.152127
А пробовали читать рецензии на уг.ру на игры 90-х? До появления номада. Это такой лютейший треш...Уровня малолетних гопарей на лавочке под пивас обсуждающих как вчера они чиста в конкретную игруху шпилили
Anonymous No.152130
>>152089
Так это он написал про андертейл, как почти дошёл до первого домика и жаловался, мол всё розовое?
Anonymous No.152608
16050806850230.webm (10896 KB, 1200x800, 00:00:13)
Представляете, попробовал перекатить тред с пучки на другую имиджборду, а там сказали, что тор-юзерам нельзя постить файлы.
Anonymous No.152732
Что-то чессмейтов не получается обновить... Графический движок багает. Поэтому его надо подчистить.
У меня возникли вопросы по рендерингу.
Во-первых, какие характеристики есть у PBR? Я не совсем понял про тот же roughness, например. Вот можно взять посмотреть на свет. У него есть длина волны и поляризация. От этих характеристик и от угла падения зависят характеристики отражения и преломления. По-сути их можно велосипедно описать функциями, мол частоты такого диапазона отражаются на такой угол, а другие на такой. Но мне лучше бы коэффициентов и готовых формул, чтобы не утруждать возможных будущих пользователей писать функции под все 2-4 бекенда. опенгл, глсл, софтрендер, етц.
Что делают всякие свойства, которые позволяют немного проникнуть свету под материал (под кожу, например) и отразиться? Я совсем этого не понимаю и почему бы просто не заменить его цветом?
Алсо я подумал над таким свойством материала, как карта высот. Это как карта нормалей, но влияет и на форму меша. Думаю, сложно будет сделать реализацию для опенгла, но не сложно для рейтрейсинга. Или реймаршинга.
Ещё можно добавить такое свойство как карта микровысот для симуляции интерференции света. Чтобы, например, рендерить мыльный пузырь. Он будет шаром, но его стенки как бы будут иметь разные толщины и света проинтерферируют меж собой.

Во-вторых, какие примитивы следует добавить?
Сейчас у меня стоит triangles, nurbs и generic. Всё это время реализованы были только trinagles. С нурбсами я пока не очень разобрался. Знаю только, что в них входит линия Безье и, скорее всего, с их помощью можно и суперэллипсы рендерить. Не придётся писать аппроксиматор для библиотеки ГУИ.
И тут я подумал о введении такого примитива как воксельное октодерево. Его будет легче рейтрейсить или реймаршить, чем сетку треугольников. И аппликаций, вроде, не мало. Начиная майнкрафт-подобной игрой и заканчивая визуализацией всяких скан-данных или скульптинга тридемоделек.

В-третьих, что насчёт рендеринга объёмов?
Я недавно понял, что иногда же надо рендерить всякие мать-дымки, пары, желе. Но для них нужны объёмные меши, а не треугольники или нурбсы. Ввести сферы? Или, скорее, абстрактные частицы? Можно даже сделать так, чтоб в случае текстурных частиц просто навесить на них текстуры и они автоматически будут повёрнуты в камеры... А в случае рендеринга дыма можно представить их как signed distance function с смусовым юнионом...
Но такое я бы реализовывал только для рейтрейсинга. Не уверен, что в опенгл-бекенд буду даже тени вводить. Только если не получится добиться хорошей производительности для какой-нибудь своей будущей игры, может...
Anonymous No.152985
16052664046580.png (96 KB, 1200x800)
Смотрите. Это проекция функции w = F(x,y,z) (w ≈ 0) на трёхмерную поверхность, а она проецируется перспективой на двухмерную. А потом это спроецируется в состояние ваших нейронов и их связей.
Anonymous No.152986
>>152985
По-русски плиз
Anonymous No.153008
16052809250060.png (518 KB, 1200x800)
>>152986
Ґей, дивиться. Це проекція функції й = Ф(с,и,з) (й <≈ нуля) на трьохмірний об'єм, а вона проектується перспективою на двомірну. Потім це спроектується у стан ваших нейронів та їх зв'язків.
Anonymous No.160436
16079536236130.png (42 KB, 746x552)
Пришел бампнуть, а у вас тут вайп.
Anonymous No.162182
16088363325010.png (119 KB, 1030x793)
Бамп.

Сплитскрин с братишкой. Алсо, камеры умеют стекаться когда игроки рядом.
Anonymous No.163066
Антивайперский бамп.
Anonymous No.163098
Господа игроделы, чем вы пользуетесь для отладки шейдеров? Есть ли годная интерактивная IDE?
Anonymous No.163111
>>163098
Лично я ни чем не пользуюсь. Делаю отдельную тестовую прогу в которой только нужный шейдер и его отладка. Все как у дидов из 90-х.

А так юнити годная интерактивная ИДЕ для отладки шейдоров собранных на нодах. Еще вариант попробовать блендер - там тоже есть ноды и где-то был их экспорт в тектовый глсл который понимает любой движок.

Алсо, давно у нвидии была отдельна ИДЕ под шейдеры - FX Composer. Я ее пробовал, но она мне непонравилась. В ней сложно настраивать тестовое окружение. То что в самопальной программе делается парой строчек пресетов надо пердолить через неочевидный гуй.

Из онлайна есть очевидный shadertoy.com, отдебажить мелкую ерунду там тоже вполне можно.
Anonymous No.163152
>>163111
Спасибо, анон.
Anonymous No.163523
16093414233530.webm (20226 KB, 800x600, 00:03:23)
Полет по приборам.
Anonymous No.171561
16135958850890.png (20 KB, 544x298)
Сюда тоже кину, вдруг лайси-кун ещё заходит - это специально для него, чтобы он порадовался какой glsl абстрактный и насколько просто на нём писать код.
Anonymous No.171564
>>171561
Лайси-кун ушел на эндчан.
Anonymous No.176426
>>171564
Нашёл его. И игру больше не делает, зануда он такая.
Пост отредактировал Anonymous
Anonymous No.176431
>>171561
Где фигурные скобки? Ты че, сишников не уважаешь? Объяснись!
Anonymous No.176435
16155438860560.png (13 KB, 582x345)
>>176431
А где они должны быть? Если одна строка в теле for/if/while - то фигурные не ставлю. Только в случае нагромождения if-else-if ставлю.

Тебе стоило бы придраться к отсутствию отступа, а не к скобкам. Pycharm просто не умеет в автоматические отступы, а основная ide не умеет в подсветку синтаксиса для glsl. Ну, умеет, но очень хуёво, так что глаза режет - по сути только ключевые слова и числа подсвечивает - но зато отступы ставит верно.
Anonymous No.176439
16155468646430.png (324 KB, 626x692)
16155468646951.png (333 KB, 771x839)
16155468647382.png (217 KB, 626x692)
16155468647713.png (15 KB, 659x722)
>>122243
Дай угадаю, уперся в максимальную точность double, а дальше не работает?
А при переходе на числа с неопределенной длиной, все работает в 100-500 раз дольше.
Либо у вас в c/c++ законные типы данных с неопределенной длинной, которые более менее быстро работают?
У тебя красиво, не то, что мое.
Предполагалось, что это интерактивное перемещение по карте, но по факту без double фпс равен примерно один кадр в пол часа (используя мультитрединг), так же нет стабилизатора, и на некоторых участках перемещение уж очень быстрое.
Рофл был в том, что на double та же программа на c++ и java работала быстрее на java. java использовала awt + swing, а c++ SFML для отрисовки, хотя основная нагрузка сделать 10000 итераций для каждого пикселя


Вкину сюда свою консольку что ли. Пакман с рандомной бесконечной генерацией карт, может быть почти любого размера(влезающего в консоль) и разной прямоугольной формы.
Пост отредактировал Anonymous
Anonymous No.176448
>>176439
То не моё видео, я просто замедлил, потому что у анона слишком быстро было.

У меня вот тут упирается на 39 секунде, что хорошо видно >>122204
Может быть это был float, я не помню.

>А при переходе на числа с неопределенной длиной, все работает в 100-500 раз дольше.
Какая-то хуёвая реализация, мне кажется.
Если что, есть нативно поддерживающийся long double на 80 бит, который на всех пк процессорах. Так называемый набор инструкций x87. Просто пишешь в си long double.
Ещё в gcc есть quadmath на 128 бит, который работает раз в 20-40 медленнее нативно поддерживающегося типов при использовании делений и тригонометрии. Скорее всего при использовании только лишь умножения и сложения там разница будет раз в 10-15 едва ли.
Я могу попробовать сделать свою реализацию на 256 бит, если интересно - и проверить на тех же фракталах.
Anonymous No.176735
>>176448
> Какая-то хуёвая реализация, мне кажется.
Так и есть, использовал BigDecimal, предназначенный для точных операций с валютой, там можно любую длину задавать.
> нативно поддерживающийся
Не подумал про это, или не хотел тогда разбираться.
> Я могу попробовать сделать свою реализацию на 256 бит, если интересно - и проверить на тех же фракталах.
Твое дело, анон. Но интереснее было бы именно неограниченную длину. Так называемая "длинная арифметика".
Мне предлагали для тренировки написать подобную библиотеку на джаве, но это довольно нудная задача(копипаст), скорее всего, можно готовое найти на с/c++.
С другой стороны, если будет быстро работающий вариант на 256 бит, чтобы можно было вручную двигать, будет круто. Я бы скачал, поигрался с ней.
Anonymous No.176737
16155596383070.png (133 KB, 762x560)
>>176735
>для точных операций с валютой
Там просто скорее упор на вычислительную устойчивость, а не на скорость. Для фракталов не сильно важно, что a+b+c != c+b+a, а для валюты такое критично.
>Но интереснее было бы именно неограниченную длину
Как будто что-то поменяется при смене длины, просто перекомпилировать с другим размером мантиссы/порядка - или даже на ходу их менять.
>Так называемая "длинная арифметика"
Для дробных чисел? Для целых тут всё понятно, просто увеличиваешь число порядков - а для дробных что делать? Ты хочешь увеличивать точность мантиссы или порядка?

Или ты хочешь отказаться от плавающей запятой вовсе и хранить в виде n/1020?
Или даже хранить почти что в символьном виде, в виде пары целых чисел n/m?

Я кстати наврал. __float128 сосёт в 100 раз почти, а не в 10-15. То на другом ноутбуке было, видимо он был слабый и не так так резво работали нативные double. Или он их через какие-то avx2 ускоряет, хотя тогда по идее 80-битный long double должен был начать отставать в 2/4 раза, так как avx2 не умеет с ним работать, если я не ошибаюсь.
Anonymous No.176741
>>176737
> Или ты хочешь отказаться от плавающей запятой вовсе и хранить в виде n/1020?
Да, отдельной переменной запятую хранить. Данные в массиве из ulong, например.

> Или даже хранить почти что в символьном виде, в виде пары целых чисел n/m?
Пара целых чисел будет помещаться в куда меньший диапазон, чем f64, хотя точность будет больше. Будет долго работать, скорее всего, быстро дойдет до переполнения даже с u64.

> или даже на ходу их менять.
Думал о таком. Но один хрен, разница в производительности с каждый увеличением длины будет сильно падать.
Anonymous No.176751
>>120101 (OP)
>4

Сколько за машграф получил?
Anonymous No.176794
16155833783870.png (208 KB, 854x997)
>>176741
>быстро дойдет до переполнения даже с u64.
Ага, после трёх умножений знаменателя. Имеет ввиду что числитель и знаменатель как наборы простых множителей хранятся и сокращаются при первой возможности. Или как длинная арифметика - но тогда операция сокращения будет супер медленной, а если не сокращаться, то размеры будут экспоненциально расти.

Побаловался - вот на картинке на каких масштабах какой тип до предела точности доходит, это 3000 итераций.
В нижнем пункте я попробовал хранить числа в виде (a+x)e, где a - int, x - double (в диапазоне от 0 до 1 нужно было сделать от -0.5 до +0.5, что в два раза точность повысит), а e - шаг сетки (1e-6). Тогда получается что во всех точках число ведёт себя с точностью, как double в диапазоне 0..e - тогда как традиционный double начинает всё сильнее пикселизироваться при удалении от нуля.
По быстродействию в 15 раз отстаёт от long double (работает за 6 секунд), но зато работает до масштабов порядка 1e-19, и только на -20 начинает сыпаться. Что в общем-то на эти 5-6 порядков заложенных в e и обгоняет обычный double.

Для сравнения __float128 работает в три раза медленнее (за 16 секунд) моего костыля, но там точность порядка 1e-35 и нужен охулиард итераций, чтобы дойти до "пикселей".
Если в моём костыле понизить e до -12 степени, заменить double на long double, а int на long int, то работает за 10 секунд с точностью до 1e-28. Но на этом возможности использования стандартных типов исчерпываются, и нужно писать свой __float256 или хуиту с длинной арифметикой. Из плюсов - костыль можно на видеокарте запустить, которая 2000 итераций при таком разрешении считает не за 270 мс, а за 5 мс. А __float128 или длинную арифметику - очень вряд ли, видеокарты не любят такое.

>>176751
Нисколько. Я самоучка отбитая, учился на физика и дропнул примерно на втором курсе. Из программирования только сортировка пузырьком на си была.
Пост отредактировал Anonymous
Anonymous No.176805
>>176794
> (a+x)e
Можешь показать пример кода, где ты это применил?
Anonymous No.176821
16156104599060.png (5 KB, 439x147)
>>176805
Умножение.
Anonymous No.176849
>>176821
>friend
>перегрузка *
Чёт горит с этих лишних сущностей.
Anonymous No.177194
>>176849
Так не используй их, бака. Никто не заставляет.
Да ладно, нет ничего логичнее перегрузки математических операторов для численного типа. Не писать же add(a,b,&c).
>friend
Нахожу сложение аргументов a и b куда более логичным, чем сложение *this и b. Не очень понятно почему нельзя использовать static в этом случае, ну да хрен с ним.

А вообще да. Только лишние сущности это noexcept и вся система исключений, шаблоны по типу std::enable_if вместо нормальных ограничений на допустимые типы для шаблонов и кучу легаси-приблуд, по типу что sin меняет глобальное состояние, и ты не можешь написать constexpr float x = sin(0.3f); лол.

Не очень понимаю, почему комитет стесняется добавлять удобный синтаксический сахар по типу питоновского оператора with (внутреннее устройство которого очень понятно, а использование очень ёмко и лаконично) - или хотя бы просто синтаксический сахар для умных указателей - есть же свободные символы $ и @. И почему в стандартной библиотеке нет и не предвидится кроссплатформенной функций для работы с сетью.
А вот [[fallthrough]] это очень полезная фича, сразу пошёл добавлять во все проекты. Или всё то что они с шаблонами делают, всякие кастомные deduction guides про которые я бы предпочёл никогда в своей жизни не слышать.

Но как говорят есть два типа языков - на которые все ругаются, и которые никто не использует. Кресты на восьмёрочку, они очень неплохи сейчас. Особенно по сравнению с тем, что было в 11 стандарте или упаси боже в 03 стандарте.
Anonymous No.177195
Пост отредактировал Anonymous (Причина: Тучка сбоит и потому пост отправился два раза - хотя при отп)
Anonymous No.177205
16158490333220.webm (4286 KB, 1720x1030, 00:00:31)
16158490421401.webm (2515 KB, 1720x1030, 00:00:13)
16158490421712.webm (1900 KB, 1720x1030, 00:00:14)
В gd-треде крупной борды видос кинули: https://www.youtube.com/watch?v=DH1cv0Rdf2w
Смотреть не надо - только если на х1.75 скорости, там много воды.

Понравились картинки, и я захотел такие же. Достаточно интересный объект.
Для немного разных функций: x*(1-x) , x*(1-x)*(1-x) и 1.0-fabs(1-x)
Жёлтым - среднее значение.

Теперь нужно переписать по нормальному на с++/glsl (по какой-то причине я написал это на си где сохранять картинки я не умею, а разбираться как использовать шейдеры вдвойне не хочется) чтобы оно сохраняла в картинку большого разрешения, а не записывать через obs вывод из окна.

И разобраться как устроена трёхмерная фигура из видео.

Не знаю какое это имеет отношение к gd, но тут уже много фракталов в треде и хуже не будет. Да и на другой борде это тоже в gd-треде было.
Пост отредактировал Anonymous
Anonymous No.177212
16158743661660.jpg (375 KB, 1547x676)
Гениальная идея в Game индустрии
https://vk.com/topic-79634086_30889847 - Сценарий к игре 22 ой регион
В краце.Это шутер про блондинку Аллу.Охуенный сюжет.И оригинальный интерфейс.Этой игры ещё нет.Она в мечтах.Проект не коммерческий и на чистом энтузиазме.Место действие данной игры должно быть копией Биска и села Полковникова.Впрочем об игре и сюжет.Это всё в сценарии.Сюжет и персонажи вымышлены.Ну это и так понятно.Сюжет можно увеличить.Но пока мне некогда сценарий редактировать.

http://vk.com/22RUSALLA - Группа проекта,так сказать.
Anonymous No.177220
>>177194
>Так не используй их, бака. Никто не заставляет.
Я и не использую плюсы, кроме шаблонов ничего нет полезного для моих задач имха
Anonymous No.177235
>>177220
А что за задачи?
Anonymous No.177238
>>177212
Я готов ждать джва года.
Anonymous No.177253
16158978684040.webp (5287 KB, 8184x1636)
16158978692201.png (487 KB, 1017x947)
>>177205
Не могу запостить в разрешении 16х4, только в два раза меньше.
Пишет что тип не разрешён для загрузки - ни webp, ни jpg.
https://files.catbox.moe/m92lky.webp

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

А трёхмерная - это просто вместо z модули комплексных чисел. При вращении очень красиво выглядит, но в целом не так уж и интересно.
Anonymous No.177258
Зачем вам гейдев, если крудошлепам и тырпарйзмакакам больше платать за меньше ебли?
Anonymous No.177261
>>177258
Для души, как говорят.

А где ты геймдев тут увидел?
Нет критической массы, тут только смежные области фрагментами. Где-то 0.6-0.8 от критической массы, так что тухнет через несколько итераций. Вот лайси-кун ненормальный — и у него уровень самомотивации был такой, что получалось около 1.1 критической массы - он достаточно продолжительное время не забрасывал своё, при этом делал другое и ещё куски мотивации перепадали остальным.

>>177212
>Сюжет, игра и персонажи вымышлены.
Потриксил.

В чём твоё предложение то?
И почему в этом (>>177256 (OP)) треде что-то очень похожее, но с другой группой вк? Какой-то местный абуз ради просмотров группы? Но там 50 человек.
Anonymous No.177262
>>177258
Никакое бабло не сделает ненавистное формошлепство более привлекательным. Долго не протянешь, выгоришь.
Anonymous No.177264
>>177262
Я выгорел. Но это, наверное, потому что я сам ленивое говно.

А так - выгорание зависит от места работы, если потогонка, то да. Так же и в гейдеве, думаю.
А если месяц строите архитектуру ГетЮзер - то и норм.
Anonymous No.177274
>>177235
Системные задачи.
Anonymous No.179442
А никто прошлый тред не сохранил? У меня есть первый, но второго нет.
Anonymous No.179498
>>120874
ебать дед правду матку говорит, а быдло его обсмеяло. Еще блять лену притянули. Вот пидоры
Anonymous No.179499
>>179498
Какую правду? Дед сам всю жизнь нихуя не делал и сейчас делать не хочет, но воняет на молодых, чтобы они ему коммунизм сделали. Всю жизнь прожил, а так и не понял, что просто так нихуя не делается.
Anonymous No.179500
С помощью C++ и SDL можно сделать игру с графоном как в Daggerfall?
Anonymous No.179501
>>179498
Всё так. Завсегдатаи геймдева, конечно же могут возразить, что они не для дебилов убивалку времени делают, а какое-то там искусство творят. Вполне может быть. Но ведь речь о другом. О том, что большинство игроблядей именно такие, какими их описал дедуля. Великовозрастные идиоты, играющие в дноту. Немощные социальные инвалиды. Дегенераты.
>>179499
Дедуля ни слова о коммунизме не сказал. Судя по его речи, он кое-что таки делал в жизни. Во всяком случае, то что делал он и что делают игродебилы не идет даже ни в какое сравнение. Пусть совок, пусть плановое говно, но тогда люди умели спроектировать целый завод при помощи карандаша и бумажек. И это даже не шутка. Это курсачи и дипломы такие у них были в послевоенное время. Он-то знает что просто так нихуя не делается. И наверняка знает, что с чего-то начинать нужно. А игродебилу лишь бы похихикать и ничего не делать.
Anonymous No.179502
Что из перечисленного лучше для разработки игр: C, C++, C# или Python?
Anonymous No.179503
>>179499
Ну вот настоящий пример малолетнего дэбила. Дед ни слова не сказал о коммунизме. Да хоть блять про тру капитализм начал бы он морозить. Суть не в этом. Он имел виду то, что понять тебе в силу своей глупости не дано к сожалению, как и большинству обитателей интернета, где сидят ради смихуечков и смищных картинок.
Anonymous No.179504
>>179502
Все кроме питона
Anonymous No.179505
>>179504
А из оставшегося что лучше выбирать?
Anonymous No.179506
>>179505
Смотря какие цели. Мощные масштабные игры только на С и c++. Что нибудь полегче для инди например идеально подходит C#.
Anonymous No.179507
>>179506
Я хочу создать RPG уровня Daggerfall или Might and Magic VI-VIII.

>Мощные масштабные игры только на С и c++.
А что лучше из этого брать?
Anonymous No.179508
>>179507
C - это родитель C++. C - это чистый Си без ООП. C++ - это СИ с ООП и крутыми фичами.
Anonymous No.179510
>>179508
Стоить сказать, что на голом C не делают сейчас ничего. Вообще.
Anonymous No.179511
>>179508
Значит, беру С++ и SDL. Спасибо тебе, анон! Хорошего тебе дня!
Anonymous No.179515
>>179511
И тебе удачи в создании! А ты уже выучил плюсы?
Anonymous No.179520
>>179508
>C++ - это СИ с ООП и крутыми фичами
Большая ошибка тут.
>>179510
Голый C - это что такое вообще c99 c11 c17?
>>179511
>Значит, беру С++ и SDL. Спасибо тебе, анон! Хорошего тебе дня!
>на голом C не делают сейчас ничего
Смешно вышло. SDL как раз на C написан.
Anonymous No.179524
>>179515
Нет, анон, я вообще программировать не умею. Но я планирую освоить С++ за неделю.
Anonymous No.179525
>>179524
> освоить С++ за неделю
Только хардкор!!
Это невозможно.
Anonymous No.179527
>>179524
Я вот этого вообще не понимаю, разве современный гей-дев не про художников/прочих творческих личностей. Там же высрана куча движков, со всякими крестами/геометрией/шейдерами ебётся 1.5 человек, разве не так?
Anonymous No.179528
>>179525
> C++
Ходят легенды, что его невозможно освоить.
Anonymous No.179530
>>179527
все так
Anonymous No.179531
>>179525
Значит, за две недели. Просто постараюсь сделать это как можно быстрей.
Anonymous No.179532
>>179531
Анонче, возьми меня в команду! Мне все равно делать нечего, а я хикки и хочу тоже что нибудь создать. Хоть это и говном будет, все равно. Я уже знаю плюсы.
Anonymous No.179533
>>179532
Ок, давай почту.
Anonymous No.179534
>>179533
sosykolbasy@yandex.ru
Anonymous No.179536
>>179534
э пошел нахуй пиздабол
Anonymous No.179537
>>179533
Что выше - пиздабол какой то.
devochkadvacheska@rambler.ru
Anonymous No.179538
>>179537
Ты фейк, я первый написал.
Anonymous No.179543
>>179532
Взял тебя и твою мамашу в команду.
Anonymous No.179546
16167901893660.jpg (983 KB, 2120x1417)
Нужен ленивый бездельник в команду? Сейчас ищу работу.
Anonymous No.179547
>>179546
да, нужен сосальщик моего хуйца. Готов к работе, товарищ?
Anonymous No.179549
16167910118810.jpg (507 KB, 700x1128)
>>179547
Я подожду вашего начальника и его предложение. Ты кто, покажите вашу корочку, вдруг ты кофе приносишь. Сосать так у босса.
Anonymous No.179550
>>179549
Прошаренный работник однако.
Anonymous No.179552
>>179549
Я его зам-директор, сынок. Ты не переживай, сынок. Будешь сосать, с леденцами чтоб вкусней было. А зарплата наша шлюшка вика тебе раз в месяц давать будет.
Anonymous No.179554
А приходилось ли кому-нибудь работать в геймдеве? Не над инди-проектом, не в команде из 3,5 человек, а именно в большой (или хотя бы средней) компании.

Мне просто интересно как там условия. Раньше слышал только негатив. Мол, кромешный пиздец вместо графика, в менеджменте сплошной бардак и т.д. Даже если посмотреть интервью, или какие-то видосы о том как разрабатывалась какая-то игра, то там тоже проскакивают такие штуки и об этом говорят даже не стесняясь. В геймдеве всегда так?
Anonymous No.179555
>>179554
Все так. Профессия новая, соответственно никаких законов нету. Компании ебут только так, но зато ЗП довольно высокие.
Мимо unreal engine разработчик 190 к в мес ДС.
Anonymous No.179560
16167922296860.jpg (5034 KB, 1650x2270)
>>179555
Сколько членов сосать в неделю приходится?
Я тут понимаешь, собрался устраиваться по тк. Не люблю переработки.
Anonymous No.179561
>>179560
Бывает перед релизом обновлений постоянно не успеваем. И задерживаемся на пару часов. Если что упадет, какой нибудь баг, то в любое время могут вызвать и чинить
Anonymous No.179563
>>179549
как зовут вайфу пикрелейтед?
Anonymous No.179566
>>179500
Для си++ лучше подходит sfml.
Если си++, это си++ по отношению к си, то sfml это sdl++ по отношению к sdl.

>>179502>>179505>>179524
Так, а теперь по пунктам распишу. С дивана, естественно.

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

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

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

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

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

Язык медленный, в сотню раз проигрывает трём другим. Он принципиально не подходит для игры с множеством объектов. Библиотеки очень удобные и их много. Скорее всего очень быстро получишь демку, но очень долго будешь разбираться как получить не модификацию демки, а написать что-то своё.
Оче низкий порог входа, высокое время изучения языка, среднее время изучения необходимых для создания игры областей, низкое время разработки.

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

Обрати внимание на игровые движки по типу unity/unreal/godot - создание рпг с помощью них очень сильно сдвигает разработку от программирования в сторону сборки из элементов в конструкторе. Можно будет сделать трёхмерный уровень и модельку бегающего персонажа с тенями не вникая ни в математику, ни в графику, ни в физику, ни (почти) в программирование. Ещё и с мультиплеером. При этом придётся рожать ежей если захочешь выйти за функционал предлагаемый движком и сделать что-то своё.
Если ты не знаешь программирование - то это единственный жизнеспособный вариант получить хоть какой-то результат, потому что в противном случае придётся писать игровую логику самостоятельно. А помимо этого тебе придётся разобраться с загрузкой картинок/звуков/моделек, разработать свой формат сохранения игровых уровней, сохранений, сделать вручную графические эффекты (анимацию рук-ног персонажей, открывающиеся двери, тени, прозрачную воду), сделать вручную ввод-вывод (и, скорее всего, вникнуть в многопоточность), изучить либо для вывода звуков, написать кучу математического кода с плоскостями, линиями и их пересечениями (если игра трёхмерная), разработать интерфейс и логику его работы, написать хоть какой-то ии для мобов и так далее. Если это и возможно - но с первого раза ты получишь тысячу багов, со второго пять сотен и только где-то после десятого раза в подобное поделие можно будет играть. При этом оно будет выглядеть как говно и лагать как собака в 10 фпс из-за какой-нибудь сортировки всех объектов каждый кадр. Все эти октодеревья и bsp-разбиения пространства не просто так придумывали.


Помогу с разработкой на с++/си и может быть питоне, если будет какая-то конкретика и конкретный план и задачи.

>>179563
Кэ Цин.
Пост отредактировал Anonymous
Anonymous No.179609
>>179566
Кресты - это не си, это совсем другая история со своими преколами, си - это не самый простой язык, это сложный язык, обычно про простоту си говорят лишь люди пишущие hello_world, которые даже не открывали стандарт.
Anonymous No.179661
Я буду придумывать игру с нуля. Где лучше сделать об этом тред: в /op/ или в /art/?
Anonymous No.179676
>>179661
Первое (или скрытый раздел) - но чем тебе не угодил этот тред?
Anonymous No.179702
>>179676
>но чем тебе не угодил этот тред
Не то, что бы не угодил, но не хочу засирать его.
Anonymous No.179736
>>179661
>придумывать
У себя дома. Когда будет прототип - тогда уже можно решать.
Anonymous No.181169
16177899399310.webm (13331 KB, 1600x920, 00:00:35)
Бамп.
Ищу напарника. Есть задумка демки-прототипа (с физикой), которую будет уместно в таком треде запостить.
По коду нужно будет написать простой генератор мира, можно будет написать ии для моба (их всего 2-4 вида будет), нужно будет что-то придумать со звуками - ну и всё остальное что захочется и что можно будет впихнуть. Графику не планирую, будет что-то как на видео - такие схематичные линии достаточно симпатичны и очень дешёвые по себестоимости. Всё очень просто, вид сверху, 5-10 типов игровых объектов, три с половиной типа врага, два биома.
Или не ищу - но в общем буду рад с кем-то ещё поделать что-то.

>>120101 (OP)
>Я офигею писать физику, какой движок использовать?
>Ответ: Bullet (вероятно, лучший)
Надо сказать с движком тоже офигеешь. Я уже офигел, хотя пока просто демки разбираю.

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

Есть идеи почему это видео занимает так много места? Я уже в ноль качество выкрутил, обрезал края ещё сильнее и фпс в 2 раза занизил. Первый вариант вовсе 39 мб весил, и он уже был с заметными артефактами и потерей цветов.
Пост отредактировал Anonymous
Anonymous No.181171
>>181169
> спойлер
35 секунд же и разрешение не то что бы маленькое.
Anonymous No.181180
>>181171
Изображение шесть цветов содержит, и большая часть блоков пикселей полностью чёрные.
Минутное 4к видео на 10 мб видел? На нём есть заметные артефакты, но оно выглядит хорошо.
Тут же все линии полупрозрачные и цвета в говно превратились из-за цветовой субдискретизации, которая явно не подходит для линий в один пиксель. У меня даже от варианта на 40 мб глаза вытекают - хотя в эти же 40 мб влезет lossless вариант. Даже гифка даст размер где-то в 70 мб и будет без потерь.
Anonymous No.181183
>>181180
Ну, не знаю. Но обрати внимание на сетку, которая у тебя в постоянном движении. Она, возможно, очень сильно мешает сжимать видео. Я не помню по какому там алгоритму примерно происходит кодирование кадров и видео в целом в VP8 (это для webm), но в H.264 (для mp4) картинка просто разбивается на ровные квадратики. У тебя получается так, что этих квадратов, которые не менялись бы слишком часто, не так много. Следовательно, размер будет больше из-за неэффективного сжатия.
Более плавное движение, более однородная картинка — лучше сжатие видео. Оно ведь для фильмов в первую очередь создавалось, верно? Не для таких схематических штуковин, где резкие линии летают вокруг.
Пост отредактировал Anonymous
Anonymous No.181312
>>181169
> почему это видео занимает так много места?
Потому что:
— его алиасит по жёсткому, что воспринимается как шум, а шум жмётся оч плохо;
— оно состоит из контрастных линий, квантование которых в форматах до AV1 бросается в глаза.

>>181183
> обрати внимание на сетку
Сетка сравнительно легко жмётся, по крайней мере пока находится на удалении от других объектов: её узлы повторяются.

> Я не помню по какому там алгоритму примерно происходит кодирование кадров и видео в целом в VP8 (это для webm), но в H.264 (для mp4) картинка просто разбивается на ровные квадратики.
Точно так же. Олсо, у него VP9, его отличает возможность делать эти квадратики разных размеров, объединять в прямоугольники и вертеть более точно.
Anonymous No.181345
16179310878410.webp (62 KB, 789x728)
Дружище, меня в дисе забанили, пиши в жабу.
Anonymous No.181638
16183492158510.png (207 KB, 834x750)
Полистал книгу "Джесси Шелл: Геймдизайн" по наводке анончика.
Магнет-ссылка на книжку
magnet:?xt=urn:btih:d057d564fc8f49911bc243ce0646d2f374cf7fa5&dn=%d0%93%d0%b5%d0%b9%d0%bc%d0%b4%d0%b8%d0%b7%d0%b0%d0%b9%d0%bd.%20%d0%9a%d0%b0%d0%ba%20%d1%81%d0%be%d0%b7%d0%b4%d0%b0%d1%82%d1%8c%20%d0%b8%d0%b3%d1%80%d1%83%2c%20%d0%b2%20%d0%ba%d0%be%d1%82%d0%be%d1%80%d1%83%d1%8e%20%d0%b1%d1%83%d0%b4%d1%83%d1%82%20%d0%b8%d0%b3%d1%80%d0%b0%d1%82%d1%8c%20%d0%b2%d1%81%d0%b5&tr=http%3a%2f%2fbt.t-ru.org%2fann%3fmagnet


Не очень понравилась, 3.5/10, первые 50 страниц - вода уровня обучающих тренингов, потом ощутимо лучше (и даже не скатывается, я не без любопытства просмотрел каждый абзац до конца книги, скипнул только 30-31 главы про деньги и заказчиков).
Книжка очень американизированна в плохом смысле слова - это не научная и даже не научно-популярная книга - а что-то из разряда того, что становится бестселлерами (узнаю тот же дизайн - ту же схему изложения мыслей, и даже концепции "популярной психологии" там встречаются), так как людям приятно читать такие простые слова и мысли и думать, что они что-то полезное изучают, хотя в действительности ничего нового не написано.
Может быть я как-то не правильно читаю, но я прочитал несколько глав полностью - и вот я смотрю на полторы страницы (несколько крупных абзацев) и когда пытаюсь сформулировать ключевую мысль - натыкаюсь на пустоту. Там просто нет никакой информации, хотя ключевая мысль должна быть в каждом абзаце - это признак по которому абзацы выделяются.

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

Какие-то полезные вопросы которые себе можно задать, но для этого достаточно одного-двух абзацев, а не десяти страниц (отдельной главы) как в книге. Максимум - одна страница, за исключением сложных тем.
Концепция призм (возможно) полезная. В книге введи в поиск "Призма 1:", "Призма 16:" и просто пролистай все "призмы". Какая-то мне кажется чрезвычайно важной, но я отдаю себе отчёт в том, что она важна мне, а другие могут не смотреть на этот аспект вовсе. Про другую обратное - я понимаю что мне до фени, но кому-то другому аспекты другой призмы важны. Какие-то кажутся абсолютной чушью - но возможно я просто не могу понять других игроков, и на самом деле кому-то и такое важно.

Возможно можно выделить главы 10-12-18 (и чуть менее приоритетно 16-20). Понравилась (по идеям) 33 глава, что кто-то вообще об этом думает.
Остальная часть советов нужна для поздних стадий разработки, когда будешь смотреть на свой унылый прототип и думать "а что с ним не так?" - если по натию не очень хорошо получается фиксить интересность геймплея. До создания рабочей версии это всё смысла почти не имеет.
Могу распарсить pdf-ку, и в виде текста на пастебин залить все - там около сотни разных точек зрения (призм), и по крайне мере часть из них может оказаться полезной.
Пост отредактировал Anonymous
Anonymous No.181727
Прошу прощения, не туда запостил.
Пост отредактировал Anonymous
Anonymous No.181956
16186116825020.mp4 (4049 KB, 1806x1050, 00:00:30)
16186116830011.mp4 (734 KB, 1260x478, 00:00:43)
16186116830292.mp4 (2925 KB, 1600x920, 00:00:51)
16186116830663.mp4 (7969 KB, 1806x1054, 00:01:02)
Поспамлю немного старыми скриншотами и вебм, немного.
Тред всё-равно пустой.

1 - вызывает у меня приступ окр, хочется расставить линии равномерно.
2 - пробовал написать онлайн рисовалку. И как-то на шару за день я её накалякал - а сейчас сам дивлюсь как у меня хоть как-то получилось, пусть там связь и отваливается. Это тёмные времена были, когда онлайн-рисовалок или каких-либо флокдроу не существовало.
3 - очередная водичка на частицах, одна из первых что я сделал, и одна из самых удачных.
4 - удалённые по w-координате штуки показаны зелёным или жёлтым. Лабиринт в 4d - ну, не лабиринт, а просто демка, где можно вдоль линий с метками (место, где две плоскости рядом) двигаться. Достаточно мозговыносящая штука.
Anonymous No.181960
16186118779130.mp4 (9478 KB, 1920x1080, 00:00:11)
16186118779901.webp (290 KB, 1499x927)
16186118787252.webp (177 KB, 1709x966)
16186118787863.webp (144 KB, 1723x918)
1 - безуспешная попытка решить навье-стокса в 2d
2/3/4 - какие-то заброщеные программы, уже и не помню что они должны были делать.
Anonymous No.181963
16186123340410.mp4 (19775 KB, 1920x1080, 00:00:36)
16186123340771.png (57 KB, 1727x798)
16186123341122.png (135 KB, 1570x1078)
16186123341523.png (72 KB, 1343x737)
1 - программа-предшествинница #4 отсюда >>181956 - камеру хаотично вращает и кренит, нужно мышью выправлять движение и дойти до конца. 12 уровней, скорость увеличивается к последнему. Я только до 7 доходил. Есть режим где дальнейший туннель не просвечивается. Часов восемь наиграл в эту дичь, лол.
2 - без комментариев, лол - самые-самые первые мои программы, попытка сделать стратегию (полностью провальная)
3 - ты управляешь пирамидкой, можешь ходить по поверхностям, жёлтые квадраты катаются по линиям. Нужно разломать вражеские пирамиды (они тоже ходят по линиям) и стреляют. Для стрельбы нужно не просто нажать - а вывести фигуру, от точности прорисовки зависит урон, от скорости - скорость полёта. Снаряды сталкиваются с учётом инерции - есть выстрел специального типа, который не наносит урон, но создаёт очень тяжёлый снаряд, который утягивает с собой все остальные. И заморозка есть из интересного. Там ещё есть редактор карт отдельно программой, и настройки третьей программой. Я в это даже играл.
4 - ремейк 3, с какими-то трёхмерными эффектами, и в целом намного более хороший в плане кода.
Anonymous No.181964
16186125382750.mp4 (7231 KB, 1000x1080, 00:02:47)
16186125383001.mp4 (11851 KB, 1920x1080, 00:00:39)
1 - ремейк crimsonland, самый первый
2 - идея вот отсюда >>/it/794 - только код этих штук на луа был, и никакой перемотки не подразумевалось, только наблюдение в реальном времени.
Anonymous No.181967
16186127658020.webm (8086 KB, 1134x706, 00:00:18)
16186127658561.mp4 (5196 KB, 1920x1080, 00:00:24)
1 - попытка исполнить что-то вроде powder toy, не осилил
2 - третий ремейк crimsonland. Там очень замороченный и продвинутый код был (просто капец как, на самом деле - сейчас я бы не стал так запариваться), при пробитии нескольких юнитов в одном кадре столкновения сортировались, и пуля замедлялась в зависимости от моба, после чего всё это перерасчитывалось, чтобы импульс соответствовал урону.
Anonymous No.181969
16186132927330.mp4 (9802 KB, 1920x1080, 00:00:17)
16186132928171.mp4 (9993 KB, 1920x1080, 00:00:18)
16186132928752.webp (470 KB, 1585x923)
>>181967
1/2 - Ещё видео к ремейку, чтобы показать во что это превращалось.
Там потом ещё размножающиеся враги были, и всё в таком роде.

Был ещё один ремейк, уже с шейдерами (огнемёт и взрывы освещали землю с учётом нормалей), там были звуки, паучки были анимированные (и на земле след тоже оставляли, что очень круто смотрелось вместе с нормалями и освещением), карта была неограниченной, и код был супер-оптимизированным (на ноутбуке 2013 года с 3 гб памяти запускал на карту 4 миллиона юнитов - они под завязку забивали всю память, но работали при этом в 60 фпс (если на экране не все были - карточка такое естественно не вывезла бы) - просто сам факт, что пересечения пули-враги работало настолько круто).
Могу только текстуры показать. Капец обидно что оно сейчас не запускается - хотя все остальное запускаются.
Anonymous No.181973
16186139773800.mp4 (8277 KB, 1690x1080, 00:00:26)
16186139774161.png (1978 KB, 1494x798)
16186139774622.png (2194 KB, 1889x1028)
16186139775243.webp (219 KB, 1681x1077)
Самая древняя программа, 2011 год. на этой штуке учился программировать. Серьёзно, я когда начинал её делать - я не знал что такое циклы.
Была система чанков и бесконечный мир, трава приминалась когда по ней ходишь, на ветру она раскачивалась (при этом она не проваливалась под землю, а тёрлась по поверхности земли, что выглядело очень круто). Дождь тоже прижимал кусты вниз.
Ещё там же я придумал систему генерации погоды (погода была разная в разных частях мира), систему выносливости (когда двигаешься, у тебя отдельно расходуется запас креатинфосфата, запас кислорода, запас сил (гликогена) - что очень неплохо давала все ирл эффекты, что если ты прыгаешь десять минут и отдыхаешь после каждого прыжка - то помимо этого накапливается глобальная гликогеновая усталость), система запахов (которые разносились ветром и смывались дождём - игра вроде как про животных должна была быть) - и много другой шизы уровня, "я киррил - два года жду игру ..."
Энтузиазма мне хватало с головой - но компьютер у меня был мягко говоря так себе - в итоге приходилось вот как на видео делать что кусты в соседнем чанке изменяют форму не каждый кадр - а потом я окончательно убедился что как не выдрачивай код - то что я хочу сделать неосуществимо на моём компьютере, даже если закрыть глаза на то что у меня лапки и я код писать не умею.

2 - ещё трава
3 - редактор карт (угадайте что за линии освещения)
4 - звёзды и закат.

Прикольная штука была - я такое количество творчества и свободы самовыражения увидел в коде - что где-то в тот момент влюбился в кодинг.
Anonymous No.181974
16186141880470.mp4 (7004 KB, 900x700, 00:00:09)
16186141880721.mp4 (4598 KB, 1920x1080, 00:00:17)
С физикой я тогда тоже попробовал побаловаться - но у меня мозги скисли от кватернионов и каллбеков для соединений, и ничего лучше чем скопировать демку и скинуть один куб на другой я не смог - и забил в тот момент. К тому же времена были тёмные, английский я не знаю и документацию читать тем более не умею.

Что забавно - это физикс, в котором сейчас я даже демку не могу скомпилировать - не говоря уже про то, чтобы сделать из неё что-то.
Anonymous No.181975
>>181974
блин, ты крут, анон! желаю успехов в геймдеве.
Anonymous No.181976
16186151409530.jpg (30 KB, 499x261)
16186151409641.jpg (101 KB, 753x1000)
И вообще это всё очень грустно, прям супер-тоскливо.

Сейчас мне кажется что ничего из вышеуказанного не требует больше 2-4 вечеров разработки - я изучил кучу либ и направлений, два языка и гору математики - но по каким-то причинам количество "продукции" упало в десятки раз.

Почти все эти программы за 2011-2014 года, и это даже не одна десятая от общего количества - просто то что тёплые воспоминания вызывает запостил.
А за последние пять лет мне нечего показать - в папке лежит только рейтрейсинг света из прошлого треда, два кода с жидкостью (вот такой же как 3 тут: >>181956) и четыре недоделанных заготовки - с майнкрафтом (то что я якобы за 20 часов чистого времени должен был сделать - если не ошибаюсь прошло 22, и я делал не игру, а код общего назначения), с платформером (где мне динамика движения не понравилась), стратегия на питоне и вот сейчас новое...

Придушите меня, пожалуйста, мне очень плохо, я почти в отчаянии. От этого, и вообще по жизни.
Anonymous No.182137
>>181976
Атдахни, развейся, пачиль тупа.
Потом возвращайся в дроч. Так-то прикольная хуетень у тебя получается.
Anonymous No.183303
16194477725850.webp (434 KB, 1364x778)
Некрасивых артефактов как на фоне чёрного не будет - это лишь артефакт из-за отсутствия фона.

Не знаю как с хорошей производительностью вместе с дымом и пылью рисовать траву - технология рисовки дыма (и других прозрачных штук) почти взаимоисключающая с отрисовкой такой травы.
Eto No.183577
https://www.youtube.com/user/Romixalview/videos
Anonymous No.183595

[Назад] [Обновить тред] [Вверх] [Каталог] [ Автообновление ]
320 / 150 / 148

[Ответить в тред] Ответить в тред

15000

Ответ в тред No.120101
Настройки
Избранное
Топ тредов