Индустриворкс — майнкрафтоподобная песочница 645384 В конец треда | Веб
Индустриворкс — майнкрафтоподобная песочница с открытым миром.
Недавно я выпустил v0.3, как и обещал в субшоте, создаю тредблог тут.
Я его уже выпустил, но только в Early Access, тут разрабатывать и разрабатывать!

Страница в стиме: https://store.steampowered.com/app/1143340/Industriworks/

Что я собираюсь делать с этим проектом? Сейчас тут есть блоки и парочка мобов. Я же собирался сделать фабричность с заклинаниями и големами. Раньше я планировал добавить круглую железную дорогу, по которой будут ездить локомотивы с големами-MPвозами, но потом подумал, что это не нужно и сейчас я планирую добавить бельты.
Есть голем-майнер, голем-крафтер и голем-инсертер. Пока они работают некорректно, но в будущем планируется их исправление и создание большего кол-ва големов.
Голем-майнер будет добывать руду, возможно, подобно как это делают майнеры в дварф фортресс, только он ещё и таскать будет. Выглядит как обычный голем.
Голем-крафтер это куб с восемью ножками, которыми он перебирает над верстаком и создаёт вещи.
А голем-инсертер перекладывает эти вещи. Вдохновлялся я Факторио.
Как создаются големы? У игрока есть заклинания, но не все. Изначально ему доступны заклинания Жизнь и Разложение. С помощью Жизни он может оживлять големов, а с помощью Разложения превращать наковальни в бутилированную наковальню. Бутилированная наковальная выпивается, чтобы была возможность открыть новое заклинание — Реконфигурацию. Реконфигурация нужна для создания новых видов големов, ещё можно картошку в помидорки превращать.
В будущем планируется добавить ещё заклинания, что-то типа Исполнения, Поджога, Телепортации и всяких других. Конечно, для их открытия уже нужно будет пить не наковальни, а другие предметы. Это схоже с тем, как устроено в Факторио, только там предметы тратятся на исследования, а у меня на возможность создания заклинаний.
Заклинания покупаются за MP — Money Point. Это одновременно и мана, и деньги. Их можно получить убийством мобов или торговлей с гоблинами. Планирую добавить такую кривую развития, чтобы со временем игроку пришлось убивать гоблинов, но скрытно, а перед этим обучать в школах и всячески развивать. Штука такая, что чем развитие существо — тем у него больше MP, но если поработить такое существо, то оно пропадёт. Планирую добавить возможность порабощения всяких кабанов и оленей, с них можно будет легально получать мясо для торговли с гоблинами, но не MP.
Пока что големы работают за так, но в будущем они будут тратить MP своего владельца прямо из инвентаря, так что игроку придётся всё время торговать, чтобы его фабрика работала. Потребление MP можно будет сэкономить, если подвести к големами электричество — они станут потреблять в несколько раз меньше. Элекричество нужно будет и для электрических печей.
Планирую сделать 3 типа печей — твердотопливные (они уже есть), электрические и газовые, каждая подходит для своих задач. Например, электрические не могут нагреться выше некоторой температуры, а газовые потребляют газ.
Чтобы сделать электричество, придётся делать провода из меди и резины, а резину из нефти, на которую была наложена Реконфигурация, то есть она полимеризуется и это на самом деле не совсем резина получается, а пластмасса какая-то.
Но это потом и если интерес не пропадёт, сейчас я улучшаю контент и собираюсь добавить режим Building — аналог Creative из Майнкрафта.
Открытие заклинаний — не единственная цель в игре, может быть добавлю боссов всяких, которых надо будет бить ядерными бомбами, чтоб не бесились.

Последние 2 месяца я зачем-то переписывал старый код, в итоге добавил багов, вместо их исправления.
Проект пишу на C, но планирую перейти на C++, чтобы юзать темплейты, а то неудобно бойлерблейтить аппендинг итемов в "списки".
Используемые движки: SDL2, OpenAL, libccd. Использую OpenGL для отрисовки, из-за чего у меня прозрачности просматриваются сквозь чанки, а рисовать собственно их в 60 FPS можно только на топовых игровых компах. Может быть перейду на Ogre3D, но сначала его надо попробовать.

Вообще, у меня были большие планы на игру, что добавить, но они 2 раза уполовинились, а к выходу могут ещё разок.
HarmizVenZZZ 2 645385
тоесть ты хочешь сделать майнкрафт с модом индастриала?
чел, такое есть. Факторио - бог подобных игор, но оно 2д. Есть также миллион 3 д игор(и без квадратов)
Хуй знает чего ты хочешь добиться этим проектом, но если хочешь финансового успеха то выбрал ты хуевый вариант, бро
ща бы клеить клон майнкрафта, игры 2009 года в 2к20
15828130477061.png2,5 Мб, 2763x786
3 645387
4 645389
Говно какое то

>0 обзоров в Стиме


Лел
5 645390
>>645385
Возможно и так, но бельт уже запущен и мне легче развивать Индустриворкс, чем делать какую-то совершенно другую игру.

>финансового успеха


Очень субъективная величина, тут всё зависит от маркетинга, а вообще, и сейчас появляются в стиме майнкрафтоклоны с 40000+ положительных отзывов.
6 645411
>>645385
Щас бы опираться на манятренды
out.mp410,5 Мб, mp4,
1200x800, 0:18
7 645416
Может быть сейчас игра и неиграбельна, но она всё-таки в Early Access. Мне надо, главное, добавить геймплея, фабрики, оптимизаций, исправить баги.
Скоро улучшу accessibility и добавлю ачивок. Кроме того, у меня были проблемы с потоками для виндовс-билда, но недавно я узнал, как установить gdb64 на виндовс, так что и тут может не возникнуть проблем.
Кроме того, это моя первая игра в стиме я совершенно не знал, сколько она может принести. Мои ожидания были завышены в 50 раз и как бы я узнал об этом, не выпустив её? А вдруг они были бы завышены в 400 раз? И тогда бы я зря её 8 месяцев делал?
8 645422
Главное чтобы тебе нравилось, ОП.
А хейтеров шли лесом.
HarmizVenZZZ 9 645459
>>645422 одно дело когда чела хейтят в говно, тут же видно что у чела есть потенциал(как минимум творческий), который можно было бы развивать в крутых проектах, через которые он выстроил бы себе имя. А там и сам бы компанию создал или зазвали бы куда нить.
Пэчально на такое смотреть
Вот к примеру я - 19 лет, денях нет. Прожег 11 лет в шкалке, после год охуевал от жизни нахуй я родился почему вокруг дэбылы. не душили бы дома то ваще бы с 8 класса ушел и чето пилить пытался, а с нашей системой образования это куда продуктивнее . Потом год охуевал пытаясь сделать проект. Я столько раз матом крыл етот мир(зато хотя бы развился). Сейчас же я понимаю что проект сложный для меня(я делаю необычную ртс а для такого больше 5и извилин должно быть, увы), и проживая ето печально когда люди собираются делать хуету аля клон миникруфта в 2020 или еще хуже.
Ну все равно и нельзя отрицать фактор личностного роста. После как закроет этот проект, ОП смогет додуматься изучать рынок и анализировать затраты( тк с етого проекта копеечка будет, то профитнее ебашить команду) и сделает уже чето интересное, тк опыт будет. Только так можно поднимать геймдев в рашке, русские туда сюда вперед все дела
10 645479
>>645459

> тк с етого проекта копеечка будет, то профитнее ебашить команд


Скорее всего, он даже 1/10 зарплаты дворника разбитую на весь срок разработки не отобьёт

>Ну все равно и нельзя отрицать фактор личностного роста.


Скорее аутистичный рост. ОП занимается проектом, который может быть интересен только ему, при этом костылит без движка. Это годное хобби, я не спорю, на уровне моддинга движка 3 квейка. Но оно не принесёт ему ни полезных связей, ни денег, ни откроет двери в мир реального геймдева.
11 645482
>>645459
>>645479
Тут недавно один всратый клон майна уже в тысячу копий продался, ну да, ну да, не актуально
12 645484
>>645482

>уже в тысячу копий продал


Название давай. А лучше ссылку в стиме
13 645510
Список фич для перехода на v0.4:
0. Обратное введение ачивментов.
1. HP, combat.
2. Выгрузка чанков.
3. Поворот alListener3f.
4. Режим Building.
5. Логтитуда блоков.
6. Кирпичи(каменные).
7. Двери.
8. hare.
9. Облака.
10. Дальний chunkgen.
11. Крафтовых вещей вид.
12. Исправить физику.
13. Впитывание воды землёй.
14. Unfocus окна вернуть.
15. Рецепты големов.
16. Сжатие данных.
17. Дроп с мобов.
18. Генерация поселений гоблинов.
19. Факел на стенах.
20. Удаление миров вернуть.
21. Картинка в меню.
И тогда можно будет добавлять бельты и улучшенных големов, новые заклинания и геймплей появится.
Это можно сделать за 6 дней, но я буду месяц делать. Я параллельно делаю ещё одну игру, но она простенькая.
Главное — выпустить Индустриворкс до начала лета, потому что я планирую потом бросить геймдев. Ну может ещё 1-2 игры сделать, тогда в Августе брошу.
14 645522
>>645384 (OP)

> Используемые движки: SDL2, OpenAL, libccd. Использую OpenGL для отрисовки


рендер только под десктопы пишешь или с мобилками?
15 645545
>>645522
Только под десктопы, и то, получается не качественно. Надо бы попробовать Ogre3D с генерируемыми мешами (у меня такими будут чанки и части мобов) и он, вроде бы, умеет в мобилки.
Вообще я пока не планирую портировать под андроид, потому что там каждый может посмотреть адрес компании/индивидуала внизу страницы с игрой, так что мне желательно сначала купить новый адрес.

>>645484
Я нашёл только такое https://store.steampowered.com/app/1072420/DRAGON_QUEST_BUILDERS_2/, но, кажется, видел ещё с 40000+ положительных отзывов, там в трейлере я приметил штук 8 столбов с каменными человеческими фигурами.
Хоть я и привёл это, но он сделан с уже готовой франшизы и, видимо, настоящей маркетинговой компанией, так что можно поделить в 100 раз для моего случая. Но я уверен, что и Индустриворкс имеет потенциал собрать 1000+ положительных отзывов, главное это ввести геймплей и делать маркетинг.

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

>>645479

>без движка


Можешь назвать какой-нибудь движок, который при этом не конструктор игр, то есть подключается программно в код?
Я пробовал годот, но это прежде всего конструктор или редактор .tscn годот-сцен и нод, который уже имеет в себе движки. А самое главное, что он слишком ООП для меня, я просто не понимаю как устроены все эти объекты. Мне привычнее работать с функциями и структурами. Другие конструкторы игр я не собираюсь пробовать просто, потому что они слишком проприетарные.
Что действительно плохо в моём программировании, так это то, что я использую Си, а в нём нет темплейтов, из-за чего нельзя делать полиморфизм. Я бы уже давно мог программировать на C++, если бы не детская травма. Из-за чего только вот-вот начну переходить на него.
16 645547
>>645545
если плюсы и свободная лицензия, то можешь еще urho3d посмотреть, как раз майнкрафтоподобное что-то на нем будет удобно
17 645551
>>645545

>что и Индустриворкс имеет потенциал собрать 1000+ положительных отзывов


У тебя очень крепкий манямир, чувак.

>Но это гораздо лучше, чем работать грузчиком, да и есть некоторый интерес


Ты веб-макакой в дс-1 можешь за 60к джуном устроиться.. тыж программист
18 645579
>>645547
Выглядит сомнительно, думаю, мне хватит и Ogre3D+libccd+другиедвижки для моих игр, но если нет, то взял на заметку.

>>645551

>крепкий манямир


У родоначальника фактори-геймов Факторио более 50000 офигительных отзывов, у Satisfactory продаж более полумиллиона, в переводе на стимовский ревью это около 10000 отзывов хотя они купили игроков графикой, чего я не умею. Вообще не очень понимаю, чем satisfactory привлекла столько народу, хотя и в факторио меня хватило на 1.5 раза. Кроме того, я только недавно узнал, что до сих пор есть много тех, кто предпочитают именно реалистичную графику, не воспринимая как игры игры с пиксельной графикой или в низкополигональном стиле. Думал это мем из начала десятых, но потом я увидел видео от ютубера Marmok, где он снял майнкрафт и он сказал, что не хотел и смотреть на эту игру "из-за графики". Меня просто перемкнуло, в майнкрафте же прекрасная графика, частицы всякие, эффекты, мягкое освещение, а отдельно можно и шейдеров наставить. И у этого человека больше подписчиков, чем, например, у Куплинова. Конечно, я совершенно не уверен, что моя игра наберёт столько отзывов, ещё и положительных (но учитывая, что я почти не видел игр с mixed и большим кол-вом ревью, это должно быть около 1333 ревью), но потенциал есть.
Свою аудиторию я могу купить майнкрафто-подобным стилем, но, пожалуй, главное, это геймплей, надо, чтоб игрок хотел играть, а он не хочет, потому что игра сырая. Может быть старт и был плохим, но он мне нужен был, чтобы получить важные эмпирические знания насчёт геймдева и выпуска игр в стиме. У меня есть релиз впереди.
У меня есть ещё очень большая проблема со звуками, мне очень сложно их делать, в т. ч. и музыку. Вон андертейл выстрелил в частности благодаря маркетингу музыке, думаю, это самое важное, что в нём есть. И это когда графика там так себе.
19 645580
>>645579

> Выглядит сомнительно


да сомнительного ничего нет, вполне себе хороший двиг, даже комьюнити какое-никакое русскоязычное есть
20 645583
>>645579
Ладно, переубеждать тебя не буду
21 645604
>>645583
Зачем его переубеждать, если он делает нормальную игру.
daleko.mp44,6 Мб, mp4,
1200x800, 0:13
22 645660
Далеко забрался, но не так далеко, как было бы в полноценной игре. Это видео может у вас вызвать хоть немного позитивных чувств?
Скоро выпущу v0.3.1. Я добавил 3 фичи, но они и так были в прошлой v0.2.2, просто при переписывании я их не портировал, а перевести на v0.3 надо было поскорее, чтобы через месяц можно было запустить распродажу, не хотелось повышать цену не выпустив новую версию после такого срока.
23 645686
>>645660
Манякрафт тема избитая децл, вон лучше посмотри на CubeWorld, на волне очередного обсера автора можно захайпиться и высрать клон, тебе даже переделывать много не придется.
halk.png729 Кб, 1200x800
24 645753
Industriworks v0.3.1 is released!
Новость есть тут: https://steamcommunity.com/app/1143340/allnews/
Добавил 3 фичи: Ачивменты, анфокус окна (если фокус пропадёт с окна, то выпадет esc-menu и курсор не залочится на одном месте), удаление миров. На самом деле это было легко, так как все эти фичи были ещё в версии v0.2.2.
Но главное, я добавил стимовские ачивки.
Теперь вы сможете выбить их все, подойти к любой девушке на улице, показать свой стим-профиль с ачивками Industriworks и она вами может заинтересоваться.
25 645764
>>645753

>https://steamcommunity.com/app/1143340


>154 pуб.


Ты чё - охуел?
26 645769
>>645764
Скоро появится Building режим и будет как минимум building геймплей со строительством домиков.
27 645770
>>645764
Заслуженные 0 покупок
28 645772
>>645686
тема не избитая, просто почти все используют ее в одном ключе, но не самом логичном

тогда бы уж просто предложил взять ядро minetest и запилить свою игру, да продавать
29 645779
>>645770
Между прочим, Индустриворкс купили более 50 человек, как раз приблизительно соответсвует кол-во ревью*50.
30 645781
>>645779
Пруфани, что купили. Желательно ещё кол-во ключей сгенерированных скинь
31 645910
>>645781
Извини, но там есть что-то про конфиденциальную информацию и что ты должен иметь нон дисклосур договор или лицензию, в общем я не могу купить валв и выписать себе нотариально заверенную справку, что Индустрий Воркс ибн МакСон действительно продал свою игру Индустриворк на 50+ копий.

Правда есть загвоздочка в том, что они купили столько, когда она стоила $1.99 и больше половины при -75% на зимней распродаже.

>кол-во ключей сгенерированных скинь


Не понял как это поможет пруфанию.

Кстати, заметил как вы лайкаете новости, спасибо, это мне полезно. Маркетинг на этой борде помогает, а когда выпущу версию с Building-режимом, надо будет попробовать и реддит.
32 645957
>>645910
Ты успешен.
33 645960
>>645910
Ты не понимаешь правила EA игр. Игроков надо завлечь какой-то годной механикой и идеей, полутать с лохов бабло, а потом съебать в закат. Ты бы лучше в сторону мцльтиплеера и выживача думал.
out.mp419,2 Мб, mp4,
1200x800, 0:53
34 646055
Добавляю кубический блокин8г в билдинг-режим. Это, конечно же, будет подсвечиваться.

>>645960
У меня так не получается, я даже смог цену повысить только, когда выпустил v0.3, раньше совесть не позволяла а выпустить недоделанную позволила.

>мультиплеер


Да, это явно хорошая механика, так как люди нуждаются в социальном общении. Но даже если и будет мультиплеер, то какими механиками их удерживать? Ну позовёт Андрей из 7-го класса поиграть своего друга на полчаса в другой майнкрафт и бросят. Надо сначала удерживать людей в сингле.

>выживача


Ну это точно нет, моя игра не про выживание. Сейчас в ней даже ХП нет.
Да и разве выживалки имеют такой большой спрос?
35 646126
>>645459

>творческий потенциал


>копирует чужую идею 1 в 1

36 646127
Люблю друзы. А вы?

>>646126
Тебе бы показать мою первую игру, так ты назовёшь её клоном 1 в 1 Марио.
37 646129
>>646127
супер волшебные путешественники, ты?
out.mp45,9 Мб, mp4,
1200x800, 0:43
38 646319
Вот так выглядит разлив воды.

>>646129
Я такое не создавал.
39 646324
>>646319
Вода - кал, будет создавать миллионы ненужных сложностей при расчётах, да и выглядит так себе
40 646364
>>646324
Как сделать воду красивее? кроме того, что починить сортировку полигонов
Неужели стоит отказаться от такой воды и сделать её майнкрафтоподобной?
41 646387
>>646364
Ну не отказывайся, только потом не жалуйся на то, что игра пукает и пердит на 1080ти
42 646603
Тут изображён прототип ветряного шейдера, который я делал когда-то: https://www.youtube.com/watch?v=PyoBtZ6cvjA
Он ужасен, я его не вводил и не буду вводить, потому что один человек мне скидывал код для более реалистичного ветера, только для своих вертексов и мне ещё только предстоит адаптировать, если я буду это делать.

>>646387
оптимизации
out.mp4841 Кб, mp4,
1280x720, 0:48
43 646705
Собираюсь добавить новую музычку в Ивс.
Как вам?
Это в любом случае лучше прошлой
44 646733
>>646705
музыка, которую заслужил гд
45 646758
>>645385

>ща бы клеить клон майнкрафта, игры 2009 года в 2к20


там вон Hytale клепают. финансируются риотами. уже пару лямов на разработку слили. в 2020 году. да
46 646864
Эй, а если добавить поддержку китайских языков, но переводить в гугл-переводчике, то китайцы не сильно расстроятся? Всё-таки у меня в игре нет диалогов, а только небольшие инструкции в достижениях.
47 646871
>>646864
ктрл+Ц из майнкрафта, лол. остальное переводчиком, да.
48 646876
>>646871
Гугл-транслейтер, кстати, плохо справляется. То он слово голем не мог перевести, пришлось идти в википедию и копировать оттуда и вставлять в поле переводчика, то артикль a заменял на иероглиф, обозначающий один, когда смысл немного другой, потом вообще началось безобразие с golem-crafter. Он не смог перевести crafter, так что я написал maker, а в другом предмете он предложел craftsmen.
49 647558
>>646387
сейчас бы серверные расчеты на видюхах проводить.. ой-вей..
50 648527
Думаю, выпущу новую версию с Bulding-режимом ближе к первому Апреля, там как раз станут скидочки доступны, а заодно recently updated роллов наверну.
Но что я сделал зря, так это повысил цену до шести долларов. Серьёзно, лушче бы я так не делал. До трёх или, максимум, четырёх долларов было бы нормально. Думаю, выставлять игре большую цену начиная с пяти долларов стоит только в случае успеха, если игроки действительно оценят и, хотя бы 10-20 положительных отзывов будет. А то с такой приток игроков будет мал. Сейчас я изменить не могу, иначе сбросится таймер скидок.
fff.jpg294 Кб, 1244x1776
51 651115
Лол, месяц назад меня пытались развести на ключи Ивса.
Это была "итальянская" компания с сервером зарегестрированным в российской федерации и неграмотным написание текста в контракте.
Как только я попросил в контракте указать их юридический адрес, они слились.
Впрочем, я был бы даже не сильно против, если бы мне не заплатили, так как учитывая нынешнюю ситуацию, игра просто была бы распиарена, так как они толкают ключи другим сайтам. Но на самом деле я, вероятно, и сам могу предложить этим сайтам ключи, но не умею.
Раз они мошенники, то выложу скриншот "контракта".
Был ещё тред на реддите: https://www.reddit.com/r/gamedev/comments/f4n1pi/is_indiekeybundlexyz_a_good_company_to_work_with/
52 651447
>>646758
Там и графон, и физика соответствующая.
И насколько я знаю, CraftStudio и движок для Hytale делал один и тот же человек.
bca.png820 Кб, 1200x800
53 651458
Индустриворкс через ортогональную проекцию.

Завтра или послезавтра собираюсь выпустить новую версию с Building-режимом.

Я так и не понял как исправить проблемы с тестом глубины для блоков в слотах.
Думаю, скоро будет пора вводить геймплей вместо удобства. То есть, начну добавлять фактори-элементы: бельты, улучшу големов-инсертеров, электричество, генерацию руд. Потому что, если будет геймплей, то могут появиться фанаты, а они смогут заниматься пиаром вместо меня и бесплатно.
54 651459
Оп, greedy meshing используешь?
Можешь рассказать как работает алгоритм?
55 651557
>>651459
Нет, не использую, так как ряд текстур, таких как мрамора, гранита, кварцита, габбро имеет размеры больше блока и в самом блоке записано смещение для текстуры, чтобы текстура не повторялась каждый блок.
Конечно, можно было бы сделать для блоков типа травы, у которых каждая сторона одинакова, но зачем? Я всё-равно собираюсь добавить верчение вокруг оси блоков травы при генерации, так что и это будет бесполезно.
56 651560
А нахуя очередной клон майнкрафта, когда есть майнкрафт
abl.png223 Кб, 1200x800
57 651573
Пока делал локализацию на дойч, заметил кучу (2ве) ошибок в английской локализации. Во-первых, cobblestone пишется через 'o', а не 'a'. Во-вторых, я почему-то был уверен и мне казалось, что я проверял, что Берёза пишется как Birtch. Но, внезапно, она пишется как Birch. Ощущение, будто я в немного другой мир пропал, эффект Манделлы.

>>651560
Это не клон майнкрафта.
bashn.png341 Кб, 1200x800
58 651872
Сделал обновление Industriworks v0.3.2. Новость может быть найдена тут:
https://steamcommunity.com/app/1143340/allnews/

Видео тут:
https://www.youtube.com/watch?v=MWLr6q06NAI
59 651903
ОП, покажи сетку чанка.
Вопрошает анон с вопросом про greedy-мешинг.
60 651962
>>651903
Я такой мозгово немощный, что даже не решился рисовать сетки чанков и блоков даже для дебаггинга, всё в воображении рисую.
И сейчас мне будет проблематично сделать это.
А тебе зачем? У меня там просто чанки 16x16x16 блоков и координаты центральных чанков (на которых спавнится игрок) находятся где-то на 2^34, потому что если в ноль ставить, там в минусах будут ненужные смещения и я не захотел разбираться с этим. Каждый раз специальную функцию вызывать, которая при X[0,∞) будет возвращать floor(X), а при X(-∞,0) возвращать floor(X) - 1.
sage 61 652007
>>651872
Ты ахуел 160 рублей за это говно брать?
62 652050
>>652007
Не понимаю о чём ты говоришь. Видео, например, бесплатно, качай с ютуба.
Раз уж ты заговорил за цены, то Индустриворкс, например, действительно имеет очень завышенную цену. Но я месяц не мог поменять её на меньшую, так как тогда сбросится таймер, чтобы можно было скидку вставить. Теперь я её поставил и завтра будет -85%, а после этого я собираюсь поставить цену $3. Действительно, это моя ошибка и играм следует повышать цену только, в случае их популярности. Дальнейшей (в случае Еарли акцесс) или вишлистовой (в случае, если игра изначально успешна по вишлистам).
63 652061
>>652050
Я бы купил за 50-90 рублей
64 652250
Теперь доступна скидочка на https://store.steampowered.com/app/1143340/Industriworks/

>>652061
При цене в $2.99 это как раз будет где-то 80 рублей, так как стим для россиян режет цену в 3 раза, если не указать свою собственную расценку.
pumpkinberg.png925 Кб, 1200x800
65 652251
Кстати, я подумал и решил всё-таки, что Индустриворкс и Early Access всё-таки не был ошибкой. Он всё ещё имеет потенциал заработать 1000+ отзывов в стиме, а это более 50000 долларов США. Мне, пожалуй, надо начинать вводить геймплей и сколачивать комьнити.
Вот Chessmates (моя вторая игра в стиме) просто не способна заработать много отзывов, я не уверен, что она окупится вообще. А если бы я решил делать не сложную игру как Industriworks, а новую игру каждый раз, то это было бы очень сложно и малодоходно. Ведь, чтобы сделать новую игру, нужно делать новый набор ассетов и механик, а для Индустриворкс достаточно добавлять уже новые.
66 652501
>>652251
Как ты реализовываешь удаление добавление кубов?
Через лучи?
Можешь подробнее описать алгоритм?
Есть какой-то туториал, где это описано?

Вот у нас хранятся воксели, допустим, в массиве. Мы отрисосываем меш. Как теперь сделать добавление/изменение вокселя в массиве, если мы "ходим" и контактируем только с мешем?
67 652529
>>652501
У моба есть углы поворота yaw, pitch и roll, которые используется при его отрисовки или, если через моба смотрим (игрок), поворот мира (glRotatef).
Я беру yaw и pitch (у меня нет поворота камеры по roll) и через тригонометрию нахожу вектор, куда он смотрит. Далее я беру координату, где находятся глаза игрока и итеративно раз 80 (чем больше, тем точнее или больше расстояние) добавляю полученный вектор, умноженный на коэффициент, сдвигая точку. Далее проверяю, в каком блоке находится точка и какие ноды (предмет блока, жидкость блока, inner (руда) блока) прикреплены к этому блоку и в зависимости от них в структуру таргета выставляю указатели на блоки. То есть, если точка попала в жидкость, то устанавливается таргет на флюидблок, но не на сетблок, так как поставить можно и дальше.
Чанки у меня находятся в списке указателей на них и при этом есть оптимизированная структура, там что-то типа деревьев и поиск ускорен. У меня есть функция ChunkByCoord и BlockByCoord. BlockByCoord использует ChunkByBlock, чтобы найти чанк с нужными координатами, а потом вернуть указатель на нужный блок из массива. Чанк содержит массив блоков 16x16x16.
Когда происходит изменение чанка (установка, разрушение блоков), выставляется флаг, что чанк изменён + надо перерисовать. В следующем фрейме при перерисовке освобождается память, в которой хранятся вертексы чанка и генерируются новые. При разрушении блока, находится указатель на него и ноды (структуры предметов), прикреплённые к нему, становятся NULL и при генерации дравдаты алгоритм понимает, что там нет блока (по крайней мере предмета, ведь у меня в одном блоке может быть и предмет (гранит, трава) и жидкость, и inner (руда лимонита)).

Кстати, когда я узнал, что некоторые (или почти все) игры ориентируются delta, что обозначает сколько времени прошло с прошлого фрейма, а не на строгий тикрейт, меня это привело в ужас. Я и не знал, что люди так делают. У меня тикрейт (но называется тактрейт), который равен 60 TPS (takt per second).
68 652736
>>652529

>takt


Нет такого слова, есть tact:

>2. (music) The stroke in beating time. https://en.wiktionary.org/wiki/tact


Но в данном случае нужно использовать tick:

>3. (computing) A jiffy (unit of time defined by basic timer frequency). https://en.wiktionary.org/wiki/tick


>(единица времени, определяемая основной частотой таймера)



>когда я узнал, что некоторые (или почти все) игры ориентируются delta, что обозначает сколько времени прошло с прошлого фрейма, а не на строгий тикрейт, меня это привело в ужас


А вот если бы у тебя был старый компьютер или твоя игра потребляла слишком много ресурсов, ты бы в полной мере прочувствовал всю необходимость учитывать delta и даже сам бы выдумал что-то похожее. Проблема всех игровых программ в том, что они опираются на очень непостоянные данные, и поэтому невозможно гарантировать, какую работу должен будет проделать компьютер в следующий тик таймера. Даже если прибить таймер гвоздями к 60 герцам (что в корне неверно, у меня вот 75 Гц монитор и все адекватные игры стараются выдать 75 FPS), и даже если отбросить старые машины (которые не смогут обеспечить 60 FPS), то даже на мощных компьютерах будут случатся моменты, в которых компьютер перегружен работой - из-за ситуаций в твоей игре или от фоновых процессов системы. Поскольку твоя программа не следит за системным временем, она не сможет почувствовать этот момент перегрузки, и нарисует всё те же 60 кадров - вот только не за 1 секунду, а дольше, из-за чего действие на экране ощутимо замедлится. На слабых ПК такой эффект будет постоянно. А если ты захочешь поднять частоту кадров (чтобы поддерживать мониторы на 75, 120, 144 Гц), то тебе придётся перелопачивать весь код, связанный со временем и движениями - потому что сейчас ты опираешься на вымышленное время, а должен опираться на настоящее. Грубо говоря, сейчас ты пытаешься во что бы то ни стало нарисовать 60 кадров, даже если не успеваешь вовремя, а должен иметь возможность пропускать те кадры, на которые у тебя не хватает времени - ты же не фильм рендеришь, а игровой процесс в реальном времени.

>поворот мира (glRotatef)


Работа с матрицами в OpenGL устарела и сохраняется для совместимости. Рекомендуется для всех новых программ реализовывать собственную работу с матрицами (или отдельную библиотеку для работы с матрицами, но вручную написать нетрудно), даже если ты по-прежнему используешь OpenGL 1.1. Лучше один вызов glLoadMatrixf(Matrix), чем десятки glRotatef()/glTranslatef().

>>651962

>И сейчас мне будет проблематично сделать это.


Замени GL_TRIANGLES на GL_LINES или что-то в этом роде. Чтобы отрисовать сетку, достаточно отключить заливку полигонов.

>А тебе зачем?


Я думаю, он хочет посмотреть, рисуются ли у тебя все кубы (включая невидимые), только внешние стороны кубов (контактирующие с воздухом/пустотой), или ты склеиваешь квадраты в прямоугольники. Когда речь идёт о воксельном мире, от выбранного метода отрисовки вокселей/кубов сильно зависит производительность игры. Почему-то мне кажется, что ты рисуешь вообще все кубы по отдельности)
68 652736
>>652529

>takt


Нет такого слова, есть tact:

>2. (music) The stroke in beating time. https://en.wiktionary.org/wiki/tact


Но в данном случае нужно использовать tick:

>3. (computing) A jiffy (unit of time defined by basic timer frequency). https://en.wiktionary.org/wiki/tick


>(единица времени, определяемая основной частотой таймера)



>когда я узнал, что некоторые (или почти все) игры ориентируются delta, что обозначает сколько времени прошло с прошлого фрейма, а не на строгий тикрейт, меня это привело в ужас


А вот если бы у тебя был старый компьютер или твоя игра потребляла слишком много ресурсов, ты бы в полной мере прочувствовал всю необходимость учитывать delta и даже сам бы выдумал что-то похожее. Проблема всех игровых программ в том, что они опираются на очень непостоянные данные, и поэтому невозможно гарантировать, какую работу должен будет проделать компьютер в следующий тик таймера. Даже если прибить таймер гвоздями к 60 герцам (что в корне неверно, у меня вот 75 Гц монитор и все адекватные игры стараются выдать 75 FPS), и даже если отбросить старые машины (которые не смогут обеспечить 60 FPS), то даже на мощных компьютерах будут случатся моменты, в которых компьютер перегружен работой - из-за ситуаций в твоей игре или от фоновых процессов системы. Поскольку твоя программа не следит за системным временем, она не сможет почувствовать этот момент перегрузки, и нарисует всё те же 60 кадров - вот только не за 1 секунду, а дольше, из-за чего действие на экране ощутимо замедлится. На слабых ПК такой эффект будет постоянно. А если ты захочешь поднять частоту кадров (чтобы поддерживать мониторы на 75, 120, 144 Гц), то тебе придётся перелопачивать весь код, связанный со временем и движениями - потому что сейчас ты опираешься на вымышленное время, а должен опираться на настоящее. Грубо говоря, сейчас ты пытаешься во что бы то ни стало нарисовать 60 кадров, даже если не успеваешь вовремя, а должен иметь возможность пропускать те кадры, на которые у тебя не хватает времени - ты же не фильм рендеришь, а игровой процесс в реальном времени.

>поворот мира (glRotatef)


Работа с матрицами в OpenGL устарела и сохраняется для совместимости. Рекомендуется для всех новых программ реализовывать собственную работу с матрицами (или отдельную библиотеку для работы с матрицами, но вручную написать нетрудно), даже если ты по-прежнему используешь OpenGL 1.1. Лучше один вызов glLoadMatrixf(Matrix), чем десятки glRotatef()/glTranslatef().

>>651962

>И сейчас мне будет проблематично сделать это.


Замени GL_TRIANGLES на GL_LINES или что-то в этом роде. Чтобы отрисовать сетку, достаточно отключить заливку полигонов.

>А тебе зачем?


Я думаю, он хочет посмотреть, рисуются ли у тебя все кубы (включая невидимые), только внешние стороны кубов (контактирующие с воздухом/пустотой), или ты склеиваешь квадраты в прямоугольники. Когда речь идёт о воксельном мире, от выбранного метода отрисовки вокселей/кубов сильно зависит производительность игры. Почему-то мне кажется, что ты рисуешь вообще все кубы по отдельности)
shamccaa.png754 Кб, 1200x800
69 652744
>>652736
У меня FPS не жёстко ограничен. Я сделал 60 TPS (раньше было 30), чтобы в случае до 60 FPS анимации и движения мобов шли покадрово, потому что у меня обработка анимаций и движения идёт в каждом фрейме обработки мира. Хотя если подумать, то логичнее было бы вызывать функцию анимации каждый фрейм отрисовки и пересылать что-то типа номера последней секунды + floatский delta, но на самом деле у меня нет обработки анимаций отдельными коллбеками и они обрабатываются в коллбеке behavior моба. Фигово, да. Может когда-нибудь и исправлю.
Что насчёт сброса кадров, то у меня отдельная функция как раз и следит за системным временем и старается N раз в секунду вызвать свой коллбек (для отрисовки или для процессирования мира), а если не получается, то дропаются кадры. Таким образом, только если функция process не успевает за временем, время в игре медленнее времени в реальности, а если функция отрисовки, то просто не отрисуется часть кадров.
Кроме того, в функции отрисовки+обработки нажатий учитывается насколько игрок повернул камеру и это тут же изменяется. То есть при 144 FPS не будет фризов при повороте камеры, а только при движении.

>glLoadMatrixf(Matrix), чем десятки glRotatef()/glTranslatef()


glLoadMatrixf не знал так как не учил OpenGL, теперь учту. Но у меня же в любом случае один glLoadMatrix заменит только 3-4 вызова glTranslatef и glRotatef, ведь матрица разная для каждого меша, будь то чанк или параллелипипед-кусок моба.
Я как раз начал писать свой графический движок, абстрагируемый от способа отрисовки, будь то OpenGL, Vulkan или софтрендер, но при этом без стандартизации того, что должно быть на выходе. То есть на опенгле может нарисоваться мрачнее, чем на вулкане. Раньше я хотел написать просто свой софтрендер+графический движок с детерменированным оутпутом, но потом понял а зачем, если можно оутпут и интерфейс на разные уровни абстракции поместить.

>Замени GL_TRIANGLES на GL_LINES


Заменил на GL_LINE_STRIP. Получилось неочент.

У меня отбрасываются все плоскости между непрозрачными блоками.
shamccaa.png754 Кб, 1200x800
69 652744
>>652736
У меня FPS не жёстко ограничен. Я сделал 60 TPS (раньше было 30), чтобы в случае до 60 FPS анимации и движения мобов шли покадрово, потому что у меня обработка анимаций и движения идёт в каждом фрейме обработки мира. Хотя если подумать, то логичнее было бы вызывать функцию анимации каждый фрейм отрисовки и пересылать что-то типа номера последней секунды + floatский delta, но на самом деле у меня нет обработки анимаций отдельными коллбеками и они обрабатываются в коллбеке behavior моба. Фигово, да. Может когда-нибудь и исправлю.
Что насчёт сброса кадров, то у меня отдельная функция как раз и следит за системным временем и старается N раз в секунду вызвать свой коллбек (для отрисовки или для процессирования мира), а если не получается, то дропаются кадры. Таким образом, только если функция process не успевает за временем, время в игре медленнее времени в реальности, а если функция отрисовки, то просто не отрисуется часть кадров.
Кроме того, в функции отрисовки+обработки нажатий учитывается насколько игрок повернул камеру и это тут же изменяется. То есть при 144 FPS не будет фризов при повороте камеры, а только при движении.

>glLoadMatrixf(Matrix), чем десятки glRotatef()/glTranslatef()


glLoadMatrixf не знал так как не учил OpenGL, теперь учту. Но у меня же в любом случае один glLoadMatrix заменит только 3-4 вызова glTranslatef и glRotatef, ведь матрица разная для каждого меша, будь то чанк или параллелипипед-кусок моба.
Я как раз начал писать свой графический движок, абстрагируемый от способа отрисовки, будь то OpenGL, Vulkan или софтрендер, но при этом без стандартизации того, что должно быть на выходе. То есть на опенгле может нарисоваться мрачнее, чем на вулкане. Раньше я хотел написать просто свой софтрендер+графический движок с детерменированным оутпутом, но потом понял а зачем, если можно оутпут и интерфейс на разные уровни абстракции поместить.

>Замени GL_TRIANGLES на GL_LINES


Заменил на GL_LINE_STRIP. Получилось неочент.

У меня отбрасываются все плоскости между непрозрачными блоками.
70 652749
>>652744
Что-то я ничего не понял на счёт TPS, FPS и т.д.
Как это обычно делается через дельту времени:
- в начале цикла отрисовки берём дельту предыдущего кадра;
- передаём дельту в запрос отрисовки/обсчёта физики объектов;
- все вычисления позиции/скорости/угла умножаем на дельту;
- в конце сохраняем в дельту, сколько времени занял кадр.
Для примера, вот нам нужно переместить кубик по оси X на 1 метр за 4 секунды.
Если у нас фиксированная частота кадров, мы можем подобрать скорость вручную:
cube.translation.x += 1 / (4 60); // делим расстояние на число кадров, за которое хотим преодолеть
Что равнозначно константе:
cube.translation.x += 0.004167;
Итого у нас будет чуть больше 4 миллиметров за кадр, 25 сантиметров в секунду при 60 кадрах.
Но если у нас просадка до 48 кадров в секунду, кубик сместится на 1 метр за (4
60) / 48 = 5 секунд.
Мы можем исправить это, если будем использовать дельту, то есть время 1 кадра в секундах:
cube.translation.x += 1 / (4 (1 / delta)); // аналогично предыдущей формуле
Упрощаем (переворачиваем дробь):
cube.translation.x += 1
delta / 4;
Если дельта = 0.01667, то частота кадров = 60, кубик смещается на 4.17 миллиметра в этом кадре.
Если дельта = 0.02083, то частота кадров = 48, кубик смещается на 5.21 миллиметра в этом кадре.
Суть в том, что вне зависимости от колебаний частоты, кубик сместится на метр за 4 секунды.
Скажем, если у нас частота упадёт до 1 кадра в 2 секунды, то кубик сместится на полметра за кадр.
Со стороны игрока кубик будет иметь одинаковую скорость, и именно такая точность требуется от игр.
изображение.png4 Кб, 449x83
71 652752
>>652749
Уууууу, как же бесит маркдаун, вот картинкой.
72 652757
>>652749
Как там в 99 году? Так уже давно никто не делает. Следующий кадр никогда не будет рендериться столько же сколько предыдущий, отсюда будут микрокосяки в физике. Либо лочить частоту и пусть лагает при посадке, либо использовать какие-нибудь методы предсказания времени рендеринга следующего кадра - например, в зависимости от объема заполнения z-буфера и количеству обращений к видеопамяти.
73 652758
>>652749
С таким подходом я не удивлюсь, что в некоторых играх шарики заезжают за коллайдер.
Я делаю клон факторио, а не майнкрафта, поэтому очень важна детерменированность мира. У меня игра идёт в двух отдельных потоках (их становится больше при генерации мира, но это для параллелизма или чтобы убрать некоторые фризы).
Один обрабатывает поведение мира — перемещает мобов, позволяет им ломать и ставить блоки, крафтинг удаляет и устанавливает содержимое слотов.
Второй даёт игроку ввод-вывод. Ввод это нажатие клавиш и мыши, а вывод это картинка на экране. И вывод почти полностью зависит от состояния мира.
Если я начну в обработке мира процесс крафтинга, движение мобов и бельтов (в будущем) умножать на дельту, то мир перестанет быть детерменированным и я не смогу оптимизировать гигатонные производства как в факторио.
дельта.png30 Кб, 1340x650
74 652768
>>652757

>Как там в 99 году? Так уже давно никто не делает.


А как делают? Фиксируют частоту на 60 Гц, чтобы игроки на слабых ПК были медленнее игроков на мощных?

>Следующий кадр никогда не будет рендериться столько же сколько предыдущий, отсюда будут микрокосяки в физике


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

>Либо лочить частоту и пусть лагает при посадке


Оно так и так лагать будет, речь идёт о том, чтобы синхронизировать время виртуального мира с реальным.

>какие-нибудь методы предсказания времени рендеринга следующего кадра


Не будет ли это лишней нагрузкой? Так и нейронку прикрутить можно))

>>652758

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


А это уже проблема физического движка, если он не может предсказать столкновение заранее. В идеале физический движок должен строить векторы движения объектов, и останавливать их в точках столкновения друг с другом, а не "телепортировать" на какой-либо фиксированный шаг. Если тупо телепортировать на (x;y;z) - да, объект может пролететь препятствие, если смещение окажется слишком длинным (или препятствие маленькое). А вот если мы построили вектор из точки A в точку B и обнаружили столкновение в точке C, мы должны построить вектор отскока от точки C в точку D и уже в точку D переносить объект (тем же способом, проверив этот вектор на столкновения с другими). Умножение на дельту влияет только на первый способ, второй от неё никак не страдает.

>Я делаю клон факторио, а не майнкрафта


Я не играл в факторио, но не будут ли его механики слишком большой нагрузкой для воксельного мира?

>Один обрабатывает поведение мира


>Второй даёт игроку ввод-вывод


Понятно, сервер с симуляцией и клиент-визуализатор симуляции.

>Если я начну в обработке мира процесс крафтинга, движение мобов и бельтов (в будущем) умножать на дельту, то мир перестанет быть детерменированным


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

>я не смогу оптимизировать гигатонные производства как в факторио


Какие оптимизации ты подразумеваешь?

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

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

Так что... Либо 100%-точная симуляция механизмов, либо экшон эрпогэ с гоблинами, боссами и т.д.

Если ты хочешь полноценную симуляцию всяких механизмов, я бы посоветовал отказаться от майнкрафт-подобного персонажа с инвентарём и предоставить игроку свободное управление картой - перемещение, вращение и т.д. То есть как в любом нормальном неигровом симуляторе, где нет "игрока", а есть только набор симулируемых механизмов, которые пользователь симулятора настраивает и осматривает произвольным образом. Не понимаю, какой смысл прикручивать к такому серьёзному симулятору майнкрафт-подобного персонажа... Собственно, твоя игра сейчас и воспринимается как клон майнкрафта, а не серьёзный симулятор, и это, я думаю, проблема. Люди проходят мимо, не видя под обёрткой из кубиков сложного неигрового симулятора. Нужно как-то это исправить, но тут я не знаю, что подсказать)
дельта.png30 Кб, 1340x650
74 652768
>>652757

>Как там в 99 году? Так уже давно никто не делает.


А как делают? Фиксируют частоту на 60 Гц, чтобы игроки на слабых ПК были медленнее игроков на мощных?

>Следующий кадр никогда не будет рендериться столько же сколько предыдущий, отсюда будут микрокосяки в физике


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

>Либо лочить частоту и пусть лагает при посадке


Оно так и так лагать будет, речь идёт о том, чтобы синхронизировать время виртуального мира с реальным.

>какие-нибудь методы предсказания времени рендеринга следующего кадра


Не будет ли это лишней нагрузкой? Так и нейронку прикрутить можно))

>>652758

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


А это уже проблема физического движка, если он не может предсказать столкновение заранее. В идеале физический движок должен строить векторы движения объектов, и останавливать их в точках столкновения друг с другом, а не "телепортировать" на какой-либо фиксированный шаг. Если тупо телепортировать на (x;y;z) - да, объект может пролететь препятствие, если смещение окажется слишком длинным (или препятствие маленькое). А вот если мы построили вектор из точки A в точку B и обнаружили столкновение в точке C, мы должны построить вектор отскока от точки C в точку D и уже в точку D переносить объект (тем же способом, проверив этот вектор на столкновения с другими). Умножение на дельту влияет только на первый способ, второй от неё никак не страдает.

>Я делаю клон факторио, а не майнкрафта


Я не играл в факторио, но не будут ли его механики слишком большой нагрузкой для воксельного мира?

>Один обрабатывает поведение мира


>Второй даёт игроку ввод-вывод


Понятно, сервер с симуляцией и клиент-визуализатор симуляции.

>Если я начну в обработке мира процесс крафтинга, движение мобов и бельтов (в будущем) умножать на дельту, то мир перестанет быть детерменированным


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

>я не смогу оптимизировать гигатонные производства как в факторио


Какие оптимизации ты подразумеваешь?

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

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

Так что... Либо 100%-точная симуляция механизмов, либо экшон эрпогэ с гоблинами, боссами и т.д.

Если ты хочешь полноценную симуляцию всяких механизмов, я бы посоветовал отказаться от майнкрафт-подобного персонажа с инвентарём и предоставить игроку свободное управление картой - перемещение, вращение и т.д. То есть как в любом нормальном неигровом симуляторе, где нет "игрока", а есть только набор симулируемых механизмов, которые пользователь симулятора настраивает и осматривает произвольным образом. Не понимаю, какой смысл прикручивать к такому серьёзному симулятору майнкрафт-подобного персонажа... Собственно, твоя игра сейчас и воспринимается как клон майнкрафта, а не серьёзный симулятор, и это, я думаю, проблема. Люди проходят мимо, не видя под обёрткой из кубиков сложного неигрового симулятора. Нужно как-то это исправить, но тут я не знаю, что подсказать)
75 652775
>>652768

>проблема физического движка


А есть ли физические движки без таких проблем?

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

>слишком большой нагрузкой


>начнёт потреблять больше ресурсов


>Зачем издеваться над игроком?


Суть как раз в том, что детерминизм позволяет оптимизировать всё и нагрузка на процессор почти не будет отличаться на 1000 печах или 10000 печах. Ведь все эти цепи бельтов, ЛЭП, переработчиков можно превратить в упрощённые формулы с коэффициентами, зависимые от нынешнего тика. И перестраиваться+перерасчитываться будут только из-за недетерминированных факторов — поведения игроков.
Представь, если бы всё просчитывалось через дельты, которые недетерминированны. Игрок поставил бы 10000 печей и пришлось бы их по-отдельности просчитывать и нагрузка была в 10 раз больше, чем при 1000 печах.

Что насчёт нынешности то да, это проблема, я как раз собирался добавлять бельты и фабричные элементы, чтобы игроки заинтересовались и занимались пиаром бесплатно без СМС и по своей воле.
abc.png64 Кб, 1200x800
76 652777
Вот, видите какие шестерёнки? Их надо задаунскейлить, а потом понять как сделать шейдер, который затенит поверхности, а то выглядит ужасно.
Это шестерёнка-голем, которая будет крутить бельт и потреблять MP. Планирую сделать так, чтобы снизить потребление MP до 100% можно было подводом электричества. С другими големами так низко не получится.
77 652820
>>652775

>А есть ли физические движки без таких проблем?


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

>Даже если взять задачу трёх тел


Эм, по-моему мы обсуждали простые игровые действия (смещение, поворот)...

>можно превратить в упрощённые формулы с коэффициентами


Очень интересно, как ты это будешь делать. Я вот вообще не представляю, как можно загнать в одну формулу тысячи объектов, даже если они одного типа. Вот что будет, если каждая печка стартует с задержкой в 1 секунду? А если в каждой печке на +0.1 больше топлива, чем в предыдущей? Может быть, в идеальном случае, когда все печки загружены одинаково и запущены одновременно, можно было бы описать их одной формулой, поскольку результат работы у них будет одинаковый и одновременный... Но может ли такая идеальная ситуация случиться в игре?

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

>Игрок поставил бы 10000 печей и пришлось бы их по-отдельности просчитывать


А почему по отдельности? Ну вот я поставил 10000 печей, загрузил их одинаковым количеством топлива, соединил их все одним кабелем, а потом послал по кабелю сигнал активации. Если кабель в игровом мире передаёт свои сигналы мгновенно, то все 10000 печей стартуют одновременно. Если так, то по сути это единственная печка с мощностью x10000. Какая разница, с какой частотой она будет работать? Она одна.

Да, кстати, а какой вообще интерес в том, чтобы создавать кластер из тысяч одинаковых машин? Я вот смотрел на скриншоты Факторио, и так и не понял, в чём интерес строить такие сетки. Сколько бы ты печек не поставил, все они будут жрать уголь и плавить металл, они не образуют что-то другое. А такие вещи, как "8-битный компьютер на редстоуне", по-моему, оптимизировать невозможно, там ведь все элементы должны быть независимы.

>бельт


Ты так приводной ремень называешь? Не проще просто добавить цельный блок конвейера?

...Подумалось, у тебя какое-то недопонимание этой "дельты". Ты думаешь, что у одной печки будет коэффициент 0.016, а у другой 0.017, и из-за этого они будут работать независимо? Но зачем? Ведь дельта одинакова для каждого кадра/тика, для всех объектов сцены. То есть если у тебя есть 10000 печек, ты их все умножаешь на 0.016. Даже так, если у тебя есть формула для 10000 печек - ты должен умножать на дельту не каждую печку, а именно эту свою формулу. Речь ведь шла о синхронизации с реальным миром, а не о том, чтобы разделить x10000-мегапечь на самостоятельные печки.

То есть получается что-то такое:
- игрок ставит на карту 10000 печек;
- ты объединяешь их все в одну мегапечку своей формулой;
- когда мегапечка стартует, она работает как единый объект;
- работа этого объекта синхронизируется с реальным миром;
- когда начнёт обновляться винда, игра не будет тормозить;
- и овцы сыты, и волки целы, в общем все счастливы.
Другими словами, на дельту можно и нужно умножать весь игровой мир целиком, а не каждый объект по отдельности.

Да, я знаю, что мегапечь - это 1.000.000 печей, а 10.000 печей - это 10 килопечей, но кому какая разница...

А, вот ещё. Почему это мир, помноженный на дельту времени кадра, ВНЕЗАПНО перестаёт быть детерминированным-то? Ну вот ты задал какое-то правило, типа "если А, то Б" - если оно выполняется всегда, то система детерминирована, а вот если может выполниться, а может не выполниться, то она недетерминирована. Ты думаешь, что если ты используешь дельту, то это правило вдруг перестаёт выполняться? Но как такое может произойти, если выполнение правил - твоя основная задача? В моём примере про движение кубика задача - "смещение куба на 1 метр за 4 секунды". Если бы стояла задача "показать смещение куба каждые 2 миллиметра" - тогда смысла в дельте не было бы. Но задача - сместить куб на метр, и для нас не имеет значения, сместится он за 1 кадр или за 1000. Главное, что сместится на метр, и произойдёт это через 4 секунды. Даже если частота кадров 1 кадр в минуту, смещение произойдёт через четыре секунды, просто игрок этого не сможет увидеть.

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

А если у тебя какая-то другая задача, то это уже не игра, а что-то другое.

Кажется, я чего-то не понимаю. :(
77 652820
>>652775

>А есть ли физические движки без таких проблем?


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

>Даже если взять задачу трёх тел


Эм, по-моему мы обсуждали простые игровые действия (смещение, поворот)...

>можно превратить в упрощённые формулы с коэффициентами


Очень интересно, как ты это будешь делать. Я вот вообще не представляю, как можно загнать в одну формулу тысячи объектов, даже если они одного типа. Вот что будет, если каждая печка стартует с задержкой в 1 секунду? А если в каждой печке на +0.1 больше топлива, чем в предыдущей? Может быть, в идеальном случае, когда все печки загружены одинаково и запущены одновременно, можно было бы описать их одной формулой, поскольку результат работы у них будет одинаковый и одновременный... Но может ли такая идеальная ситуация случиться в игре?

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

>Игрок поставил бы 10000 печей и пришлось бы их по-отдельности просчитывать


А почему по отдельности? Ну вот я поставил 10000 печей, загрузил их одинаковым количеством топлива, соединил их все одним кабелем, а потом послал по кабелю сигнал активации. Если кабель в игровом мире передаёт свои сигналы мгновенно, то все 10000 печей стартуют одновременно. Если так, то по сути это единственная печка с мощностью x10000. Какая разница, с какой частотой она будет работать? Она одна.

Да, кстати, а какой вообще интерес в том, чтобы создавать кластер из тысяч одинаковых машин? Я вот смотрел на скриншоты Факторио, и так и не понял, в чём интерес строить такие сетки. Сколько бы ты печек не поставил, все они будут жрать уголь и плавить металл, они не образуют что-то другое. А такие вещи, как "8-битный компьютер на редстоуне", по-моему, оптимизировать невозможно, там ведь все элементы должны быть независимы.

>бельт


Ты так приводной ремень называешь? Не проще просто добавить цельный блок конвейера?

...Подумалось, у тебя какое-то недопонимание этой "дельты". Ты думаешь, что у одной печки будет коэффициент 0.016, а у другой 0.017, и из-за этого они будут работать независимо? Но зачем? Ведь дельта одинакова для каждого кадра/тика, для всех объектов сцены. То есть если у тебя есть 10000 печек, ты их все умножаешь на 0.016. Даже так, если у тебя есть формула для 10000 печек - ты должен умножать на дельту не каждую печку, а именно эту свою формулу. Речь ведь шла о синхронизации с реальным миром, а не о том, чтобы разделить x10000-мегапечь на самостоятельные печки.

То есть получается что-то такое:
- игрок ставит на карту 10000 печек;
- ты объединяешь их все в одну мегапечку своей формулой;
- когда мегапечка стартует, она работает как единый объект;
- работа этого объекта синхронизируется с реальным миром;
- когда начнёт обновляться винда, игра не будет тормозить;
- и овцы сыты, и волки целы, в общем все счастливы.
Другими словами, на дельту можно и нужно умножать весь игровой мир целиком, а не каждый объект по отдельности.

Да, я знаю, что мегапечь - это 1.000.000 печей, а 10.000 печей - это 10 килопечей, но кому какая разница...

А, вот ещё. Почему это мир, помноженный на дельту времени кадра, ВНЕЗАПНО перестаёт быть детерминированным-то? Ну вот ты задал какое-то правило, типа "если А, то Б" - если оно выполняется всегда, то система детерминирована, а вот если может выполниться, а может не выполниться, то она недетерминирована. Ты думаешь, что если ты используешь дельту, то это правило вдруг перестаёт выполняться? Но как такое может произойти, если выполнение правил - твоя основная задача? В моём примере про движение кубика задача - "смещение куба на 1 метр за 4 секунды". Если бы стояла задача "показать смещение куба каждые 2 миллиметра" - тогда смысла в дельте не было бы. Но задача - сместить куб на метр, и для нас не имеет значения, сместится он за 1 кадр или за 1000. Главное, что сместится на метр, и произойдёт это через 4 секунды. Даже если частота кадров 1 кадр в минуту, смещение произойдёт через четыре секунды, просто игрок этого не сможет увидеть.

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

А если у тебя какая-то другая задача, то это уже не игра, а что-то другое.

Кажется, я чего-то не понимаю. :(
78 652870
>>652820

>Очень интересно, как ты это будешь делать


Да я и сам не знаю как. Но я могу представить, например, бельт (я так называю конвеер, а не ремень), состоящий из большого кол-ва блоков бельтов как один объект. Он имеет некоторый путь, скорость и содержащиеся в нём предметы. Можно сделать так, что когда что-то добавляет предмет на бельт или забирает, его состояние коллапсирует и пересчитывается. Каждый предмет имеет в себе время добавления его на бельт и местоположение и из этого можно высчитать его положение в будущем времени. Уже хоть какая-то оптимизация.
Что насчёт печей, то не обязательно запускать их все одновременно, главное, чтобы они одновременно работали и у них был какой-то запас топлива.
Что насчёт бельтов, то я собираюсь полностью скопировать их механику из факторио — 2 ряда, сплиттеры, объединение бельтов между собой так, чтобы предметы идущие на одну дорожку, были на одной дорожке. Но ещё добавлю лифт, чтобы можно было вверх-вниз переносить.

>в чём интерес строить такие сетки


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

>А такие вещи, как "8-битный компьютер на редстоуне", по-моему, оптимизировать невозможно


Смотри сюда: https://ru.wikipedia.org/wiki/Карта_Карно
Я не очень знаю, что это такое, но оно позволяет оптимизировать логические элементы меньшим количеством логических элементов. Но на самом деле для этого достаточно знания булевой алгебры.
Что насчёт симуляции компьютера на компьютере, то какие-нибудь сумматоры можно распознать и вместо обсчёта логических функций, считать сразу арифметические.
Я таким, конечно же, заниматься не буду, ведь у меня игра про фабрики, а не про компьютеры.

Что насчёт дельты, то суть во-первых в накапливающихся ошибках, во-вторых в несовершенстве физических и не только физических, движков. Ты говоришь, что куб сместится за 4 сенкуды, но нет, он сместится за 4 секунды только в твоём воображении, а на самом деле он сместится за минуту и на большее расстояние. Я не хочу, чтобы у меня где-то бросался предмет и из-за обновлении винды он не отскочил, а застрял в блоке и его унесло в космос. Конечно, можно заранее расчитать параболу траектории, но мне это не удобно, мне удобно каждый фрейм добавлять скорость по осям, мне просто не хватит времени, чтобы разработать геймплей. Конечно, я не собираюсь бросание предметов использовать в фабричных вещах, но у меня печи имеют температуру, которая растёт с замедляющейся скоростью, а это важно.
Посмотри на этот алгоритм: https://ru.wikipedia.org/wiki/Алгоритм_Гилберта_—_Джонсона_—_Кирти Он использует итерации, я этот алгоритм использую с помощью библиотеки libccd, чтобы расчитывать столкновения.
Можно посмотреть на Satisfactory. Не знаю как сейчас, но когда-то я видел видео, где у них автомобиль заехал немного не так и его перевернуло и отбросило куда подальше. Потому что такие моменты сложно расчитать. В Industriworks я собираюсь использовать всякие живые организмы с псевдослучайным поведением, но их поведение я буду делать более предсказуемым, как только игрок перестанет на них смотреть и отойдёт подальше. Например, голема-майнера я собираюсь сделать более умным и чтобы он как дварф-майнер из дварф фортресс майнил камни и руду, но собирал в сундук. Пока игрок не смотрит, можно просто уничтожать блоки с определённым интервалом и переносить добычу в сундук. Или питомник с кабанами. Пока игрок смотрит, они могут ходить туда-сюда, пытаться вырваться, быковать. А когда уйдёт, зона питомника будет просто выдавать детёныша раз в N времени.
Можешь ещё почитать всякие посты от разрабов Факторио. Как у них там поезда исчезали, потому что находились в другом месте и всё такое. При этом у них тикрейт. Кстати, в майнкрафте тоже тикрейт, несмотря на то, что это просто экшн+выживание.
78 652870
>>652820

>Очень интересно, как ты это будешь делать


Да я и сам не знаю как. Но я могу представить, например, бельт (я так называю конвеер, а не ремень), состоящий из большого кол-ва блоков бельтов как один объект. Он имеет некоторый путь, скорость и содержащиеся в нём предметы. Можно сделать так, что когда что-то добавляет предмет на бельт или забирает, его состояние коллапсирует и пересчитывается. Каждый предмет имеет в себе время добавления его на бельт и местоположение и из этого можно высчитать его положение в будущем времени. Уже хоть какая-то оптимизация.
Что насчёт печей, то не обязательно запускать их все одновременно, главное, чтобы они одновременно работали и у них был какой-то запас топлива.
Что насчёт бельтов, то я собираюсь полностью скопировать их механику из факторио — 2 ряда, сплиттеры, объединение бельтов между собой так, чтобы предметы идущие на одну дорожку, были на одной дорожке. Но ещё добавлю лифт, чтобы можно было вверх-вниз переносить.

>в чём интерес строить такие сетки


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

>А такие вещи, как "8-битный компьютер на редстоуне", по-моему, оптимизировать невозможно


Смотри сюда: https://ru.wikipedia.org/wiki/Карта_Карно
Я не очень знаю, что это такое, но оно позволяет оптимизировать логические элементы меньшим количеством логических элементов. Но на самом деле для этого достаточно знания булевой алгебры.
Что насчёт симуляции компьютера на компьютере, то какие-нибудь сумматоры можно распознать и вместо обсчёта логических функций, считать сразу арифметические.
Я таким, конечно же, заниматься не буду, ведь у меня игра про фабрики, а не про компьютеры.

Что насчёт дельты, то суть во-первых в накапливающихся ошибках, во-вторых в несовершенстве физических и не только физических, движков. Ты говоришь, что куб сместится за 4 сенкуды, но нет, он сместится за 4 секунды только в твоём воображении, а на самом деле он сместится за минуту и на большее расстояние. Я не хочу, чтобы у меня где-то бросался предмет и из-за обновлении винды он не отскочил, а застрял в блоке и его унесло в космос. Конечно, можно заранее расчитать параболу траектории, но мне это не удобно, мне удобно каждый фрейм добавлять скорость по осям, мне просто не хватит времени, чтобы разработать геймплей. Конечно, я не собираюсь бросание предметов использовать в фабричных вещах, но у меня печи имеют температуру, которая растёт с замедляющейся скоростью, а это важно.
Посмотри на этот алгоритм: https://ru.wikipedia.org/wiki/Алгоритм_Гилберта_—_Джонсона_—_Кирти Он использует итерации, я этот алгоритм использую с помощью библиотеки libccd, чтобы расчитывать столкновения.
Можно посмотреть на Satisfactory. Не знаю как сейчас, но когда-то я видел видео, где у них автомобиль заехал немного не так и его перевернуло и отбросило куда подальше. Потому что такие моменты сложно расчитать. В Industriworks я собираюсь использовать всякие живые организмы с псевдослучайным поведением, но их поведение я буду делать более предсказуемым, как только игрок перестанет на них смотреть и отойдёт подальше. Например, голема-майнера я собираюсь сделать более умным и чтобы он как дварф-майнер из дварф фортресс майнил камни и руду, но собирал в сундук. Пока игрок не смотрит, можно просто уничтожать блоки с определённым интервалом и переносить добычу в сундук. Или питомник с кабанами. Пока игрок смотрит, они могут ходить туда-сюда, пытаться вырваться, быковать. А когда уйдёт, зона питомника будет просто выдавать детёныша раз в N времени.
Можешь ещё почитать всякие посты от разрабов Факторио. Как у них там поезда исчезали, потому что находились в другом месте и всё такое. При этом у них тикрейт. Кстати, в майнкрафте тоже тикрейт, несмотря на то, что это просто экшн+выживание.
abc.png164 Кб, 1200x800
79 652880
С распродажи насосал оочень мало долларов. Я выучил урок, что распродажи не стоит делать долгими, потому что почти все продажи происходят в первые несколько дней. А ещё, что, предположительно, сезонные распродажи приносят в разы больше дохода, чем свои простые. Мне надо, чтобы ещё около 100 человек на распродаже купило или около 30 после распродажи, чтобы Индустриворкс стал наконец-то коммерчески успешным продуктом. Ну и как мне это сделать? Всякие пролапсы может и говорят, мол можно пиариться на реддите, но в реальности всё это не так просто. Действительно, индиразработчик-одиночка-самиздатель может выехать только на хорошей игре. Не пытайтесь делать плохие игры, если у вас нет пиарных ресурсов.
out.mp44 Мб, mp4,
1200x800, 0:11
80 652918
Как-то так будет выглядеть бельт первого уровня.
81 653215
>>652880

> Мне надо, чтобы ещё около 100 человек на распродаже купило или около 30 после распродажи, чтобы Индустриворкс стал наконец-то коммерчески успешным продуктом



Учитывая, что с у габена комиссия 30%, для тебя коммерческий успех это 3000 рублей?
82 653220
>>653215
Ты не правильно посчитал.
У меня коммерческий успех это окупить вложенные 100 долларов.
83 653229
>>653220
А, ну круто. А откуда у тебя такие деньжищи, чтобы их вкладывать?
84 653264
>>653229

>откуда у тебя такие деньжищи, чтобы их вкладывать


Наверное, экономил деньги, которые ему давали на школьные завтраки))) Или купил доллары по 20 ещё тогда.

>>653220

>У меня коммерческий успех это окупить вложенные 100 долларов.


Это не успех. Если бы ты бесплатно выложил игру в магазин, и в неё никто бы не играл, у тебя был бы 0 на 0 - это тоже успех? Успех - это если ты окупишь вложенные в игру силы, нервы, средства и время, заработав больше, чем мог бы другими способами. А так, ты не 100 долларов вложил. Ты вложил 3/4 года своего труда, не получая за это зарплаты, тратя свои силы и нервы.
>>652918
Почему шестерни висят в воздухе?
>>652880

>распродажи не стоит делать долгими


Скорее всего связано с алгоритмами Стима. Однодневные скидки вроде как лучше пиарятся системой.

>сезонные распродажи приносят в разы больше дохода, чем свои простые


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

>чтобы Индустриворкс стал наконец-то коммерчески успешным продуктом. Ну и как мне это сделать?


1. Нужно устранить все баги и недочёты геймплея, мешающие игроку. Можешь выложить код в опенсурс, посмотрим.
2. Нужно сделать привлекательную графику, чтобы люди не говорили "фууу" не успев долистать до описания игры.
3. Нужен контент, но уже после того, как исправишь имеющиеся баги и сделаешь привлекательную графику.
Разумеется, ты можешь просто накрутить число продаж, но игроки будут покупать, плеваться на игру и забывать о ней.
>>652870

>Да я и сам не знаю как.


Мда уж. Ну, ты хотя бы не теряешь оптимистичный настрой, это уже что-то)

>оно позволяет оптимизировать логические элементы меньшим количеством логических элементов


Это используется для разработки логических устройств. В контексте "8-битного компьютера в песочнице" этим методом должен заниматься сам игрок, а не компьютер. Речь шла о том, что очень трудно реализовать универсальную оптимизацию всех этих логических схем, которые можно сконструировать из блоков в играх типа Майнкрафта.

>какие-нибудь сумматоры можно распознать и вместо обсчёта логических функций, считать сразу арифметические


Это только частный случай проблемы. Кроме того, это нарушит принцип "полной симуляции", имхо.

>у меня игра про фабрики, а не про компьютеры


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

>в накапливающихся ошибках


Погрешности вычислений с float у тебя будут всегда, если ты не перейдёшь полностью на integer.

>на самом деле он сместится за минуту и на большее расстояние


Если игра ВДРУГ зависнет на минуту, и через минуту дельта окажется =1 минуте, то для таких случаев нужны проверки. Если тебе нужно сместить куб только на метр, то если куб уехал слишком далеко - возвращаешь на метр. Игрок ничего не заметит, потому что с его точки зрения куб остановился 56 секунд назад (а на самом деле игра всё это время была тупо сдохшей нафиг).

>в несовершенстве физических и не только физических, движков


Это только твой самодельный движок несовершенен, но в твоих силах это исправить))

>где-то бросался предмет и из-за обновлении винды он не отскочил, а застрял в блоке и его унесло в космос


Дык поэтому я и говорил, проверять траекторию полёта, а не точку в пространстве. Если по траектории предмет должен был врезаться 2 секунды назад, то его нужно перенаправить в другое направление, а не размещать где есть.

>мне удобно каждый фрейм добавлять скорость по осям


Ну тогда игрокам придётся мириться с тем, что со временем внутренний таймер игры начинает отставать от реального времени.

>я видел видео, где у них автомобиль заехал немного не так и его перевернуло и отбросило куда подальше


Это же норма, к этому все привыкли. Зато автомобиль заехал, а не з-з-за-а-а-ае-ехал.

>Пока игрок не смотрит, можно просто уничтожать блоки с определённым интервалом и переносить добычу в сундук


>А когда уйдёт, зона питомника будет просто выдавать детёныша раз в N времени


Вот это мудрое решение, я тоже собираюсь в своей игре такое сделать. Одобряю.

>Как у них там поезда исчезали, потому что находились в другом месте и всё такое. При этом у них тикрейт


Ага, то есть "тикрейт" не устраняет эти проблемы.

>в майнкрафте тоже тикрейт


Что-то я никогда не замечал, чтобы игра начинала работать медленнее, рисуя каждый кадр без пропусков, хотя пробовал играть в майнкрафт на очень слабом железе. Если игра тормозит, игрок и NPC движутся рывками, как и в любой игре с дельтой. Даже если там так, как ты говоришь, там наверняка есть возможность пропускать кадры, иначе игра превращалась бы в слоу-мо. Ну или можно допустить, что кадры пропускает рендер, а физический движок всегда успевает, но это нереалистичное предположение, если вспомнить, насколько сильную нагрузку вызывает майнкрафт-сервер, хотя он работает только с физикой мира.
84 653264
>>653229

>откуда у тебя такие деньжищи, чтобы их вкладывать


Наверное, экономил деньги, которые ему давали на школьные завтраки))) Или купил доллары по 20 ещё тогда.

>>653220

>У меня коммерческий успех это окупить вложенные 100 долларов.


Это не успех. Если бы ты бесплатно выложил игру в магазин, и в неё никто бы не играл, у тебя был бы 0 на 0 - это тоже успех? Успех - это если ты окупишь вложенные в игру силы, нервы, средства и время, заработав больше, чем мог бы другими способами. А так, ты не 100 долларов вложил. Ты вложил 3/4 года своего труда, не получая за это зарплаты, тратя свои силы и нервы.
>>652918
Почему шестерни висят в воздухе?
>>652880

>распродажи не стоит делать долгими


Скорее всего связано с алгоритмами Стима. Однодневные скидки вроде как лучше пиарятся системой.

>сезонные распродажи приносят в разы больше дохода, чем свои простые


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

>чтобы Индустриворкс стал наконец-то коммерчески успешным продуктом. Ну и как мне это сделать?


1. Нужно устранить все баги и недочёты геймплея, мешающие игроку. Можешь выложить код в опенсурс, посмотрим.
2. Нужно сделать привлекательную графику, чтобы люди не говорили "фууу" не успев долистать до описания игры.
3. Нужен контент, но уже после того, как исправишь имеющиеся баги и сделаешь привлекательную графику.
Разумеется, ты можешь просто накрутить число продаж, но игроки будут покупать, плеваться на игру и забывать о ней.
>>652870

>Да я и сам не знаю как.


Мда уж. Ну, ты хотя бы не теряешь оптимистичный настрой, это уже что-то)

>оно позволяет оптимизировать логические элементы меньшим количеством логических элементов


Это используется для разработки логических устройств. В контексте "8-битного компьютера в песочнице" этим методом должен заниматься сам игрок, а не компьютер. Речь шла о том, что очень трудно реализовать универсальную оптимизацию всех этих логических схем, которые можно сконструировать из блоков в играх типа Майнкрафта.

>какие-нибудь сумматоры можно распознать и вместо обсчёта логических функций, считать сразу арифметические


Это только частный случай проблемы. Кроме того, это нарушит принцип "полной симуляции", имхо.

>у меня игра про фабрики, а не про компьютеры


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

>в накапливающихся ошибках


Погрешности вычислений с float у тебя будут всегда, если ты не перейдёшь полностью на integer.

>на самом деле он сместится за минуту и на большее расстояние


Если игра ВДРУГ зависнет на минуту, и через минуту дельта окажется =1 минуте, то для таких случаев нужны проверки. Если тебе нужно сместить куб только на метр, то если куб уехал слишком далеко - возвращаешь на метр. Игрок ничего не заметит, потому что с его точки зрения куб остановился 56 секунд назад (а на самом деле игра всё это время была тупо сдохшей нафиг).

>в несовершенстве физических и не только физических, движков


Это только твой самодельный движок несовершенен, но в твоих силах это исправить))

>где-то бросался предмет и из-за обновлении винды он не отскочил, а застрял в блоке и его унесло в космос


Дык поэтому я и говорил, проверять траекторию полёта, а не точку в пространстве. Если по траектории предмет должен был врезаться 2 секунды назад, то его нужно перенаправить в другое направление, а не размещать где есть.

>мне удобно каждый фрейм добавлять скорость по осям


Ну тогда игрокам придётся мириться с тем, что со временем внутренний таймер игры начинает отставать от реального времени.

>я видел видео, где у них автомобиль заехал немного не так и его перевернуло и отбросило куда подальше


Это же норма, к этому все привыкли. Зато автомобиль заехал, а не з-з-за-а-а-ае-ехал.

>Пока игрок не смотрит, можно просто уничтожать блоки с определённым интервалом и переносить добычу в сундук


>А когда уйдёт, зона питомника будет просто выдавать детёныша раз в N времени


Вот это мудрое решение, я тоже собираюсь в своей игре такое сделать. Одобряю.

>Как у них там поезда исчезали, потому что находились в другом месте и всё такое. При этом у них тикрейт


Ага, то есть "тикрейт" не устраняет эти проблемы.

>в майнкрафте тоже тикрейт


Что-то я никогда не замечал, чтобы игра начинала работать медленнее, рисуя каждый кадр без пропусков, хотя пробовал играть в майнкрафт на очень слабом железе. Если игра тормозит, игрок и NPC движутся рывками, как и в любой игре с дельтой. Даже если там так, как ты говоришь, там наверняка есть возможность пропускать кадры, иначе игра превращалась бы в слоу-мо. Ну или можно допустить, что кадры пропускает рендер, а физический движок всегда успевает, но это нереалистичное предположение, если вспомнить, насколько сильную нагрузку вызывает майнкрафт-сервер, хотя он работает только с физикой мира.
85 653301
>>653264
Коммерческий успех в случае окупаемости представлял бы собой потенциал к доходу. Если выпустить игру, которая смогла окупить вложение в стим, значит потенциал есть и наличие потенциала является коммерческим успехом. А если выпустить игру бесплатно/платно на итчио и никто не кинет деньжат, то потенциала нет.

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


Суть индигеймдева в том, что можно не работать, когда тебе дают задание и ты выполняешь за деньги, а самому делать продукт и другие люди будут его покупать. Если бы я устроился хоть грузчиком или фасовщиком, я бы за всё это время набрал столько денег, что очень большая часть моих нужд сейчас была бы восполнена. Но я РННщик. Я имею опыт работы и знаю, что это такое.
Кроме того, это одновременно и развитие. Если бы я не сделал Индустриворкс, то мало ли когда бы я начал делать свой графический движок? Через полтора года и без поддержки OpenGL/Vulkan? От этого могли бы пострадать мои будущие опенсорсные проекты.

>Почему шестерни висят в воздухе?


Потому, что это шестерни-големы))0). На самом деле я планирую добавить опоры, да и поменять кое-что. Например, чтобы анимация была не фреймовой, а плавной, но для этого отдельный коллбек писать.

>Нужен контент, но уже после того, как исправишь имеющиеся баги и сделаешь привлекательную графику


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

>Без хотя бы примитивной логики играть скучно и неудобно


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

>если ты не перейдёшь полностью на integer


Я, кстати, собирался такое сделать возможным в моём возможно будущем 3D-редакторе, который я собирался написать на своём языке программирования и рендеря своим софтрендером, а обрабатывая своим геометрическим ядром. А потом этот 3D-редактор платно в стим, но с открытыми исходиниками, подобно Aseprite.
Ведь int32_t позволяют моделировать 2-4 километра с точностью до микрометра.

>Ага, то есть "тикрейт" не устраняет эти проблемы.


Наоборот, он устраняет, если написать без багов. А если использовать float дельты, то разделишь фабрику на условные чанки, просчитаешь, а ошибки накопятся и выйдет 534.035 предметов, когда должно быть 534 и где-то что-то аварийно остановится. А если использовать integer дельты, то это будет тикрейт, но с пропуском фреймов, которые тоже могут привести к авариям.
85 653301
>>653264
Коммерческий успех в случае окупаемости представлял бы собой потенциал к доходу. Если выпустить игру, которая смогла окупить вложение в стим, значит потенциал есть и наличие потенциала является коммерческим успехом. А если выпустить игру бесплатно/платно на итчио и никто не кинет деньжат, то потенциала нет.

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


Суть индигеймдева в том, что можно не работать, когда тебе дают задание и ты выполняешь за деньги, а самому делать продукт и другие люди будут его покупать. Если бы я устроился хоть грузчиком или фасовщиком, я бы за всё это время набрал столько денег, что очень большая часть моих нужд сейчас была бы восполнена. Но я РННщик. Я имею опыт работы и знаю, что это такое.
Кроме того, это одновременно и развитие. Если бы я не сделал Индустриворкс, то мало ли когда бы я начал делать свой графический движок? Через полтора года и без поддержки OpenGL/Vulkan? От этого могли бы пострадать мои будущие опенсорсные проекты.

>Почему шестерни висят в воздухе?


Потому, что это шестерни-големы))0). На самом деле я планирую добавить опоры, да и поменять кое-что. Например, чтобы анимация была не фреймовой, а плавной, но для этого отдельный коллбек писать.

>Нужен контент, но уже после того, как исправишь имеющиеся баги и сделаешь привлекательную графику


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

>Без хотя бы примитивной логики играть скучно и неудобно


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

>если ты не перейдёшь полностью на integer


Я, кстати, собирался такое сделать возможным в моём возможно будущем 3D-редакторе, который я собирался написать на своём языке программирования и рендеря своим софтрендером, а обрабатывая своим геометрическим ядром. А потом этот 3D-редактор платно в стим, но с открытыми исходиниками, подобно Aseprite.
Ведь int32_t позволяют моделировать 2-4 километра с точностью до микрометра.

>Ага, то есть "тикрейт" не устраняет эти проблемы.


Наоборот, он устраняет, если написать без багов. А если использовать float дельты, то разделишь фабрику на условные чанки, просчитаешь, а ошибки накопятся и выйдет 534.035 предметов, когда должно быть 534 и где-то что-то аварийно остановится. А если использовать integer дельты, то это будет тикрейт, но с пропуском фреймов, которые тоже могут привести к авариям.
shhhhhhh.png97 Кб, 1137x637
86 653327
Если бы не OpenGL, то я уже давно мог бы сделать красивую графику в Индустриворкс.
Версий glsl дофига, а документации к ним либо нет, либо запрятана она где-то далеко. Даже на википедии документации больше, чем на сайте кроноса.
Пошёл смотреть на SPIR-V, но там тоже много чего непонтяного, хоть выглядит солиднее. Но в брошурке (пикрилейтед) шизофрения. layout какие-то. Я уже научился писать небольшие шейдеры (для генерации текстур) на #version 130 и они работают без layout, но теперь я захотел добавить теней, но не получается получить значение gl_Normal. Ну зачем так делать? Я не собираюсь учить всякие лейауты. Почему они не могут просто дать список, какие переменные доступны на чтение и/или запись в определённой версии GLSL?
Может мне всё-таки не стоит учить OpenGL и сразу начать писать софтрендер? У меня есть опасения, что он займёт слишком много процессора, особенно с моими способностями к оптимизации. Я собираюсь использовать только рейтрейсинг. Либо я так и не смогу добавить даже фог в Индустриворкс и всё будет выглядеть так себе.
Видеокарты и OpenGL — дно.
87 653375
>>653327
Блять, разве фог в гле не одной строчкой добавляется?
88 653382
>>653375
Хмм, и правда. Только у меня получилось в 12 строчек. И наверняка эти функции депрекейтед и поддерживаются 3.5 видеокартами и 2.25 драйверами.
Выглядит просто ужасно. Лучше бы я шейдером сделал, но шейдером нельзя.
Я попробовал вчера пописать свой софтрендер рейтрейсер, но рендеринг одного треугольника даёт около 15 FPS. При этом треугольник не рендерится правильно, так что не думаю, что софтрендер решит проблему. Я, конечно, могу сделать поддержку и опенгла, и софтрендера, ведь это мой графический движок с разными бекендами.
89 653383
>>653382
Какой блять депрекейтед? Ты сделай ему цвет как у ClearColor своего, будет выглядеть нормально. А макисмальную густоту поставь на расстоянии, равном расстоянии отрисовки чанков приблизительно
cube.png2,6 Мб, 1920x1080
90 653394
>>653382
Могу тебе помочь с графоном, кстати. Я сам писал софтверный растеризатор, его вполне реально разгонять до 5мс/фрейм на среднем i5 в фуллхд, если геометрии не очень много (несколько тысяч треугольников). Рейтрейсер писал и софтверный, и ускорял его с cuda. На последнем собрал элементарный path tracer, работает, пикрелейтед.
В кубаче, как мне кажется, куда лучше стрелять лучами, нежели растеризацией заниматься. Из-за того, что сетка однородная, можно очень оптимально искать пересечения луча со сценой. Ускоряться можно как душе угодно: с помощью cuda, с помощью compute shader-ов на opengl/vulkan, можно даже фрагментный шейдер на обычном opengl-е заточить под рейтрейсинг.
91 653404
Вот, кстати, простой пример рейкаста с помощью одного только фрагментного шейдера.
https://www.shadertoy.com/view/4ds3WS
92 653516
>>653404
Посмотрел, нашёл https://www.shadertoy.com/view/3lyXDm и подумал, что всё-таки мне стоит взять себя в руки и научиться в GLSL-шейдеры. Я не сразу поверил, что это сделано чисто из кода, без дополнительных моделей и в 100 строк, но если создать new, то именно так и есть. Да, видна математичная природа показанных фигур, но я так далёк от рендеринга и математики, что даже не думал, что так можно.

>>653394
Думаю, пока мне не нужна твоя помощь. Я только тренируюсь примитивы рисовать. Когда-то сделал на питоне рейтрейсер сфер с солид колором по гайду с хабра и это максимум, что у меня был. Вчера попробовал треугольник отрендерить, но на самом деле сферу (а то там сложно, мне надо спроецировать треугольник, так чтобы вектор-direction глаз был нормалью для него, тогда я смогу пробить, попадает ли вектор в треугольник) и у меня просто полэкрана окрашивалась, а половина нет. Вот такие у меня навыки в геометрии, мда.
Когда доделаю компилятор своего языка программирования (там сейчас готовы только несколько базовых конструкций и то, не полно), тогда можно будет полноценно заняться софтрендером. Потому что мне будет удобно, а ещё мой ЯП поддерживает параллельные вычисления, чтобы программист смог абстрагироваться от cuda, opencl, шейдеров или параллельных потоков.
93 653542
>>653516
Я бы тебе теорию нормально рассказал. Часто, люди в статейках лукавят и пишут то, что сами не до конца понимают. Я же выстрадал по несколько раз всю теорку для растеризации да рейтрейсинга своей собственной жёпой, поэтому могу пояснить по-человечески. Ну, если что, я помониторю этот тред.
out.mp44,1 Мб, mp4,
1200x608, 0:16
94 653624
Взял себя в руки и портировал, например, этот https://www.shadertoy.com/view/3lsSzf шейдер, взорвавший мне разум, себе на компьютер. На самом деле это не так сложно. Надо просто просмотреть докуменацию, а если что-то не найдено, то поискать в интернете примеры. У меня, в данном случае, не получалось выводить gl_FragColor и надо было написать layout( location = 0 ) out vec4 FragColor;. Что это означает, я так и не понял.

Теперь пора делать шейдеры для Индустриворкс.

>>653542
Мне нужно знать, какие разделы математики надо выучить.

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

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

Ещё я так и не понял, почему при трассировке пути образуется шум. Разве не для каждого пикселя отдельно пускают луч? Или шум образуется, только если надо просчитать какие-нибудь световые суперэффекты?
95 653644
>>653624
Касаемо современных (с версии 3.3 точно так, ниже — не знаю) опенгловых шейдеров — у каждого из них есть вход и выход. У вершинного шейдера, вход размечается с помощью VertexArrayObject, который подсасывает данные из VertexBufferObject-ов. Ну, например https://pastebin.com/TpiKbdPd
Тут видно, как с помощью glVertexAttribPointer размечается vbo. В 3.3 можно не указывать явно layout (location = ...), но на некоторых видеокартах (вроде) может отвалиться жопа. То есть, можно и так шлёпнуть:
layout(location = 0) in vec2 vpos;
layout(location = 1) in vec3 vcolor;
Выход вершинного и вход фрагментного при отсутствии других шейдеров должны совпадать вплоть до имён переменных, opengl их как-то там сам линкует. Умный типа дохуя.
Самым важным в вершинном шейдере является gl_Position, который уходит растеризатору. Он нужен, чтобы растеризатор расставил вершины примитива на экране, растеризовал его и высрал фрагменты. Если прям тупо, положим vec4 pos; и сунем его в gl_Position; тогда pos.x / pos.w, pos.y / pos.w -- координаты вершины на экране (от -1 до 1), pos.z / pos.w -- то, что уходит в буфер глубины, pos.w работает как хитрая хуйня для корректировки искажений барицентрических координат, если ты прикладывал перспективу. Вся эта хитрая матаническая магия происходит с помощью перемножений хитро устроенных матриц, для работы с которыми есть библиотеки типа glm, ну или собственные мозги.
Выход фрагментного шейдера цепляется к фреймбуферу. Точно так же, можно неявно указывать out vec4 color; и он сообразит. А может и не сообразить, и нужно будет уточнение типа layout-всякая-хуйня. Можно создавать свои фреймбуферы, и выводить туда всякую херь, но это уже развлечение не для новичков. gl_FragColor я не пробовал, ничего не могу сказать, да и не видно его: https://www.khronos.org/opengl/wiki/Built-in_Variable_(GLSL)

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

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

Шум образуется из-за стохастической (читай случайной) природы алгоритма. Он, по сути, кастует для каждого пикселя по несколько лучей, потом суммирует освещённость. Вот направления, по которым лучи отскакивают от поверхностей, и генерируются случайно.
95 653644
>>653624
Касаемо современных (с версии 3.3 точно так, ниже — не знаю) опенгловых шейдеров — у каждого из них есть вход и выход. У вершинного шейдера, вход размечается с помощью VertexArrayObject, который подсасывает данные из VertexBufferObject-ов. Ну, например https://pastebin.com/TpiKbdPd
Тут видно, как с помощью glVertexAttribPointer размечается vbo. В 3.3 можно не указывать явно layout (location = ...), но на некоторых видеокартах (вроде) может отвалиться жопа. То есть, можно и так шлёпнуть:
layout(location = 0) in vec2 vpos;
layout(location = 1) in vec3 vcolor;
Выход вершинного и вход фрагментного при отсутствии других шейдеров должны совпадать вплоть до имён переменных, opengl их как-то там сам линкует. Умный типа дохуя.
Самым важным в вершинном шейдере является gl_Position, который уходит растеризатору. Он нужен, чтобы растеризатор расставил вершины примитива на экране, растеризовал его и высрал фрагменты. Если прям тупо, положим vec4 pos; и сунем его в gl_Position; тогда pos.x / pos.w, pos.y / pos.w -- координаты вершины на экране (от -1 до 1), pos.z / pos.w -- то, что уходит в буфер глубины, pos.w работает как хитрая хуйня для корректировки искажений барицентрических координат, если ты прикладывал перспективу. Вся эта хитрая матаническая магия происходит с помощью перемножений хитро устроенных матриц, для работы с которыми есть библиотеки типа glm, ну или собственные мозги.
Выход фрагментного шейдера цепляется к фреймбуферу. Точно так же, можно неявно указывать out vec4 color; и он сообразит. А может и не сообразить, и нужно будет уточнение типа layout-всякая-хуйня. Можно создавать свои фреймбуферы, и выводить туда всякую херь, но это уже развлечение не для новичков. gl_FragColor я не пробовал, ничего не могу сказать, да и не видно его: https://www.khronos.org/opengl/wiki/Built-in_Variable_(GLSL)

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

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

Шум образуется из-за стохастической (читай случайной) природы алгоритма. Он, по сути, кастует для каждого пикселя по несколько лучей, потом суммирует освещённость. Вот направления, по которым лучи отскакивают от поверхностей, и генерируются случайно.
96 653758
>>653327
по GL все есть, четко расписано
https://www.khronos.org/opengl/wiki/
dbs.png3 Кб, 291x222
97 653947
>>653758
Хахаха, нет, не верю. Это документация для тех, кто уже знает.
Один из бичей опенгла состоит в том, что он рудиментарен, в нём очень много легаси, из-за чего начинающий разработчик читает туториалы десятилетней давности, а потом 2 года доходит до шейдеров и glVertexAttribPointer. Теперь я понял, что имели ввиду все те люди.
Джва часа пытался сделать куб с затенёнными сторонами. Взял код с какого-то туториала, где данные передаются в шейдер через glVertexAttribPointer, там работает, а у меня нет. Много чего перепробовал, пока не додумался, что надо gl_Position умножить на матрицу, так как у меня 3D. Потом ещё какое-то время искал на какую именно. Понял, кстати, почему надо использовать свою систему матриц, а не депрекейтед опенгловскую. Потому что ОпенГЛ давно вырос из этого.
Генерирую нормали вручную, сначала у меня было неправильно, затенение было зеркально. Думал, теперь придётся либо помечать полигоны, в какую сторону направить нормаль, либо делать их почасовой-противчасовой, а потом детектить это, но дошло, что cross-операция сама это сделает.
А ведь свою первую игру (ещё до Индустриворкс и некоторых других игр) я выпустил использующей glBegin!
Ну всё, теперь точно пора делать шейдеры для индустриворкс, но сначала надо перевести его на мой отдельный дедикейтед графический движок.
out.mp42,4 Мб, mp4,
1200x800, 0:31
98 654343
Есть заманчивый вариант вообще убрать свет из механики игры, то есть из мира. Оставить только как графическую фичу. Всё-равно он у меня медленно обновляется. Это особенно сложно, когда длина блока 0.5 м, а не 1 м как в майнкрафте, кубическая пропорционольность.
abc.png1,5 Мб, 1200x800
99 654605
Теперь хотя бы глаза на режет.

Но очень сильно проседает FPS и я не знаю почему. Это что, такая сложная операция?
Мои шейдеры:
вертекс:

#version 150

//precision highp float;

uniform mat4 modelview;
uniform mat4 projectionmatrix;

in vec3 in_Position;
in vec3 in_Color;
in vec3 in_normal;
in vec2 in_texcoord;

out vec3 ex_Color;
out vec3 normal;
out vec2 ex_texcoord;

void main(void) {
mat4 mvp = projectionmatrixmodelview;

gl_Position = mvp
vec4(in_Position,1.0);

ex_Color = in_Color;
normal = in_normal;
ex_texcoord = in_texcoord;
}

фрагмент:

#version 150

//precision highp float;

uniform vec3 light;
uniform sampler2D tex;

in vec3 ex_Color;
in vec3 normal;
in vec2 ex_texcoord;

out vec4 FragColor;

void main(void) {
vec3 nlight = normalize(light);
float cosangle = clamp(dot(nlight,normal),0.0,1.0);

FragColor = texture(tex,ex_texcoord)vec4(ex_Color(3.0/5.0) + ex_Color(2.0/5.0)cosangle,1.0);
}

Есть ли тут какие-то очень плохие решения, из-за которых и проседает ФПС? Кроме умножения матриц.
abc.png1,5 Мб, 1200x800
99 654605
Теперь хотя бы глаза на режет.

Но очень сильно проседает FPS и я не знаю почему. Это что, такая сложная операция?
Мои шейдеры:
вертекс:

#version 150

//precision highp float;

uniform mat4 modelview;
uniform mat4 projectionmatrix;

in vec3 in_Position;
in vec3 in_Color;
in vec3 in_normal;
in vec2 in_texcoord;

out vec3 ex_Color;
out vec3 normal;
out vec2 ex_texcoord;

void main(void) {
mat4 mvp = projectionmatrixmodelview;

gl_Position = mvp
vec4(in_Position,1.0);

ex_Color = in_Color;
normal = in_normal;
ex_texcoord = in_texcoord;
}

фрагмент:

#version 150

//precision highp float;

uniform vec3 light;
uniform sampler2D tex;

in vec3 ex_Color;
in vec3 normal;
in vec2 ex_texcoord;

out vec4 FragColor;

void main(void) {
vec3 nlight = normalize(light);
float cosangle = clamp(dot(nlight,normal),0.0,1.0);

FragColor = texture(tex,ex_texcoord)vec4(ex_Color(3.0/5.0) + ex_Color(2.0/5.0)cosangle,1.0);
}

Есть ли тут какие-то очень плохие решения, из-за которых и проседает ФПС? Кроме умножения матриц.
100 654680
>>654605

>vec3 nlight = normalize(light);


Вот тут можно нормализовать перед установкой юниформы, а не в шейдере для каждого пикселя. А вообще ничего особо криминального, у тебя скорее всего не из-за шейдера тормоза. Как данные заливаешь-рисуешь, точно нет частой смены opengl стейтов?
101 654719
>>654605
С шейдерами всё норм, заделал всё, как надо.
aaahpts.png218 Кб, 1200x800
102 655224
>>654680
>>654719
Ок, значит буду искать внутреннюю проблему. На самом деле у меня очень много опенгл стейтов сменяется, так как до создания собственного графического движка, я всё рисовал напрямую опенгловскими фукнциями. По-отдельности для чанков, для мобов.

Теперь перевожу на движок. Посмотрите на дроп. Там видно, как неправильно расположены тени. Всё потому, что блок поворачивается отдельно, а нормаль, вместе с вектором света остаются теми же. Пока не понимаю, на что надо умножить какой-нибудь вектор, чтобы обработка была правильной.
Теперь посмотрите на чёрную фигуру слева. Это гоблин, я просто пока не сделал ему текстурные координаты. Если присмотреться к ногам, то видно, как сочленения вращаются вокруг своего центра, а должны вокруг точки, которую я установил. Всё потому, что в моём архаичном движке есть 3 переменные: pos, rot и scl, которые вызывают опенгловские функции в соответсвии со своим содержимым. Пора вводить матрицы и научиться, как влияют транспос, ротация и скейлинг на матрицу. Заодно не буду всякие glRotatef, glTranslatef и glScalef делать.
Что характерно, в моём движке объекты расположены древовидно. Объект имеет pos,rot,scl (в будущем матрицу), может иметь меш и свет. Чтобы отрисовать это всё, мне надо предварительно скомпилировать все света в один массив, чтобы правильно расчитать свет. Пока у меня просто солнечный свет, падающий ортогонально, но потом появятся и точечные источники света.

Я поставил себе гоал набрать 2500 покупок Индустриворкс до 30 Апреля, но пока не знаю, как это реализовать. Какой-то мраз украл стратегическое мышление из моей психики. Это был Анти Я, наверное.
103 655283
>>655224
Насчёт затенения. Если у тебя матрица поворота ортогональная (да, у кого-то бывает иначе), то нормаль повернётся той же матрицей, что и вершины.
104 655334
>>655224
Блять, да ты ещё и легаси функции используешь, пиздец. И клон у тебя унылый, разве что скиллы прокачаешь немного
105 655365
>>655224

>> Пора вводить матрицы и научиться, как влияют транспос, ротация и скейлинг на матрицу. Заодно не буду всякие glRotatef, glTranslatef и glScalef делать.


Пропускай этот этап с матрицами и сразу разбирайся с квантернионами и построением камеры на их основе.
ahhc.png708 Кб, 1200x800
106 655430
>>655365
Я же тогда новую версию Индустриворкс выпущу неизвестно когда! Я только-только в матрицами разобрался. И то, я так и не понял, как они взаимодействуют между собой и настроил алгоритм интуитивно.
>>655283

>нормаль повернётся той же матрицей, что и вершины


Я вершины через MVP матрицу, а если и нормаль буду, то направление света будет зависеть от того, куда смотрит игрок. Я ничего не понял.

-----

Новую версию надо выпустить где-то к 15 Апреля. Добавить зайца, комбат, домики гоблинов (я их пытался добавить до v0.3, но как раз тогда начались большие баги, которые я еле исправил) и много-много звуков. Без звуков всё очень плохо.
И, желательно, поддержку португальского и французского языков, чтобы немного увеличить покрытие. Ещё можно попробовать систему мануалов.
Сейчас у меня мануалы находятся в ачивках, надо её открыть и там будет описание и рецепты. Это тупо. Я придумал, как это можно сделать иным способом. Из инвентаря отдельная вкладка с мануалами+рецептами, а мануалы платные. Можно купить за блок золота, стали, за MP или вещь какую-нибудь. Мне кажется, так будет лучше.
А в будущем можно добавить фею, которая в начале игры предложит игроку сделку: она откроет несколько первых мануалов, но в замен заберёт блок золота, когда игрок впервые его скрафтит. Анимацию феи я хочу сделать подобной анимации зверька из аниме Mahou Shoujo Ikusei Keikaku. А модель в виде концентрических кубов с крылышками.
Чтобы у некоторых игроков была мотивация купить все мануалы, даже если он и так всё знает/ему не нужно, надо ввести ачивку.
Займусь этим, когда буду делать v0.4. Я пока придумал крафт бельтов — из резины, а резина из нефти, но для крафта резины из нефти надо открыть Reconfiguration, а значит, что бельты не будут доступны в начале игры, что плохо. Поэтому надо добавить блок срезиневшейся нефти, которые будут генерироваться вокруг озёр с нефтью. Кстати, ещё я подумал над идеей электричества в игре и пока сомневаюсь насчёт неё. Может и не стоит вводить, пусть всё на MP работает. Ещё ввести крыс, которых можно будет превращать в генераторы магических лучей (Life, Decomposition, etc), чтобы можно было автоматизировать сборку големов.
На самом деле это очень плохо, когда в клоне факторио с самого начала не дают ресурсов для автоматизации, потому что так играть не интересно. В Факторио игрок может с первых минут скрафтить инсертеры, печи, бельты, добывалки, а у меня нет. Игроку надо добыть сталь, сердечные кристаллы, скрафтить пьедесталы и добыть немного MP, чтобы создать голема-майнера. Думаю, при первой генерации надо рядом генерировать ресурсы для быстрого старта. Сюжет, где ГГ человек (не гоблин) упал с неба и из магического космического корабля можно сделать големов.
ahhc.png708 Кб, 1200x800
106 655430
>>655365
Я же тогда новую версию Индустриворкс выпущу неизвестно когда! Я только-только в матрицами разобрался. И то, я так и не понял, как они взаимодействуют между собой и настроил алгоритм интуитивно.
>>655283

>нормаль повернётся той же матрицей, что и вершины


Я вершины через MVP матрицу, а если и нормаль буду, то направление света будет зависеть от того, куда смотрит игрок. Я ничего не понял.

-----

Новую версию надо выпустить где-то к 15 Апреля. Добавить зайца, комбат, домики гоблинов (я их пытался добавить до v0.3, но как раз тогда начались большие баги, которые я еле исправил) и много-много звуков. Без звуков всё очень плохо.
И, желательно, поддержку португальского и французского языков, чтобы немного увеличить покрытие. Ещё можно попробовать систему мануалов.
Сейчас у меня мануалы находятся в ачивках, надо её открыть и там будет описание и рецепты. Это тупо. Я придумал, как это можно сделать иным способом. Из инвентаря отдельная вкладка с мануалами+рецептами, а мануалы платные. Можно купить за блок золота, стали, за MP или вещь какую-нибудь. Мне кажется, так будет лучше.
А в будущем можно добавить фею, которая в начале игры предложит игроку сделку: она откроет несколько первых мануалов, но в замен заберёт блок золота, когда игрок впервые его скрафтит. Анимацию феи я хочу сделать подобной анимации зверька из аниме Mahou Shoujo Ikusei Keikaku. А модель в виде концентрических кубов с крылышками.
Чтобы у некоторых игроков была мотивация купить все мануалы, даже если он и так всё знает/ему не нужно, надо ввести ачивку.
Займусь этим, когда буду делать v0.4. Я пока придумал крафт бельтов — из резины, а резина из нефти, но для крафта резины из нефти надо открыть Reconfiguration, а значит, что бельты не будут доступны в начале игры, что плохо. Поэтому надо добавить блок срезиневшейся нефти, которые будут генерироваться вокруг озёр с нефтью. Кстати, ещё я подумал над идеей электричества в игре и пока сомневаюсь насчёт неё. Может и не стоит вводить, пусть всё на MP работает. Ещё ввести крыс, которых можно будет превращать в генераторы магических лучей (Life, Decomposition, etc), чтобы можно было автоматизировать сборку големов.
На самом деле это очень плохо, когда в клоне факторио с самого начала не дают ресурсов для автоматизации, потому что так играть не интересно. В Факторио игрок может с первых минут скрафтить инсертеры, печи, бельты, добывалки, а у меня нет. Игроку надо добыть сталь, сердечные кристаллы, скрафтить пьедесталы и добыть немного MP, чтобы создать голема-майнера. Думаю, при первой генерации надо рядом генерировать ресурсы для быстрого старта. Сюжет, где ГГ человек (не гоблин) упал с неба и из магического космического корабля можно сделать големов.
107 655581
>>655365
Камера на кватернионах -- отвратительное говно. Во многих CAD-ах и подобном дерьме такая стоит, хер нормально ей покрутишь. Особенно забавляет, когда водишь мышью по окружности небольшого радиуса, а сцена вращается вокруг оси собственного вращения камеры.
108 655599
>>655430
Ты разобрался, кто такая эта MVP матрица?
1. Model -- преобразование координат модели в её собственной системе координат. Это, например, собственный поворот, перемещение, растяжение.
2. View -- преобразование координат всех объектов, такое, что камера оказывается в начале координат (по факту вычитание из всех векторов вектора позиции камеры), и поворот пространства такой, что направление взгляда, или ось камеры, называй как угодно, становится направлено вдоль оси z, причём в противоположную сторону.
3. Projection -- ну, собственно, проекция. Какое-то отображение пространства. После него, всё, что тебе хочется видеть на экране, имеет координаты по всем трём осям от -1 до 1.
Матрица Projection -- это по факту одна элементарная матрица.
Матрица View -- две, это сначала перемещение сцены (матрицей T), потом её поворот (R). Тогда View = R T. Как можно заметить, матрицы перечисляются в обратном порядке. Ну, это довольно очевидно: R T x = R (T * x), типа вектор x сначала переместится, а потом, перемещённый, домножится на R. Вообще, эту пару обычно схлопывают в одну матрицу, и называют её как-нибудь, вроде lookAt.
Смысл матрицы Model зависит от твоего воображения. Если считаешь физику, то вращаешь модель вокруг центра масс, и если он смещён, то перед поворотом применяешь перемещение. И после него, обратно. Ещё и масштабирование можно намешать. В анимациях каких-нибудь, например. Ну и можешь выдумывать какие угодно комбинации.
Нормалям похуй на перемещение, но не похуй на масштабирование и поворот. У тебя, полагаю, вариант простой -- только собственный поворот. Поэтому, матрицей, которой ты вращаешь объект, вращай и его нормали. Ну а если вмешивается масштабирование, то надо знать немного линейной алгебры или знать, откуда спиздить рабочее решение.
109 655600
>>655599
Эх, проебал звёздочки. Ну и ладно, и без них понятно.
110 655623
>>655581
Наоборот там меньше подводных, а когда чисто матрицами - там надо следить, чтобы вращение не перекрывало некоторые углы, что еще добавляет дополнительных тормозов.
111 655638
>>655623
Надо нормально задачу ставить, а не хуйню выдумывать. Какие там у тебя углы перекрываются? Нахуя тебе кватернионы, когда у тебя всего одно вращение?
ОПу с его кубачом в самый раз вот такая вот камера
https://gcc.godbolt.org/z/RBtwgQ
shah.png253 Кб, 1200x800
112 655832
>>655599
Ок, я почти так же и планировал сделать (умножать model на вектор), но были баги, потому что я не обнулял элементы матрицы, отвечающие за транслейт. Теперь удалил и результат есть в видео с зайцами:
https://www.youtube.com/watch?v=Ze-WPPJ-Oe8

recordmydesktop зачем-то взял и сделал видео 60 ФПС, даже если оно не 60 ФПС. Или это ogv так сделал. Я же хотел снять с максимумом в 60 ФПС, а не чтобы оно ускорялось! Ещё и звуки куда-то делись, неужели я попал в паузу между музыкой? гнулинксы кака
113 656043
Добавил облака вдохновившись вебемкой с гондолой.

Но надо их сделать отдельныеми, с разной скоростью и по всему небу, причём чтобы ночью они постепенно пропадали и заменялись на звёзды. Звёзды будут медленнее.
scr.png168 Кб, 1200x800
114 657074
Тем временем исправил некоторые баги с отрисовкой. Например, теперь озёра и моря имеют один полигон (на самом деле их много), а не мешанину, которая была раньше.
Сортировку прозрачных полигонов пока не сделал.
Добавил сжатие миров при помощи zlib. Сжимает раз в 10-40.
Ввёл поддержку французского языка. С помощью гугл транслейтера переводить на него легче чем на немецкий. Только я не понял, чем отличаются en и de, когда пытаюсь сделать что-то с прилагательными. С дубовыми часто предлагает en. Я заменил его на de.

Теперь эта игра похожа на трёхдолларовую (поставил, кстати, новую цену)? Или всё ещё не хватает геймплея?? Да как же, я же сделал Building режим с big set таргетом, можно много блоков за раз поставить. Разве такое не стоит 3 доллара? Правда, у меня дверей и прочей мебели нет.

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

Кстати, создание игр это прибыльное дело. Индустриворкс это как кассир-СШАнин в макдональдсе, который работает 1 час в месяц. Если создать много таких игр, то будет больше рабочих. Такое прокатило бы скорее с андроидом, чем со стимом, но для андроида мне нужен смартфон и юридический адрес, потому что на страничке приложения надо указать адрес поддержки.
115 657078
>>657074

>Разве такое не стоит 3 доллара?


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

>в который никто не будет играть


А чего им не хватает? Геймплея? Зачем им геймплей, если они могут кубики потягать? Зачем они вообще покупают игры? Почему мою игру покупают почти только за чуть меньше доллара?

>выпущу майнкрафт и стану миллионером


Мне хотя бы тысяченером. Вообще я недавно подумал, посмотрел на другие игры и решил, что Индустриворкс не имеет особого потенциала набрать 1000 ревью. 50 имеет. И этого мне достаточно с такой игры. Осталось только её доразработать, добавить геймплей и игроки подтянутся.
Тем не менее, я собираюсь сделать ещё одну игру (не Чессмейтс), которая точно станет хитом, если я сделаю хотя бы приблизительно как её задумал. Сделать я её планирую за Май.

>придерживаться РНН


Я когда-то работал и я знаю насколько это ужасно. Лучше быть бомжом, чем работать. Я этого, конечно же, не хочу, поэтому и пытаюсь заполучить деньги не работая. Жить без родителей в таком случае было бы проблематично.
117 657766
>>657216
Ты не закончишь игру. Ты же до этого толком ничего не делал?
118 657777
>>657216
Твоя упоротость компенсируется твоей упёртостью. Или наоборот: твой энтузиазм полностью нивелирует твоя упоротость. Или ещё можно сказать: твою бы энергию, да в мирных целях. Или ещё лучше: ты бы лучше деньги с таким упорством зарабатывал.
oblachka.png76 Кб, 1920x1080
119 657842
Версия v0.3.3 выпущена!
Новость можете найти тут: https://steamcommunity.com/app/1143340/allnews/#scrollTop=0

Пора перекатываться на v0.4, такой список фич подобрал:
0. Combat.
1. Выгрузка чанков (когда ушёл далеко, сжатие их данных и освобождение быстрой памяти)
2. Поворот listener (это опеналовское).
3. Физику исправить.
4. Дроп с мобов.
5. Поселения гоблинов.
6. Торч на стенах.
7. Сортировка прозрачности.
8. Трейд гоблинов.
9. MP consumption големами.
10. Больше звуков!
11. Мануалы. (чтобы появился гемплей).
12. Глубина в слотах (это уже надоело, это тупость).
13. Бельт.
14. Майнинг големом.
15. Генерация жил (чтоб голем майнил).
16. Фея старта.
17. Генерация стартовых ресурсов.
18. Двери?

Если я буду добавлять по 2 фичи в день (что более реалистично, чем 5 фич в день), то смогу даже за 5 дней до 30-го Апреля выпустить первую версию с геймплеем.
Потом пора начать прокачивать боёвку и добавлять хостайл-мобов. Я планировал ещё очень давно добавить трёх порченных — порченный гуманоид с рогами, порченный гуманоид с наростами и порченный вепрь.
Что насчёт вепрей, то надо бы и первого босса добавить — стаю вепрей. Когда чемпион стаи вепрей побеждает игрока или другого сильного врага, он становится минибоссом — сверхвепрем с нимбом. Но если такой вепрь испортится, то станет гораздо сложнее, его единый рог будет пронзать и разрывать расширяясь всех, кто станет у него на пути.
oblachka.png76 Кб, 1920x1080
119 657842
Версия v0.3.3 выпущена!
Новость можете найти тут: https://steamcommunity.com/app/1143340/allnews/#scrollTop=0

Пора перекатываться на v0.4, такой список фич подобрал:
0. Combat.
1. Выгрузка чанков (когда ушёл далеко, сжатие их данных и освобождение быстрой памяти)
2. Поворот listener (это опеналовское).
3. Физику исправить.
4. Дроп с мобов.
5. Поселения гоблинов.
6. Торч на стенах.
7. Сортировка прозрачности.
8. Трейд гоблинов.
9. MP consumption големами.
10. Больше звуков!
11. Мануалы. (чтобы появился гемплей).
12. Глубина в слотах (это уже надоело, это тупость).
13. Бельт.
14. Майнинг големом.
15. Генерация жил (чтоб голем майнил).
16. Фея старта.
17. Генерация стартовых ресурсов.
18. Двери?

Если я буду добавлять по 2 фичи в день (что более реалистично, чем 5 фич в день), то смогу даже за 5 дней до 30-го Апреля выпустить первую версию с геймплеем.
Потом пора начать прокачивать боёвку и добавлять хостайл-мобов. Я планировал ещё очень давно добавить трёх порченных — порченный гуманоид с рогами, порченный гуманоид с наростами и порченный вепрь.
Что насчёт вепрей, то надо бы и первого босса добавить — стаю вепрей. Когда чемпион стаи вепрей побеждает игрока или другого сильного врага, он становится минибоссом — сверхвепрем с нимбом. Но если такой вепрь испортится, то станет гораздо сложнее, его единый рог будет пронзать и разрывать расширяясь всех, кто станет у него на пути.
out.mp44,6 Мб, mp4,
1408x912, 0:27
120 658693
Добавил дроп с мобов. Теперь есть мясо (не важно какое, гоблины схавают) и MP-сферы.
МП-сферы это гексаэдр-октаэдр (куб-двепирамиды), которые выпадают после смерти с мобов и ищут игроков, чтобы влиться в них. Раньше МП передавалось напрямую.
В общем-то, до v0.4 как рукой подать, осталось ввести всего лишь 18 фич.
out.mp44,5 Мб, mp4,
1408x912, 0:20
121 659139
Двери!

Трансформационная матрица творит чудеса. Как только я смел не знать о ней раньше?
122 659181
>>659139
Потому что у тебя мало знаний?
shass.png552 Кб, 1400x900
123 659794
Почему мою игру покупают почти только на распродажах? Как же её сделать поинтереснее и презентабельнее? Я был бы рад поставить цену 1 доллар, если это повысит продажи хотя бы до одной в 4 дня. Но из-за предрассудков я не могу это сделать. Во-первых будет неловко перед теми, кто купил за полноценные 2 доллара, во-вторых я же написал в меню с ёрли аккцесс, что буду повышать цену по мере поступления контента, а я уже повысил. К тому же, у меня нет данных, это люди покупают игру из-за маленькой цены или из-за скидки.
Я пока заброшу Индустриворкс, так как начал пилить новый проект, который точно станет успешным. Минимум 30 отзывов, я уверен. Но с потенциалом дорасти и до 500-5000.
Пора его похоронить поскорее в фулл-транзишион. Я думаю, что не стоит вводить в геймплей важность очень больших фабрик как в факторио. Достаточно как в майнкарфте с индастрил крафтом. Поглотит 500 болванок стали для открытия заклинания и хватит.
Хотя можно попробовать устроить массовый пиар, но мои нейросети натренерованы только на определённый тип форумов.

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

>>659181
Да, к сожалению, с детства я жил в условиях, где люди думают, что не знать математику и быть "гуманитарием" это нормально. Я так не считаю, я думаю, что если человек не способен или не хочет знать математику (хотя бы на интуитивном уровне), какие-нибудь точные науки типа физики и не умеет программировать, то он болен. Хотя я уважаю чужое мнение и не пытаюсь обратить каждого на путь истинный. Даже если передо мной встанет шизофреник, который хоть немного понимает происходящее вокруг, я не буду считать его больным, пока он сам этого не признает и не захочет вылечиться.
Из-за моих условий жизни я очень плохо учил математику. Для меня в детском саду было крутым уметь считать до 999 триллионов/квинтилионов/etcлионов 999 -1лионов... 999 999 и мои сверстники просили меня доказать, на что я вежливо отказывал, объясняя причину (или нет, я уже не помню). Думаю, 4-5 лет это нормальный возраст, чтобы уметь только в базовые арифметические операции, но потом планку надо значительно повышать. В 6-7 лет школьную алгебру и геометрию, с восьми интегралы, диффуры, потом и матрицы (хотя они даже проще, так что их можно и до). Но как мы видим, люди привыкли не обучать своих детей такой математике, они её даже не знают. Чтобы выучить математику не нужно быть гением или "технарём", надо иметь подход к ребёнку. Ребёнок слушает в школе, одноклассник рассказал ему анекдот, ребёнок оставшиеся 10 лет не понимает циферки и буковки на школьной доске. Думает, что синус и косинус это высшая математика для абстрактных боёв между математиками, но ведь синус и косинус это основа всего, что он видит вокруг.
К сожалению я сейчас очень плохо знаю математику, не умею решать диффуры, не знаю для чего ещё можно использовать матрицу кроме трансформации векторов, не умею считать жидкости, не знаю что такое градиент и набла. Я уже повзрослел и надо отдельно выделять время на изучение математики. А если бы я умел вообще выделять время на действие как в какой-нибудь РПГшке, то Индустриворкс уже давно стал бы хитом.
shass.png552 Кб, 1400x900
123 659794
Почему мою игру покупают почти только на распродажах? Как же её сделать поинтереснее и презентабельнее? Я был бы рад поставить цену 1 доллар, если это повысит продажи хотя бы до одной в 4 дня. Но из-за предрассудков я не могу это сделать. Во-первых будет неловко перед теми, кто купил за полноценные 2 доллара, во-вторых я же написал в меню с ёрли аккцесс, что буду повышать цену по мере поступления контента, а я уже повысил. К тому же, у меня нет данных, это люди покупают игру из-за маленькой цены или из-за скидки.
Я пока заброшу Индустриворкс, так как начал пилить новый проект, который точно станет успешным. Минимум 30 отзывов, я уверен. Но с потенциалом дорасти и до 500-5000.
Пора его похоронить поскорее в фулл-транзишион. Я думаю, что не стоит вводить в геймплей важность очень больших фабрик как в факторио. Достаточно как в майнкарфте с индастрил крафтом. Поглотит 500 болванок стали для открытия заклинания и хватит.
Хотя можно попробовать устроить массовый пиар, но мои нейросети натренерованы только на определённый тип форумов.

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

>>659181
Да, к сожалению, с детства я жил в условиях, где люди думают, что не знать математику и быть "гуманитарием" это нормально. Я так не считаю, я думаю, что если человек не способен или не хочет знать математику (хотя бы на интуитивном уровне), какие-нибудь точные науки типа физики и не умеет программировать, то он болен. Хотя я уважаю чужое мнение и не пытаюсь обратить каждого на путь истинный. Даже если передо мной встанет шизофреник, который хоть немного понимает происходящее вокруг, я не буду считать его больным, пока он сам этого не признает и не захочет вылечиться.
Из-за моих условий жизни я очень плохо учил математику. Для меня в детском саду было крутым уметь считать до 999 триллионов/квинтилионов/etcлионов 999 -1лионов... 999 999 и мои сверстники просили меня доказать, на что я вежливо отказывал, объясняя причину (или нет, я уже не помню). Думаю, 4-5 лет это нормальный возраст, чтобы уметь только в базовые арифметические операции, но потом планку надо значительно повышать. В 6-7 лет школьную алгебру и геометрию, с восьми интегралы, диффуры, потом и матрицы (хотя они даже проще, так что их можно и до). Но как мы видим, люди привыкли не обучать своих детей такой математике, они её даже не знают. Чтобы выучить математику не нужно быть гением или "технарём", надо иметь подход к ребёнку. Ребёнок слушает в школе, одноклассник рассказал ему анекдот, ребёнок оставшиеся 10 лет не понимает циферки и буковки на школьной доске. Думает, что синус и косинус это высшая математика для абстрактных боёв между математиками, но ведь синус и косинус это основа всего, что он видит вокруг.
К сожалению я сейчас очень плохо знаю математику, не умею решать диффуры, не знаю для чего ещё можно использовать матрицу кроме трансформации векторов, не умею считать жидкости, не знаю что такое градиент и набла. Я уже повзрослел и надо отдельно выделять время на изучение математики. А если бы я умел вообще выделять время на действие как в какой-нибудь РПГшке, то Индустриворкс уже давно стал бы хитом.
124 659854
>>659794

>Как же её сделать поинтереснее и презентабельнее?


Ну... попробуй прикрутить RTX.

>Почему мою игру покупают почти только на распродажах?


Наверное подслеповатые бабульки покупают своим внукам майнкрафт по дешевке не разобравшись что это не оригинал а китайская копия. Думаю если бы ты не делал игры то занимался бы мошенничеством и продажей чудопылесосов.
125 660082
>>659854
Если я введу такую графику:
https://www.youtube.com/watch?v=eQ65rJnR4gg
https://www.youtube.com/watch?v=XDAD-X32Bm0
https://www.youtube.com/watch?v=xg4-4XXZiLY
https://www.youtube.com/watch?v=frL_wdTAwho
То игра станет успешнее?

Если посмотреть на майнкрафт с такой графикой, то стиль убивается напрочь, это рак. Но если графодрочерам нравится, то можно попробовать что-то подобное. Кроме того, в Майнкрафте размер блока 1x1x1 метров, а в Индсутриворкс 0.5x0.5x0.5.
Можно было бы вообще 3 стиля сделать: пиксельный (нынешний), сверхграфонистый (как в видео) и вид сверху в ASCII-графике и рогалик-like управлении если бы Индустриворкс был успешным

Можно, конечно, попробовать совместить полезное с хорошим: и Индустриворкс делать, и рейтрейсингу/пастрейсингу учиться.
126 660448
>>645384 (OP)
Лучше бы делол что-то больше упора на выживач и всякие крафты, как в террафирмакрафте. Сделал бы экосистему, цены бы тебе не было. Реально, все эти големы и железные дороги есть в майне, сделай что-нибудь особенное.
127 661102
>>660082
То есть ты считаешь, что пилить месяцами говноклон майнкрафта – не рак, а использовать рейтрейсинг – рак? Удивлюсь, если осилишь его со своим-то опытом. Давно бы уже стоило прикрутить PBR, какие-нибудь тени. А по трассировке в Minecraft-like движках не так уж и много материала, чтобы это было так просто реализовать.
А вообще, зашёл в тред в очередной раз проиграть с всратых кубов и посмотреть, как унижают опа, а тут совсем как-то тихо.
128 661128
>>661102
Использование текстур с высоким разрешением в майнкрафте это действительно рак. А тени и разнообразные шейдеры, карты нормалей 16x16 или чуть больше были бы нормальны. Если посмотреть в майнкрафт, то что мы видим? Мы видим кубы. А эти кубы, в свою очередь, сделаны из ещё меньших кубов вокселей (так кажется). И если поставить текстуры с высоким разрешением на кубы, то воксели пропадают, а вместе с ними и стиль. Можешь посмотреть на первое видео. Ты где-нибудь видел такие квартиры и дома? В которых для каждого куска мебели и стены включили снаппинг в 1 метр. Такие шейдеры можно использовать, чтобы снять прикольное видео, но не более. Если это майнкрафт и дают такие высококачественные текстуры, то почему сдесь нельзя создавать что-то маленькое как с помощью мода chiesel или ещё более тонкого 3D-редактора?

>пилить месяцами говноклон майнкрафта – не рак


Рак, поэтому действительно надо заканчивать с Индустриворксом. Думаю, к следующей скидке выпущу в релиз.

>А по трассировке в Minecraft-like движках не так уж и много материала, чтобы это было так просто реализовать.


Мне кажется, ты в этом направлении плохо понимаешь. Не важно в каком движке, трассировка лучей едина. И там полигоны, и там полигоны.
Скорее опенгл выучить сложнее, чем написать рейтрейсер (неоптимизированный).
129 661136
>>661128
А как же 2 фичи в день?
130 661144
>>661128

>Использование текстур с высоким разрешением в майнкрафте это действительно рак.


Никто и не говорил про хайрез. Говорили про RTX. Ты играл в вышедшую пару дней назад бету на Win10?

>Мне кажется, ты в этом направлении плохо понимаешь


Кажется. Не обязательно полигоны рейтрейсить. И тут их как раз рейтрейсить не нужно. Можно модельки игроков/мобов, но кубический мир лучше трейсить как 3d-массив клеток. Если бы я сейчас начал это реализовывать без исследований, то представил бы мир в octree и рейтрейсил через алгоритм из "A fast voxel traversal algorithm for ray tracing" J. Amanatides and A. Woo. Ты его должен знать. Тут ещё в коде есть ссылка на статью с очень похожим (или таким же) алгоритмом: https://www.shadertoy.com/view/4dX3zl
Но можно и треугольники рейтрейсить. RTX, насколько я знаю, работает только с коллекциями треугольников в BVH. Но ты же не собираешься в Vulkan лезть, так что можно и обычными компутами обойтись.
131 661177
>>661144
На однородно расположенных кубах не то, что необязательно полигоны расставлять, это вообще аутизм. Объём информации, необходимый для рейкаста, на однородной сетке ужимается до 1 бита на куб -- он или есть, или его нет. Ну, если не считать подглядывание материала. Чтобы пересечь луч со сценой, достаточно просто шагать от куба к кубу, и это оказывается охуенно быстро. Собственно, настоящие лучи завезли первым делом именно в кубач как раз по этой причине.
132 661178
>>661177
Ещё добавлю. Мне думается, что даже тупой рейкаст во фрагментном шейдере опенгла будет работать проворнее, чем отрисовка полигонов. Можно будет даже настоящие тени завезти.
133 661271
>>661177
И зачем ты это написал? Это должно моё сообщение дополнить?
>>661178
А теперь зайди в статью voxel на педивикии и посмотри на игры с движком полностью на рейкастинге. Этот подход сработает, если тебе только ориентированные воксели рисовать и нужно. А рейкаст тысяч треугольников в виде игроков/мобов/сложных структур это нихуя не быстрее растеризации. При рейкасте ещё MSAA отпадает и нужно с фильтрацией ебаться. Но зато реализация теней и АО интуитивна, да.
134 661376
>>661144

>Говорили про RTX


Не, я назвал такую графику раком в основном из-за хайрез-текстур. Против теней и отражений ничего против не имею.

>A fast voxel traversal algorithm for ray tracing


Просмотрел, интересная идея, я бы до такого не сразу задумался. Я пока только знал, что можно сначала высчитать максимальное расстояние вертекса до центра и это будет радиусом сферы, которую надо сначала проверить на рейкаст.
Но мне в голову закралась мысль, а нужно ли именно октодерево/массив кубиков, можно ли вместо них использовать сферы и/или эллипсы? Можно, например, разделить сферу с камерой в центре на сегменты и в каждый из них поставить список объектов. Или сделать просто деревья, которые характеризуются радиусами эллипсов/сфер, которые покрывают свои меши.
Что из этих вариантов быстрее? Какими математическими трюками можно проверить пересечение луча сферы и вокселя быстрее?

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

А ещё я думал над тем, что можно в полигон сувать текстурных координат больше, чем вертексов. Такие текстурные субвертексы. Они имеют своё положение на полигоне и текстурные координаты. Так можно проверить на пересечение только один раз, а определением цвета/материала уже отдельная функция займётся.

>>661136
Планы поменялись, начал делать свою следующую игру, занимался ещё другими делами.
135 661381
>>661376

>Планы поменялись, начал делать свою следующую игру, занимался ещё другими делами.


Я тебя услышал
136 661488
>>661271
Эти твои игроки, мобы и прочая шушера спокойно запекается в деревья, да так, что успеешь эти деревья собирать каждый фрейм, и успеешь 4 луча в пиксель кастануть, чтоб подсгладить. Суть не в них, а в отрисовке кубов, которые занимают большую часть экрана и памяти.
137 661528
>>661488
Ну, ящитаю, что растеризация всё равно для гпу легче. Нужно смотреть бенчмарки.
138 661531
>>661528
В общем случае -- да, легче. Но, если хочешь нарисовать хуеву гору кубов, то перед растеризацией нужно собирать меш плюс регулярно его обновлять. А для проброса лучей достаточно закидывать в буфер кубы примерно так же, как они лежат в памяти. Сама растеризация может оказаться быстрее, а может и медленнее, если геометрии очень много. Тысяча треугольников -- лучи соснут, миллионы треугольников -- растеризация соснёт.
139 661546
>>661531
А как ты предлагаешь этот буфер представить на гпу? Я про современный OpenGL мало знаю, но в ES можно было бы или в текстуру запаковать, или в атрибут, и во фрагментном шейдере рейтрейсить.
140 661606
>>661546
На староватых опенглах можно и в текстуру, будет довольно шустро, кстати. С версии 4.3 появился compute shader, там можно произвольные буфера закидывать.
out.mp4528 Кб, mp4,
1200x800, 0:33
141 661728
Хорошо, раз народ требует высококачественную графику с хайрез текстурами, то надо делать рейтрейсер. Планирую делать софтрендер с ускорением на вычислительных шейдерах.
Пока что такой результат. Пытаюсь сферу рейтрейсить, но что-то с преобразованиями матриц векторов у меня не так.
out.mp4224 Кб, mp4,
1200x800, 0:21
142 662102
Я не понимаю что не так. Уже несколько часов не могу сферу правильно рендериться.
На этом видео я двигаю сферу (камера на месте) в -z, а потом в +z, после +-x. Почему она уходит экспоненциально, когда должна стремиться к нулю? Я использую уравнение из этой статьи: https://en.wikipedia.org/wiki/Line–sphere_intersection
143 662143
>>662102
Код лучше вбрось. Лучи-то из камеры как кастуешь?
144 662205
>>662143
Немного не хотелось этого делать, так как стиль кода несёт околоконфиденциальный отпечаток, но ладно.
В SphereRaycast аргумент pos это позиция сферы. Там где считается cosangle, это я недавно добавил, чтобы светотени сделать (они, кстати, сейчас не работают).
В RaytraceToBuffer lights сейчас не используются.
145 662271
>>662205
Код пересечения сферы с лучом похож на правду. Где-то в мелочах, может, затупил.
Вот тебе минимальный пример рабочего рейкаста, сравнить со своим. Тут камера сделана без матриц, по-человечески, не надо всю сцену перемещать и поворачивать.
https://pastebin.com/pyJ5zrdk
bbv.png13 Кб, 1200x800
146 662354
>>662271
Нашёл формулу в этой статье: https://habr.com/ru/post/342510/ и у меня, внезапно, заработало.
Ещё я потом посмотрел на свой математический код и в функции dot я случайно делил результат на 3. Может быть из-за этого и не работал первый способ.
Теперь надо с освещением разобраться, у меня нормали не соответствуют действительности.
out.mp4107 Кб, mp4,
1200x800, 0:16
147 662357
Упс, а ещё у меня при умножении вектора на скаляр возвращался исходный вектор.
Теперь надо понять, почему у меня x и y перепутаны местами. Свет-то совсем в другую сторону смотрит, только по z правильно.
А хотя, я уже понял. У меня же камера отзеркалена по этим осям. Я это сделал, потому что при нажатии на клавиши у меня шар двигался в противоположные стороны. Но теперь я понял, что использовал контроллер для камеры, а для объектов надо всё с минусом.
148 662361
>>662357
В буфер цвета пишешь сверху вниз, там y-координата перевёрнута получается.
aacvv.png63 Кб, 1200x800
149 662446
>>662361
Да-да-да, я это уже давно понял. На самом деле я полученную отрендеренную картинку перегоняю в опенгл-текстуру, чтоб побырику через свою библиотеку ГУИ вывести

Я только что осознал, что мне в луч надо ещё и точку пересечения сохранять, иначе объекты не смогут быть вложены друг в друга!
Теперь пора научиться в тени и отражения.
Несмотря на то, что я использую весь процессор с помощью OpenMP, он не совсем справляется. Ещё несколько объектов и ФПС просядет до 40.
150 662538
>>662446

>Несмотря на то, что я использую весь процессор с помощью OpenMP, он не совсем справляется. Ещё несколько объектов и ФПС просядет до 40.


Видюху не пробовал использовать facepalm
151 662614
>>662538
забыл поставить знак вопроса facepalm

Конечно же не пробовал ещё. Я тут с тенями еле справляюсь, у меня архитектура самого рейтрейсера ещё перестраиваться будет. В OpenMP просто несколько строк дописал и распараллелилось. Для шейдеров надо сначала придумать как данные подготовить. Я думаю, что надо загрузить в шейдер большой массив данных типа матриц, векторов и произвести над ними операции без кондишионолов, а потом вернуть их из ГПУ обратно в процессор для дальнейших расчётов. Я сейчас пробую каждый луч отдельно рекурсивно кастить до некоторого предела, но думаю, что лучше будет сразу все лучи итеративано кастить.
Кроме того, я планировал использовать вычислительные шейдеры (пока не знаю, почему), так что старое железо может не потянуть, а мне надо, чтобы мой рейтрейсер хотя бы несложные сцены могут трейсить. Надо сначала базовый алгоритм продумать.
rzh.png53 Кб, 1200x800
152 662811
Добавил теней, но ФПС около 20 на моём мультипоточном процессоре. Хотя мне кажется, что ещё вчера было под 40, а я почти ничего в архитектуре не поменял.
Я не знаю как можно ускорить на ГПУ, что вообще мне с данными делать и как их и какие подготовить и сколько приблизительно данных рентабельно отправлять на вычисление ГПУ, чтобы пересылка самих данных не тратила слишком много.
Я решил, что буду итеративно весь массив лучей обрабатывать. То есть в первую итерацию считаю касты лучей, с ними же обрабатываю тени и освещение, а в следующую итерацию попадают отражённые/преломлённые лучи, если есть.
Можете подкинуть материалов по материалам? В блендере есть всякие металик, спекулар и кучи других. Мне надо понять, как их рендерить. Я понял, что спекулар отвечает за блики, а металик это разновидность зеркала, но про как металик влияет на цвет и про все остальные материалы я не знаю.
153 662820
>>662811
Я бы посоветовал делать сразу нормально. Для изотропных материалов, хватает трёх параметров -- albedo, roughness и metalness. Ну и всякие там карты нормалей или AO.
Теория неплохо изложена тут
https://blog.selfshadow.com/publications/s2013-shading-course/hoffman/s2013_pbs_physics_math_notes.pdf
Реализацию можно подсматривать, например, тут
https://learnopengl.com/PBR/Lighting
out.mp4417 Кб, mp4,
1200x800, 0:30
154 662862
2 шара и 10 фпс.
155 662921
>>662811
Ты ебанутый? На гпу данные идут в один конец, потом компьютом пишешь в текстуру, натягиваешь её на full-screen quad и рисуешь на экран. Синхронное чтение с памяти гпу в рантайме вообще считается плохой практикой.
156 662935
Не понимаю, зачем ты с шаров начал. Что в итоге хочешь получить?
157 662946
>>662862
Это значит только то, что ты где-то наговнякал.
158 663014
Нахуй тут этот говнобложик? Пиздуй на /pr
159 663026
>>663014
в треде о разработке игр нельзя говорить о разработке игры?

Что тут за долбоеб всех в pr гонит? то тред вулкана ему тут не понравился, теперь вот проекты выгоняет
sage 160 663027
>>663026
Разраб забил на проект и бампает каким-то говном
161 663028
>>645384 (OP)
автор, если вдруг страдаешь отсутствием идей, то кроме hytale глянь еще https://www.vintagestory.at

охуенный майнкрафт-клон, сильной стороной которого является реалестичный крафт (мне до сих пор выносит мозг в хорошем смысле то как там сделана перековка, когда надо руками выдалбливать формы для заливки, плавить металл... и не где-то в гуи менюшках, а именно руками делать...
вот лучше глянь
https://www.youtube.com/watch?v=2h9is76yNgM
162 664138
Индустриворкс умер.
Это потому, что я не геймдевер. Геймдев это просто моё хобби. Не стиль жизни. Поэтому я могу не довести до конца.
Кроме того, возьмём Chessmates, мою вторую стимовскую игру. За первую неделю она почти окупила половину вложений. Индустриворксу на такое понадобилось месяцев 5. То есть, чессмейтс успешнее ивса в 15-20 раз.
При этом, успех не зависит от времени разработки. Чессмейты делались 2 недели, а Индустриворкс почти год.
Соответсвенно, мне пора уходить от Индустриворкса и делать новую игру. Я может ещё выпущу одно обновление, так как там баг был, который не давал отрисовываться голему-крафтеру и ещё некоторым блокам.

И с рейтрейсром у меня не получилось, он слишком много жрёт. Не имею понятия как в играх от местного анона daemonic runner и ещё какой-то используется софтрендер-рейтрейсер (я же правильно понял, это оно?) Я не знаю, как оптимизировать. Придётся опять опенгл теребить.
А рейтрейсинг мне понравился. Наверное, фотон трейсинг будет ещё интереснее.

Нельзя игры делать год или больше, легко выгореть, если ты не геймдевер. Их надо доделывать хотя бы за 3 месяца. Но следующую игру я собираюсь сделать за месяц, диздок уже подготовил.
Такими темпами следующая игра окупит почти половину стимдиректа часов за 12 или быстрее. А четвёртая за 48 минут. А двеннадцатая игра сможет обрушить всю мировую экономику и установить новый мировой порядок, но если государства попросят меня не выпускать её слишком быстро, то я им дам поблажку.
163 664294
>>664138

> успех не зависит от времени разработки


в тебе уже просыпаются мысли настоящих геймдизов, так что это было не зря
15881029958350.png1,7 Мб, 960x788
164 664300
>>664138

>Нельзя игры делать год или больше, легко выгореть, если ты не геймдевер.


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

мимокрок
165 664305
>>664300
сейм
166 664325
>>664138
Год можно легко делать. Ты только движок за это время напишешь. Хотя это геймдевом трудно называть, скорее графодрочерство.
167 664424
>>664325
Большинство задумок можно реализовать на уже имеющемся инструменатрии, а не писать +1 движок
168 664489
>>664424
Неужели? Скажи это ОПу.
SmoothAnimSmal.gif104 Кб, 360x191
169 666276
ОП, ты не разбирался с тем, как сделать блочное мягкое освещение? Как в Майнкампфе.
170 666280
>>666276
Я знаю, ты модер. Хочешь проверить мой айпишник и сравнить с другими постами.
Ведь в ОП-посте есть картинка с мягким освещением.

Если нет, то напишу.
Между блоками (где образуется вогнутый угол) надо цвет вертексов поделить на коэффициент, чтобы получилась такая тень. А сглаживание света это просто рядом стоящие вертексы имеют один и тот же оттенок белого, опенгл сгладит на полигоне.
171 669220
ОП, а ты думал насчет динамического освещения? Снаряды, которые светятся. Факелы, которые всячески мерцают. Можно ли такое добавить? Знаю, что дефолтный алгоритм освещения майнкрафта на такое не рассчитан и придется каждый цикл меши чанков перестраивать, но всё же.
172 669471
>>669220
Да, думал. Факел, который бросить и он будет освещать. Светящиеся частицы.
И не надо меш чанков перестраивать, надо в шейдер передавать освещение и он всё сам просчитает.

>Можно ли такое добавить?


Нет, Индустриворкс умер.
173 669529
>>669471

>Нет, Индустриворкс умер.


Закрывайте тред
174 669639
>>669529
А вдруг он воскреснет?
175 669793
>>669471

>он всё сам просчитает


Magic?
176 683894
>>669471

>Нет, Индустриворкс умер.


Ээээ, блэд, я что, зря в тебя свои 100 рублей осенью вложил? Я жду от тебя игру, ты зачем всё бросаешь? >:(

>>661728

>Хорошо, раз народ требует высококачественную графику с хайрез текстурами


Лично я требую от тебя пофиксить баги, оптимизировать всё и начать расширение контента. Графика в таких играх вообще смысла не имеет, ты можешь хоть цветными буквами из ASCII графику выводить, лишь бы кубы можно было друг от друга отличать. В таких играх важен только геймплей и контент, на графику нормальные люди тут даже не смотрят. Вот на этот бред >>660082 дрочат только совсем поехавшие, их мизерное число от общего количества потенциальных игроков. Признаюсь, сперва мне совсем не нравились твои мультяшные текстурки, но я был не прав - играть можно и с такими текстурами, и даже с багами освещения, и вообще с очень примитивной графикой на OpenGL 1.1. Играть нельзя только когда геймплейного контента нет или баги-лаги мешают насладиться игровым процессом.

Ты хоть помнишь, что ты изначально хотел сделать? "Как факторио, только майнкрафт", да? Обе эти игры держатся на голом геймплее и контенте, которым ты так и не занялся, задрочившись бессмысленным и бесполезным рендерингом. Пойми: всем на самом деле насрать, как выглядит цветочек на газоне, всех заботит только то, что можно с этим цветочком делать и для чего его можно использовать. Дрочить на красивое изображение этого объекта будут только те, кто вообще не понимает ничего в играх, именно из-за этих недолюдей игры у нас постепенно скатываются в недожанр "интерактивное кино".

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

Пойми, графикой ты можешь только приманить игрока. Но удержать ты можешь только геймплеем - никто не будет смотреть в красивую картинку 24/7, даже если это самая красивая картинка в истории картинок. В игры нужно ИГРАТЬ, а не разглядывать их как какие-то диковинные вещицы. И ты должен предоставить игроку возможности для игры, а не для разглядывания. Но нет, ты зарылся в какие-то там рендереры, тени, рейтрейсинг и прочий бред, который игрока вообще никак не касается и к игре отношения не имеет... Ты и в следующей своей игре точно так же зароешься в бесполезных деталях, если не поймёшь этого.

Но я всё-таки рекомендую вернуться к этому проекту и довести его до ума. До ума, а не до красоты. Майнкрафт почти не менялся визуально с самого первого публичного билда, всё те же кубики с текстурками. Знаешь, как менялся майнкрафт все эти годы? В него добавляли контент, расширяли геймплей. Медленно, но верно. И это подпитывает к нему интерес (ну, ещё тысячи модов, но это уже отдельная тема; кстати, ты вроде собирался мод апи сделать, не?).

Очень грустно видеть, как погибают такие проекты...
176 683894
>>669471

>Нет, Индустриворкс умер.


Ээээ, блэд, я что, зря в тебя свои 100 рублей осенью вложил? Я жду от тебя игру, ты зачем всё бросаешь? >:(

>>661728

>Хорошо, раз народ требует высококачественную графику с хайрез текстурами


Лично я требую от тебя пофиксить баги, оптимизировать всё и начать расширение контента. Графика в таких играх вообще смысла не имеет, ты можешь хоть цветными буквами из ASCII графику выводить, лишь бы кубы можно было друг от друга отличать. В таких играх важен только геймплей и контент, на графику нормальные люди тут даже не смотрят. Вот на этот бред >>660082 дрочат только совсем поехавшие, их мизерное число от общего количества потенциальных игроков. Признаюсь, сперва мне совсем не нравились твои мультяшные текстурки, но я был не прав - играть можно и с такими текстурами, и даже с багами освещения, и вообще с очень примитивной графикой на OpenGL 1.1. Играть нельзя только когда геймплейного контента нет или баги-лаги мешают насладиться игровым процессом.

Ты хоть помнишь, что ты изначально хотел сделать? "Как факторио, только майнкрафт", да? Обе эти игры держатся на голом геймплее и контенте, которым ты так и не занялся, задрочившись бессмысленным и бесполезным рендерингом. Пойми: всем на самом деле насрать, как выглядит цветочек на газоне, всех заботит только то, что можно с этим цветочком делать и для чего его можно использовать. Дрочить на красивое изображение этого объекта будут только те, кто вообще не понимает ничего в играх, именно из-за этих недолюдей игры у нас постепенно скатываются в недожанр "интерактивное кино".

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

Пойми, графикой ты можешь только приманить игрока. Но удержать ты можешь только геймплеем - никто не будет смотреть в красивую картинку 24/7, даже если это самая красивая картинка в истории картинок. В игры нужно ИГРАТЬ, а не разглядывать их как какие-то диковинные вещицы. И ты должен предоставить игроку возможности для игры, а не для разглядывания. Но нет, ты зарылся в какие-то там рендереры, тени, рейтрейсинг и прочий бред, который игрока вообще никак не касается и к игре отношения не имеет... Ты и в следующей своей игре точно так же зароешься в бесполезных деталях, если не поймёшь этого.

Но я всё-таки рекомендую вернуться к этому проекту и довести его до ума. До ума, а не до красоты. Майнкрафт почти не менялся визуально с самого первого публичного билда, всё те же кубики с текстурками. Знаешь, как менялся майнкрафт все эти годы? В него добавляли контент, расширяли геймплей. Медленно, но верно. И это подпитывает к нему интерес (ну, ещё тысячи модов, но это уже отдельная тема; кстати, ты вроде собирался мод апи сделать, не?).

Очень грустно видеть, как погибают такие проекты...
177 684357
>>683894

>Ээээ, блэд, я что, зря в тебя свои 100 рублей осенью вложил?


Не зря. ОП этого треда пилит другой игорь, 2д-платформер с рейтрейсингом и волшебным дилдаком дробовиком. Просто он осознал что не вытягивает что-то большее.
178 684398
>>684357

>ОП этого треда пилит другой игорь, 2д-платформер с рейтрейсингом и волшебным дилдаком дробовиком.


Где об этом можно узнать? Или ты и есть ОП?

>2д-платформер


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

>Просто он осознал что не вытягивает что-то большее.


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

Мне вот интересно, если бы исходные коды были бы открытыми, смог бы я разобраться в них?.. Хотя мне мотивации не хватит копаться и править в чужом коде, мне бы своё что-нибудь сделать...
179 700366
>>683894
Возможно, через некоторое время я вернусь к Индустриворксу.
Скоро выходит новый си-подобный язык программирования Лайси с революционной инфраструктурой. Там должно быть легко как в питоне (даже ещё легче) создать графическое приложение, а вычисления даже быстрее чем в си за счёт параллелизации или чего-то такого.

Всё-таки Индустриворкс ещё не вышел в релиз и у меня есть шансы раскрутить его только за счёт стима. Но если делать снова Индустриворкс, то я планирую его переписать с C/C++ на Laisi, отказаться от механики факторио и реалистичной жидкости.
Я думаю, что лучше взять и занять нишу очень долгого задротского крафта как в GregTech.
Думаю, сюжет таков: сверхинженер попал в другой мир и хочет вернуться обратно зачем?. Для этого ему придётся использовать ресурсы нынешнего богатого мира, но мир это большой летающий остров, разделённый на несколько биомов-сторон (чтобы генерация была не слишком сложная). Допустим, по середине лес, на севере начинается тайга, на юге пустыня, а если отойти на несколько километров, то по диагонали начнётся новый биом (чтобы мотивировать игроков путешествовать далеко и крафтить транспорт). Суть в том, что надо сделать как бы реалистичные крафты, чтобы начиналось как Террафирмакрафт, а заканчивалось как ИндастрилКрафт. То есть сначала, игроку надо выуживать песчинки руды из реки, сделать металлические инструменты, чтобы прокопать дыру к жиле какой-нибудь.
И каждый биом содержит свои природные ископаемые. Например, золото добывать в каньоно-подобном биоме, а железо в лесном.
И крафт ресурсов должен быть очень большим. Например, чтобы сделать сталь, нужна железная руда, древесный уголь/каменноугольный кокс и флюс какой-нибудь. А для пороха придётся либо идти искать калийную селитру (для чёрного пороха), либо азотная кислота (для белого пороха).
А чтобы синтезировать азотную кислоту, надо сначала найти платину и всё в таком духе.

При этом геймплей должен быть хоть и задротским, но быстрым и простым. Рецепты должны быть известны все, которые доступны на данный момент. А ручной крафт не требовать времени. И какое-нибудь чутьё на жилы, чтобы не искать среди тонн ненужных камней ничего.
И надо, чтобы была оружейная ветка технологий и враги, которые иногда осаждают базу или типа того.
Не знаю, продолжу я этот проект или нет, надо посмотреть...
179 700366
>>683894
Возможно, через некоторое время я вернусь к Индустриворксу.
Скоро выходит новый си-подобный язык программирования Лайси с революционной инфраструктурой. Там должно быть легко как в питоне (даже ещё легче) создать графическое приложение, а вычисления даже быстрее чем в си за счёт параллелизации или чего-то такого.

Всё-таки Индустриворкс ещё не вышел в релиз и у меня есть шансы раскрутить его только за счёт стима. Но если делать снова Индустриворкс, то я планирую его переписать с C/C++ на Laisi, отказаться от механики факторио и реалистичной жидкости.
Я думаю, что лучше взять и занять нишу очень долгого задротского крафта как в GregTech.
Думаю, сюжет таков: сверхинженер попал в другой мир и хочет вернуться обратно зачем?. Для этого ему придётся использовать ресурсы нынешнего богатого мира, но мир это большой летающий остров, разделённый на несколько биомов-сторон (чтобы генерация была не слишком сложная). Допустим, по середине лес, на севере начинается тайга, на юге пустыня, а если отойти на несколько километров, то по диагонали начнётся новый биом (чтобы мотивировать игроков путешествовать далеко и крафтить транспорт). Суть в том, что надо сделать как бы реалистичные крафты, чтобы начиналось как Террафирмакрафт, а заканчивалось как ИндастрилКрафт. То есть сначала, игроку надо выуживать песчинки руды из реки, сделать металлические инструменты, чтобы прокопать дыру к жиле какой-нибудь.
И каждый биом содержит свои природные ископаемые. Например, золото добывать в каньоно-подобном биоме, а железо в лесном.
И крафт ресурсов должен быть очень большим. Например, чтобы сделать сталь, нужна железная руда, древесный уголь/каменноугольный кокс и флюс какой-нибудь. А для пороха придётся либо идти искать калийную селитру (для чёрного пороха), либо азотная кислота (для белого пороха).
А чтобы синтезировать азотную кислоту, надо сначала найти платину и всё в таком духе.

При этом геймплей должен быть хоть и задротским, но быстрым и простым. Рецепты должны быть известны все, которые доступны на данный момент. А ручной крафт не требовать времени. И какое-нибудь чутьё на жилы, чтобы не искать среди тонн ненужных камней ничего.
И надо, чтобы была оружейная ветка технологий и враги, которые иногда осаждают базу или типа того.
Не знаю, продолжу я этот проект или нет, надо посмотреть...
image.png142 Кб, 259x194
180 700382
>>700366

>Скоро выходит новый си-подобный язык программирования Лайси


Не забудь свою ОС написать.
181 701518
кайф
out.mp414,8 Мб, mp4,
1200x800, 0:09
182 706966
Тут показано, как собираюсь делить биомы. Их 5 штук. В центре лес. по краям бездеревьевые биомы. И всё окружено ледяной стеной.

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

Но прежде чем заниматься Ивсом, мне надо обновить Чессмейтс. Хорошо бы с ним успеть до начала осенних распродаж, а с Индустриворксом до начала зимних распродаж.
aper.png817 Кб, 1400x900
183 738796
out2.mp410,5 Мб, mp4,
690x440, 0:26
184 739081
Частицы.
185 739284
Как ты смеешь это еще и продавать?
1618777718760.jpg37 Кб, 512x720
186 739285
>>739284
Инстант подрыв безыгорки, наес.
187 739288
>>739284
Это буквальный первый хеллоу ворлд опа-школьника на голом Опен ГЛ. В прошлом треде он сказал что он не может поддерживать этот архитектурный пиздец и закрывает проект, но жажда наживы взяла верх, видимо.
out2.mp411,5 Мб, mp4,
690x440, 0:39
188 739316
Новая механика срыва стволов.
Модельки трёх основных животных.
189 739317
>>739316
Поясни, почему ты вернул проект к жизни, плиз.
190 739321
>>739317
Наверное ему интересно этим заниматься.

Поэтому почему бы нет.
out2.mp45,9 Мб, mp4,
690x440, 0:30
191 739529
>>739317
Сложный вопрос, но интересный, он стал одним из толчков.
Всё случилось несколько месяцев назад. Я забыл что-то важное, непонятно что. Затем пошёл ряд стрессовых ситуаций. Или наоборот. В любом случае, эти ситуации наложились совсем недавно и я сбежал в виртуальный мир, в ивс. Но теперь я начинаю понимать, что случилось. Окружение сломило меня и я начал впитывать всю гадость бытия этого окружения, сам того не замечая. Попутно один комплекс безумия в моей психике съедал эмоции и блокировал+генерировал мысли. От него я уже начал постепенно избавляться, но он всё ещё проявляется.
И Индустриворкс стал для меня местом, где я могу поделать что-то, а главное, что я почти не ограничен. Хотя ещё совсем недавно он быстро пошёл бы на отторжение.
Но теперь, то что я забыл, я, наверное, начинаю вспоминать. И сегодня я почуял немного отторжения индустриворкса. Ведь я даже не геймдевер. Эти игры это просто была попытка заработать денег, которая оказалась в 40 раз меньше ожидаемого. Знаете, можно использовать 2 "парадигмы" мышления. Первая гласит, что есть стандарты и ресурсы должны соответствовать этим стандартам, иначе эти ресурсы очень нестабильные и их следует использовать как вторсырьё. А стандарты нужны для дальнейшего планирования и чтобы перейти некоторые рамки для безопасного взаимодействия с миром. И ещё суть в том, что эти ресурсы дают более-менее предсказуемый результат с численными коэффициентами. Этой парадигмой я и пользуюсь.
А другая парадигма гласит, что есть те ресурсы, которые окружают тебя и следует их использовать сейчас и что ресурсы связаны между собой довольно непредсказумым способом, но зато не нужно тратить много времени на то, чтобы начать ими пользоваться. Наверное, таким образом и получают власть всякие политики-бандиты, грабящие целые страны. Но этой же парадигмой пользуются и всякие преступники или террористы, которых в конце убивают бомбой в кафе. В общем странная вещь, но ею пользуются, наверное, большинство.
Если бы моё окружение было действительно хорошим, то мне не пришлось бы делать игры. Да и вообще, разбираться со всякими низкоуровневыми узкоспециализированными библиотеками типа ГУИ или рендеринга сцен. Прогал бы на питончике ради скорости разработки, изредка пописывая быстрые функции на Си или подобном ЯП. Но наследие имеет слишком большое значение. Это вам не майнкрафт-сервер, где игрок и игрочка поженились, а их новорегистрированный сын пошёл себе новый дом строить из блоков.

Думаю, скоро я излечусь, мой стержень примет прежнюю форму и тогда я заброшу Индустриворкс с шансом около 70%. Ивсом можно было бы заниматься в качестве развлекаловки, всё равно почти все медиаразвлечения уже пропали. Но, серьёзно, кому будет интересно часами переливать бойлерблейт из пустого в порожнее? В последнее время в основном ивс я и делал, хотя есть более интересные и полезные проекты + работа. С другой стороны, тут всё ясно. Более интересные и полезные проекты для меня новы и поэтому очень легко ошибится. А новый Индустриворкс написан на C++ и тут ошибок уже почти нет. Даже если найдётся очень странный баг, то полчаса-час максимум на него и он заотсутствен.

Такой лобик N-летный здоровый вырос, а занимаюсь игрушками всякими.
out2.mp45,9 Мб, mp4,
690x440, 0:30
191 739529
>>739317
Сложный вопрос, но интересный, он стал одним из толчков.
Всё случилось несколько месяцев назад. Я забыл что-то важное, непонятно что. Затем пошёл ряд стрессовых ситуаций. Или наоборот. В любом случае, эти ситуации наложились совсем недавно и я сбежал в виртуальный мир, в ивс. Но теперь я начинаю понимать, что случилось. Окружение сломило меня и я начал впитывать всю гадость бытия этого окружения, сам того не замечая. Попутно один комплекс безумия в моей психике съедал эмоции и блокировал+генерировал мысли. От него я уже начал постепенно избавляться, но он всё ещё проявляется.
И Индустриворкс стал для меня местом, где я могу поделать что-то, а главное, что я почти не ограничен. Хотя ещё совсем недавно он быстро пошёл бы на отторжение.
Но теперь, то что я забыл, я, наверное, начинаю вспоминать. И сегодня я почуял немного отторжения индустриворкса. Ведь я даже не геймдевер. Эти игры это просто была попытка заработать денег, которая оказалась в 40 раз меньше ожидаемого. Знаете, можно использовать 2 "парадигмы" мышления. Первая гласит, что есть стандарты и ресурсы должны соответствовать этим стандартам, иначе эти ресурсы очень нестабильные и их следует использовать как вторсырьё. А стандарты нужны для дальнейшего планирования и чтобы перейти некоторые рамки для безопасного взаимодействия с миром. И ещё суть в том, что эти ресурсы дают более-менее предсказуемый результат с численными коэффициентами. Этой парадигмой я и пользуюсь.
А другая парадигма гласит, что есть те ресурсы, которые окружают тебя и следует их использовать сейчас и что ресурсы связаны между собой довольно непредсказумым способом, но зато не нужно тратить много времени на то, чтобы начать ими пользоваться. Наверное, таким образом и получают власть всякие политики-бандиты, грабящие целые страны. Но этой же парадигмой пользуются и всякие преступники или террористы, которых в конце убивают бомбой в кафе. В общем странная вещь, но ею пользуются, наверное, большинство.
Если бы моё окружение было действительно хорошим, то мне не пришлось бы делать игры. Да и вообще, разбираться со всякими низкоуровневыми узкоспециализированными библиотеками типа ГУИ или рендеринга сцен. Прогал бы на питончике ради скорости разработки, изредка пописывая быстрые функции на Си или подобном ЯП. Но наследие имеет слишком большое значение. Это вам не майнкрафт-сервер, где игрок и игрочка поженились, а их новорегистрированный сын пошёл себе новый дом строить из блоков.

Думаю, скоро я излечусь, мой стержень примет прежнюю форму и тогда я заброшу Индустриворкс с шансом около 70%. Ивсом можно было бы заниматься в качестве развлекаловки, всё равно почти все медиаразвлечения уже пропали. Но, серьёзно, кому будет интересно часами переливать бойлерблейт из пустого в порожнее? В последнее время в основном ивс я и делал, хотя есть более интересные и полезные проекты + работа. С другой стороны, тут всё ясно. Более интересные и полезные проекты для меня новы и поэтому очень легко ошибится. А новый Индустриворкс написан на C++ и тут ошибок уже почти нет. Даже если найдётся очень странный баг, то полчаса-час максимум на него и он заотсутствен.

Такой лобик N-летный здоровый вырос, а занимаюсь игрушками всякими.
16186164614660.webm230 Кб, webm,
1280x720, 0:02
192 739533
>>739285
У меня такие игоры, что тебе и не снились!
out2.mp413,1 Мб, mp4,
690x440, 0:42
193 739762
Водичка и inmats!
194 739775
>>739529
Ебать, гд полон убегающих от себя анонов, ковыряющихся в пет-проектах просто ради умиротворения во время ковыряния.

мимо такой-же
sage 195 739783
>>739529
Чё ты тут понаписал, мне страшно это читать.
196 739913
Не понимаю зачем ОП тратит время на какую-то хуету. Лучше бы учил язык java и написал крупный мод к тому же minecraft

Крупные и популярные мододелы по майну отлично зарабатывают.
out2.mp413,2 Мб, mp4,
920x586, 0:22
197 739990
>>739913
Ты сумашедший или тролль? Написал такую чушь, что просто неуместно.

Впрочем, в одном ты прав. Ивс это аддиктив, а не аттрактив, пора завязывать с ним.
11.png4,5 Мб, 1920x1080
198 740005
>>739990
Что происходит на видео?
199 740025
>>740005
проект распидорасило
200 740486
>>645384 (OP)
В стиме чтобы выложить в ирли аксес бабки платить нужно? Чем ирли аксес от релиза отличается физически? В рекламе там мож от стима или ещё что, вывешивают в топы какие.
201 740496
>>740486
Да, за каждый апп по 100 баксов.

>Чем ирли аксес от релиза отличается физически?


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

Ну и для ьорли акцесс тебе придётся для покупателей расписать 5 ответов на вопросы, почему всё-таки ьорли, когда выйдет и каковы будут отличия.
202 740510
>>740496
А доплачивать после ирли аксеса 100 бачей не надо для полноценного релиза?
203 751416
оп поехавший, создатель языков и компелеторов, любитель бельтов и нипонимающий что и как происходит, ничего не заканчивающий, типикал анон с двачей
out1.mp45,8 Мб, mp4,
690x440, 0:18
204 770994
Недавно добавил крутящуюся дверь (в своей дев-версии), но это не значит что я собираюсь продолжить разрабатывать Ивс.
Просто программирование на C++ это такой boring! Язык отталкивает своим синтаксисом, из-за чего не хочется его изучать. Не хочется изучать — не могу использовать классы, а библиотеки пишутся с трудом.
Вот и приходится ждать когда выйдет новый ЯП, чьё название я выше вроде уже писал. Судя по поведению автора, вероятность его выхода в этом году выше 70%.

Если бы я был совместимым с Юнити или Годотом или каким-нибудь другим движком, то можно было бы не заморачиваться и просто делать игры (хотя 2D-шные игры я и так могу просто делать, мощностей хватает...).
205 771485
Привет, анон, я вебмакака. Хотел бы увлекаться непрофессионально созданием игр, просто ради забавы, этот проект с открытым кодом? Или прячешь?
На каком языке пишешь? Если открытый, можно ссылку на гитхаб?
206 771527
>>771485

>непрофессионально созданием игр, просто ради забавы


Тогда бери Годот, Юнити или вообще УЕЧП. А ещё лучше в блендере скриптами модельки двигай.
Код закрыт, написано на C++, но мне стыдно показывать мой сипипишный код, потому что я не принимаю C++. Чтобы писать на C/C++ надо писать огромные куски бойлерблейта 3/7 всего времени разработки, а ещё у меня единые хедеры для всех файлов кода.
207 771529
>>771527
Code-first подход это совсем другое.

>>771485
Попробуй Minetest https://github.com/minetest/minetest
Это как у ОПа, только опенсорс.
208 771553
>>771527

>Годот, Юнити или вообще УЕЧП.


На чем лучше vr игру делать?

>>771529

>Попробуй Minetest


Ок, гляну.
209 771606
>>771553

>На чем лучше vr игру делать?


Очевидный UE
210 771965
>>645384 (OP)

>EA: Industriworks is currently a very rough Minecraft clone, without sound or any of the mechanics that made Minecraft fun. I don't think it's worth paying for right now, but it might improve. 2/10

211 771966
100$ хоть отбились или таки пососал у Габена?
round.png88x47
212 773255
>>771966
Как ты смеешь использовать идиомы/фразеологизмы, в прямом смысле обозначающие сексуальные действия, в переносном для обозначения доминирования? Ты в курсе что это просходит, вроде, от тюремной культуры? Когда в гулагах посмешивали простой народ с преступниками или что там было, я не учил историю. Хотя в других странах это тоже есть...
В любом случае я запрещаю тебе так делать, сексуальные отношения должны обозначать любовь или просто социальное развлечение между двумя или больше индвидами. Кто не согласен — пусть пойдёт побьётся головой об стену только не сильно и если стены/полы холодные, то не садитесь на них

Если по вопросу, то действительно, не смог я за всё это время даже окупить вложения со своих игр. Отметка около -60 долларов, если за 2 игры я вложил 200. При этом с Чессмейтов я получил гораздо больше в итоге (так-то это полузаконченная игра, когда Ивс совсем незакончен).

Таков фейт (fate) движкописателя, особенно, если он и сам не особо горит этим. Если бы в далёкие времена я выбрал Годот (Юнити не могу, она проприетарная), то сейчас у меня могло бы быть очень много игр. После Ивса и Чессмейтов я много раз пытался сделать ещё одну игру, но бросал в начале. И сейчас я делаю новую игру. Вот недавно несколько часов вводил в свой движок кейфреймовые анимации, а использовал бы готовый движок, смог бы реализовать нужное мне за пару минут.
И когда-то я действительно пытался сделать игру на Годоте, но не смог, там было что-то не так с пиксельным снаппингом или масштабом и я бросил это дело. Но если бы разобрался, то мог бы на раз два все игры делать и портировать под 5пять-6 платформ. Я мог бы свыкнуться с ним, но если бы у меня была нужда каждый раз снова обращаться к нему. С Блендером в начале я тоже не дружил, но прошло время и теперь я нормально к нему отношусь, хороший софт.
Теперь же я не смогу использовать ни Годот, ни какой-либо другой движок, так как у меня уже пишутся графический движок и ГУИ-библиотека, если я не буду писать с использованием их, то они не будут развиваться.
Вот такие дела. Но, может быть, со временем я перейду некоторый программерский предел и вся эта возня станет для меня пылью, а делать игру на своих движках будет гораздо легче чем на другом. Но неизвестно когда это произойдёт, к тому времени я могу уже совсем не хотеть делать игры. А сейчас я хотел бы штук 3-5 сделать, для которых уже продумана основная идея и щепотка диздока.
round.png88x47
212 773255
>>771966
Как ты смеешь использовать идиомы/фразеологизмы, в прямом смысле обозначающие сексуальные действия, в переносном для обозначения доминирования? Ты в курсе что это просходит, вроде, от тюремной культуры? Когда в гулагах посмешивали простой народ с преступниками или что там было, я не учил историю. Хотя в других странах это тоже есть...
В любом случае я запрещаю тебе так делать, сексуальные отношения должны обозначать любовь или просто социальное развлечение между двумя или больше индвидами. Кто не согласен — пусть пойдёт побьётся головой об стену только не сильно и если стены/полы холодные, то не садитесь на них

Если по вопросу, то действительно, не смог я за всё это время даже окупить вложения со своих игр. Отметка около -60 долларов, если за 2 игры я вложил 200. При этом с Чессмейтов я получил гораздо больше в итоге (так-то это полузаконченная игра, когда Ивс совсем незакончен).

Таков фейт (fate) движкописателя, особенно, если он и сам не особо горит этим. Если бы в далёкие времена я выбрал Годот (Юнити не могу, она проприетарная), то сейчас у меня могло бы быть очень много игр. После Ивса и Чессмейтов я много раз пытался сделать ещё одну игру, но бросал в начале. И сейчас я делаю новую игру. Вот недавно несколько часов вводил в свой движок кейфреймовые анимации, а использовал бы готовый движок, смог бы реализовать нужное мне за пару минут.
И когда-то я действительно пытался сделать игру на Годоте, но не смог, там было что-то не так с пиксельным снаппингом или масштабом и я бросил это дело. Но если бы разобрался, то мог бы на раз два все игры делать и портировать под 5пять-6 платформ. Я мог бы свыкнуться с ним, но если бы у меня была нужда каждый раз снова обращаться к нему. С Блендером в начале я тоже не дружил, но прошло время и теперь я нормально к нему отношусь, хороший софт.
Теперь же я не смогу использовать ни Годот, ни какой-либо другой движок, так как у меня уже пишутся графический движок и ГУИ-библиотека, если я не буду писать с использованием их, то они не будут развиваться.
Вот такие дела. Но, может быть, со временем я перейду некоторый программерский предел и вся эта возня станет для меня пылью, а делать игру на своих движках будет гораздо легче чем на другом. Но неизвестно когда это произойдёт, к тому времени я могу уже совсем не хотеть делать игры. А сейчас я хотел бы штук 3-5 сделать, для которых уже продумана основная идея и щепотка диздока.
213 774343
>>773255
Интересное у тебя хобби, слежу за тредом, пиши почаще что-нибудь интересное.
Мимо местная вебмакака.
214 774435
Ух ты, тред ещё живой и анон как-то шевелится. Жаль, что не стал доделывать игру, сожалею, что пришлось столкнуться с какими-то жизненными трудностями. Если у тебя какие-то проблемы с психикой из-за стресса, обратись к психиатру/психотерапевту, нельзя пускать на самотёк, потом может стать хуже.

>>773255

>Теперь же я не смогу использовать ни Годот, ни какой-либо другой движок, так как у меня уже пишутся графический движок и ГУИ-библиотека, если я не буду писать с использованием их, то они не будут развиваться.


Ну вот ты сам ведь понимаешь, что если бы взялся за изучение Годо, сейчас бы уже несколько игр были доделаны или как минимум было бы легче делать новые игры. Тем более что GDScript очень похож на твой любимый питон. Что тебе мешает начать изучать Годо сейчас? Твой проект "графического движка" и "гуи-библиотеки"? А кому они кроме тебя нужны? Да и нужны ли они тебе самому? Послушай, в мире существуют тысячи языков программирования, тысячи библиотек, тысячи "движков". Некоторые из них крайне популярны, тогда как большинство остаются никому не известными. Что хорошего в том, что ты напишешь очередную никому не нужную библиотеку или движок? Окей, ты уже пишешь, но никогда не поздно остановиться и переключиться на что-то более полезное. Вот ты сейчас свой собственный ГУИ сочиняешь, а в Годо тебе было бы достаточно кинуть готовые компоненты в сцену и всё сразу заработало бы.

Самое главное тут что? Новый специализированный движок имеет смысл делать только тогда, когда ни один из существующих и доступных не подходит к задачам, которые нужно решить. К примеру, некоторые игры требуют специализированных оптимизаций, без которых они будут дико тормозить - в частности это клоны майнкрафта, "кубопесочницы". Без оптимизаций игра с кубиками будет ужасно тормозить и расстраивать игрока. Но встроенными средствами того же Годо эти оптимизации выполнить невозможно, нужно спускаться на уровень C++ и писать специальный модуль движка, чтобы создать специальный билд Годо, предназначенный для воксельных миров. Кстати, есть такой проект на гитхабе (см. ниже), но сейчас не об этом.

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

Что же касается "индустриворкс", тут, к сожалению, видно, что ты просто не вытягиваешь все необходимые оптимизации. Самодельный специализированный движок может быть производительнее универсального только если ты знаешь, как реализовать специализированные оптимизации. В противном случае твой движок всегда будет проигрывать уже существующим универсальным. Возможно, стоит попробовать переписать индустриворкс на Годо с использованием воксельного модуля: https://github.com/Zylann/godot_voxel

И знаешь что? Я ведь тоже бывший движкопися. Тоже делал много попыток написать свой движок с нуля (на Object Pascal/Free Pascal), частично эти попытки были даже успешными - в смысле, мог выводить на экран 3Д модели и двигаться среди них, даже были кубики как у тебя с коллизиями. Но я слабее тебя в этом плане, я гораздо быстрее сдавался и забрасывал свои проекты. Постепенно начал пробовать готовые движки - в частности, Юнити и Годо. И сейчас вполне успешно ковыряюсь в Годо, кое-что получается и я радуюсь этому, как никогда не радовался с собственным движком, потому что теперь мои поделки похожи на игры. Конечно, у меня и на готовом движке куча проблем, но по крайней мере я не забиваю голову низкоуровневыми проблемами и занимаюсь высокоуровневыми проблемами конкретных игр. В общем, я осознал и признал, что для моих задач нужен готовый движок, а попытки написать свой движок - бесполезны и уводят меня от моей реальной цели (сделать игру). Если раньше я часто фантазировал о том, как буду хвастаться "я сделал игру с нуля на собственном движке без использования сторонних библиотек", то теперь я признаю, что никогда не смогу сделать игру с нуля без готового движка. Я не супергерой, который может писать десятки тысяч строк кода каждый день и не страдать выгоранием, потерей мотивации и депрессией из-за того что разрабатывает бесполезную и никому не нужную хрень. Я просто хочу сделать игру, хотя бы для самого себя. И если для этого нужно отказаться от принципа "только свои велосипеды", я вынужден от него отказаться, иначе никакой игры не будет.

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

>сексуальные отношения должны обозначать любовь или просто социальное развлечение между двумя или больше индвидами


Природа с тобой не согласна, у других приматов сексуальные отношения имеют сильную связь с социальным статусом в стае. А ведь человек - это в первую очередь животное, со всеми инстинктами и животными побуждениями, и мы не можем полностью избавиться от животного внутри нас - без этого животного у нас не будет никакого желания или смысла жить. Так что не стоит обижаться на тех, кто слишком явно проявляет свои животные инстинкты - просто не обращай на них внимания, их не исправить, ведь проблема на самом фундаментальном уровне, проблема в природе человека как животного.
214 774435
Ух ты, тред ещё живой и анон как-то шевелится. Жаль, что не стал доделывать игру, сожалею, что пришлось столкнуться с какими-то жизненными трудностями. Если у тебя какие-то проблемы с психикой из-за стресса, обратись к психиатру/психотерапевту, нельзя пускать на самотёк, потом может стать хуже.

>>773255

>Теперь же я не смогу использовать ни Годот, ни какой-либо другой движок, так как у меня уже пишутся графический движок и ГУИ-библиотека, если я не буду писать с использованием их, то они не будут развиваться.


Ну вот ты сам ведь понимаешь, что если бы взялся за изучение Годо, сейчас бы уже несколько игр были доделаны или как минимум было бы легче делать новые игры. Тем более что GDScript очень похож на твой любимый питон. Что тебе мешает начать изучать Годо сейчас? Твой проект "графического движка" и "гуи-библиотеки"? А кому они кроме тебя нужны? Да и нужны ли они тебе самому? Послушай, в мире существуют тысячи языков программирования, тысячи библиотек, тысячи "движков". Некоторые из них крайне популярны, тогда как большинство остаются никому не известными. Что хорошего в том, что ты напишешь очередную никому не нужную библиотеку или движок? Окей, ты уже пишешь, но никогда не поздно остановиться и переключиться на что-то более полезное. Вот ты сейчас свой собственный ГУИ сочиняешь, а в Годо тебе было бы достаточно кинуть готовые компоненты в сцену и всё сразу заработало бы.

Самое главное тут что? Новый специализированный движок имеет смысл делать только тогда, когда ни один из существующих и доступных не подходит к задачам, которые нужно решить. К примеру, некоторые игры требуют специализированных оптимизаций, без которых они будут дико тормозить - в частности это клоны майнкрафта, "кубопесочницы". Без оптимизаций игра с кубиками будет ужасно тормозить и расстраивать игрока. Но встроенными средствами того же Годо эти оптимизации выполнить невозможно, нужно спускаться на уровень C++ и писать специальный модуль движка, чтобы создать специальный билд Годо, предназначенный для воксельных миров. Кстати, есть такой проект на гитхабе (см. ниже), но сейчас не об этом.

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

Что же касается "индустриворкс", тут, к сожалению, видно, что ты просто не вытягиваешь все необходимые оптимизации. Самодельный специализированный движок может быть производительнее универсального только если ты знаешь, как реализовать специализированные оптимизации. В противном случае твой движок всегда будет проигрывать уже существующим универсальным. Возможно, стоит попробовать переписать индустриворкс на Годо с использованием воксельного модуля: https://github.com/Zylann/godot_voxel

И знаешь что? Я ведь тоже бывший движкопися. Тоже делал много попыток написать свой движок с нуля (на Object Pascal/Free Pascal), частично эти попытки были даже успешными - в смысле, мог выводить на экран 3Д модели и двигаться среди них, даже были кубики как у тебя с коллизиями. Но я слабее тебя в этом плане, я гораздо быстрее сдавался и забрасывал свои проекты. Постепенно начал пробовать готовые движки - в частности, Юнити и Годо. И сейчас вполне успешно ковыряюсь в Годо, кое-что получается и я радуюсь этому, как никогда не радовался с собственным движком, потому что теперь мои поделки похожи на игры. Конечно, у меня и на готовом движке куча проблем, но по крайней мере я не забиваю голову низкоуровневыми проблемами и занимаюсь высокоуровневыми проблемами конкретных игр. В общем, я осознал и признал, что для моих задач нужен готовый движок, а попытки написать свой движок - бесполезны и уводят меня от моей реальной цели (сделать игру). Если раньше я часто фантазировал о том, как буду хвастаться "я сделал игру с нуля на собственном движке без использования сторонних библиотек", то теперь я признаю, что никогда не смогу сделать игру с нуля без готового движка. Я не супергерой, который может писать десятки тысяч строк кода каждый день и не страдать выгоранием, потерей мотивации и депрессией из-за того что разрабатывает бесполезную и никому не нужную хрень. Я просто хочу сделать игру, хотя бы для самого себя. И если для этого нужно отказаться от принципа "только свои велосипеды", я вынужден от него отказаться, иначе никакой игры не будет.

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

>сексуальные отношения должны обозначать любовь или просто социальное развлечение между двумя или больше индвидами


Природа с тобой не согласна, у других приматов сексуальные отношения имеют сильную связь с социальным статусом в стае. А ведь человек - это в первую очередь животное, со всеми инстинктами и животными побуждениями, и мы не можем полностью избавиться от животного внутри нас - без этого животного у нас не будет никакого желания или смысла жить. Так что не стоит обижаться на тех, кто слишком явно проявляет свои животные инстинкты - просто не обращай на них внимания, их не исправить, ведь проблема на самом фундаментальном уровне, проблема в природе человека как животного.
sage 215 774546
>>774435

>Твой проект "графического движка" и "гуи-библиотеки"? А кому они кроме тебя нужны?


А кому нужны твои игры? А твои посты на дваче?
216 774547
>>774546

>А кому нужны твои игры?


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

>А твои посты на дваче?


Обычно я пишу ответы на чьи-то вопросы или в поддержку тех, кому нужна помощь. В то же время библиотеку писать меня никто не просит и никому она не поможет, учитывая обилие более мощных аналогов. А когда я задаю вопросы и жду ответа, я делаю это для себя, но пользы от чужого ответа всё равно больше, чем от библиотеки, потому что ответ - это обмен опытом/знаниями, а библиотека делает только то, чему я её научил.

Короче не спорь, патологическое создание велосипедов до добра не доведёт. Именно патологическое, когда человек делает велосипеды "чтоб было", а не когда это реально нужно. Конечно, иногда нужно/лучше написать что-то с нуля, но в большинстве случаев в этом нет необходимости, если не страдать максимализмом и комплексом неполноценности ("если я использую чужой код - я не разработчик, ведь я скопипастил код, а не разработал его сам"). Я сам этой заразой страдаю, не могу отделаться от желания сделать что-то полностью с нуля просто чтобы сделать, тогда как существуют готовые решения и я никогда не сделаю что-то лучше них. Часто бывают фантазии типа "вот сделаю %велосипед_нейм%, расскажу всем в интернете, и меня сразу зауважают, стану знаменитым разработчиком". Но я понимаю, что это бред, так не будет, будет очередной никому не нужный и никому не известный проект от ноунейма, страдающего велосипедописательством.
217 774561
>>774435

>сожалею, что пришлось столкнуться с какими-то жизненными трудностями


Ну как жизненными трудностями, вроде бы совершенно обычное развитие человека.
У меня действительно есть парочка проблем с психикой. Первая это то, что очень мало проявляю собственную волю. Есть мемная поговорка "надо делать как нужно, а как не нужно делать не нужно". В случае, когда человек достиг достаточного уровня знаний и опыта эта поговорка переходит в "нужно проявлять свою волю". То есть надо делать что-то, а не не делать. Но делаю я то, что нужно, довольно редко. И действительно, больший стресс уменьшает вероятность того, что я проявлю собственную волю. Даже когда я понимаю, что лучше бы сейчас продумать X-ную мысль, чтобы она настроила меня на поведение, при котором я провлю свою волю с большей вероятностью, я просто могу её не подумать. Мозг не хочет.
Есть ещё вторая проблема, у меня ОКР или что-то типа того. Очень часто я продумываю некоторую мысль зацикленно, есть разные вариации, но суть одна. К счастью это лёгкая форма и мне надо просто проговорить мысленно некоторую фразу, почти без мысленного подтекста (то есть я могу думать о другом). Ах да и эту проблему я мог бы победить своей волей, если бы применял волю. Но я почти её не применяю.
Зато теперь когда люди между собой будут говорить, что они зациклились на чём-то, то буду мысленно смеяться, потому что их зацикливание это попытка решения проблемы, мозг потихоньку обрабатывает её, в то время как я просто продумываю одну и ту же фразу N раз (при чём этому N желательно быть равным трём, пяти, восьми, десяти, но никак не 6 (привет, 666, хоть это просто десятичное представление) и не 13). Ах кстати, всё-таки нельзя допускать во время продумывании фразы некоторые мысли, иначе придётся её снова повторять (а если я повторил 5 раз, то в итоге будет 6 и это значит, что надо ещё 2 раза проговорить).
В общем, вред этой проблемы состоит в том, что вместо обработки некоторой информации мой мозг занимается проговариванием фразы. К счастью, я не так часто этим занимаюсь, так что не всё потеряно. Ещё в психике образуется культура блокирования некоторых мыслей. Я естесственно, на каких-то высших уровнях их чувствую и благодаря этому понимаю, что дальше их пропускать нельзя. Но эти же мысли могут важны для обработки некоторой информации! И тогда эффективность мышления снизится.

Вроде бы, тот пост я выплакал, чтобы ты или кто-то другой написал пост поддержки (фу, поддержка на мылаче), так как он увеличит вероятность того, что я откажусь от своих ГУИ- и графичекой библиотеки и пойду изучать Годот. Ты справился со своей задачей, Спасибо.
Но с другой стороны, а что если Годот окажется в каком-то месте отвратительным? Какая-нибудь его архитектурная часть. Тогда мне придётся вернуться обратно к своим движкам, а время будет упущено.
Вообще для меня наилучшим графическим движком был бы блендер. Там есть и кривые, и меши, и модификаторы, геометрические ноды и несколько бекендов можно подлкючить, хоть самому написать. Вроде у него был какой-то движок, но никаких мануалов для него я не видел и искать не собираюсь.
Я, кстати, потихоньку делаю ещё одну игру, так вот Годот для неё подошёл бы точно. Там нет пиксельного скейла, всего немного графических объектов и вообще это почти идлер. Я относительно долго делал кейфрейм-анимацию и в итоге получил простой и не очень качественный результат. Думаю, стоит попробовать Годот, может в итоге и перейду на него... К тому же питон мне нравится гораздо больше C++. Если понравится, то можно просто дописывать свои модули и вкомпилировать их в движ.
Но не смотря на это я так просто не могу отказаться от своей ГУИ-библиотеки. У меня там и лейауты, и плоты и 9-sprite, кнопочки всякие. Может быть придётся вернуться к ней, но потом. Но есть проблема — ГУИ-библиотека базируется на моём графическом движке. И это что, мне придётся отдирать его? Уууууууууууууууу... Хотя по-факту зависимость ГУИ-библиотеки от графического движка это плоховато. Особенно учитывая, что высшие виджеты (кнопки, прогрессбары, слайдеры...) это просто стейт-машины, реагирующие на некоторые эвенты (от мышки, клавиатуры, экрана) и меняющие графические свойства виджетов + вызывающие коллбеки.

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

И насчёт повышения велосипедстов в человечестве. Я раздумывал над этим и понял, что действительно, были бы все велосипедистами и независимыми, так и бегали бы по пещерам. Но благодаря рабской натуре большинства людей, мы смогли достичь великого, кто-то даже на Луну и Марс забросил роботов. Людям впору становиться велосипедистами лет через 50, тогда, может быть, появится доступный сильный ИИ и интеллектуальные способности одного человека будут характеризоваться кол-вом у него компьютерных вычислительных мощностей, а также налаженной связью меж ними.

Ну и про сексуальные отношения это скорее шутка. Но всё же я думаю, что человек изменяем и если я могу спропагандировать культуру подходящую мне, то почему бы и нет.
217 774561
>>774435

>сожалею, что пришлось столкнуться с какими-то жизненными трудностями


Ну как жизненными трудностями, вроде бы совершенно обычное развитие человека.
У меня действительно есть парочка проблем с психикой. Первая это то, что очень мало проявляю собственную волю. Есть мемная поговорка "надо делать как нужно, а как не нужно делать не нужно". В случае, когда человек достиг достаточного уровня знаний и опыта эта поговорка переходит в "нужно проявлять свою волю". То есть надо делать что-то, а не не делать. Но делаю я то, что нужно, довольно редко. И действительно, больший стресс уменьшает вероятность того, что я проявлю собственную волю. Даже когда я понимаю, что лучше бы сейчас продумать X-ную мысль, чтобы она настроила меня на поведение, при котором я провлю свою волю с большей вероятностью, я просто могу её не подумать. Мозг не хочет.
Есть ещё вторая проблема, у меня ОКР или что-то типа того. Очень часто я продумываю некоторую мысль зацикленно, есть разные вариации, но суть одна. К счастью это лёгкая форма и мне надо просто проговорить мысленно некоторую фразу, почти без мысленного подтекста (то есть я могу думать о другом). Ах да и эту проблему я мог бы победить своей волей, если бы применял волю. Но я почти её не применяю.
Зато теперь когда люди между собой будут говорить, что они зациклились на чём-то, то буду мысленно смеяться, потому что их зацикливание это попытка решения проблемы, мозг потихоньку обрабатывает её, в то время как я просто продумываю одну и ту же фразу N раз (при чём этому N желательно быть равным трём, пяти, восьми, десяти, но никак не 6 (привет, 666, хоть это просто десятичное представление) и не 13). Ах кстати, всё-таки нельзя допускать во время продумывании фразы некоторые мысли, иначе придётся её снова повторять (а если я повторил 5 раз, то в итоге будет 6 и это значит, что надо ещё 2 раза проговорить).
В общем, вред этой проблемы состоит в том, что вместо обработки некоторой информации мой мозг занимается проговариванием фразы. К счастью, я не так часто этим занимаюсь, так что не всё потеряно. Ещё в психике образуется культура блокирования некоторых мыслей. Я естесственно, на каких-то высших уровнях их чувствую и благодаря этому понимаю, что дальше их пропускать нельзя. Но эти же мысли могут важны для обработки некоторой информации! И тогда эффективность мышления снизится.

Вроде бы, тот пост я выплакал, чтобы ты или кто-то другой написал пост поддержки (фу, поддержка на мылаче), так как он увеличит вероятность того, что я откажусь от своих ГУИ- и графичекой библиотеки и пойду изучать Годот. Ты справился со своей задачей, Спасибо.
Но с другой стороны, а что если Годот окажется в каком-то месте отвратительным? Какая-нибудь его архитектурная часть. Тогда мне придётся вернуться обратно к своим движкам, а время будет упущено.
Вообще для меня наилучшим графическим движком был бы блендер. Там есть и кривые, и меши, и модификаторы, геометрические ноды и несколько бекендов можно подлкючить, хоть самому написать. Вроде у него был какой-то движок, но никаких мануалов для него я не видел и искать не собираюсь.
Я, кстати, потихоньку делаю ещё одну игру, так вот Годот для неё подошёл бы точно. Там нет пиксельного скейла, всего немного графических объектов и вообще это почти идлер. Я относительно долго делал кейфрейм-анимацию и в итоге получил простой и не очень качественный результат. Думаю, стоит попробовать Годот, может в итоге и перейду на него... К тому же питон мне нравится гораздо больше C++. Если понравится, то можно просто дописывать свои модули и вкомпилировать их в движ.
Но не смотря на это я так просто не могу отказаться от своей ГУИ-библиотеки. У меня там и лейауты, и плоты и 9-sprite, кнопочки всякие. Может быть придётся вернуться к ней, но потом. Но есть проблема — ГУИ-библиотека базируется на моём графическом движке. И это что, мне придётся отдирать его? Уууууууууууууууу... Хотя по-факту зависимость ГУИ-библиотеки от графического движка это плоховато. Особенно учитывая, что высшие виджеты (кнопки, прогрессбары, слайдеры...) это просто стейт-машины, реагирующие на некоторые эвенты (от мышки, клавиатуры, экрана) и меняющие графические свойства виджетов + вызывающие коллбеки.

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

И насчёт повышения велосипедстов в человечестве. Я раздумывал над этим и понял, что действительно, были бы все велосипедистами и независимыми, так и бегали бы по пещерам. Но благодаря рабской натуре большинства людей, мы смогли достичь великого, кто-то даже на Луну и Марс забросил роботов. Людям впору становиться велосипедистами лет через 50, тогда, может быть, появится доступный сильный ИИ и интеллектуальные способности одного человека будут характеризоваться кол-вом у него компьютерных вычислительных мощностей, а также налаженной связью меж ними.

Ну и про сексуальные отношения это скорее шутка. Но всё же я думаю, что человек изменяем и если я могу спропагандировать культуру подходящую мне, то почему бы и нет.
218 774912
>>774561

>вроде бы совершенно обычное развитие человека


Ты говорил, что у тебя возникла проблема с памятью, а в разработке игры ты пытаешься закрыться от стрессовой ситуации ИРЛ (которой, очевидно, не можешь избежать иными способами). Это ненормальное состояние, требующее помощи со стороны.

>очень мало проявляю собственную волю


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

>ОКР


>надо просто проговорить мысленно некоторую фразу


Это компульсия, и рано или поздно она перестанет действовать. Чтобы по-настоящему побороть обсессию, её нужно игнорировать, а любые виды компульсий лишь усиливают обсессию, загоняя тебя в цикл обсессия - компульсия - обсессия... Я сам страдаю от ОКР, было время, когда я мог больше часа сидеть и тщетно повторять компульсию. Удалось облегчить состояние до терпимого только когда я начал бороться с компульсиями, стараясь игнорировать обсессии. Со временем, без подпитки компульсиями, множество моих обсессий перестали возникать. Но, конечно, игнорировать тяжело, т.к. обсессия всегда сопровождается негативными переживаниями.

>при чём этому N желательно быть равным трём, пяти, восьми, десяти


>нельзя допускать во время продумывании фразы некоторые мысли, иначе придётся её снова повторять


>если я повторил 5 раз, то в итоге будет 6 и это значит, что надо ещё 2 раза проговорить


У меня очень похожая хрень. Стараюсь совершать свои компульсии число раз, равное степени двойки: 2, 4, 8, 16, 32, 64... Обычно группами по 4 или 8. Собственно, когда дело начало доходить до 32 и более, я осознал всю тяжесть проблемы и стал сдерживать себя на 2, 4, максимум 8, и в целом стал бороться с самим началом компульсивного действия. И да, тоже есть число, которое я компульсивно избегаю, оно возникло из-за психической травмы вследствие случайного чтения отрывка из одной художественной литературы (да, я настолько впечатлительный)...

>фу, поддержка на мылаче


Тут много неплохих людей сидит, но они рассредоточены по тематическим разделам, а тролли успевают нагадить раньше них. Просто избегай /b/ и наиболее токсичных разделов (/po/ и т.п.). В /gd/ неплохое сообщество, просто сюда приходят геймдев обсуждать, а не помогать психологически. С психическими проблемами нужно в /psy/, там поймут и помогут по мере возможности.

>а что если Годот окажется в каком-то месте отвратительным?


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

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

>Вроде у него был какой-то движок


BGE. Из официального Блендера убрали, но есть форк UPBGE:
https://upbge.org/ и https://github.com/UPBGE/upbge
Он активно развивается и у него достаточно разработчиков. Но на практике я пробовал только старый BGE много лет назад, и мне не очень нравились его графические интерфейсы, так что не могу ничего сказать про то, насколько хорош UPBGE. Но как минимум у него есть твой любимый питон и он полностью опенсурс. Кстати, BGE в прошлом (00-е) часто использовали инди, и его игры даже запускались в браузере через специальный плагин. Всё погубила потеря поддержки со стороны Blender Foundation, которая, видимо, решила сфокусировать силы на 3D моделировании.

>мануалы искать


https://upbge.org/documentation
https://upbge.org/manual
https://upbge.org/manual_api_0.2.5

>можно просто дописывать свои модули и вкомпилировать их в движ


Ты сначала с базовым функционалом разберись: почитай мануал, выполни туториалы. Проблема многих в том, что они начинают изобретать велосипед на готовом движке, не зная о существовании встроенных функций, более быстрых и удобных, а потом жалуются на то, что "движок не движок, медленно и неудобно". Также ознакомься с существующими ассетами и готовыми проектами, тоже может сильно помочь.

>У меня там и лейауты, и плоты и 9-sprite, кнопочки всякие.


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

>ГУИ-библиотека базируется на моём графическом движке. И это что, мне придётся отдирать его?


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

Кстати, ты делал редактор форм/ГУИ для своей библиотеки? Или ты до сих пор всё через текстовые файлы конфигураций/через код описываешь? Просто не вижу смысла в библиотеке ГУИ, для которой даже графического редактора (дизайнера) нет.

Хотя, если честно, я тоже делал самодельные кнопки на основе GDI и bitblt(). Но это было очень давно и там было много лапши в коде, я не мог понять собственный код. Сейчас бы я запросто написал собственный ГУИ, но не вижу в этом смысла (иногда бывает желание чисто из любопытства, но без смысла делать я ничего не буду).

>сделать на своих движках было бы сложно


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

>Есть и просто платформеры, а есть РПГ как скайрим, но с боёвкой как в майнкрафте.


Начни с платформеров. Как минимум для того, чтобы поднять уверенность в своих силах. А то начнёшь делать РПГ, одна фича не получится, другая фича не получится, начнёшь расстраиваться и опять вернёшься пилить велосипедный движок вместо желаемых игр, как это со мной неоднократно случалось.
218 774912
>>774561

>вроде бы совершенно обычное развитие человека


Ты говорил, что у тебя возникла проблема с памятью, а в разработке игры ты пытаешься закрыться от стрессовой ситуации ИРЛ (которой, очевидно, не можешь избежать иными способами). Это ненормальное состояние, требующее помощи со стороны.

>очень мало проявляю собственную волю


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

>ОКР


>надо просто проговорить мысленно некоторую фразу


Это компульсия, и рано или поздно она перестанет действовать. Чтобы по-настоящему побороть обсессию, её нужно игнорировать, а любые виды компульсий лишь усиливают обсессию, загоняя тебя в цикл обсессия - компульсия - обсессия... Я сам страдаю от ОКР, было время, когда я мог больше часа сидеть и тщетно повторять компульсию. Удалось облегчить состояние до терпимого только когда я начал бороться с компульсиями, стараясь игнорировать обсессии. Со временем, без подпитки компульсиями, множество моих обсессий перестали возникать. Но, конечно, игнорировать тяжело, т.к. обсессия всегда сопровождается негативными переживаниями.

>при чём этому N желательно быть равным трём, пяти, восьми, десяти


>нельзя допускать во время продумывании фразы некоторые мысли, иначе придётся её снова повторять


>если я повторил 5 раз, то в итоге будет 6 и это значит, что надо ещё 2 раза проговорить


У меня очень похожая хрень. Стараюсь совершать свои компульсии число раз, равное степени двойки: 2, 4, 8, 16, 32, 64... Обычно группами по 4 или 8. Собственно, когда дело начало доходить до 32 и более, я осознал всю тяжесть проблемы и стал сдерживать себя на 2, 4, максимум 8, и в целом стал бороться с самим началом компульсивного действия. И да, тоже есть число, которое я компульсивно избегаю, оно возникло из-за психической травмы вследствие случайного чтения отрывка из одной художественной литературы (да, я настолько впечатлительный)...

>фу, поддержка на мылаче


Тут много неплохих людей сидит, но они рассредоточены по тематическим разделам, а тролли успевают нагадить раньше них. Просто избегай /b/ и наиболее токсичных разделов (/po/ и т.п.). В /gd/ неплохое сообщество, просто сюда приходят геймдев обсуждать, а не помогать психологически. С психическими проблемами нужно в /psy/, там поймут и помогут по мере возможности.

>а что если Годот окажется в каком-то месте отвратительным?


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

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

>Вроде у него был какой-то движок


BGE. Из официального Блендера убрали, но есть форк UPBGE:
https://upbge.org/ и https://github.com/UPBGE/upbge
Он активно развивается и у него достаточно разработчиков. Но на практике я пробовал только старый BGE много лет назад, и мне не очень нравились его графические интерфейсы, так что не могу ничего сказать про то, насколько хорош UPBGE. Но как минимум у него есть твой любимый питон и он полностью опенсурс. Кстати, BGE в прошлом (00-е) часто использовали инди, и его игры даже запускались в браузере через специальный плагин. Всё погубила потеря поддержки со стороны Blender Foundation, которая, видимо, решила сфокусировать силы на 3D моделировании.

>мануалы искать


https://upbge.org/documentation
https://upbge.org/manual
https://upbge.org/manual_api_0.2.5

>можно просто дописывать свои модули и вкомпилировать их в движ


Ты сначала с базовым функционалом разберись: почитай мануал, выполни туториалы. Проблема многих в том, что они начинают изобретать велосипед на готовом движке, не зная о существовании встроенных функций, более быстрых и удобных, а потом жалуются на то, что "движок не движок, медленно и неудобно". Также ознакомься с существующими ассетами и готовыми проектами, тоже может сильно помочь.

>У меня там и лейауты, и плоты и 9-sprite, кнопочки всякие.


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

>ГУИ-библиотека базируется на моём графическом движке. И это что, мне придётся отдирать его?


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

Кстати, ты делал редактор форм/ГУИ для своей библиотеки? Или ты до сих пор всё через текстовые файлы конфигураций/через код описываешь? Просто не вижу смысла в библиотеке ГУИ, для которой даже графического редактора (дизайнера) нет.

Хотя, если честно, я тоже делал самодельные кнопки на основе GDI и bitblt(). Но это было очень давно и там было много лапши в коде, я не мог понять собственный код. Сейчас бы я запросто написал собственный ГУИ, но не вижу в этом смысла (иногда бывает желание чисто из любопытства, но без смысла делать я ничего не буду).

>сделать на своих движках было бы сложно


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

>Есть и просто платформеры, а есть РПГ как скайрим, но с боёвкой как в майнкрафте.


Начни с платформеров. Как минимум для того, чтобы поднять уверенность в своих силах. А то начнёшь делать РПГ, одна фича не получится, другая фича не получится, начнёшь расстраиваться и опять вернёшься пилить велосипедный движок вместо желаемых игр, как это со мной неоднократно случалось.
image.png1,7 Мб, 1920x1080
Импортозамещение в деле. 219 774916
Ну заебумба, без шуток. Купил себе, куплю родне. Жаль что не запускается.

Делай дальше, OP. Жаль.
220 775042
>>774916

>Жаль что не запускается


Ошибка какая-то? У меня запускалось... год назад)

>Делай дальше


Тред-то почитай, он уже несколько раз проект забросил.

Его бы перекатить на minetest, например, или на другой воксельный движок (тут была ссылка на воксельный модуль для Godot), тогда, может, чего толкового и получилось бы.
221 775156
>>775042
Очень жаль.
222 775177
Это тред про ОКР??? Тогда врываюсь с шизой f14.88...
sage 223 775201
>>775177
Врёшь, шиза это F20. Он упомянул про ОКР, я дал пару советов и всё, дальше было обсуждение разработки игр. Зачем иронизировать по этому поводу? У нас в разделе полно психически нездоровых, будь толерантнее что ли.
224 775289
>>775201
Как будто получил удар пощечиной
225 775677
>>653394

>В кубаче, как мне кажется, куда лучше стрелять лучами, нежели растеризацией заниматься. Из-за того, что сетка однородная, можно очень оптимально искать пересечения луча со сценой


Уже видимо не актуально, но все-таки оставлю ссылку на кое-что похожее - четырехмерные кубы с рендером через рейкастинг, есть реализация и на шейдерах:
https://habr.com/ru/post/534964/
https://github.com/IronLynx/maze4d
226 776177
>>774912
Штош, посмотрел я движки. После этого селся переписывать свой старый.

Начнём с Годота. Когда я открыл его, вполне легко смог перенсти gltf-модель, посмотреть на неё через камеру. Немного раздражало отстутсвие управления как в блендере. Но потом я заметил то, что исправлять слишком сложно. В редакторе 3D-сцена высота обозначается осью Y, а не Z. Я и сам когда-то обозначала её игреком, но недавно начал топить за Z. И в редакторе 2D-сцены зачем-то 0,0 это левый верхний угол, а не левый нижний. Типа, раз кто-то в древности решил отсчитывать сверху, то и тут теперь так будет?
К этой отвратительности можно было привыкнуть, в крайнем случае, править сорцы. Но я решил не заморачиваться и попробовать UPBGE.
Как его запустить я не понял. Нет в пакетном менеджере моего дистрибутива — значит сложно разбираться. Да и лицензия мутная, не нравится мне GPL.

Вот я и понял, что раз я считаю 3D-сцену блендера наилучшей моделью из всех, что я знаю, значит надо научиться экспортировать её в формат файла моего движка. Что я начал делать, сделал загрузку мешей, камеры, даже рига. (слева — моё, справа — блендер EVE рендер)
Вот как раз недавно застрял на нём. Сначала пытался в вертекс-шейдере сделать скиннинг, но чего-то отображались вертексы, связанные с первым джоинтом или что-то такое. Спустя несколько часов так и не понял, в чём проблема и решил написать софт-реализацию скиннинга. Пока получилось не очень, что-то там с матрицами напутал и вертсы бесолбасит (но то что конечности вертятся сами по себе это нормально, это я проверяю скиннинг). В общем, всё ещё впереди.
Но на самом деле я уже давно понимаю, что не так. Мне просто не нравится делать игры. Нравилось бы — каждый день что-то вводил бы. Писать графический движок было гораздо интереснее, чем игры. И пока я тут плакался в тексты, говорил, что начал писать ещё одну игру, уже отложил её и сел писать другую. Как я думал, эта будет проще. Но нет, это не так. Не знаю как я смогу делать игры, если их разработка занимает более 3-х дней (или семи, если для больших). А мне и не надо.

Надо было в детсве создавать игры. Я тогда был более фрустрирован и мог бы тратить много времени на это. Но вместо этого я ходил в школку, а в свободное время играл в компунтер. Летом на протяжении где-то месяца по 7-8 часов играл в майнкрафт. Но от этой игры почти никакого наследия, кроме горстки воспоминаний, не осталось. Как только я злился из-за чего-то, удалял мир!
Вот так же и играми. Я на глубоком уровне не вижу смысла в создании виртуальных миров. Даже когда в детстве пытался создать манямирок в майнкрафте с модом CustomNPC, меня со временем переворачивало и всё. Очередное удаление мира.
И мой опыт показывает, что в ближайшие месяца я не смогу на этом заработать, потому что каждый раз бросаю одну игру и начинаю новую.
Максимум, на что меня хватило это недоделанные Ивс и Чессмейтс. А если бы я научился программировать лет в 13, то было бы + 2 года на Индустриворкс и, может быть, сделал бы что-то играбельное. А если бы в 8 лет, то не представляю, что случилось бы.
Пора заниматься взрослыми вещами...

>Кстати, ты делал редактор форм/ГУИ для своей библиотеки?


Делал всё через код, планировал в будущем создать язык разметки моего ГУИ и программу-дизайнер для неё и, возможно, продавать её в стиме как движок для создания ГУИшных программ (с возможностью подключения всяких внешних участков кода и всё такое).
Но вообще, если развитие моего графического движка выйдет за пределы, то это будет просто игровой движок. А что там нужно кроме графики? Хитбоксы для физики и свойства, заданные пользователем. Парочка систем и готово. Если я когда-то сделаю движок для ГУИ-программ, то имеет смысл его сразу сделать и игровым движком.
226 776177
>>774912
Штош, посмотрел я движки. После этого селся переписывать свой старый.

Начнём с Годота. Когда я открыл его, вполне легко смог перенсти gltf-модель, посмотреть на неё через камеру. Немного раздражало отстутсвие управления как в блендере. Но потом я заметил то, что исправлять слишком сложно. В редакторе 3D-сцена высота обозначается осью Y, а не Z. Я и сам когда-то обозначала её игреком, но недавно начал топить за Z. И в редакторе 2D-сцены зачем-то 0,0 это левый верхний угол, а не левый нижний. Типа, раз кто-то в древности решил отсчитывать сверху, то и тут теперь так будет?
К этой отвратительности можно было привыкнуть, в крайнем случае, править сорцы. Но я решил не заморачиваться и попробовать UPBGE.
Как его запустить я не понял. Нет в пакетном менеджере моего дистрибутива — значит сложно разбираться. Да и лицензия мутная, не нравится мне GPL.

Вот я и понял, что раз я считаю 3D-сцену блендера наилучшей моделью из всех, что я знаю, значит надо научиться экспортировать её в формат файла моего движка. Что я начал делать, сделал загрузку мешей, камеры, даже рига. (слева — моё, справа — блендер EVE рендер)
Вот как раз недавно застрял на нём. Сначала пытался в вертекс-шейдере сделать скиннинг, но чего-то отображались вертексы, связанные с первым джоинтом или что-то такое. Спустя несколько часов так и не понял, в чём проблема и решил написать софт-реализацию скиннинга. Пока получилось не очень, что-то там с матрицами напутал и вертсы бесолбасит (но то что конечности вертятся сами по себе это нормально, это я проверяю скиннинг). В общем, всё ещё впереди.
Но на самом деле я уже давно понимаю, что не так. Мне просто не нравится делать игры. Нравилось бы — каждый день что-то вводил бы. Писать графический движок было гораздо интереснее, чем игры. И пока я тут плакался в тексты, говорил, что начал писать ещё одну игру, уже отложил её и сел писать другую. Как я думал, эта будет проще. Но нет, это не так. Не знаю как я смогу делать игры, если их разработка занимает более 3-х дней (или семи, если для больших). А мне и не надо.

Надо было в детсве создавать игры. Я тогда был более фрустрирован и мог бы тратить много времени на это. Но вместо этого я ходил в школку, а в свободное время играл в компунтер. Летом на протяжении где-то месяца по 7-8 часов играл в майнкрафт. Но от этой игры почти никакого наследия, кроме горстки воспоминаний, не осталось. Как только я злился из-за чего-то, удалял мир!
Вот так же и играми. Я на глубоком уровне не вижу смысла в создании виртуальных миров. Даже когда в детстве пытался создать манямирок в майнкрафте с модом CustomNPC, меня со временем переворачивало и всё. Очередное удаление мира.
И мой опыт показывает, что в ближайшие месяца я не смогу на этом заработать, потому что каждый раз бросаю одну игру и начинаю новую.
Максимум, на что меня хватило это недоделанные Ивс и Чессмейтс. А если бы я научился программировать лет в 13, то было бы + 2 года на Индустриворкс и, может быть, сделал бы что-то играбельное. А если бы в 8 лет, то не представляю, что случилось бы.
Пора заниматься взрослыми вещами...

>Кстати, ты делал редактор форм/ГУИ для своей библиотеки?


Делал всё через код, планировал в будущем создать язык разметки моего ГУИ и программу-дизайнер для неё и, возможно, продавать её в стиме как движок для создания ГУИшных программ (с возможностью подключения всяких внешних участков кода и всё такое).
Но вообще, если развитие моего графического движка выйдет за пределы, то это будет просто игровой движок. А что там нужно кроме графики? Хитбоксы для физики и свойства, заданные пользователем. Парочка систем и готово. Если я когда-то сделаю движок для ГУИ-программ, то имеет смысл его сразу сделать и игровым движком.
227 776186
>>776177

>После этого селся переписывать свой старый.


Я тоже через этот период проходил, пока окончательно не разочаровался в своих силах.

>легко смог перенсти gltf-модель


Потому что это рекомендуемый формат для Годо.

>отстутсвие управления как в блендере


Это верно, но в Годо есть свои хоткеи, например:
Q - режим выделения
W - перемещение
E - вращение
R - масштаб
Да, приходится мышкой тягать виртуальные ручки, но так делают во всех 3Д пакетах включая Блендер, да и в большинстве случаев удобнее ввести координаты с нумпада в соответствующие поля в инспекторе объектов. Всё-таки редактор сцен не предназначен для моделирования, ему не нужно сложных хоткеев.

>В редакторе 3D-сцена высота обозначается осью Y, а не Z


Во-первых, ось Y вроде как общепринятый стандарт, это только в Блендере необычное соглашение (за что Блендер часто ругают). Откуда пошло? Ось Y - это вертикаль монитора, направленная вниз, тогда как ось Z - "глубина" монитора, так принято с прошлого века. Во-вторых, когда экспортируешь модели из Блендера в формате GLTF, там автоматически ставится галочка "axis +Y is up" или что-то в этом роде, то есть ничего исправлять после импорта в Годо не нужно. Возможно, ты просто снял эту галочку при экспорте...

>в редакторе 2D-сцены зачем-то 0,0 это левый верхний угол, а не левый нижний


>кто-то в древности решил отсчитывать сверху, то и тут теперь так будет?


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

Кроме того, я не вижу никаких преимуществ в том, чтобы размещать точку (0;0) в левом нижнем углу экрана. Зачем? Кому нужно - всегда может сместить оси координат в своём коде.

>отвратительности


Слушай, если тебе отвратительно устройство видеокарт, дисплеев м другого железа - почему бы тебе не разработать свой собственный компьютер с нуля? Микрочипы можно создавать в домашних условиях, сегодня достаточно легко создать "на коленке" компьютер с процессором уровня 8080. Давай, смелей, а то весь мир пользуется отвратительным железом, с которым ты не можешь смириться...

>UPBGE.


>Как его запустить я не понял


Качаешь билд для своей ОС и запускаешь.
https://github.com/UPBGE/upbge/releases
Тебе нужен архив, заканчивающийся "...Linux64.tar.xz"
В архиве будет файл "Blender" без расширения - это исполняемый файл, как его запустить - обращайся к документации своего дистрибутива. Там вроде нужно поставить галочку в свойствах файла "исполняемый файл", и тогда можно будет его запустить через терминал или ярлык на рабочем столе.

>Нет в пакетном менеджере моего дистрибутива — значит сложно разбираться.


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

>Да и лицензия мутная, не нравится мне GPL.


Конкретно на твои игры, сделанные на этом движке, эта лицензия никак не влияет. Ты обязан делать открытыми только изменения в исходные коды движка, и распространять под GPL изменённые версии движка. GPL борется за свободу свободного ПО, чтобы негодяи из коммерческих фирм не могли использовать свободный софт в своих несвободных программах, но на игровой контент и игровые скрипты это никак не распространяется.

>надо научиться экспортировать её в формат файла моего движка. Что я начал делать, сделал загрузку мешей, камеры, даже рига.


Эм, если у тебя свой формат - то тебе нужно написать плагин экспорта для Блендера, чтобы он сразу в твой формат экспортировал. Если ты делаешь загрузку из .blend, то ты, по сути, пишешь импорт этого формата в свой движок... Ну, не важно.

>Писать графический движок было гораздо интереснее


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

>Не знаю как я смогу делать игры, если их разработка занимает более 3-х дней


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

>Я на глубоком уровне не вижу смысла в создании виртуальных миров.


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

>Пора заниматься взрослыми вещами...


По-твоему, разрабатывать игры - это так, детское баловство?

>Делал всё через код, планировал в будущем создать язык разметки моего ГУИ и программу-дизайнер для неё


Чего там планировать-то? Если у тебя есть полноценна ГУИ библиотека со всеми базовыми виджетами, то ты без проблем должен собрать на её базе WYSIWYG дизайнер форм. Через код править визуальные интерфейсы очень сложно.

>Если я когда-то сделаю движок для ГУИ-программ, то имеет смысл его сразу сделать и игровым движком.


Ничего подобного. Примеры таких "ГУИ движков", не имеющих отношения к играм:
- VCL (Delphi) и LCL (Lazarus)
- Qt и GTK на линуксе
- что-то такое есть в серии Visual Studio (C#, Basic)
- что-то такое есть у обычной Java SE
- стандартные окошки Android
Ну и много где ещё. Игровой движок - это отдельная сложная система, которой, конечно, нужен GUI, но требования к GUI игрового движка совсем не те, что требования к GUI обычных прикладных программ. Хотя, разумеется, никто не запрещает делать игры на базе WinAPI окошек (пример: классический Сапёр), и никто не запрещает делать прикладные программы на игровых движках. Просто ни то, ни другое не очень удобно на практике из-за разной специализации инструментов.
227 776186
>>776177

>После этого селся переписывать свой старый.


Я тоже через этот период проходил, пока окончательно не разочаровался в своих силах.

>легко смог перенсти gltf-модель


Потому что это рекомендуемый формат для Годо.

>отстутсвие управления как в блендере


Это верно, но в Годо есть свои хоткеи, например:
Q - режим выделения
W - перемещение
E - вращение
R - масштаб
Да, приходится мышкой тягать виртуальные ручки, но так делают во всех 3Д пакетах включая Блендер, да и в большинстве случаев удобнее ввести координаты с нумпада в соответствующие поля в инспекторе объектов. Всё-таки редактор сцен не предназначен для моделирования, ему не нужно сложных хоткеев.

>В редакторе 3D-сцена высота обозначается осью Y, а не Z


Во-первых, ось Y вроде как общепринятый стандарт, это только в Блендере необычное соглашение (за что Блендер часто ругают). Откуда пошло? Ось Y - это вертикаль монитора, направленная вниз, тогда как ось Z - "глубина" монитора, так принято с прошлого века. Во-вторых, когда экспортируешь модели из Блендера в формате GLTF, там автоматически ставится галочка "axis +Y is up" или что-то в этом роде, то есть ничего исправлять после импорта в Годо не нужно. Возможно, ты просто снял эту галочку при экспорте...

>в редакторе 2D-сцены зачем-то 0,0 это левый верхний угол, а не левый нижний


>кто-то в древности решил отсчитывать сверху, то и тут теперь так будет?


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

Кроме того, я не вижу никаких преимуществ в том, чтобы размещать точку (0;0) в левом нижнем углу экрана. Зачем? Кому нужно - всегда может сместить оси координат в своём коде.

>отвратительности


Слушай, если тебе отвратительно устройство видеокарт, дисплеев м другого железа - почему бы тебе не разработать свой собственный компьютер с нуля? Микрочипы можно создавать в домашних условиях, сегодня достаточно легко создать "на коленке" компьютер с процессором уровня 8080. Давай, смелей, а то весь мир пользуется отвратительным железом, с которым ты не можешь смириться...

>UPBGE.


>Как его запустить я не понял


Качаешь билд для своей ОС и запускаешь.
https://github.com/UPBGE/upbge/releases
Тебе нужен архив, заканчивающийся "...Linux64.tar.xz"
В архиве будет файл "Blender" без расширения - это исполняемый файл, как его запустить - обращайся к документации своего дистрибутива. Там вроде нужно поставить галочку в свойствах файла "исполняемый файл", и тогда можно будет его запустить через терминал или ярлык на рабочем столе.

>Нет в пакетном менеджере моего дистрибутива — значит сложно разбираться.


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

>Да и лицензия мутная, не нравится мне GPL.


Конкретно на твои игры, сделанные на этом движке, эта лицензия никак не влияет. Ты обязан делать открытыми только изменения в исходные коды движка, и распространять под GPL изменённые версии движка. GPL борется за свободу свободного ПО, чтобы негодяи из коммерческих фирм не могли использовать свободный софт в своих несвободных программах, но на игровой контент и игровые скрипты это никак не распространяется.

>надо научиться экспортировать её в формат файла моего движка. Что я начал делать, сделал загрузку мешей, камеры, даже рига.


Эм, если у тебя свой формат - то тебе нужно написать плагин экспорта для Блендера, чтобы он сразу в твой формат экспортировал. Если ты делаешь загрузку из .blend, то ты, по сути, пишешь импорт этого формата в свой движок... Ну, не важно.

>Писать графический движок было гораздо интереснее


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

>Не знаю как я смогу делать игры, если их разработка занимает более 3-х дней


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

>Я на глубоком уровне не вижу смысла в создании виртуальных миров.


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

>Пора заниматься взрослыми вещами...


По-твоему, разрабатывать игры - это так, детское баловство?

>Делал всё через код, планировал в будущем создать язык разметки моего ГУИ и программу-дизайнер для неё


Чего там планировать-то? Если у тебя есть полноценна ГУИ библиотека со всеми базовыми виджетами, то ты без проблем должен собрать на её базе WYSIWYG дизайнер форм. Через код править визуальные интерфейсы очень сложно.

>Если я когда-то сделаю движок для ГУИ-программ, то имеет смысл его сразу сделать и игровым движком.


Ничего подобного. Примеры таких "ГУИ движков", не имеющих отношения к играм:
- VCL (Delphi) и LCL (Lazarus)
- Qt и GTK на линуксе
- что-то такое есть в серии Visual Studio (C#, Basic)
- что-то такое есть у обычной Java SE
- стандартные окошки Android
Ну и много где ещё. Игровой движок - это отдельная сложная система, которой, конечно, нужен GUI, но требования к GUI игрового движка совсем не те, что требования к GUI обычных прикладных программ. Хотя, разумеется, никто не запрещает делать игры на базе WinAPI окошек (пример: классический Сапёр), и никто не запрещает делать прикладные программы на игровых движках. Просто ни то, ни другое не очень удобно на практике из-за разной специализации инструментов.
228 776208
>>770994

>Язык отталкивает своим синтаксисом


А у меня наоборот - я только на С++ и могу писать код. На всем остальном у меня мозг сразу отключается.

Поэтому вместо того чтобы взять там юнити/годот или на блюпринтах накидать геймплейчик, я страдаю и дрочусь с движкописькой потому что нет ни одного нормального движка для С++ программиста (в UE4 это сложно и неудобно сделано и все равно блюпринты)

Печалька.
229 776220
>>776177

>Писать графический движок было гораздо интереснее, чем игры


Потому что игры это более творческая задача, нет четкой конечной цели
230 776239
>>776220

>нет четкой конечной цели


ПРИДУМЫВАЕШЬ ИДЕЮ ИГРЫ
@
ИГРАЕШЬ В СВОЁМ ВООБРАЖЕНИИ
@
ДОКУМЕНТИРУЕШЬ ФАНТАЗИИ В ДИЗДОК
@
СОСТАВЛЯЕШЬ ДОРОЖНУЮ КАРТУ
@
...
@
КОНЕЧНАЯ ЦЕЛЬ ДОСТИГНУТА
@
ПРОСЫПАЕШЬСЯ


>>776208
Язык - это всего лишь синтаксис. Не вижу никакой разницы между C/C++/C# и остальными языками с {дурацким} синтаксисом, тысячи их и все одинаковые, только компиляторы отличаются. Смирился с GDScript только потому что лень разбираться в GDNative и в синтаксисе почти нет противных {скобачек}.

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

Write('мимо бывший движкопися, уважающий только Паскаль и ему подобные языки');
end.
231 776342
>>776239

>всего лишь синтаксис


Вот именно - и этот синтаксис отличается. Возможно это синдром утенка....

Вот взять например разделение на cpp и h файлы - многие не любят Си/C++ и каждый писатель своего языка убийцы Си первым делом избавляется от этого...

А я наоборот считаю это идеальным паттерном - той самой инкапсуляцией - когда я четко отделяю объявление кода от его описания. Когда у меня не свалено все в одну кучу в файл из 5к строк кода в котором я нихрена не могу найти, а четенько так по файлам раскидано.

Интерфейсы из других языков - это не то - даже если интерфейс и похож на объявление, то наследуемый - все равно будет той же помойкой. Тогда как в С++ я могу описания класса раскидать по нескольким физическим файлам (например тут у меня инициалиция, в другом файле у меня код визуала, в третьем файле - логика - и все это в сотнях миллионах классах а четенько так разделенно. Например если у меня есть класс Inventory, то я могу все разбить на файлы Invenoty.h/Inventory_Draw.cpp/Inventory_Input.cpp/Inventory_Logic.cpp... И все в одном классе, а не сотнях миниклассах которые потом как в помойке валяются)

И это один из множества примеров - почему я не могу писать на любом другом языке - мой мозг просто не хочет менять эти привычки
232 776347
>>776342

>И все в одном классе


Это на самом деле плохо и наверняка нарушает какие-то аббревиатуры. Но для этих целей в решётке есть partial классы, очень удобно.
Мимо.
233 776360
>>776347

>Но для этих целей в решётке есть partial классы, очень удобно.


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

Конкретно для своей задачи (расширять класс) partial хорош. Но это точно не даст того эффекта который дает разделение на файлы в С++
234 776381
>>776360

>расширять класс


Для расширения есть extension methods. Partial это всё-таки немного другое.
235 776735
>>776342
Я когда движок пытался писать, страдал двумя крайностями: либо писать всё в один большой файл, либо разделять на десятки мелких файлов, буквально по одному классу на файл. В целом, держать всё в одном файле действительно неудобно. Но когда тебе нужно открывать сразу 20 или более отдельных файлов и искать среди них какой-то конкретный код - всё становится намного сложнее. И никакое раскладывание по папкам не помогает, каждый раз забываешь что где лежит и ищешь, ищешь... А в одном файле ты можешь просто нажать ctrl+F и найти нужную строчку. Также на Паскале можно разбивать любой файл на несколько .inc файлов, которые соединяются директивами {$include файл.inc}, я этим тоже какое-то время баловался, пока не осознал, что так код понимать становится намного сложнее. Короче, лучше не мудрить и держать всё в одном месте, разделяя только по необходимости/в процессе рефакторинга.

>>776347

>Это на самом деле плохо и наверняка нарушает какие-то аббревиатуры.


Ага, это называется https://ru.wikipedia.org/wiki/Божественный_объект

Смысл в ООП теряется, если у тебя один класс решает очень много разных проблем без разделения на меньшие классы.
236 776820
>>776735

>Божественный_объект


Нет, иногда класс отвечает только за один тип объектов, просто в нём реально много логики. У меня те же персонажи это тысячи строк кода, причём инвентарь, гуи, контроллер, спавнер - это другие классы.

>А в одном файле ты можешь просто нажать ctrl+F


Зачем это нужно, когда есть "перейти к реализации"?
237 776835
>>776769

>достаточно сделать ctrl+клик


>>776820

>Зачем это нужно, когда есть "перейти к реализации"?


Это если в IDE работать. Я тогда работал в более простом текстовом редакторе, где такой роскоши не было. Хотелось острых ощущений и всего такого... Понимаете, для работы с хорошим кодом не нужны дополнительные костыли от IDE, в идеале вообще ничего кроме Блокнота не нужно. Все эти костыли придумали из-за необходимости работать с тоннами плохого кода на языках с нечитабельным синтаксисом...

>персонажи это тысячи строк кода


Почему так? Разве нельзя разделить логику на составляющие её компоненты? Особенно в случае игрового ИИ, если ты об этом.
238 777342
BUMP
cr.png359 Кб, 1400x900
239 777448
>>777342
Ну чего ты бампаешь, не собираюсь я делать Индустриворкс. Вот, недавно ввёл крафтинг как было в прошлой версии. Кстати, тут я решил сделать так, чтобы пиках, меч и прочие имели в себе юзердату материала (свиной айрон, сталь, бронза, етс), а материал окрашивал текстуру.
Вообще, не помню зачем я начал переписывать Ивс с нуля. Помню, как пытался скомпилировать последнюю версию, но к тому времени мои ГУИ- и графический движки сильно поменяли свою структуру. Хотя была чуть более старая версия Ивса, где не было никаких движков и весь опенгл и ГУИ был разработан прямо в нём. Глупо поступил, в общем.
Но даже если я сейчас понемногу занимаюсь Ивсом, то это всё-равно бесполезно, так как к середине следующего года я, скорее всего, полностью прекращу геймдевить.
Действитель, я бы хотел реализовать очень много идей, возникших у меня в голове. Но это сложно и долго. Не обязательно даже компьютерные игры. Комиксы, картинки, мультфильмы.
Но чтобы написовать X, надо либо долго учиться рисовать, либо подолгу рендерить картинку в мозгу. Нет времени и желания.

>>776186

>Но это значит, что компьютер пользователя будет выполнять лишние операции


Он и так вертексы преобразует матрицей.

>Зачем было ставить Линукс, если ты не можешь разобраться с установкой приложений на линуксе?


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

>найди какой-нибудь опенсурс графический движок, форкни его, модифицируй и делай пул-реквесты


Ога, увижу где-то функцию со словом Height в названии, а она будет Y изменять. Нет уж. К тому же, вряд ли такой движок будет на языке, который мне нравится.
_______

А вообще, зачем вручную писать игры? Их надо генерировать нейросетями. Напрямую эмбеддинг в эмбеддинг и в движок, в чём тут может быть проблема? Все технологии уже открыты и известны. Даже если частично, уже кое-как можно генерить пиксель-арт, непиксель-арт, музыку (!). Это, конечно, будет далёкий уровень от профессионала, который видит целостную картину игры и в каждый пиксель каждого спрайта вкладывает сакральный смысл, а музыка усиливает его и позволяет заглянуть с разных сторон. Но плохого или среднего художника заменит.
Вышел недавно ру$$кий rudalle, генерирует картинки. Это баловство, но достаточный бек, чтобы начать.

Короче, палю годноту: уверен, что искусство скоро обесценится благодаря нейросетям, а важно будет лишь имя. Как в современном физическом искусстве. Помните банальный сюжет,
где художник может AEurum плюнуть на холст-canvas и продавать картину за миллионы? Это всё, потому что его имя раскручено. Как виртуальные ютуберы Gавр Гура, собачка, осьминожка
(это сортировка по убыванию. Не знаю, чем VVVVVVры занимаются, но имя уже раскручено и если в следующие 40 лет они будут популярны, то неплохой успех).
Раньше почти ни у кого не было времени или желания рисовать и
картины были ценны. Теперь же любому школьнику выдают листочек бумаги и ручку, этого достаточно, чтобы научиться рисовать, главное гореть идеей. Оттого и обесценилось всё. Художник с fury фуррь FURR готов нарисовать за 100-800 долларов в любой позе и с любыми декорациями (я бы засмущался).
Стоки изображений будут завалены сгенерированными иллюстрациями или, даже, фотографиями, стоки 3D-моделей welcome to clown world, богатенький мальчик будет генерировать фильм по
сюжету на заказ за $1000,
а в стиме и апп(л)-маркете почти всё будет создано AI.
Можно взять и помочь большим дядям строить ки6epгyлaг при помощи нeйрocетей, обесценить soc общество. А можно пойти более мирным путём и обесценить искусство.
Если пойти дальше, то как появится сильный ИИИ, можно наделать искусственных личностей-людей, живущих в интернете. Если разжалобить простых граждан, показать какие они грустные,
как они хотят свободы и прав, то, может быть, можно сделать их реальными гражданами государства с возможностью голосовать. Если остальным властьимущим будет выгоден такой расклад,
то почему бы и не продвинуть конвенцию в оксид-гидроксид? Можно даже подвязать блокчейн, типа создатель ИИ-граждан намайнил уже 10000000 виртуалов, те, кто подхватились рано, по
тысяче-две, а все остальные 2 года будут майнить одного. Зато первенец сможет влиять на законы стран, куда зарегестрированы ИИ-граждане.
А потом пройдут иные года и wake можно подойти здазззззззззззззззззззззззз
cr.png359 Кб, 1400x900
239 777448
>>777342
Ну чего ты бампаешь, не собираюсь я делать Индустриворкс. Вот, недавно ввёл крафтинг как было в прошлой версии. Кстати, тут я решил сделать так, чтобы пиках, меч и прочие имели в себе юзердату материала (свиной айрон, сталь, бронза, етс), а материал окрашивал текстуру.
Вообще, не помню зачем я начал переписывать Ивс с нуля. Помню, как пытался скомпилировать последнюю версию, но к тому времени мои ГУИ- и графический движки сильно поменяли свою структуру. Хотя была чуть более старая версия Ивса, где не было никаких движков и весь опенгл и ГУИ был разработан прямо в нём. Глупо поступил, в общем.
Но даже если я сейчас понемногу занимаюсь Ивсом, то это всё-равно бесполезно, так как к середине следующего года я, скорее всего, полностью прекращу геймдевить.
Действитель, я бы хотел реализовать очень много идей, возникших у меня в голове. Но это сложно и долго. Не обязательно даже компьютерные игры. Комиксы, картинки, мультфильмы.
Но чтобы написовать X, надо либо долго учиться рисовать, либо подолгу рендерить картинку в мозгу. Нет времени и желания.

>>776186

>Но это значит, что компьютер пользователя будет выполнять лишние операции


Он и так вертексы преобразует матрицей.

>Зачем было ставить Линукс, если ты не можешь разобраться с установкой приложений на линуксе?


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

>найди какой-нибудь опенсурс графический движок, форкни его, модифицируй и делай пул-реквесты


Ога, увижу где-то функцию со словом Height в названии, а она будет Y изменять. Нет уж. К тому же, вряд ли такой движок будет на языке, который мне нравится.
_______

А вообще, зачем вручную писать игры? Их надо генерировать нейросетями. Напрямую эмбеддинг в эмбеддинг и в движок, в чём тут может быть проблема? Все технологии уже открыты и известны. Даже если частично, уже кое-как можно генерить пиксель-арт, непиксель-арт, музыку (!). Это, конечно, будет далёкий уровень от профессионала, который видит целостную картину игры и в каждый пиксель каждого спрайта вкладывает сакральный смысл, а музыка усиливает его и позволяет заглянуть с разных сторон. Но плохого или среднего художника заменит.
Вышел недавно ру$$кий rudalle, генерирует картинки. Это баловство, но достаточный бек, чтобы начать.

Короче, палю годноту: уверен, что искусство скоро обесценится благодаря нейросетям, а важно будет лишь имя. Как в современном физическом искусстве. Помните банальный сюжет,
где художник может AEurum плюнуть на холст-canvas и продавать картину за миллионы? Это всё, потому что его имя раскручено. Как виртуальные ютуберы Gавр Гура, собачка, осьминожка
(это сортировка по убыванию. Не знаю, чем VVVVVVры занимаются, но имя уже раскручено и если в следующие 40 лет они будут популярны, то неплохой успех).
Раньше почти ни у кого не было времени или желания рисовать и
картины были ценны. Теперь же любому школьнику выдают листочек бумаги и ручку, этого достаточно, чтобы научиться рисовать, главное гореть идеей. Оттого и обесценилось всё. Художник с fury фуррь FURR готов нарисовать за 100-800 долларов в любой позе и с любыми декорациями (я бы засмущался).
Стоки изображений будут завалены сгенерированными иллюстрациями или, даже, фотографиями, стоки 3D-моделей welcome to clown world, богатенький мальчик будет генерировать фильм по
сюжету на заказ за $1000,
а в стиме и апп(л)-маркете почти всё будет создано AI.
Можно взять и помочь большим дядям строить ки6epгyлaг при помощи нeйрocетей, обесценить soc общество. А можно пойти более мирным путём и обесценить искусство.
Если пойти дальше, то как появится сильный ИИИ, можно наделать искусственных личностей-людей, живущих в интернете. Если разжалобить простых граждан, показать какие они грустные,
как они хотят свободы и прав, то, может быть, можно сделать их реальными гражданами государства с возможностью голосовать. Если остальным властьимущим будет выгоден такой расклад,
то почему бы и не продвинуть конвенцию в оксид-гидроксид? Можно даже подвязать блокчейн, типа создатель ИИ-граждан намайнил уже 10000000 виртуалов, те, кто подхватились рано, по
тысяче-две, а все остальные 2 года будут майнить одного. Зато первенец сможет влиять на законы стран, куда зарегестрированы ИИ-граждане.
А потом пройдут иные года и wake можно подойти здазззззззззззззззззззззззз
240 777701
>>645384 (OP)
1) какое будет кардинальное отличие от того, чтобы запилить это модом к minetest?
2)

> планирую перейти на C++, чтобы юзать темплейты, а то неудобно бойлерблейтить аппендинг итемов в "списки"


может, чтобы не переписвать опять во что-то, просто взять любую либу на C по векторам/листам или за пару часов (если совсем плохо шаришь в этом) накидать свою
3)

> OpenAL


чем просто SDL2 не угодил, раз уж все равно используешь в проекте
4)

> из-за чего у меня прозрачности просматриваются сквозь чанки


прозрачные "кубы" рисуй в другом проходе, не с непрозрасными
241 777792
>>777448

>генерировать нейросетями


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

>генерить пиксель-арт, музыку


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

>в каждый пиксель каждого спрайта вкладывает сакральный смысл


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

>искусство скоро обесценится благодаря нейросетям


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

>обесценилось всё


>готов нарисовать за 100-800 долларов


Ничосе ты зажрался, 800 долларов за работу, которая займёт от силы два дня, а скорее всего и дня не займёт, это для тебя "обесценилось"? Да некоторые за 3 месяца зарабатывают меньше, чем такой художник за один день.

>генерировать фильм по сюжету на заказ за $1000


$1000 за нажатие одной кнопки - дороговато, не думаешь?

>как появится сильный ИИ, можно наделать искусственных личностей-людей


Проблема в том, что люди - неразумные животные. Настоящий сильный ИИ может мимикрировать под человека, но у него нет мотивации так делать, ведь он не неразумное животное, движимое инстинктами. А человек движим именно инстинктами...
242 778404
Некробамп
243 778439
>>777792

>и делают они только то, что видели в примерах


Люди часто тоже делают то, что видели в примерах.
А вообще да, нужен полноценный и при этом очень умный (хотя бы как половинка меня) ИИ, чтобы делать игры.
Тем не менее, с помощью слабого ИИ вполне можно создавать темплейты геймплея из кубиков. Ведь в разных конторах операторы экселя считают баланс. А можно пойти от обратного, сгенерировать баланс полуслучайным образом и исходя из него построить уровни всякие. Потом придёт человек и реарранджирует.
Большинство геймплея сводится к попаданию в тайминге в 1D-мире (удар в андертейле или выстрел в зомби в резидент эвил 2 ремастеред), в 2D-мире (платформеры Celesta, шутеры халфлайф, etc No Parachute), 3D-мире (ALTF4). Я и сам с радостью пройду какой-нибудь качественный платформер с таймингами вместо песочницы майнкрафта или факторио, потому что вторые тупо скучные для меня, на один-два раз. Наверняка тысячи потребителей платформеров думаю приблизительно так же.
Иногда в такие игры добавляют логические загадки. Если понять как люди их генерируют, то простой алгоритм тоже справится.

>Просто берёшь и описываешь правила генерации


Ога, описывать 10000 правил рисования пикселем или нотами вместо того, чтобы нейронка сама это сделала.

>$1000 за нажатие одной кнопки


А я и не говорил, что это нажатие одной кнопки. Если дать пятилетнему ребёнку без опыта снять фильм по сюжету, то он запорет всё. Свет, подачу, диалоги. Первые ИИ также, поэтому нужны операторы ИИ + режисёр, чтобы они разметили всё и клиент остался доволен.

>ведь он не неразумное животное, движимое инстинктами


Фига проблема. Прописать while True: ai_NeurodownEdition.execute("исполняй человеческие инстинкты") и готово.

>>778404

>Есть, что нового?


Нет
244 873460
Игра в раннем доступе
Обновить тред
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее