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


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

[Назад] [Обновить тред] [Вниз] [Каталог] [ Автообновление ] 497 / 105 / 230

Anonymous No.70447
15619765569710.webm (13927 KB, 1600x912, 00:01:12)
СОН ПРО КУБЫ И ЧАНКИ
Первую половину ночи (хорошо, что лишь половину) кажтется. Ты и твоя кровать находитесь в 0,0,0, нулевой чанк и нулевой блок. Блоки перекладываются, размеры вычисляются, никак нельзя выбраться из блоков. Ты не перемещаешься, но чанк перемещается, что-то ставит новые блоки, координаты пересчитываются, учатски памяти заполняются ТОШНИТ ОТ ЧАНКОВ И КУБОВ
Anonymous No.70448
В ГОЛОВУ ЛЕЗЕТ ЛИШЬ УКАЗАТЕЛЬ НА НУЛЕВОЙ ЧАНК 0x5573a5402a30 0x5573a5402a30 0x5573a5402a30 0x5573a5402a30 0x5573a5402a30 0x5573a5402a30 0x5573a5402a30 0x5573a5402a30, ты на указателе
НАДО ДУМАТЬ О ТЕКУЩЕЙ ВОДЕ КОТОРАЯ НЕ КВАДРАТНАЯ ЧТОБЫ ВЫБРАТЬСЯ ИЗ КУБИЧЕСКОГО АДА, ВЫБРАТЬСЯ В ЖИЗНЬ, ДУМАТЬ О ВОДЕ, ДУМАТЬ О ВОДЕ, ДУМАТЬ О ВОДЕ, ВСПОМНИТЬ МИНУВШИЕ ШКОЛЬНЫЕ ДЕНЬКИ, КОТОРЫЕ БЫЛИ ХОТЬ И УЖАСНЫ, НО НЕ БЫЛИ КУБИЧЕСКИМИ
Anonymous No.70449
>>70447 (OP)
Это майнтест?
Anonymous No.70597
15620553081980.webm (17201 KB, 1600x912, 00:00:47)
ДЕРЕВЬЯ и океаническая вода.
Океаническая вода вездесуща и заполняет всё собой. Ммм, океан. Солёненький.
ЕСТЬ 2 ПУТИ ГЕНЕРАЦИИ МИРА:
2. СЛУЧАЙНЫЙ
1. ДЕТЕРМИНИРОВАННЫЙ ОТ СЕМЕНИ
ВТОРОЙ ЛУЧШЕ МОЖНО РАСПАРАЛЛЕЛИТЬ И НЕ БУДЕТ СТРАННЫХ БАНГОВ МОЖНО СГЕНЕРИРОВАТЬ НЕСКОЛЬКО ШУМОВ И НАЛОЖИТЬ ИХ ДРУГ НА ДРУГА ОСОБЫМ ОБРАЗОМ И ГЕНЕРИРОВАТЬ ЛАНДШАФТ
вода не падает вникуда
Anonymous No.70678
15620871291340.png (1853 KB, 1600x900)
ПОНИМАНИЕ АЛГОРИТМИЧЕСКОГО ГЕНЕРАТИВНОГО ПОБЛОЧНОКА ПРИХОДИТ СО ВРЕМЕНЕМ, МОЛОДОЙ!
Anonymous No.71664
15627007422670.webm (13320 KB, 1504x800, 00:01:40)
djlbxrf
Anonymous No.71708
эх как же хочется опенсурсный мойнкрофт
Anonymous No.71711
https://content.minetest.net/packages/?type=game
Anonymous No.71713
>>70449
>>71708
>>71711
Да хватит уже ныть о своём майнтесте.
НИ НУ Ж НО
Anonymous No.71720
>>71713
Майнтест хуёвенько сделан.
Я хочу опенсурсный майнкрафт, который скорее был бы редактором воксель арта, со всяким функционалом автоматизирующим рутину, ну и мультиплеером канешна
Anonymous No.71721
>>71720
> Майнтест хуёвенько сделан.
Что конкретно не нравится? Что-то фундаментальное или мелочи?
Anonymous No.71728
>>71720
Ты бы заплатил за такое 15 долларов в виде биткоинов или монеро?
Anonymous No.71732
>>71708
Сделай. Без мультиплеера сингл игру с более-менее таким же функционалом можно сделать часов за 20 без особых навыков - из которых большую часть нужно будет потратить на генерацию мира, что в общем-то не обязательно.
Мне бы хотелось ещё теплопроводность завезти, чтобы был смысл в двойных стенах и утеплителях. На самом деле ещё и движение жидкостей и газов хотя бы на уровне oxygen not included, но это не заработает на текущих компьютерах в мире размером больше совсем маленького, только если один "тик" раз в десять секунд проводить.

https://www.youtube.com/watch?v=XA4HGLcYt7M
Вот такое - вот это уже что-то крутой и сложное, а не унылые кубики, которые можно хоть на js сделать.
Anonymous No.71734
>>71732
>Сделай. Без мультиплеера сингл игру с более-менее таким же функционалом можно сделать часов за 20 без особых навыков - из которых большую часть нужно будет потратить на генерацию мира, что в общем-то не обязательно.
Да только чтобы в дальнейшем сделать мультиплеер надо всё заранее продумать, иначе переписывать придётся. Да и без подготовки мне кажется будет очень неэффективно.
>можно хоть на js сделать.
Ток чет нет норм реализаций
>>71728
Почему-то мне кажется, что если ты готов делать такое за 15 долларов, то ты не готов делать такое.
Anonymous No.71735
I just tried reading the code to learn how MineTest does voxel meshing, and it didn't go so well.

(Voxel meshing is about turning blocks into triangles efficiently, and it's surprisingly tricky. Mikola Lysenko wrote a great exposition of the problem and several solutions way back in 2012: https://0fps.net/2012/06/30/meshing-in-a-minecraft-game/ )
Anonymous No.71742
>>71732
>часов за 20 без особых навыков
Что? 80 часов минимум и это без отдыха с утра до вечера.
Anonymous No.71748
>>71735
>ссыль
>greedy meshing
Как стать умным и это понимать?
Anonymous No.71752
>>71734
>если ты готов делать такое за 15 долларов, то ты не готов делать такое.
Не понял, о чём ты?
Anonymous No.71754
>>71742
Это на ассемблере за 80?

20 часов чистого времени, имеется ввиду. Давай поспорим. Я не буду писать генератор мира, но разнообразные кубики с более-менее оптимизированной прорисовкой, инструменты, персонажа, пару видов мобов, механику для освещения, грибов/растений, жидкостей, огня, поршней и красного порошка попробую сделать. Вот и посмотрим за сколько часов до какой стадии дойду. Таймер рядом положу и каждые два часа буду делать архив, чтобы потом проследить.
Anonymous No.71756
>>71754
>на ассемблере
На си.
Anonymous No.71757
>>71752
Если ты оцениваешь это в 15 долларов, то ты недооцениваешь оч сильно, значит просто не в курсе дел.
>>71756
Кстати вот на си где-то видел какой-то простенький майнкампф, причём сразу с мультиплееров. Удивился.
Anonymous No.71760
15627680695160.jpg (128 KB, 481x550)
>>71756
>Давай поспорим.
Ну же, просто согласись, чего тебе стоит?
Anonymous No.71761
>>71754
> каждые два часа буду делать архив
А запилить репозиторий и делать в него коммиты что не позволяет?
Anonymous No.71765
>>71757
>недооцениваешь оч сильно
Вообще я изначально оценивал в 4-5 долларов, но версию с несколькими мобами, торговлей, а так же другими фичами. То есть такая игра могла бы быть продаваема и за 20 долларов?
>>71760
Ну давай, спорим. Только скажи ещё ЯП, на котором пишешь. Если это питон с кучей дополнительных модулей, то да, это не так уж и сложно. А на си будет гораздо сложнее. На C++, наверное, легче.
Anonymous No.71771
>>71761
Я не умею в репозитории, не автономно.

>>71765
С++, но код си-подобный без особого злоупотребления с++, то есть можно и на си - это лишь вопрос синтаксиса, то что методы придётся переписать как функции с указателем на структуру.
Впрочем, пока не знаю, возможно разнообразные сложные блоки по типу поршней или печек будет удобно через виртуальные функции сделать - и это чуть-чуть нагляднее, чем прикручивать сишные указатели на функции.
Anonymous No.71784
>>71754
Разбиение на чанки делать не будешь я так понимаю?
Anonymous No.71802
3 режима игры:
1 — выживание. После смерти теряются вещи и на несколько дней максимальное здоровье убавляется на пару десятков хп (когда всего — 100)
2 — выживание. После смерти мир удаляется.
3 — барьер. Есть куб, который нельзя уничтожать, уничтожишь — хана, мир удаляется. Барьер пару километров. Если выйти за барьер, то будет убавляться здоровье. Чтобы взаимодействовать с миром за барьером, придётся создавать роботов с радиосвязью и управлять ими. Или нанимать NPC.
4 — Королевская битва (мультиплеер)
5 — защита кровати (bed wars)
6 — защита флага.
Anonymous No.71803
>>71784
Буду. В любом случае сделаю кубы 16х16х16 (или крупнее) для рендера как в обычном майнкрафте (потому что без разбиения это не отрендерить в реальном времени с нормальной дальностью прорисовки - майнкрафт 1.5_01 работал в 30 фпс на целероне 2004 года с 1.5 ггц и видеопамятью в 59 мб на интегрированной карточке, для примера), и, возможно, игровую логику тоже в них засуну. В майнкрафте то чанки игровой логики 16х16х256, а просчитывать верхние слои атмосферы и глубокие подземелья для работы печки на поверхности нет особого смысла, мне кажется.

>только чтобы в дальнейшем сделать мультиплеер надо всё заранее продумать, иначе переписывать придётся
И вот это ещё надо учесть. Подход к мультиплееру очень хочется сделать факторио-подобным. Когда все вычисления не содержат рандома и полностью дублируются на каждом компьютере, а по сети пересылается совсем минимум - только действия игроков. Если изначально рассчитывать на возможность добавления кучи сложных устройст как в фактории, то пересылать по сети от сервера к клиенту результаты работы каждого - очень плохая идея, проще посчитать локально. К тому же это уберёт пинг при взаимодействии "игрок-мир", пинг останется только при "игрок-игрок".
С другой стороны, исчезнет возможность создания серверов на 100+ человек на сервере, с мощностью превосходящей компьютеры пользователей, будет работать только то, что сможет полностью просчитать обычный компьютер пользователя. Или нужно будет сделать какой-то гибрид который я никогда в жизни не осилю, где в радиусе видимости просчитываются все устройства по подходу фактории, а граница видимости подгружается с сервера по традиционному клиент-серверному способу. Тогда считается не очень много, сеть не очень загружена и пинга в радиусе видимости нет, но очень сложно разобраться что делать с взаимодействием установками на границе видимости с внутренними.
Я не умею в сети и мультиплеер, прислушаюсь к любым советам пока не начал и лишь размышляю над архитектурой.
Anonymous No.71807
>>71771
> Я не умею в репозитории
git init в каталоге с исходниками;
git add для каждого нового файла;
git commit -a после изменений.
> не автономно.
git автономен.
Anonymous No.71861
>>71803
И вот эту https://0fps.net/2012/06/30/meshing-in-a-minecraft-game/ хуйню хуячить будешь, типа там в каку.-то хуйню всю хуйню хуячить?
>>71803
> Когда все вычисления не содержат рандома и
)))000)00
ПСЕВДОРАНДОМ
С
Е
В
Д
О
Р
А
Н
Д
О
М
Anonymous No.72051
15629108385980.webm (8011 KB, 1504x800, 00:00:31)
крафт
печи
Anonymous No.72081
Тут 12 металлов:
1. Железо.
2. Золото.
3. Серебро.
4. Медь.
5. Олово.
6. Цинк.
7. Платина.
8. Титан
9. Алюминий.
10. Сурьма.
11. Ртуть.
12. Магний.
Больше не надо.
Anonymous No.72098
15629430810410.png (73 KB, 1258x320)
Не знаете что надо писать тут?
С одной стороны, я запросил у банка через интернет какой-то документ про своё счёт и там написано IVANOV IVAN (капсом, это ещё со свифтом что-то связанное), но тут пишут, что если я единый овнер контента, то надо писать свой full name, а это, насколько я знаю, вне зависимости от национальности, Ivan Ivanov. Но есть подозрения, что и Ivan Ivanov Ivanovich.
Anonymous No.72099
>>72098
Фамилию и имя только.
Anonymous No.72192
15630167890080.webm (6224 KB, 1504x800, 00:00:25)
Ууу, баги и лаги. Мой код костыльный и влажный, а мне надо ещё около 40 фич ввести. В день я ввожу в среднем 0.7.
Anonymous No.72199
>>72192
Код-то выложишь? На чём пишешь вообще? Обосси?
Anonymous No.72209
>>72199
>выложишь
НЕТ это абсолютно проприетарная программа, я хотел бы получить некоторое количество денег с неё, иначе бы я не затевал это.

Мне кажется или некоторые аноны думают, что люди должны делать игры свободными как свободное ПО? Так не надо, игры должны быть закрытыми, если это только не обучающая какая-то штука.
И вообще, сколько открытых игр успешны? Майнтест? Пхах, там сидят 2.5 инвалида. Даже дварф фортресс, хоть и бесплатный, но закрытый и успешный.
А майнкрафт, это самая продаваемая игра на Земле, 176 миллионов копий, она закрыта, тем не менее имеет кучу модов, наверное, самое большое количество модов среди игр.
Anonymous No.72272
>>72209
Ты тралешь? По-твоему майнтест стал бы популярнее будь у него закрытый код лол? Ты серьезно считаешь что твой клон майнкрафта превзойдет по популярности хотя бы майнтест?
Anonymous No.72288
>>72272
>будь у него закрытый код
Нет, майнтест это нечто другое, он не предназначен для закрытого кода.
>превзойдет по популярности хотя бы майнтест
Возможно, я не уверен. Насколько он популярен?
Anonymous No.72460
Эй, анон, который спорил со мной, как твои успехи? Как я понимаю, ты слился, я этого и ожидал, но хотя бы архитектуру продумал? Поделишься, может я чего-то подчерпну.
Anonymous No.72478
>>72460
Нет, я не слился, с чего бы, переехал в совершенно нетворческую абстоновку, и не было настроения - я решил прям вообще никаких заготовок не использовать и там очень занудная часть писать обёртку вокруг winapi и какой-то интерфейс с нуля для opengl. Первое я до приемлимого уровня довёл (в winapi даже нет события которая отлавливает выход курсора за пределы окна - нужно для этого дополнительный код писать, чтобы он генерировать это событие!), а вот от второго приуныл и пошёл заняться чем-то ещё. Почти шесть часов убил на этот мусор и интерфейс нужно ещё допиливать, чтобы он не был таким же жутким как в майнкрафте, где нет ни одного мода позволяющего увеличить размер инвентаря, и всё настолько прибито гвоздями.
Угу, к кубикам или чем-либо связанным с ними я даже не приступил. Там уже не будет никаких сдерживающих факторов вроде необходимости перерывать кучу страничек msdn из-за какой-то неожиданной неприятности - то есть я всё ещё более-менее планирую уложиться в 20 часов. Я покажу скриншот и результаты, когда будет что показать помимо лога загрузки, само собой.
Anonymous No.72483
15632930792450.webm (8571 KB, 1504x800, 00:00:27)
>>72478
>winapi
Как-то не. Ещё и не кроссплатформенно или линуксерам вайном предлагаешь пользоваться, хахаха? Ладно, это же проект не на продажу и не на выкладывание, да? Я вообще первый это, я зрчу попробовать.
Я использую SDL2, тут есть событие когда курсор теряет фокус окна (или клавиатура? -.- ), но я его пока не отлавливаю, мож потом добавлю.
У меня сейчас архитектура тоже прибитая гвоздями и вообще куча костылей, но я подумал, а зачем мне сейчас стараться, если я не уверен в успехе? Я уверен, что такую игру купили бы достаточно человек (25 минимум) в стиме в ьорли акцесс, ведь и лютое говно (всмысле простые игры) по типу где 2D бочка стреляет по коктейлям или пятнашки с аниме-гёрлами покупают десятками. Успех может провалиться в какой-нибудь технической или юридической части.
Anonymous No.72486
>>72483
> не кроссплатформенно или линуксерам вайном предлагаешь пользоваться
Можно переписать на glfw за 15 минут, он вроде бы кроссплатформенный и там есть события для клаво-мышки. Или даже на glut, лол. Это мелочи, можно поменять на любой стадии. Я взял winapi просто потому что у меня виндоус и мне так удобнее, чем писать под платформу которой я почти не пользуюсь и на которой будет неудобно это тестировать. Не вижу в этом ничего кощунственного.
Anonymous No.72542
>>71861
>ПСЕВДОРАНДОМ
Кстати, годная идея. Даже если поведение чего типа рандомно (количество лута, шанс лута, маршрут мобов), он может быть псевдорандомен и расчитан по определённому алгоритму. Лишь действия игрока не определены и вносят хаос в порядок исполнения мира.
>https://0fps.net/2012/06/30/meshing-in-a-minecraft-game/
Что-то фигня какая-то с третьми способом. Может быть для некоторых игр он бы и оказался ок, но так-то у меня, например, некоторые текстуры немного рандомизированы, из-за чего, чтобы создать большой ровный плейн, придётся создать новую текстурку, а не просто поменять текстурные координаты. И что будет быстрее, при каждом изменении чанка генерировать текстуру для большого плейна или просто пусть видеокарта рисует несколько плейнов, которые уже загружены в её самую быструю память.
Anonymous No.72776
ъу, джва дня адаптирую под новую архитектуру, так как старая оказалась слишком костыльной и WET и плохой, чтобы я мог продолжать.
Знаете, у меня раньше слоты (для предметов, которые) имели координаты. И они могли отображаться и не отображаться.
Теперь же слоты это часть ГУИ. В итоге теперь в верстаке может быть кнопка и она настроящая ГУИшная кнопка, а не что было раньше, костыли какие-то.
Ещё я больше коллбеков добавил, благодаря чему возможны более сложные блоки и стало лучше.
Anonymous No.72984
Отличия моей игры от майнкрафта?
- Блок в 2 раза меньше.
- Луна восходит на севере, а не на востоке

Я пока делаю, если выпущу на стиме, то в early access. Можно будет делать чугун в тигле и сталь более сложным способом, а из стали рельсы, вагонетки и локомотивы, что будет почти единственной частью геймплея в такой версии.
В последующем будет больше обработок руд. Например, магнетит, когда рядом с магнитом в виде дропа будет разрушаться на обогащённый магнетит и каменную пыль. Потом это можно переплавить в печи, а можно положить в термальную центрифугу. Если печь для переплавки и обжига требует некоторой температуры (температуры в игре не будет, это характеристика самой печи), то термальная центрифуга, машина 4x4x4 блока требует ещё и момента вращения ёмкости. Вращать при помощи электричества. Если температура набирается долго, то зачем зря вращать центрифугу? Можно подождать, но для этого нужна логика. В термальной центрифуге можно получить экстрапродукты. Из галенита серебро, из тетраэдрита сурьму (единственный способ получения сурьмы). Вы могли видеть подобное в индастрил крафте для майнкрафта, если играли. Кроме того, будут отводы под серный ангдирит и можно будет получать серу. Но для этого идёт труба и она должна подойти к трубе с сероводородм (который будет собираться в океане?) и получится сера, а эти две флюиды уничтожатся.
Чтобы сделать логику, придётся делать процессоры. Стандартная схема для создания процессоров в домашних условиях:
1. Магний + песок — магний оксид и магний силицид (будет как один материал).
2. Его в воду — силан.
3. Силан пропустить через горячую трубу — аморфный силиций.
4. Из силиция сделать кристаллы (в игре будет опущено много моментов, это же игра не про фабрику)
5. Кристаллы нарезать.
6. В одну вакуумгую штуковину пластинки и понадобится сурьма и бор, типа для создания N и P областей (не хочу фосфор, пусть будет сурьма).
Логика будет создаваться из логических элементов или чего-то подобного, а потом переноситься в ту штуковину для создания процессоров. Далее процессор кладётся в специальный блок и от него уже будут идти сигналы по кабелям, которыми можно управлять некоторыми блоками и машинами.
Теоретически, в игре можно будет создать полноценный ЦПУ, но частота довольно ограниченная.
Так же будут и аналоги поршней, но и шаговые двигатели. Но для этого понадобится создавать специальный чанки, которые находятся в "плавающем" состоянии.
Anonymous No.73060
Не понимаю вообще как можно заявлять, что создание простой майнкрафт-подобной игры занимает 20 часов. И это без уже готовых наработок, без особых навыков и на си.
Как по мне, 80% разработки занимает дебаггинг. Незнаю, может это я как-то не так программирую или не умею дебажить или мой мозг не программистский, но иначе у меня не получается. Даже если не использовать DRY (для небольших временных костылей) и другие правила программирования, всё-равно. У меня там игра запускается 4 раза из пяти. Ясно, что что-то с потоками, скорее всего, но как найти — я незнаю.

Повторенья мать багов.
Anonymous No.73129
15636153430200.webm (18480 KB, 1504x800, 00:02:15)
Вот так тут печь работает.
Anonymous No.73165
15636297844460.png (28 KB, 942x559)
>>73060
А на каком языке пишешь то?

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

На самом деле я видел как некто в /gd сделал с десяток видов кубиков и персонажа, который по ним прыгает (и может ломать/ставить блоки в креатив-режиме) за пару часов. Правда, вот из подобной заготовки и там всё гвоздями прибито без возможности дальнейшего развития, но всё-таки. Потому и захотел поспорить, посмотреть насколько я хужу.
Как мне кажется, у меня всё довольно неплохо продумано с возможностью дальнейшей модификации. Скоро я доделаю вот этот код общего назначения, и у меня будет своя небольшая заготовка с api для работы с текстурами, шейдерами и текстом, из которой можно будет очень быстро сваять что угодно, хоть кубики, хоть платформер.
А ещё я сам когда-то очень давно в прошлой жизни на другом языке писал на спор в поезде москва-питер фигню, где можно ставить-разрушать кубические блоки, но они организованы в виде октодеревьев а не массивов фиксированного размера - то есть каждый блок можно неограниченное количество раз делить на меньшие, и детализация ограничена лишь памятью. И успел, хотя прям совсем на донышке.
Anonymous No.73174
>>73165
>язык
Си. Мне он не нравится. Недавно тут объявлялся анон со своим языком программирования, я почитал описание прототипа (который он называет документацией) и мне понравилось, вроде бы немного похоже и на питон, и на си, но незнаю, да и сделает он первую реализацию через пару лет минимум.

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

>хоть кубики, хоть платформер
На самом деле, отрисовка и вычисление данных для отрисовки это очень мало, я думаю. Продумать блоки, как они ставятся и разрушаются, генерацию мира (хотя ты её не собираешься делать), инвентарь, всё это занимает гораздо больше времени.
Anonymous No.73179
15636399056720.png (730 KB, 1500x800)
Кирпичная стена из габбровых кипичей.
Кирпичи производятся путём вырезания пилой групп блоков камней, когда вокруг них есть пустая зона. С алгоритмом ещё не определился. Если есть массив из двух блоков, то выйдет длинный двублочный кирпич, как на скриншоте. Если один блок, то будет резной блок камня. Тут есть 4 вида камня — габбро, гранит, мрамор и кварцит.
Anonymous No.73180
>>73174
>всё это занимает гораздо больше времени
Может быть и больше, но это хотя бы не скучно и уныло, потому времени не замечаешь.

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

>Си. Мне он не нравится.
Прям чистый си? Такое мне по душе. Но почему бы не добавить крестов? В том месте где это не критично (вроде интерфейса) это будет намного короче и лаконичнее. С крестами то си на вышеупомянутый питон немного больше похож, если уж тебе лайси понравился.
Anonymous No.73187
>>73180
> образом будет отрисовываться куча кубиков, где
У меня в чанке есть массив структур rdp, а в элементах rdp содержится массив структур rd, в элементах которого содержится номер опенгл текстуры, указатель на вертексы, текскоорды, колор и количество вершин. То есть данные для отрисовки чанка разделены на несколько элементов, каждый для своего массива блоков (статичные блоки, динамичный блок 1, динамичный блок 2, динамичный блок 3...), а эти элементы содержат наборы вершин для своих текстур.
>отсекать по пирамиде видимости
Ничего не знаю и не понимаю. У меня просто есть некоторая область отрисовки чанков в виде куба и отрисовываются только те, на которые смотрит камера.
Anonymous No.73345
Ого, мне надо ввести ещё 56 фич, а времени осталось часов 12.
Как же я это сделаю?
Anonymous No.73347
>>73345
Что произойдёт через 12 часов?
Anonymous No.73367
>>73347
Будет дедлайн.
Но я часто видел вебкомиксы, где программисты были за дедлайном и там не так уж и плохо.
А в моём случае дедлайн будет очень мягким.
Anonymous No.73423
Очень медленно я ввожу фичи. Вчера я ввёл где-то 1.5. Может быть я начну трудиться экспоненциально и чем ближе к дедлайну, тем больше фич.
О нет, дедлайн же уже! Ну может тут экспонента, она же и в минусе есть.
Anonymous No.73424
>>73423
Приведи пример фич, насколько они крупные?
Anonymous No.73426
>>73424
Генерация берегов.
Генерация пляжей.
Генерация руд.
Генерация песка.
Генерация гравия.
Зажигалка.
Берёзы.
Сосны.
Цветы.
Двери.
Чугун.
Плавка металлов.
Сталь.
Огонь.
Жаркий огонь.
Генерация угля.
Создание кирпичей.
Поворот блоков.
Доскоблоки.
День/ночь (освещение).
Освещение.
Факел.
Поведение жидкостей.
Водоёмы.
Глина.
Сундук.
Ведро.
Прочность инструментов.
Инструменты.
Наковальня.
Ковка.
Музыка.
Настройки.
Конфиг.
Сохранение и загрузка мира.
Генерация пещер.
Физика игрока.
Падение блоков.
Дроп.
Блочный дроп.
Выброс на Q.
Рост травы.
Две руки.
Отображение предметов в руках.
Крафтинг в инвентаре.
Тайтл предмета.
Локализация.
Меню языка.
Достижения (нужны для обучения).
Меню достижений.
Стаки.

Вроде бы большинство маленькие, но их тоже надо программировать.
Anonymous No.73428
>>73426
>Настройки
>Локализация.
>Конфиг
Вот это сделай прямо сейчас, лучше. Потому что сейчас "фич" мало, можно очень быстро заменить цифры на единообразные переменные из конфигов и потом просто дописывать по одной строчке, мол добавить конфиг с таким то именем и значением и потом в коде сразу его использовать.
В противном случае потом будешь много часов выискивать числа в коде и заменять на конфиги, и аналогично строчки на текст из локализации. Ещё пропустишь где-нибудь, так что в одном месте останется число/константа, а в другом значение из конфигов и это выпадет с ошибкой в какой непонятный момент.

>Огонь.
>Жаркий огонь.
Почему не сделать огонь произвольной температуры? И её по блокам пустить, как в oxygen not included, чтобы у каждого блока была своя температура?
Anonymous No.73436
>>73428
>данные и константы
Это очень плохо так программировать. Надо один раз определить константу или переменную и потом уже её использовать где надо. Хотя и я иногда не исполняю данное правило.
Насчёт локализации, у меня есть функция LabelById, вот её я уже использую, она сейчас выдаёт значения из языка eng, но легко расширить и будет выдавать значения в заивисимости от выбранного файла с переводом.
А настройки не большие в начальной версии. Просто слайдеры с громкостью музыки, расстоянием отирсовки чанков и расстоянием обработки чанков.
>температуры
Сложно и не нужно. Я бы хотел сделать что-то типа смеси майнкрафта, факторио и дварф фортресс, не слишком сложное, но и оригинальное, а так же в более узконаправленном спектре. Если бы я делал тупо клон майнкрафта, то это неоч, а если будет изюминка для меньшей аудитории, то они купят это и можно цену сделать побольше.
Вот я бы хотел, чтобы в моей игре было создание логических схем (из логических элементов или чего-то подобного) на одном предмете/блоке, чтобы при помощи них делать мобов-роботов или блочные конструкции, при помощи которых побеждать боссов. Боссами могут быть армии, замки, космические децентрализованные боги или ещё что-то, то есть не просто один моб с несколькими абилками. Такими ребятами могут называться разве что минибоссы. Любой дурак одолеет бандита с автоматом, ты попробуй против армии хотя бы какой-нибудь маленькой африканской страны выступить.
Кстати, я планировал потом когда-нибудь добавить деревни, где можно будет нанимать жителей для работы. Крафтинг занимает время, установка и разрушение блоков занимает время. Чтобы ускорить и распараллелить, лучше нанять жителей и дать им задание, в дальнейших версиях можно было бы ввести рабство, профсоюз, саботаж. Но при развитии игрока он будет постепенно автоматизировать производство ресурсов, всякие тупые работы по типу выплавки стали будут автоматическими, а когда он дойдёт до манипуляторов, то ему вовсе не понадобятся лишние работники, так как будут доступны машины, способные крафтить вещи как если бы это делал работник или игрок.
>жаркий огонь
Если огонь делает от зажигалки на любом месте, то жаркий огонь можно будет сделать на блоке кучи угля в закрытой области. Бросить туда чугунные болванки, кокс и флюс и получится жидкая сталь, которую можно собрать тиглем и получить стальную болванку.
Anonymous No.73451
15638635537830.png (687 KB, 1500x800)
Сделал крафтинг в инвентаре, но очень костыльными способом. Я взял сделал глобальную переменную типа предмета, туда слоты как в верстаке сделал и ГУИ покрывает только 4 из 16 слотов входа. Коллбеки такие же как и у верстака. И в функции процессирования чанков каждый раз проверяется, есть ли там крафт и крафтит.
Anonymous No.73454
На самом деле, продумать архитектуру такой игры не так уж и просто, вот переделывания архитектур и становится нормой. Этакие инициации.
Поначалу думаешь, будут просто блоки. А потом понимаешь, что жидкости могут заливать некоторые неполные блоки. Потом понимаешь, что блоки могут иметь сложные вершины и анимации и одними кубики или просто модельками тоже не отделаешься. Затем про мобов вспоминаешь, про дроп, про анимации, обощать всё под свойства блоков сложно, коллбеки нужны, архитектура расширяется, болезненно.
Хотя, может я как-то не так программирую. Вроде бы всякие там объекты должны быть расширябельные, но я ничего такого незнаю.
Anonymous No.73490
>>71721
Странная механика передвижения пиздец, как бесит
мимо другой анон
Anonymous No.73528
15639573483180.webm (1921 KB, 1504x800, 00:00:10)
Огонь.
Anonymous No.73643
15640506497430.webm (2752 KB, 1504x800, 00:00:10)
Блочный дроп. У меня блоки выпадают в виде твёрдого дропа. Но он должен ещё и падать.

Кстати, а стим не позволяет через себя распространять LGPL-компоненты без предвариетльно подписанного соглашения. А libdl и его билд под виндовс распространяется через LGPL. Как я понимаю, виндовсовский билд libdl позволяет загружать ELF shared objects в виндовсе. И если вводить поддержку модов, то точно нужны исполняемые файлы-библиотеки, а не скрипты и чтобы те, кто захочет создавать моды делали ELF shared object и моды были кроссОСовыми. Может это немного не безопасно, зато функционально. libdl обычно есть в линуксовых дистрибутивах, наверняка и в SteamOS. А в виндовсе в его АПИ есть штука, позволяющая загружать .dll. Если загружать libdl в виндовсе, то можно будет и shared object загружать, если я правильно понимаю. Получается, либо придётся игре стучаться на какой-то сервер, чтобы загрузить LGPL-libdl-windows-x86_64-DLL-библиотеку, либо чтобы пользователь вручную. В итоге моды станут лишь дополнительной функциональностью игры.
Anonymous No.73872
У меня отрисовка очень медленная. Мне пришлось даже отключить грани между прозрачными блоками по типу листвы.
Возможно это из-за отсутствия VBO, может быть в видюху закешировалось бы как-то.
Anonymous No.73875
>>73872
>из-за отсутствия VBO
Прикрути glCallList/glNewList. В действительности он преобразуется в vbo и работает с его скоростью, но генерируется раз в пять дольше. Работает быстрее даже на целероне на 1.5 ггц с интегрированной карточкой, которая vbo не поддерживает, то есть даже без vbo он как-то оптимизирует что-то там.
Потребуется добавить буквально шесть строк кода и одну переменную.
Anonymous No.73879
Я подумал, что в игре производство стали должно быть не в некой непонятной закрытой области, а в особой конструкции. Надо сделать рецепты крафта шамотного кирпича и из блоков таких построить печь 3x3x4 (x,z,y), где корпус будет из блоков шамотного кирпича, но в середине внизу будет блок кучи угля. Его поджигаешь, получается блок жаркого огня, который горит, пока прочность кучи угля (прочность как у инструментов) не закончится. Данная конструкция имеет дырку вверху, куда надо кидать в виде дропа чугунные кусочки или болванки (там круг вместо слитков), кокс и известняк, а из дырочек вокруг огня будет литься расплавленная сталь, которую можно собрать тиглем как ведром воду в майнкрафте. Из стали можно сделать прочные инструменты и, в будущих версиях, в случае успеха, можно добавить рельсы, вагонетки, локомотивы, которые делаются из стали.
Я ещё думал над сеттингом в моей игре. У меня уклон на автоматизации как в факторио, но более реалистично. Роботов надо будет программировать логическими схемами. Но я подумал, что во-первых роботов должно быть очень сложно создавать, чтобы на первых стадиях игры игрок делал уклон на наём деревенских работников со всеми бичами профессий, человеческого фактора и защиты прав рабочих.
Но я подумал, что роботы в такой игре не должны иметь возможность выполнять что-то типа сложной ручной работы. Ведь у меня не точный физический движок и симулятор роботов, у меня майнкрафт-подобная игра. Я подумал, что можно сделать големов. Големы смогут делать сложную ручную работу и тем самым иметь возможность крафтинга и таким образом заменить деревенских рабочих на големов. Но големы при создании будут агрессивными или просто тупыми, тем не менее, способными двигаться, видеть, слышать самостоятельно, когда роботы просто ездить и снимать на камеру, эхолокатором или микрофоном. И чтобы ими управлять, надо будет посылать сигналы в особые големные органы, типа как если бы электродами в мозг обычного существа били током. Кроме того, это позволит игрокам не могущим в сложные логические схемы или тем, кто не хочет заморачиваться, что-то там мудрить с передвижением. Достаточно будет просто послать сигнал в вывод "идти" или что-то такое. В случае роботов мне пришлось бы вычислять как там ноги ходят и если идут они правильно, то моб, голем, идёт. А это неоч и не подходит такой нефизической игре. Игроки, которые вообще не дружат с логикой могут нанимать деревенских жителей и солдат для автоматизации и победы над боссами (боссов в одно рыло будет чрезвычайно сложно победить).
Кроме того, надо сделать уклон на то, что игроку придётся добыть очень много ресурсов. Жилы руд должны быть большими, но их придётся несколько десятков разорить. Если в факторио это реализовывалось путём исследований, которые открывали новые предметы и их крафт, а сами исследования требовали крафта из дорогостаящих ресурсов, то у меня более майнкрафт-подобно. Все рецепты доступны сначала. А создание одного блока сверхмашины или чего-то из 10 стаков стальных болванок звучит неочень. Вот я и подумал, что, возможно, пусть игроку придётся добывать очень много энергии. Электроэнергии. А электроэнергия добывается из генераторов и других машин, которые потребуют много ресурсов для их создания и, возможно, обслуживания (истирание графитовых щёток у электромоторов).
Можно сделать так, чтобы при помощи электроэнергии можно было сделать особую энергию для големов, которой они будут питаться.
Ещё можно сделать так, чтобы големов можно было улучшать. Если простые големы это просто кучки камней управляемые некой магической силой, то улучшенные будут иметь сервоприводные или гидравлические конечности, благодаря чему им можно будет меньше магической энергии тратить, вместо неё более дешёвую электрическую. И тогда ещё можно, чтобы просто големы должны были напрямую быть подключёнными к источнику магической энергии, а улучшенные иметь аккумулятор магической энергии и аккумулятор электрической.

>>73875
Должно быть полезная вещь, попробую. Встречал данную функцию, когда копипастил примеры программ, использующих libassimp. Я тогда ещё удивлялся, что в данном примере с рудиментарными glBegin и glEnd рисует довольно быстро.
Anonymous No.73881
>>73879
>Роботов надо будет программировать логическими схемами
В это нельзя будет играть. В фактории есть основные арифметические операции для комбинаторов и мод, который позволяет определять разметкой блупринтов через комбинаторы. И даже с таким уровнем во всём мире два с половиной человека сделали с этим комбинаторами хоть что-то серьёзное. Всего одна серая слизь (да и то довольно плохая) с модом, да и без мода поделок хотя бы уровня "Conway's Game of Life" очень мало.
А ты логику хочешь. Да ещё и в трёхмерной игре, прошу заметить. Если не полноценные скрипты или не близкое к ним, то это не стоит своего времени. Видел роботов из буилдкрафта? Как, удобно пользоваться? Для большего, чем сбор морковки с квадратной грядки они не подходят, да ещё каждого вручную настраивать.
Anonymous No.73884
>>73881
Да, наверное ты прав.
Значит надо будет сделать так, чтобы у големов были свои специальные модули, позволяющие выберать профессию по типу сбора урожая, защите от мобов, шахтёрство и всё такого, а логика будет лишь дополнительным, для продвинутых игроков. Ну и наём жителей.
Но вообще, есть игры и про программирование на ассемблере и в них поиграло не так уж и мало людей.
Кроме всего этого, моя игра, в случае успеха, будет иметь много аспектов, как и майнкрафт. Строительство, развитие своей деревни/города, копание в шахтах, путешествия, может быть, выполнение квестов. И пусть будет много минибоссов, которых можно убить и в одиночку, таких ещё именую боссами в других играх.
Anonymous No.73909
>>73884
Я, это, я за 20 часов всё ещё пилю, если что - я просто барханная кошка из кемоно и мне очень сложно заниматься чем-то одним и тем же даже 20 часов - уже придумал одно новое занятия и две новых программы, у которых приоритет выше.

Осталось ещё 4:20 и я, очевидно, не успеваю; признаю свою неправоту.
С другоны стороны это всё ещё на 99% обший код и ничего кроме объявления пары классов непосредственно для майнкрафтоподобной игры я не делал - зачем-то снова и снова вылизывал свои структуры данных общего назначения, хотя это не то, на что стоило бы тратить время в 20-часовом интервале.
Собираюсь потратить ещё 20-30 часов, так чтобы суммарно было 35-45 часов (или ещё больше), но непосредственно на "контент" ровно 20 часов - чтобы уж точно убедиться в своей неправоте.
Anonymous No.73934
15643173029150.webm (11373 KB, 1504x800, 00:00:46)
Жидкости кривые.
Я ещё недавно узнал, что в майнкрафте, в системе мягкого света используется https://ru.wikipedia.org/wiki/Ambient_occlusion, я офигел немного, мне что тоже расчитывать с этими пи и ещё чем-то. Хотя я не прочитал вообще, но я приблизительно понял, как можно сделать мягкий свет. То есть свет находится в середине блока. Надо для каждой вершины рассмотреть 8 окружающих блоков и сложить от них свет. Или как-то так.
Кроме того, важен дневной свет в плане где тени, чтобы можно было рассматривать ландшафт.

>>73909
Вот на контент легко потратить меньше 20 часов, если под контентом подразумеваются текстуры, свойства блоков и предметов, а также коллбеки для сложного поведения типа верстака, печи, поршней, огня (который затухает), травы (которая растёт), инструментов как огнива и ножниц.
Anonymous No.73975
Создание больших сложных проектов по типу вот таких игр хорошо развивает человека, его навык решения задач оттачивается до ☼masterpiece☼ и ≡programming≡.
Anonymous No.73999
15643409623120.png (503 KB, 1500x800)
Наковальня.
Anonymous No.74012
15643464880670.png (625 KB, 700x524)
15643464882261.png (623 KB, 700x560)
>>73934
В майнкрафте нет AO, даже не близко. Там есть яркость от 0 до 15, и с каждым блоком она падает на 1, начиная от блока источника света. При этом яркость двух вплотную стоязих факелов не складывается.
Яркость есть только у блоков, а сглаживание это лишь костыль поверх них. Если взять две комнаты соприкасающиеся углом и одну осветить, то в другой этот угол будет светиться, потому что такого понятия как яркость определённой поверхности куба там даже нет. То есть никаких реальных эффектов, которые должны были бы появиться от АО там даже близко нет. Дырка в громадной пещере в майнкрафте освещает только под собой, что абсолютно несоответствует вот тому интегралу. Соответствовать тому интегралу будет, если яркость будет падать пропорционально косинусу, потому что видимый клочок неба становиться всё меньше и меньше.


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

Вообще, хотелось бы попробовать такое, реальное AO, чтобы узкий луч солнца проходящий в пещеру освещал всю пещеру, как на этих фотографиях. Майнкрафт то на редкость статичная и неподвижная игра. Не обязательно даже в реальном времени просчитывать, кубики ставяться довольно таки редко, раз в несколько секунд - я не думаю что будет сильно резать глаз, если яркость плавно с задержкой перераспределиться после установки/сноса блока.
Anonymous No.74058
Добавляя контент в майнкрафт-подобную игру надо быть осторожным, ведь надо, чтобы каждая вещь была достаточно уникальной. Если взять майнкрафт, то издавна там было 5 дружелюбных моба — курица, свинья, овца и корова и спрут. Они почти одинаковые и в случае с лишь пятью мобами это нормально. Но в последнее время туда добавили ещё мобов, дружелюбных теперь 22 и моджанг довольно грамотно их добавили, к тому же поменяли поведение уже готовых мобов, например, овца ест траву и выращивает шерсть, а из совсем недавних мобов, черепаха имеет довольно сложное и уникальное поведение, про жителей и говорить ничего не надо. Но вот летучая мышь мне кажется там лишней. Не несёт никаких задач, кроме как небольшого антуража. XP не даёт, а крылья уродливые. Представьте, если бы было штук 50 мобов и все они имели одинаковое поведение и единственное отличие только в цвете куска мяса, которое выпадает с них? Такое можно было наблюдать при сильном моддинге майнкрафта, когда добавлялся однотипных контент.
Если взять дварф фортресс, то там однотипного контент очень, очень много, но учитывая о чём сам дварф фортресс, на это можно не обращать внимание.
А если взять какой-нибудь старбаунд, то когда я играл на очень ранних версиях, там были процедурно генерируемые мобы. Ну как процедурно генерируемые, несколько типов голов, туловищ, хвостов и шаблонов поведения. Это очень плохо. Очень плохо. Это было ужасно, но благодаря опыту других игр я научился, что процедурная генерация должна быть в меру, чтобы игра была интересная. К тому же, игроку нравится при встрече с уже известным мобом выбирать в своём мозге соответствующую тактику поведения с ним, а если моб процедурно сгенерирован, то неизвестно что он сделает, что с него выпадет и это будет неинтересно.
Anonymous No.74352
15645615915770.webm (5355 KB, 1504x800, 00:00:25)
С руками у меня проблема. Но инструменты.
Anonymous No.74401
15645910814040.png (534 KB, 1500x800)
Лол, ещё 37 фич вводить, а ведь 17 дней назад я говорил про 40. Хотя 10 дней назад 56. То есть за 10 дней 19 фич, то есть в среднем по 1.9 фичи в день, это не так уж и плохо.
К тому же уже почти все механики для первой версии запилены, осталось лишь немного подлатать, контента добавить, коллбеки для отдельных блоков, исправить баги и оптимизировать. Тем не менее, ещё очень много фич генерации мира надо сделать, а это может быть сложно.
Anonymous No.74519
15646399473670.png (436 KB, 1500x800)
Я незнаю как организовать генерацию мира, чтобы код был хорошим.
Anonymous No.74522
15646445026770.png (530 KB, 1500x800)
Сумасшествие. Я пишу уравнение для круга, а оно делает так, будто я по координате Z добавляю.
Anonymous No.74534
15646600239690.png (1100 KB, 1500x800)
Пара строк кода и псевдотени на блоки при солнечном свете добавлены, значительно улучшающие общий вид и облегчающие виденье самих блоков.
Anonymous No.74535
Кстати, я хотел сделать физику песка и гравия такую, что он собирается в кучки при падении. То есть нельзя насыпать столб песка, но пирамиду можно.
А ещё у меня кабблгранит, кабблкгаббро, кабблкварцит и кабблмрамор падают, но собираются в столб. Из них не построить дом, ахахахаха. Можно из соответсвующих кирпичей или просто обтёсанных блоков, которые добываются при помощи стальной пилы.
Тут есть такие инструменты:
Деревянные:
Кирка, лопата, мотыга.
Каменные:
Топор
Чугунные, бронзовые, медные:
Кирка, лопата, топор.
Стальные:
Кирка, лопата, топор, пила.
То есть, чтобы создавать каменные кирпичи, придётся делать сталь. А так, бронзовые инструмены имеют 0.625 прочности стальных аналогов и, возможно, их будет эффективнее использовать для некоторых целей благодаря лёгкости добычи её. Надо будет просто медные и оловянные кусочки в тигле смешать, нагреть и будет бронза. Когда для стали нужна железная руда, из которой получается чугун, известняк или доломит и кокс или древесный уголь + построить печь из шамотных кирпичей + дополнительный уголь.
Руды — киноварь, сфалерит, галенит, тетраэдрит, гематит, лимонит, магнетит, касситерит, бишофит, пирит, халькопирит, бура, рутил и боксит. Но в первой версии лишь малая часть руд будет. Кстати, бишофит можно будет растворять в воде, как это в реальной жизни есть, если я не ошибаюсь. Может быть так и выкачивать его можно будет, но будут ли игровые механики оправдывать такой метод добычи?
Что насчёт железных руд, так их особенности будут в том, что лимонит будет генерироваться в некоторых водоёмах в небольших количествах, а магнетит можно будет "обогащать" магнитом.
Ещё я хотел потом драгоценных камней добавить, чтобы их продавать всяким жителям. Стандартный набор: алмаз, аметист, топаз, изумруд, рубин, сапфир. Если у жителей будет ювелирия, то пусть будет возможность стырить ювелирное изделие, забрать камни, а самого его в термальной центрифуге на составляющие металлы разделить. Золото, серебро, медь, цинк, платина.
Ещё можно будет серу добыть. Но для этого надо будет сначала спуститься на дно океана и там собрать пузыри сероводорода, который можно будет смешать с окислом серы и получить серу, из которой сделать больше сероводорода. А окисел серы будет добываться из серосодержащих руд. То есть надо один раз сходить в океан, чтобы начать производство.
Ещё, может быть, добавлю производство серы из киновари, так вроде бы в реальности в древности делали. Но тогда не будет смысла игроку идти в океан.
Сера нужна для создания пороха и резины. Я ещё думал над добавлением нефти, но не уверен, что это нужно.
Так же в новых версиях должна быть боёвка. Я думал над тремя видами ближнего боя оружия: меч, булава и копьё. Меч наносит мало урона, но способен отсекать конечности. Булава наносит много урона и броня меньше его блокирует. Копьё можно далеко метать. Может быть ещё оно лучше будет наносить урон в некоторых видах брони и им бить через щели (некоторые блоки?), не уверен.
Дальнобойное оружие — лук, арбалет, а на дальнем уровне развития пороховые ракеты и и стрелы с пороховым зарядом для ускорения. Ещё можно добавить стационарное оружие по типу катапульты, баллисты, пушки, хвачхи.
Anonymous No.74536
В майнкрафте много цветов и мало грибов. В своей игре я бы хотел сделать наоборот, потому что мне нравятся грибы. Но и цветов не 2 штуки. Одуванчик в двух видах, может быть подсолнечник, роза и ещё какой-нибудь. Хотя, если я буду добавлять продвинутую агрокультуру, то придётся делать много цветов. Или нет.
А вот грибы разные. И белый, и мухомор, и шампиньон, светящиеся подземные, ядовитые. Ещё какие-нибудь в кучках и чтобы можно было по-одному собирать как черепашьи яйца в майнкрафте. Так же не забывать про псилоцибиновые грибы и чтобы можно было их принять. Хотя эффекты от психоактивных веществ ещё придумывать надо будет, как это будет выглядеть. Или нет, если представить что игрок это раса с высоким иммунитетом ко всяким штукам, тогда только других мобов можно будет заражать.
Насчёт игрока, я бы хотел сделать так, чтобы после смерти количество максимального здоровья уменьшалось на несколько дней.
А ещё чтобы в мультиплеере игроки могли бы размножиться. Женский игрок дропнул бы блок плаценты с эмбрионом (с анимированной моделькой и звуком сердцебиения), в который может прийти другой игрок по приглашению и он там заспавнится, точка с эмбрионом станет его первичным спавн-поинтом.
Anonymous No.74538
>>74536
> то придётся делать много цветов
Сделай геном на несколько байт. Ген отвечающих за высоту, за цвет, за урожайность, за форму цветков, за наличие шипов, завитушек и так далее. 2 байта - 65к разновидностей. При размножении какой-то один бит может случайно поменяться, например.
Вот есть разнообразие процедурно сгенерированного оружия в игре Borderlands 2. Оно конечно там из деталей собирается, но, кмк, игре это очень сильно на пользу пошло, чем если бы было пусть даже 100 разновиднойстей вручную добавленного оружия. Шанс найти аналогичное оружие не слишком большой, даже если его по квесту выдают - оно может в корне отличаться из-за стихии или прицела.
Anonymous No.74560
>>74538
Добавлять ли генетику в свою игру? Я не уверен, нужна ли она там. У меня скорее более машинное направление, машины. Это для тех, кому нравится машины строить, а тем, кому нравится путешествовать квесты, диалоги, расы, интеллект мобов и чтобы было похоже на дварф фортресс эдвентур мод.
Может быть добавить генетику это классно, но не уверен.
>При размножении какой-то один бит может случайно поменяться, например
Добавить эволюцию было бы ещё сложнее, я думаю. Может сделать обычный набор генов для каждых растений и/или животных, но в некоторых случаях (генерируемых подземных лабораториях) будут растения с другим геномом. И сам игрок может заниматься генными модификациями. Это бы добавило геймплея, но всё же не уверен.
Что я бы хотел, чтобы создавалось из деталей, так это машины, машины-сущности. Например, есть движущаяся часть с колёсами и можно добавить интерфейс для человека или интерфейс для процессора, чтобы сделать робота. Добавить возможность установки камер, эхолокаторов, радиосвязи, оружия. Оружие — электрические стреломёты, ракетницы и штука как у хвачхи. И из этого можно было бы создать свой аналог роботизированного Града для того, чтобы захватить какой-нибудь город. Но так же важно соблюсти баланс.
Кстати, насчёт городов. Мне понравилась идея городов-государств как в Kino no Tabi -the Beautiful World- (который старый), можно было бы в мою игру ввести такое. Но мой сеттинг такой, что есть деревени, в которых живут просто люди (и другие разумные существа), они свободные, могут переходить из деревени в деревню, и города-государства, в которых уже всё может разниться. Разные политические режимы, разные законы, разная таможня, уровень технологий, проблемы, квесты, возможность торговли. Можно основать свой город, можно уничтожить город (в таком случае город это босс и сражаться он будет в полную силу). Сплетни о игроке между городами разносятся. Могут быть дороги между некоторыми городами. И чтобы такой заходишь и он живой, мир живой.
Только как это ещё всё вычислять? Я бы хотел добавить поддержку OpenCL для некоторых вычислений, ещё распределённые вычисления.
Anonymous No.74591
Шалом помятым.
Братан, у тебя конечно полотна текста что хрен прочтёшь. Но дело прикольное делаешь. Успехов!
Anonymous No.74598
Тем временем я придумал крутой способ для выращивания цветов. Если в майнкрафте, чтобы получить цветы надо костной мукой по траве кликнуть, то у меня они будут выращиваться из семян. И я подумал, что одуванчики будут периодически менять своё состояние (жёлтый-белый), причём погруппно. Цветы можно срезать ножницами, которые делаются только из стали или из бронзы, не из чугуна (хотя не уверен), если срезать цветок, то можно получить его семяна путём крафта, а можно и просто поставить, а из белого одуванчика при любом разрушении будут выпадать семяна. А вот розы будут в виде кустов, но срезаться будут ножницами по одной, видоизменяя сам блок как черепашьи яйца в майнкрафте и поставить много роз не получится, только по одной и ждать, когда вырастет в куст. Думаю, из цветов ещё будет подсолнечник и клевер. Этого достаточно. Разное поведение залог успеха.
Anonymous No.74618
>>74536
>Женский игрок дропнул бы блок плаценты с эмбрионом (с анимированной моделькой и звуком сердцебиения), в который может прийти другой игрок по приглашению и он там заспавнится
По мне так, это не лучшая идея.
Anonymous No.74636
Офигеть, один чанк занимает 1.3 МБ, когда полезных, немусорныех данных тут в среднем 20%.

>>74618
Почему? Это не обязательно, игрок на сервер может прийти и как обычно.
Anonymous No.74662
15647433470340.png (1404 KB, 1500x800)
15647433473031.png (922 KB, 1500x800)
15647433473562.png (1623 KB, 1500x800)
Багованый смешанный лес.
Anonymous No.74667
>>74538
>разнообразие процедурно сгенерированного оружия в игре Borderlands 2
Я подумал над этим и понял, что в майнкрафте тоже есть улучшения и модификации оружия и инструментов и это зачарования. Они могут улучшать предмет или давать ему некоторые свойства, некоторые зачарования несовместимы друг с другом. Учитывая, что в моей игре тоже может быть магическая тематика с големами, то может и я добавлю что-то такое. Когда-то я играл в майнкрафт с модом таумкрафт и мне понравилась идея аспектов от-туда. Возможно, используя некоторые механизмы можно будет выделять что-то типа таких аспектов и использовать их для зачарования в моей игре. Только если в таумкрафте этих аспектов много и они складываются как в мобильных играх типа "Алхимия", то в моей игре их должно быть немного. Может что-то типа стихий + ещё несколько. И уже от их комбинаций предметы будут иметь разные зачарования, которые, к тому же могут быть непостоянными или проклятиями. Но я пока не уверен насчёт сеттинга. Я подумывал, что дальше по развитию игрок перестанет использовать кирки и станет использовать буры. В случае добавления зачарований, тоже должна быть возможность нанесения их на буры. Но, возможно, они будут плохо влиять на "электронику". Ещё можно сделать так, чтобы у буров был расходник в виде графитовых счёток и игрок будет по своему усмотрению использовать кирки или буры. Буры работают дольше, прочнее, но требуют расходники-предметы + электроэнергию, а кирки просто ломаются.
В общем над этим подумать надо сильно.
Anonymous No.74733
Как же я ненавижу повторения в программирования! Но что-то внутри меня сопротивляется думать, чтобы избавиться от повторений. Конечно, легче же скопипастить код и заменить пару переменных.
Никогда нельзя повторять.
Но кроме того, я заметил повторения в текстурах! Я нарисовал текстуру обычного факела и зажжёного, они отличаются только верхушкой. Но потом я понял, что получилось некрасиво и мне пришлось перерисовывать 2 раза! Мне что, теперь, через imagemagick генерировать текстуры для файла ресурсов? Было бы неплохо. Ещё как вариант, накладывать разные текстуры в самом опенгле, но это сложнее. Хотя мне всё-равно придётся так сделать, если я захочу, чтобы цвет травы менялся в зависимости от биома.
Anonymous No.74739
Я думал, что уменьшу потребление озу раз в 5, а уменьшил в 1.5 раза. Дело в том, что у меня блок имеет как бы 3 слоя для предметов. Для блоков, для внутренних блоков и для жидкостей. Это позволяет в одном блоке существовать траве и воде, например, или гематитовой руде в габбро, граните или где-либо ещё. И раньше у меня блок включал структуры о предметах для каждого. Но я недавно подумал, что редко жидкость и обычный блок находятся вместе, кроме того, есть много пустых блоков (воздуха), где вообще ни то, ни другое. Теперь я сделал так, чтобы он не включал эти структуры, а имел указатели на них и структура блока уменьшилась всего лишь в 2.222(2) раза :(
Но и это хорошо. Главное то, что теперь у меня появились новые баги, которые придётся исправлять. Анализировать код и всё такое.
Anonymous No.74741
15648297721740.webm (3762 KB, 1504x800, 00:00:12)
Факел придётся зажигать зажигалкой. И он будет гореть не всё время. Как решить проблему освещения пещер и просто пространства, которое используется не всё время — незнаю. Те, что всё время будут просто освещаться электрическими лампами.
Anonymous No.74757
15648447119100.png (551 KB, 1500x800)
Поменял модельку верстака, чтобы тот стал больше похож на стол.

Я раздумывал над деньгами в сеттинге моей игры. Я раньше думал, может это будут радужные кристаллики, которые стакаются по 256 штук (предметы обычно по 16 или 32), из которых можно будет делать блоки-кучи. Думал, может золотые монеты, серебрянные, а то и валюты для отдельных стран, городов-государств, округов. Но недавно я подумал, а что если некоторый аналог XP как в майнкрафте будет деньгами? Только дело такое, что XP могут получать все существа за любые действия, а игроки не могут (типа они прокажённый вид), но могут отбирать у других путём их убийства или торгуя с жителями. И этот XP будет так же поднимать уровень, чья цена будет расти в арифметической прогрессии, но обычные сделки будут проводиться за сами очки опыта, а особые за уровни.
Так же, при смерти игрока, он теряет все свои вещи и XP. Все существа будут стремиться забрать халявный XP, а разумные и хорошие вещички подбирать будут.
Если подумать на более высшем уровне, то такая система денег приводила бы к вечной инфляции, так как количество XP в мире растёт. Но если представить, что при смерти существа дропают лишь часть своего XP (остальное пропадает), причём нелинейно, то инфляции, наверное, не будет.
Anonymous No.74820
Исправлял рецепты, сделол так, чтобы функции для проверки, матчит ли рецепт слоты были общедоступными (а не только в реализациях отдельных предметов, то есть раньше эти функции были в коде верстака и коде печи отдельно), стало намного легче, но всё-равно откуда-то берутся непонятные баги.
И иногда сегфаултит. Наверное это потому что я мьютексы лочу только, когда чанки изменяются, но не когда они ещё и читаются (точнее получение указателей). А ведь, пока указатель получен, он может быть изменён, когда чанк меняется, из-за realloc и будет обращение не туда.
Но на случай сегволта я хотел сделать так, чтобы мир сохранялся, но перед этим старый сейв бекапился. Если окажется, что из-за полученного мира будет вылетать всегда (блок поставился багованный, например), игрок сможет загрузить бекап.
Anonymous No.74917
15649283422970.webm (10821 KB, 1504x800, 00:00:34)
Вот так выглядит крафт бронзы.
Anonymous No.75117
Я там про архитектуру для мультиплеера что-то выше писал. Вот пост от Фактории.
https://www.factorio.com/blog/post/fff-76

Не совсем понимаю, каким образом можно реализовать этот подход при p2p подключениях. В игре (в фактории) 60 тиков игровой логики (ups) в секунду. Я вот сегодня к серверу подключался, задержка 100 мс. Если у меня мир синхронный с сервером, то когда мне приходит сообщение с задержкой в 100 мс, нужно пересчитывать всё что произошло за последние 100 мс. То есть это можно пересчитать, если это что-то не слишком большое, но размещение крупного блупринта, после которого мгновенно вылетают тысячи дронов к разным сундукам - вот это должно было бы задесинхронизировать игру, потому что для них придётся просчитать последние 6-7 тиков. К тому же при p2p соединениях при игре в 30 человек нагрузка на каждого по интернет-соединению увеличивается в 29 раз.

Можно сделать гибрид. Система обычная клиент-серверная, но вычисления дублируются. А клиент просто видит мир с задержкой. Для подобной игры это не критично, я думаю. Я живу с отставанием в 100 мс, в этом мире задержки я делаю действия которые обратно доходят с суммарной задержкой в 200 мс. Для меня это выглядит, как то что устройство начинает работать не сразу, а сначала просто отображается, а двигаться начинает лишь с задержкой, когда сервер получил моё сообщение. 30х нагрузка по соединению только на сервер, ни клиентам, ни серверу не нужно пересчитывать последние 6-7 тиков (или сколько там получится из-за задержки), но есть пинг, явный и видимый, местами. А он и в фактории видимый кстати - видимо они таки отказались от подобного синхронного p2p (сейчас уже Friday Facts #306, прошло больше четырёх лет с #76). Когда пытаешься стрелять - тебя телепортирует, и все инвентари (мой и сундуки) с задержкой обновляются.
Anonymous No.75300
>>75117
Незнаю как в фактории, но
>размещение крупного блупринта
Нельзя разве зашейрить все блупринты между игроками и когда кто-то ставит блупринт, то не нужно пересылать целиком его, а лишь его индекс. Или проблема в другом, я непонял?

В своей игре я раздумывал над тем, что мир должен быть детерменированным, пока в него не вмешается игрок. Однако, в факторио мир, который надо считать, создаётся игроком (машины), когда остальной мир (генерируемый) почти не обрабатывается, только мобы как-то там спавнятся, что тоже, наверное, детерменировано.
Но вот в моей игре при генерации мира всё, что сгенерировалось, возможно, придётся считать и это может стать проблемкой в связи с тем, что не все чанки всегда загружены.
Я в своей игре хотел сделать так, чтобы когда игрок уходит от чанков, они перестают обновляться, но сохраняется номер такта последнего обновления. И когда игрок возвращается, для данного чанка высчитывается состояние, как если бы он обновлялся. То есть, в печке, например, за время ухода всё перевлавится. Проблема заключается в том, что мобы, например, могут иметь траектории передвижения очень далеко. Скажем, была свинья, игрок ушёл из чанка, вернулся, алгоритм её траектории высчитал, что она ушла на 2 км на север. Но откуда программе знать, что на 2 км на севере нет стены? Соответственно, нужно проверить, а могла ли свинья уйти. Для этого придётся загрузить все чанки, по которым свинья шла и просчитать уже и их. В общем это будут большие лаги, а если выделить для этого отдельный поток, то могут вообще лютые баги начаться, так как будут обращения к одному и тому же чанку и неизвестно, что первое должно идти и всё такое. Чтобы решить эту проблему, возможно, придётся не обновлять траектории мобов или замедлить их. Но в случае машин, которые будет игрок создавать, это полезно, хотя тут надо ещё много чего придумать. Сети.
Anonymous No.75315
>>75300
>Или проблема в другом, я непонял?
Угу. Во-первых, они вроде бы не шейрятся. Там можно смотреть чужие блупринты. Я его открываю и он работает сразу. Другой игрок наводит мышку на мой блупринт и написано, что "он ещё не загружен". Что произойдёт, если я размещу этот блупринт? Сервер зафризит игру, как во время того, как кто-то сохраняет игру, или продолжить работать, но блупринт разместится с задержкой?
Во-вторых, проблема в перерасчёте. Пинг 100 (6 тиков), я ставлю столб. Либо он ставится с традиционного пинговой задержкой и всё работает. Либо, в случае с синхронными мирами без задержки, сервер должен хранить снимки мира на 10 тиков назад и пересчитать как всё было бы, поставь я столб 6 тиков назад. Блупринт вызовет массовое передвижение дронов, и их нужно будет пересчитывать. Причём, каждому из клиентов в том числе. В случае со столбом, он может подключить лишнюю нагрузку, запаса мощности станет меньше и какие-то из устройств (любые подключённые к электросети) станут работать медленнее. Какой-то манипулятор повернётся слабее, что окажет влияние на расположения предметов на конвейере и так далее. То есть от одного столба могут чуть ли не все установки поголовно работать иначе. Просчитывать возможное последствия (просто писать этот алгоритм) и хранить снимки мира очень накладно, мне кажется. Потому лучше уж мир задержки, но в два раза больший, не требующий такого количества памяти и где нет фризов при некоторых действиях.

>что на 2 км на севере нет стены?
Либо ты держишь все чанки в памяти (можно в сжатом виде, просто поверхности - полный чанк со внутренней структурой и растениями не просчитывать), либо нет никакой видимой возможности сделать это.
Может быть можно на границе последнего чанка ставить метку, мол свинья ушла в такую-то сторону в такой момент времени. Когда соседний чанк загружается, он видит эту метку, просчитывает движение свиньи по себе и ставит метку на следующий, мол прошло ещё 47 секунд пока свинья тут паслась и дальше она ушла туда, и так далее, пока чанки не дозагрузятся до того места, где свинья уже есть.Но если свинья куда-то шла, а потом развернулась, то может быть проблема, по типу того, что ты идёшь, где-то в далеке загружается чанк, в котором свинья развернулась, её движение просчитывается полностью из-за загруженных чанков и выясняется что свинья находится прямо перед тобой.
Можно попробовать на каждый чанк составлять схему, по типу с какой крайне точки можно было бы пройти на какую, группы соединённых точек. Это намного меньше чем чанк полностью или даже чем его поверхность.

А мир очевидно полностью детерменированный. Если у тебя больше чем пару сотен объектов на карте, то любой другой подход нежизнеспособный. Зачем вообще делать что-то недетерменированным? Все генераторы псевдослучайных чисел детерменированны, их можно точно так же синхронизовать. На вид от настоящего рандома никакой разницы.
Anonymous No.75366
15650214101180.webm (1449 KB, 1504x800, 00:00:12)
Вот так выглядит "ковка".
Anonymous No.75367
Эх, вот бы игрок был детерминированным, тогда и машину времени в игру можно было бы запилить.
(шутка)
Anonymous No.75425
Ого, мне ещё надо 24 фичи добавить, исправить 8 багов, добавить 2 оптимизирующие фичи и некоторого контента добавить, а это много.
Anonymous No.75520
15650928015600.png (114 KB, 1500x800)
Я бы хотел, чтобы в моей игре можно было забраться на 2х-километровую гору и осмотреть окресности. Для этого я предполагаю использовать упрощение блоков и чанков, чтобы когда блок рендерит 1 пиксель, его данные отрисовки сохранялись как для куба с цветными гранями, а не с текстурами, аналогично чанком или несколькими чанками.
Anonymous No.75573
Я посмотрел в майнкрафт и там английские буквы имеют размер 5x8 пикселей. И у меня так же. У меня и такая же система скейлинга, скейл равен размеру пикселя в гуи. Несмотря на это у меня шрифт немного отличается от майнкрафтовского, к тому же я хочу чтобы он был моноширным (по крайней мере для ASCII-символов), потому что это хорошо.
И я использую именно .ttf шрифты, а не картинки. Почему? Потому что я бы хотел, чтобы моя игра была мультиязычной. В частности переведена на китайский упрощённый, потому что в КНР (для КР нужен китайский традиционный) половина населения геймеры и они богатые, могут тратить много денег на игры и плюют, что их потом система оценит плохо (или они тратят не так уж и много). И английский они, наверняка, плохо знают.
Дело в том, что китайские иероглифы имеют много элементов, так что использовать уже готовый шрифт будет удобнее и сразу будет поддержка шрифта.
Хотя, некоторые проблемы есть. Например, неудобно рендерятся буквы, надо посмотреть что там с размерами.
Сегодня я добавил аж 5 фич, хотя планировал 10.
Anonymous No.75574
Все наблядаю за тобой и никак что-то не скажу. Ты крут!
Anonymous No.75591
15651153332870.png (75 KB, 1500x800)
Я выбросил freetype на помойку отдалённую полку, потому что:
0. У него лицензия мутная, вдруг стиму не подойдёт.
1. Он линкуется с libbz2, у которого тоже лицензия мутноватая.
2. Мутные размеры с DPI и рендерится плохо.
3. В случае китайских символов можно же просто скриптом нагенерировать картинок из уже готового шрифта!
4. Моноширность лучше, хотя вроде бы была опция в FontForge, чтобы замоноширить.

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

>>75574
Спасибо за комплимент.
Anonymous No.75595
15651165951920.png (26 KB, 943x199)
Погляди stb_truetype, она вроде бы public domain.
Там всё интуитивно понятно, где отступ между символов, где отступ между строк. Соответственно, можно любой шрифт сделать моноширинным. Я за два часа с небольшим всё освоил - вывел сначала просто текст на битмап в памяти, потом свою структуру поверх навесил, которая все размеры симоволов считывает, чтобы не извлекать их через stb-шные функции. Текстура хранится в памяти и по умолчанию там только 256 первых символов - если где-то рендерится новый символ, то он дописывает в мой небольшой текстурный атлас (чтобы все 65к символов не загружать) и текстура обновляется. Да, ещё stb позволяет получить номер символа внутри шрифта. То есть если в шрифте символам 1235 и 6421 соответствует один и тот же номер, то можно извлечь этот номер и соответственно в текстуре его не дублировать. Не знаю что там в freetype, я на неё поглядел и сразу мимо прошёл, но ничего удобнее stb я не могу придумать, прям каждая функция идеальна. Впрочем, шрифты для меня всегда были тёмным лесом, потому то я настолько и в восторге.

Мне настолько понравилось, что загрузку текстур я тоже через stb-шную библиотеку сделал.
Anonymous No.75906
15652719238990.png (881 KB, 1500x800)
Так разливается озеро, которое сгенерировалось на стыке областей с шумом перлина (генерировать области с ним плохо, лучше поблочно высчитывать, чтобы сразу интерполяция была).
Anonymous No.75917
Я обобщил игровые фичи, оптимизации и баги и получилось, что мне осталось добавить ещё 23 фичи и добавить просто контента.
Anonymous No.76041
15652895348840.webm (6060 KB, 1504x800, 00:00:32)
Теперь дроп можно собирать.
Пока кодируется видео, распишу. Похоже, игра выйдет неинтересная в первых её возможных версиях. Это ведь даже не майнкрафт, который привыкли представлять. У меня блоки будут ломаться гораздо сложнее, в будущих версиях и на установку блоков будет ограничение по времени, то есть нельзя будет забраться на столб, спасаясь от мобов. Я хотел сделать что-то типа смеси майнкрафта, дварф фортресс и факторио. Ещё хорошо бы чего-то скайримного добавить, ведь он так затягивает, некоторые тысячи часов в него наигрывают против расчитанных 300 ч геймплея (без DLC).
Что насчёт строительства, то проблема решится с добавлением деревещин, которых можно будет нанимать. Подходишь к нему и создаётся специальный интерфейс, где берёшь блок и выделяешь кубическую область. Деренщина идёт строить, будет брать блоки из сундуков, которые ты скажешь, другие деревенщины тем временем могут эти самые блоки крафтить из древесины, а третьи рубить и таскать брёвна. Самому можно скрафтить чертёж и запечатлеть некоторую конструкцию, чтобы упростить строительство. Деревенщин надо будет нанимать за деньги, т. н. MP (Money Point). МП можно будет добыть только убийством других существ или в процессе торговли. Воровства, может быть, ещё. Можно и животных разводить на МП, только скот будет давать гораздо меньше, чем дикие животные, потому MP это на самом деле XP. Как бы это ещё сбалансировать?
Насчёт факторио части, то это, видимо, останется только игрокам, готовым разбираться с логическими схемами. Надо будет им крафтить процессоры, собирать на некотором многослойном ограниченном поле из логических элементов или чего-то другого то, что захотят они. Будь-то переключаемый тактовый генератор, АЛУ или полноценный процессор. Фабрики они будут строить для разных предметов, детектирование предметов тоже будет непростым. На начальном уровне можно будет сделать лишь какие-нибудь светодатчики, способные определять цвет предмета, а ведь цвета могут быть похожими у разных вещей. А дальше по развитию в специальных машинах оптические нейросети (крафтовые) для определения отдельных предметов или мобов.
Что насчёт дварф фортресса, то хотелось бы сделать живой мир или хотя бы живые города. Несколько рас — люди, гоблины, эльфы и гномы, по убыванию численности. Люди будут основной расой, а гоблины слегка враждебными, но индустриальными парнями. Эльфы жить на дервеьях, а гномы (не путать с дварфами) поодиночке или посемейно под землёй. Все эти расы будут двух полов, причём женщины более проработанные с этими их "висюльками" (незнаю как назвать) и беременностью. Иногда среди двуполых существ будут встречаться гомосексуалы, асексуалы и бисексуалы, причём у разумных существ чаще. А может и не так вовсе всё будет, я ещё подумаю. Много разных существ, несколько слоёв подземелий в 27-км коре. Чтобы пробиться на новый уровень придётся либо искать ходы, либо нанимать много копателей, которые пророют тоннель и выпустят ужасы подземелий на поверхность. Или наделать динамита и просто взорвать всё. Динамит делать несложно, думаю это будет единственная распространённая мощная взрывчатка в игре. Тринитротолуол можно было бы делать из нефти, но я не собираюсь добавлять её в игру, потому что с добавлением нефти пришлось бы добавлять пластмассу.
Что насчёт скайримной части, то надо сделать проработанный движок генерации подземелий и других локаций. Не просто одинаковые домики или комнаты, а с разным интерьером, оформлением и механизмами. Учитывая сеттинг игры, стоит добавить процедурную генерацию логических схем, ловушек и всего такого. Заходит игрок в футуристический данж, а там "оптическая нейросеть" распознала врага и вылезли големы в титаново-золотой броне, стальными алебардами и хвачхами на спине. А если бы использовал стелс и не включал свет, то мог бы пройти мимо.
Anonymous No.76177
Я в ютубе увидел игру, слегка похожую на факторио, но она тридэ и ещё отлчия есть. И я хочу сказать, что игры, где можно ставить строения в недискретном положение — фуфульная дичь! Зе форест, эта игра, которую я увидел и ещё много где. Это ужасно. Наоборотние, Майнкрафт, Террария, Дварф Фортресс, Факторио, Симс, там строения ставятся в дискретных координатах и дискретном повороте и эти игры хороши и строить в них хорошо. Незнаю с чем это связано, возможно игроку нравится простота, а ведь дискретные положения простые и с помощью них можно замостить всю область. Интересно, а если бы и сущности (мобы, движымые предметы) имели дискретное положение и поворот как в рогаликах по типу дварф фортресс? Думаю, это неудобно. Строения и сущности это разные вещи. Сущности должны перемещаться.
Anonymous No.76191
Сегодня лишь 4 фичи ввёл, осталось 19. Не получается вводить одну за другой, вечно я отдыхаю ибо воли нет.
Anonymous No.76200
В сеттинг моей игры вполне вписались бы зелья. Чтобы их можно было пить, подливать в еду, распылять при помощи специальных субстанций (как взрывающиеся зелья в майнкрафте) и наносить на протыкалки такие как копья, мечи и стрелы. А так же в один слот брони автоинъектор, который можно было бы заправлять зельями, только не надо забывать про баланс.
Насчёт снарядов, то я раньше хотел добавить огнестрельное оружие, но потом понял, что оно ненужно. Лучше стрелы и ракеты, не нужно плодить ненужностей. При этом я бы хотел добавить хедшоты и снайперское стреляние, но это можно делать и из арбалета/лука.
Anonymous No.76315
15654159395970.webm (6513 KB, 1504x800, 00:00:39)
Так выглядит производство стали в этой игре.
Anonymous No.76318
Ух, как мне надоело делать эту первую версию. Ещё 18 фич и контента добавить. Много плохих решений, ужасный код, не добавил инструменты для дебаггинга (хотя бы координаты визуализировать).
Хочешь узнать, почему бы мне сейчас не добавить эти инструменты, чтобы с большой долей вероятности сэкономить итоговое время? Ахаха, ну ты и шутник.
Anonymous No.76351
Я решил не добавлять в данную версию кирпичи и двери, потому что есть сложности. А так осталось ещё 15 фич.
Anonymous No.76353
А что конкретно ты делаешь? Свою игру пишешь с нуля что ли?
Anonymous No.76364
>>76353
Это можно понять по контексту или ты мейлачер?
Anonymous No.76365
>>76353
Нет, он пишет визуализатор-фронтеэнд для дварф фортресс.
Anonymous No.76366
>>76353
Это для геймджема в итчио Cubic Blockie Game.
Anonymous No.76368
>>76353
Вообще-то это ткань реальности создаваемая им, Богом. Этот тред потом будет в нас, первичных сущностях. Нас не существует ещё, но память будет такая, будто мы уже существуем. Ты, видимо, будешь глупой сущностью. Хотя я незнаю как он пропишет интеллект, познавательные способности, эрудицию, так что всё может быть разным.
Anonymous No.76371
>>76353
Знаете, почему растровая 3D-графика не взлетела? Из-за зеркальности, прозрачности и преломления.
В растровой 2D-графике есть прозрачность, но она не накладывается друг на друга.
Для 3D графики хороши лишь векторы.
Anonymous No.76372
>>76353
>что конкретно ты делаешь
Пишу пост тебе. Зачем было создавать такой вопрос, ведь логично, что когда я буду отвечать тебе, я буду писать тебе пост. Странный вопрос.
Anonymous No.76374
>>76353
Эта игра будет абсолютно проприетарной. Нельзявспоминать о ней больше 5% времени в жизни, пока не играешь в неё, если не платить подписку в 30 долларов в месяц.
Сама игра будет тоже платной, причём таргетированно для стран и издания. Для всяких бедных стран типа РФ, можно сделать несколько долларов, для США несколько десятков долларов.
В случае успеха можно и на iOS портировать, но задаюсь вопросом, можно ли сделать приложение по подписке? Было бы хорошо для айфоновцев и айпадовцев 10 долларов в месяц.
Anonymous No.76376
>>76353
Степени двойки эффективно использовать для бинарной логики. Некоторые могут отныне связывать свою жизнь с шестнадцатиричной системой счисления. Круглыми числами считать 16, 32, 256 лет. Действия делать по 2, 4, 8 или 16 раз.
Anonymous No.76437
Осталось где-то 12 фич. Процесс идёт быстро, так как они в основном маленькие. Думаю, к 13-м Августа управлюсь.
Потратить 1.5 м на создание игры (причём самой первой альфапрефальфа версии) это ужас.
Anonymous No.76451
>>73909
>две новых программы, у которых приоритет выше.
Поделишься, что там такое программируешь?
Anonymous No.76460
>>76451
Вот это >>/it/794 - анончик бросил меня и не захотел играть, но мне всё ещё было интересно. Как раз из заготовки для кубиков её сварганил, проверил насколько моё "api" оказалось удобным. Получилось скучно. Я зачем-то юнитам сделал инерцию и ускорения, и даже простой алгоритм уворачивания от снарядов получился довольно-таки чудовищный из-за такой механики движений; а про всякие группировки нескольких юнитов, чтобы они синхронным залпом накрывали противника не оставляя места для уворота нет и речи. Они просто пытаются уворачивать и стреляют - не анализируют выгодные позиции, ничего не делают.
Ещё и откопал книжку "Искусственный интеллект в компьютерных играх. Алекс Дж. Шампандар.djvu" - а это прям то что мне интересно. Но её я просто читаю по большей части.

И пробовал sse/avx инструкции (на совсем примитивном уровне, ничего интересного, уровня найти максимальное число из списка) - по какой-то причине ассемблерные вставки я съел, а вот avx/sse инструкции пропустил, хотя они куда как более юзабельные (особенно если учесть, какой хреновый ассемблер в mingw). Заодно новый ноутбук с поддержкой avx2 проверил.
Ещё был мод на факторию, но там просто мелкие фиксы баланса для бобангела и мусоросжигалка выделяющая кучу загрязнения - время на него пришлось потратить просто потому что я не знаю какое api в фактории.
К кубикам как раз собирался вернуться сегодня ночью или завтра с утра.
Anonymous No.76471
>>76460
Эй, а это не ты тот анон, который в OpenCL что-то делал?
А чего ты используешь вындоуз? Если ты тот анон, то пытался в линукс, я помню.

Эх, вот в лайси параллельные вычисления из-коробки были бы, будь иколайси дописан, а автор не пишет (по крайней мере нет публичных новостей).
Там просто берёшь:
f32e8[] a := [3,5,7,2,7,7.3,65.3,4.5];
f32e8[] b := [3.6,2.3];
f32e8[] c := a[:] + dup(b[:]);
или как-то так. И в массиве c появляются числа из a, но с приплюсованными 3.6, 2.3, 3.6, 2.3... И как это реализуется уже дело компилятора. Может хоть через SIMD, хоть через видеокарту, хоть через потоки, надеюсь это будет конфигурируемо.
Anonymous No.76472
этот текст попробуйте пропеть с какой-нибудь мелодией, которая прийдёт в голову

эх лайси
язык программирования
параллельный, высокоуровневый
совсем не как си
си не лайси
лайси не си
эх лайси
параллельный, высокоуровневый
создавайся компилятор
создавайся интерпретатор
препроцессирование
подгрузка импортов
препроцессирование импортов
рекурсия
рекурсия снова и снова
рекурсия
рекурсия тут
парсинг библиотек
парсинг кода
парсинг всего
парсинг свободных библиотек
преобразование в лайси-байткод
лайси-байткод исполняется JITом
JIT и AOT
JIT быстрее
AOT проще
лайси-байткод
компилируется в машинный код
SIMD, суперскалярность
вычисления на GPU
Оптимизация тригонометрических функций
sincos
Потоки, VLIW
SIMD, GPU
Anonymous No.76478
>>76472
Ты шизанулся со своим лайси. Серьёзно, ты на чем-то нще прбовал писать?
Anonymous No.76559
>>76478
Си, C++, питон, го, джаваскрипт, джава, луа. Мне не понравилось.
Anonymous No.76583
15655303115240.png (624 KB, 1500x800)
Почему в опенгле надо сортировать полупрозрачные полигоны?
Авторы опенгла не захотели в стандарт добавлять какой-нибудь альфа-буффер?
Или разработчикам невпадлу сортировать полигоны?
Или тут какая-то корневая в архитектуре вещь, не позволяющая это?
Anonymous No.76588
>>76583
Такой уж алгоритм растеризации. В dx их тоже нужно сортировать. Просто нет другого выбора, если всё что есть - это одиночный буфер глубины и буфер цветов, не сохраняется информация о более глубоких пикселях.

Есть какие-то костыли с двунаправленным буфером глубины, которые хранят переднюю и заднюю грань. Выглядит лучше, но всё ещё с ошибками.
Ещё то ли в opengl sdk, то ли в dx sdk была честная прозрачность с произвольном количеством слоёв расположенных в любом порядке.
http://developer.download.nvidia.com/SDK/10/opengl/src/dual_depth_peeling/doc/DualDepthPeeling.pdf
Вот демка с этим драконом-змеёй.
(http://www.opengl-tutorial.org/ru/intermediate-tutorials/tutorial-10-transparency/ - вот тут в конце есть ещё какие-то чуть-чуть другие алгоритмы порядконезависимой прозрачности)
Пост отредактировал Anonymous
Anonymous No.76593
>>76588
Лайси позволит параллелить независимо от платформы. Можно было бы написать рейтрейсер-растеризатор с отражениями и преломлениями, на хабре есть туториалы.
Хотя это, скорее всего, будет медленнее чем опенгл, так как GPU не напрямую будет рендерить и вне стандарта OpenGL (хотя незнаю, если подшаманить...) и алгоритмы рейтрейсинга, как я понимаю, более затратны. Зато код был бы независим от платформы, хоть на AVR микроконтроллере рендерь.
Anonymous No.76595
>>76593
Не позволит. Мягко говоря не очень верится в язык, который делает один человек, и который умеет в видеокарту, simd, потоки и хотя бы просто более-менее эффективный компилятор.

Тот же gcc разрабатывают десятилетие, и там есть автоматическием simd, которые работают через раз и чаще всего не дают заметного прироста производительности, хотя человек мог бы её удвоить изменив алгоритм совсем капельку, просто сделав с расчётом на кратное 4/8 количеством и выравниванием в памяти.
Потоки почти автоматические с минимум вмешательства из коробки есть через openmp, но опять же нужно ставить директивы, автоматически оно почти точно никак не сможет осмыслить какое количество потоков в каком случае нужны и нужны ли вообще.

>>76471
>И в массиве c появляются числа из a, но с приплюсованными 3.6, 2.3, 3.6, 2.3...
И вот то что тут можно в том же с++ реализовать через перегрузки операторов и свои структуры, и работать будет, скорее всего, с максимально возможной эффективностью. Зачем какую-то новую штуку без библиотек делать, которую никто не знает и никто не использует?

В люникс я никогда не пытался, и виндоус меня вполне устраивает, особенно после того как выяснилось, что win10 можно так сломать, что он потребляет меньше памяти и места на диске, чем win7. На opencl предел Роша тестировал с месяц назад, но там ультра-простой алгоритм, своего рода хелловорлд для видеокарт, просто потому что на нём удобно сравнивать грубую производительность.
Пост отредактировал Anonymous
Anonymous No.76598
>>76595
>gcc
Для каких он языков там? C, C++, C-objective, Ada и ещё какие-то. В лайси же складывание массивов будет почти равносильно вызове функции, написанной на ассемблере с использованием SIMD. Хотя и я не уверен, сколько это производительности даст, тут нужно тесты на месте проводить, а компилятор до сих пор не готов.
>с++ реализовать через перегрузки операторов и свои структуры
Можно и в си реализовать через функции, которые принимают указатели на переменные, но разве это удобно? Незнаю как в C++, там тоже темплейты есть, как и в Лайси, но Лайси более автоматический в этом плане,
>через openmp, но опять же нужно ставить директивы
Как я понимаю, если лайси-байткод будет интерпретироваться, то интепретатор просканирует железо и будет использовать больше одного потока в случае, когда надо действительно много раз большой код обработать (скажем, 64 раза код в несколько строк в each-конструкции или for-цикле без каких-нибудь "локальных сайд-эффектов").
Надо всего-лишь предварительно замерить сколько занимает инициализация нового потока и мьютексов (в определённых случаях) для данной системы и сопоставить, что будет выгоднее, попробовать угадать.
Anonymous No.76603
Я помню, что где-то решал проблему с альфаканалом, надо было сделать так, чтобы все полигоны были по часовой стрелке или против часовой стрелки. Но не помню где, не помню код и почему.
Anonymous No.76611
Если в первой версии почти ничего не будет, то во второй версии должны быть:
1. Истинный генерационный поблочнок.
2. Рельсы.
3. Локомотивы.
4. Вагоны для мобов (и игроков).
5. Вагоны для предметов.
6. Вагоны для жидкостей.
Вагоны и локомотивы соединяются цепями, благодаря чему они будут двигаться синхронно. Добавляя рельсы надо сделать механику сетей как в факторио, чтобы было чётко.
Ещё можно подумать над добавлением сыпучих материалов, которые будут являться блоками в 2 раза меньше обычных или вовсе вокселями и иметь другую физику и для них понадобятся специальные контейнеры, как и для жидкостей.

В данной игре могли бы быть 5 путей:
1. Индустриальный — строй фабрики.
2. Охотничий — охоться на мобов и минибоссов.
3. Приключенец — исследуй новые места, выполняй квесты.
4. Государь — создай и развивай деревню или город.
5. Ещё какой-нибудь.
Пути видны в окне достижений. Каждый путь имеет свои достижения и они могут переплетаться, есть ещё секретные достижения. При открытии достижений, можно навести курсор и увидеть контекстное меню с текстом и картинками, где даются указания что делать и некоторые базовые рецепты, чтобы игрок мог догадаться как делать вещь без вики. Книга рецептов — абуз для игр с позиционным крафтингом (область из слотов), но не такая как в ванилле майнкрафта, например. Там рецепт добавляется единожды быв сделан.

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

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

В одном аниме я увидел очень интересный эффект. Они сделали белый почти прозрачный шум и наложили его на картинку. Это придало некой живости и натуральности картинке, хоть и было заметно на движущихся вещах, ведь шум не анимирован.
Предполагаю, что такое могло бы быть полезным и в играх. Это похоже на карту нормалей, благодаря которым образуются реалистичные тени на плоской стене.
Anonymous No.76612
Я ещё подумал над "магией" в этой игре. Я подумал над концепцией "эссенций" как в таумкрафте, моде к майнкрафту и мне не понравилось. Это добавляет какого-то ненужного... плюрализма? Дуализма? Не уверен, хотел сначала написать дуализм, но прочитав в википедии, узнал, что это разные вещи в одном, как корпускулярно-волновой дуализм. А плюрализм это как дуализм, но больше чем 2. Или нет. Я имею ввиду, что если в такой игре добывать эссенцию огня из огня... Это так себе. Даже если добывать из большего количества материалов. Почему бы сразу их не использовать, а?
К тому же в данной игре предполагается наличие "электричества", уже готовой формы энергии. Так что можно сделать строение, которое преобразует электричество в магическую энергию, от которой будут запитываться големы и зачарования или что-то такое.
Кстати, тут можно придумать пятый путь — рабовладение, но он включает в себя не только рабов, но и работников и големоведение, а големоведение и индустриальный путь будут тогда переплетаться.
Не стоит забывать и про MP (money point). Money Pointможно будет получать только через других мобов, охотясь на них, выращивая на забой или посредством торговли. И если зачарования будут, то их можно будет запитывать через MP, но в некоторых случаях не за сами MP, а за ML (money point level), стоимость которого растёт экспоненциально как уровни XP в майнкрафте. Ещё можно ввести механику убеждения, использовать ML для подкупа. Если такая механика будет оправдана геймплеем и сеттингом.
Anonymous No.76648
Сижу, играю в майнкрафт и понимаю, что очень хотел бы сыграть в игру ОПа. Она, наверное, будет очень сложной, но и очень интересной.
Anonymous No.76649
>>76648
Моэчую.
Anonymous No.76661
Делаю сохранение мира и на удивление, даже без сжатия он занимает немного. Большой мир занимал бы всего 500 МБ, так что сжатие можно ввести и в следующих версиях.
Anonymous No.76664
Ого, исходники разрослись где-то до 9000 строк кода. Хотя реального кода там где-то 40-60%, остальное — повторения, лишние отступы и комментированные куски кода.
Anonymous No.76666
Ещё осталось ввести пару менюшек и настроек, ачивки и их отображения, исправить парочку багов и добавить оптимизаций было бы хорошо.
Anonymous No.76667
>>76666
Поделишь советом, как менюшки сделал, какой подход к ним использовал? Как работает логика переключения меню, чтобы одно открывалось, другое закрывалось и всё в этом роде?
Anonymous No.76678
>>76667
В основном костыли и плохие решения.
Для начала скажу, что у меня есть "окно" с текстурой, цветом и набором виджетов, а виджеты делятся на кнопки, лейбелы, иконки, слайдеры, слоты (в которые предметы кладут), текстинпуты и бокс. Бокс содержить внутри себя другие виджеты как и окно. Подход Окно - виджеты - виджеты... очень плохой, надо виджеты - виджеты - виджеты, но не сейчас.
Что насчёт переключения между меню, то у меня есть около 10 указателей на окна и парочка глобальных переменных-флагов. Окна, к тому же, имеют переключатели-флаги draw и active, которое показывает, нужно ли рисовать окно и активно ли оно.
Когда открывается окно, игрока встречает окно MENU_MAIN. В кнопки подведены коллбеки, которые меняют окно в зависимости от состояния. Например, есть кнопка Options в главном меню и в окне, когда нажимаешь на Esc во время игры. Нажал на кнопку — окно Options рисуется. Нажал на back в окне Options, если переменная EscPressed истина, то ставит draw = 1 и active = 1 на MENU_ESC, иначе на MENU_MAIN, а на себя draw = 0 и active = 0.
Anonymous No.76696
>>76678
Понятно. Я сделал панели (просто квадрат с флагом видимости), от которых происходят надписи (по совместительству являющимися ещё и кнопками). У каждого элемента есть строковое имя (можно написать что-то типа menu["help"]->visible=false, и список (указателей) элементов на нём расположенных, и предок (тот на котором размещается). То есть на любом элементе может быть расположен любой другой без какой-либо логики. Обратная связь через "каллбеки"/лямбды - у каждого элемента есть изначально пустые каллбеки, которые вызываются при инициализации, перерисовки, вращениях колёсика, нажатия мышки/клавиши, которые можно заменить на необходимые.
В аналоге твоего "окна" есть только один агрегированный экземпляр панели menu.
Код просто отвратительный, я в ужасе. Хочется забить на интерфейс и сделать управление через консоль и просто прибитыми гвоздями клавишами, один хрен это техническая демонстрация, не более.
Пост отредактировал Anonymous
Anonymous No.76761
Ухфигеть, ещё немного осталось спрограммировать.
Надо ввести новый тип виджета, чтобы туда разместить иконки достижений и ещё чтобы было контекстное меню, когда наводишь на иконки. Ведь в моей игре достижения это не только особые задания, но и путеводитель.
Я ввёл бекап мира при segfault, но всё-же мне надо побороть его первопричину, а именно, неправильное использование мьютексов. У меня есть набор функций для взаимодействия с миром, типа SetBlock, SetDrop, DestoryBlock, SpillFluid. И мьютексы лочатся и анлочатся прямо в них. Не помню, почему я сделал это так, ведь гораздо логичнее лочить их в функции процессинга мира, который обрабатывает его раз в 50 секунд (тактрейт 50 tps), в то время как с другой стороны чанки рисуются 60 fps.
Кроме того, мне придётся взять виртуалку с виндовсом, чтобы проверить как работает вне вайна билд фор вындоуз.
Anonymous No.76762
Офигеть, я поменял место локинга мьютексов и игра лагать стала больше. Зато стабильнее будет. Наверное.
Anonymous No.76771
15657008475880.png (53 KB, 551x341)
Зачем ты в несколько потоков это делаешь в первой же версии? Майнкрафт несколько лет работал вроде бы в один поток на тормозной джаве и нормально было. Достаточно просто место под потоки на будущее оставить где-то в архитектуре, мне кажется.

---

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

Ещё понравились uml диаграммы из книги, составлю такую-же (сразу как перепишу UI в третий раз).
Anonymous No.76774
>>76771
>в первой же версии
Удобно и не сложно. Главное только мьютексы лочить когда надо. К тому же, у меня сейчас только 2 основных потока, сложности могут начаться когда я распараллелю обработку чанков в другой версии, хотя наверное и там не очень сложно будет. По мьютексу на чанк, по потоку на ядро процессора.
Если будет большой успех у этой игры, то можно двинуться и в сторону OpenCL, чтобы высчитывать кое-что на видеокарте или другом устройстве.
>Майнкрафт несколько лет работал вроде бы в один поток
Это было 10 лет назад. Тогда техологии были другие, а требования к видеоиграм простые. Раньше программист высшего уровня 2 дня писал функцию, которая токенизирует строку, сейчас любой дошкольник может открыть питон и split().
И насчёт GUI, на гитхабе есть полно GUI-библиотек, которые работают с опенглом, я, может быть, в другой версии заменю свой велосипед на какую-нибудь библиотеку оттуда.
Anonymous No.76784
>>76774
>то можно двинуться и в сторону OpenCL
opencl - это тысяча потоков минимум. Что ты на нём хочешь считать в игре?
Могу предложить посчитать освещение. Видеокарта от этих жалких пикселей всё равно даже не начнёт нагреваться. Можно попробовать сделать чуть-чуть более честный рейтрейсинг.

>По мьютексу на чанк
Он случаем у тебя не блочится, даже когда чанк только читается каким-то потоком?

>на гитхабе есть полно GUI-библиотек
Есть даже glui с отдельной статьёй на вики, которая обычна в той же степени, что и glut. Древняя, но всё-таки её можно взять и заюзать, просто чтобы как-нибудь кнопки сделать.
Нет, я зам догрызу эту фигню самостоятельно, на чужой код даже смотреть отказываюсь.
Anonymous No.76785
>>76784
>Что ты на нём хочешь считать в игре?
Я пока не уверен. Может физику сущностей, чтобы можно было 1000 мобов с разным интеллектом и поведением или положение снарядов высчитывать.
Я незнаю какой там интерфейс, но видел статью на хабре, где была игра про танчики с физикой частиц и она считалась на видеокарте.
Ещё если я введу сыпучие материалы, то они будут собираться в пирамидки и их, вероятно, тоже можно считать.
>Он случаем у тебя не блочится
Не понял твоего вопроса. И чанки у меня сейчас не распараллелены.
Anonymous No.76786
>>76785
>или положение снарядов высчитывать.
Сложить два числа. Да даже если там трение и летят они по параболе на пересылку cpu<>gpu потратишь больше времени, чем на рассчёт этого на cpu.

>И чанки у меня сейчас не распараллелены.
А, ну ладно.
Anonymous No.76789
Думаю, в сеттинге этой игры будет 3 вида печей:
Обычная каменная — принимает твёрдое топливо, может разгоняться до больших температур.
Электрическая — использует электричество, но разогреться может только где-то до 1300 К, на переплавку стали или ещё чего-то не хватит.
Газовая — использует газы в качестве топлива, разогревается до больших температур, но придётся систему труб строить.
Anonymous No.76791
Ещё я подумал, что делать крафт логики таким сложным:
Добыть тетраэдрит, сделать термальную центрифугу, выделить сурьму из тетраэдрита, найти буру, добыть буру, выделить бор, добыть бишофит, выделить из бишофита магний, смешать магний с песком, получив материал для получения силана, собирать его трубами и добывать из него аморфный кремний, который потом в специальной машине превращать в кристаллы монокристаллического кремния и, в конце концов, по некоторому паттерну в другой машине создавать логику.
Было бы плохо. Вот в майнкрафте надо лишь:
Добыть железо. Сделать железную кирку. Добыть редстоун. Всё.
Для некоторых механизмов добыть алмазы, чтобы пойти в Нижний Мир и добыть кварц.
Тут гораздо легче и для игры это хорошо. Вот и мне надо подумать над более простым рецептом. Может ввести специальное ископаемое или выращивать транзисторы на особых пещерных грибах...
Только зачем тогда термальная центрифуга? Я думал, что в моей игре был бы неплохим процесс декрафтинга вещей. Тогда можно набегать на караваны и из награбленного получать реально ценные ресурсы, такие как камни или медь. Термальная центрифуга выглядит логичным решением для разделения сплава на составляющие, но если у игрока будет доступ к жилам металла, то зачем ему тратить электроэнергию на выделение металлов из колец и ожерелий? Можно было бы сделать так, чтобы она выделяла серный ангидрид из халькопирита, пирита, киновари и других серосодержащих руд, но это выглядит глупо. Вероятно, не будет такой машины в игре. Но она была бы хороша, сложная моделька с анимациями, есть значение вращения и температуры, чтобы крафт запустился, пришлось бы ждать когда и то и то наберёт достаточного значения и экономить, путём загрузки материала по партиям или непрерывно.
Тогда, вероятно, и руд надо меньше добавлять. Например без халькопирита, оставить тетраэдрит.
Вероятно, можно будет добывать сурьму из тетраэдрита просто в печи, но сурьму использовать для чего-то другого, может зельеварения или с големами связанного. Или компонента для некоторых устройств, светодатчиков там.
Anonymous No.76792
Я также думал над транспортом-сущностями в моей игре. Было бы хорошо, будь транспорт модульной сущностью. Ездилка, управлялка, полезная нагрузка. Ездилка может стыковаться с рельсами или иметь просто колёса для перемещения по обычной местности, может иметь двигатель или запрягаться от животного. В управлялку можно поставить процессор, который будет управлять машиной как захочет игрок, а если не захочет, то ненужна управлялка, он вручную будет.
Полезная нагрузка может быть ёмкостью для разных типов предметов, мобов, может быть артиллерийной установкой, баллистой, ещё чем-то.
Но этого всего мало, надо больше кастомизации, наверное.
Вомзожно, в крафтинге будут учавствовать болты/винты (один предмет), который надо будет делать из стали на новой машине — токарный станок.
Anonymous No.76875
Оказывается, стим в гайде для SteamOS/Linux предлагает использовать freetype для шрифтов. Но я всё-равно от него отказался, он не нужен в этой игре.
Anonymous No.76896
О, я придумал как можно реализовать механику отрубания конечностей у мобов. В общем есть хитбоксы у каждой части мобы, можно наносить повреждения им (хп отнимается общее или коллбеки обрабатывают это особенно), но у между основными хитбоксами есть тонкие, по которым если попасть мечём или топором, то с некоторой вероятностью конечность отрубится. Игроку придётся учиться распознавать эти хитбоксы. Если вводить стелс, то можно так подкрадываться с мечём и рубить голову и моб не позовёт подмогу.
Anonymous No.76968
Дочитал книжку про паттерны. Не слишком интересно, но читается легко и приятно - 5/10.
Спойлер
2/3 паттернов в каком-то виде и так приходилось использовать, а оставшаяся 1/3 возникает только из-за злоупотребления ооп. Сами придумали проблемы и сами же их решают через какую-то шизу.

Тот же декоратор или компоновщик, ну это же вообще? Можно было бы в явном виде создать дерево как структуру данных - это будет короче, чем писать класс компоновщика с рекурсивным обходом. И работать будет быстрее, чем обход по дереву с динамическим полиморфизмом на каждом шаге. Нет, вместо одного класса из которого состоит всё дерево с одинаковыми функциями хочу сделать два класса, которые всё так же храняться в дереве, которое всё так же рекурсивно обходится, но, компьютер будет мучиться из-за виртуальных методов, пытаясь понять где у него какой тип во время выполнения программы. А это в 2-3 раза затратнее, чем вызывать одну и ту же функцию, как выяснилось. Не 20%, а 200%.

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

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

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


Вынес две полезных мысли из книги. Первая, про общий словарь. Чтобы можно было сразу сказать, мол я заюзал в том коде "мост". Звучит очень логично.
А вторая, это статья "антипаттерны" на википедии. Там их несколько десятков и их краткое описание заставляет задуматься и наводит на какие-то мысли куда в большей степени, чем вся эта книга про паттерны, которые в половине случаем можно заменить структурой данных, более лаконичной и более эффективной, чем нагромождение классов непонятно во имя чего.
Ничего что я тут немного не по теме полотно написал?
Пост отредактировал Anonymous
Anonymous No.76969
>>76968
Что за книжка, расскажи пожалуйста. А то я не умею ООП применять, может хотьь почерпну что.
Anonymous No.76970
>>76969
"Погружение в паттерны проектирование" Александр Швец.

Там не указаны альтернативы, даже намёка на них нет. Это не "паттерны проектирования", а "паттерные использования ооп", причём совсем для всего и притянутое за уши - чуть ли не на уровне того, чтобы через define считать факториал числа.
Anonymous No.76971
>>76970
Паттерны проектированния, истинные, это вот например, когда код ориентирован на быстродействие (Data Oriented Design - (DOD)), и вместа массива структур с координатами и цветами точек создают несколько отдельных массивов. То есть отдельный массив для координат, отдельный для цветов, отдельный ещё для какой-то информации. Тогда на стадии обновления координат - всё координаты умещаются в кеш + они просто быстрее из памяти считываются даже без кеша, просто потому что по размеру в 4 раза меньше, чем полный массив структур со всей информацией, которая на стадии обработки координат не требуется. Вот это паттерн, вот это я понимаю. Очень эффективный и очень нужный. А не вот этот треш из дерева виртуально отнаследованных объектов и двух лишних классов когда ни наследования, ни виртуальных методов не требуется. Ну, мне так кажется. Может быть название неудачное просто.
Пост отредактировал Anonymous
Anonymous No.77043
15657939299990.png (123 KB, 1500x800)
Ууу, какой же отвратительный, ужасающий глаза и разум я сделал GUI.
Может быть отсюда кажется не таким уж и плохим, но вы просто не видите код.
Anonymous No.77139
Подготавливаю файлы для проверки и релиза.
Опять не получается скомпилировать под виндовс. Ругается на undefined reference fwrite_unlocked и fread_unlocked, а я незнаю что линковать, чтобы не ругался. И почему-то ему пофиг на отсутствие линковки с винптхреадс, но может ещё будет.
Anonymous No.77141
А, понял. Я использовал хедеры хостовой системы вместо мингвшных.
Anonymous No.77142
Я запускал от вайна и происходил сегфаулт на миксировании аудио. Пришлось отключить звук. Потом я ещё потестил, и произошла ошибка под названием Unhandled Sink.
Это какой-то ужас. Мне начинает казаться, что зря я это затеял. Но не хотелось бы потратить 1.5 месяца впусту.
Почему люди просто не могут использовать ELF? Наделали всяких EXE, Mach-O, APK.
Anonymous No.77175
Какой ужас, я тестю через вайн, а там события как-то залипают при генерации мира (локинг мьютексов?), тело летит куда не просят.
Ох уд эти виндовсюзеры, пересели бы на GNU/Linux и смогли бы играть в топовые игры без лишних сложностей.
И видно отношение майкрософта к своим юзерам, как к скоту, но это не удивительно. И так схавают же. Могли бы уже давно поддержку ELF в свою ОС ввести, но не хотят.
Anonymous No.77176
Почему-то всякие странные ОС типа MS Windows, Android, iOS, Mac OS X (?) просят или требуют, чтобы разработчики приложений писали на определённом ЯП. В Андроиде либо джава либо котлин (нововведение), лишь бинарные библиотеки, написанные на любом ЯП, только бы скомпилированые, можно внутрь APK положить, но обёртка всё-равно на джаве или котлине. айос требует использовать C Objective, хотя, как я понимаю, он тоже может допускать в себя объектные файлы, так что это ещё не так страшно.
Но сколько софта написано на питоне, например! Почти в каждом дистрибутиве GNU/Linux можно найти интерпретатор питона. Чтобы исполнять питон на андроиде, нужно специальное приложение с его этими активностями и пригвоздённым GUI.
Как говорил автор Лайси, когда будет создан компилятор Лайси, то будет со временем создан убийца-воскрешатель ВЕБа, совершенно иной маркдавн-гипертекст лангвадж, с минимумом слежки и большим контролем. Модерн проблемс рекьюр модерн солюшионс. И там в качестве скриптов будет использован Embedded Laisi, благодаря чему любой сможет открыть страницу в интернете этого веба и использовать все мощности всех устройств при помощи OpenCL. Так же будет поддержка опенгла или вулкана или и того и того. Любая ААА-игра может быть запущена из такого браузера и не лагать. Кстати, предполагается использовать этот веб поверх зашифрованных сетей, таких как Tor, i2p, мешсети всякие, так как сам веб-протокол не будет зашифрован и всё-таки шифрование должно быть на другом уровне. Я незнаю как работает SSL, связан ли он с HTTP.
Учитывая особенности такого веба, можно очень легко писать гуишные приложения на нём и без лагов как в джаваскрипте, без всяких ненужных (?) наследований и инкапсуляции (суррогат инкапсуляции присутствует, на самом деле). Также не только софт писать, но и игры. И то что этот веб использует лайси или лайси-байткод для интерактивности не означает, что надо писать скрипты такого веба именно на лайси, ведь как лайси-байткод можно преобразовать в LLVM IR, так и наоборот, LLVM IR в лайси-байткод. Есть нюанс и заключается он в отсутствии each-конструкций и векторных операций, так что параллельность пострадает, но некоторым людям может не понравиться лайси, а код не должен быть очень параллельным, так что легко писать скрипты на том же C++ -> LLVM IR -> лайси-байткод — скрипт в этом вебе.
Anonymous No.77178
Вместе в SDL_mixer идут libflac, libmng, libещёчто-то. Я посмотрел в libmng, а там лицензия LGPL. Мне кажется, что GPLы совершенно несвободные. Есть софтвейр, а есть геймвейр. Так и переводится, первое это мягкое, любой может скомпилировать и использовать у себя, а второе это то во что поиграть, развлечься. И часто геймвейр может использовать софтвейр, однако, если этот софтвейр несвободный для проприетари, приходится писать самому или искать замену. Да, разница между софтвейром и геймвейром может быть очень невелика, но я незнаю, что тут предложить. Вряд ли пеинт можно назвать геймвейром, но вот майнкрафт в некоторой степени похож на софтвейр.
Когда я буду писать софт, то он будет выпускать под более свободной лицензией MIT или подобной. Может быть с пометкой, что если программа, использующая мой софт позиционирует себя как софт, то она не должна быть слишком проприетарной, но если позиционирует как игра, то может быть хоть с DRM.
Тем не менее, я не считаю, что GPL вредное. GPL это как минимум, нечто переходное, позволяющее развиться свободному программному обеспечению, не позволяющее проприетари захватить свободный софт. Но вообще я могу много где ошибаться, так как я не вникал в GPL.
Я посмотрю в сторону OpenAL, когда буду добавлять звук в игру. Если надо будет загружать вав и там не будет нужной функции, то на гитхабе наверняка можно найти свободный код для этого.
Anonymous No.77187
>>77176
>все мощности всех устройств при помощи OpenCL
Ещё раз повторю, что в 90% задач, которые решают обычные программы cpu покажет себя ощутимо лучше, чем gpu.

>>77178
Можно просто через bass загрузить wav/ogg и проигрывать чем угодно, если сам по себе bass тебе не подходит. Но я бы порекомендовал bass вместо openal, всё-таки ты же не osu делаешь. И ещё есть stb_vorbis. Всё что угодно, но не используй wav-файлы в игре, пожалуйста.
Anonymous No.77216
>>77187
>90%
Остальных 10% — достаточно.
Anonymous No.77276
Я боюсь подсознательного плагиата, особенно когда писал музыку для этой игры. У меня почти всё время в голове играет какая-либо музыка и я могу неосознанно взять мелодию оттуда и вложить в свою. Да, это не должно привести к юридическим проблемам, ведь это мелодия, а не отрывок аудиозаписи, но мне всё-равно не хочется.
Ещё шрифт очень похож на майнкрафтовский и в новых версиях, когда я подправлю буквы и цифры, станет почти таким же, разве что стиль для букв i и l будет другим, ориентированным на моноширность. Но думаю это тоже не приведёт к проблемам, иначе а как же мне иные глифы умещать в 5x8 пикселей? Это слишком элементарная вещь.
Игре осталось пройти пару тестов, наделать скриншотов и трейлеров и сделать билдов.
Anonymous No.77392
Играю в свою игру, чтобы предсказать игровой экспиренс и наделать скриншотов + трейлер, а она сложная.
Anonymous No.77402
Насчёт механики боя, я хотел бы, чтобы можно было бросать любые предметы как в дварф фортресс и они в соответствии с собой наносили определённый урон. Кирпич нанесёт больше урона, чем палочка.
Даже более, чтобы можно было кидать одних мобов в других. Одним из первых мобов будет слизень, террарие-подобный слизень. И если его кинуть на голову другому мобу, то слизень может застрять, а моб задохнуться. Но и наоборот, чтобы другие мобы имели разные виды атак, тоже кидали других мобов, ломали блоки, из которых польётся страшная жидкость, пытались обойти игрока, зайти за спину, напасть стаей, приманить стальными болванками или алмазами, напасть из-подтишка, кинуть гранату, завести в пещеру с опасными тварями, прятаться во время атак игрока, уворачиваться от снарядов, звать на подмогу, снайперить из кустов, ставить капканы.
Так же поднимание мобов позволит кидать их и наносить урон. Некоторых мобов только так победить и можно будет, потому что иные виды урона они почти полностью блокируют. Тем не менее, мобы тоже могут вырваться из рук и навалять или просто их не получится взять.
Anonymous No.77477
Ого, как в стиме всё сложно. Много картинок сделать и других действий.
Anonymous No.77484
>>77477
А в стиме вроде надо денег дать, чтобы игру разместить, да еще и не всякое говно принимают, а только после премодерции. Так?
Anonymous No.77486
>>77484
Всякое говно принимаю, но деньги с игры идут на пожертвования.
Anonymous No.77499
>>77484
>не всякое говно принимают
Есть игры типа собери слово из букв, глядя на картинку, пятнашки с аниме-хентайем скрытым за ним, какие-то рисованные порноигры, была игра, где надо по бочкам стрелять в 2D.
Думаю, моя гораздо лучше.
Anonymous No.77504
>>77499
Так ч не тврю игру нпзываю говном, а просто спрашиваю про стим
Anonymous No.77509
Опять этот виндовс не работает, линкую библиотеку стима в экзешник, а вайн говорит, что этот exe bad. И x86_64-w64-mingw32-g++ обрабатывает один и тот же файл не так как g++ (хостовый), вот же придумали сложностей.

>>77504
Да, я понял, что ты не называешь её так. Я имел ввиду, что уверен, что моя игра гораздо лучше, соответственно она должна пройти по критерию играбельности.
Anonymous No.77516
Эх, если бы хотя бы 10% юзеров стима были пользователями GNU/Linux или SteamOS (у меня нет статистики), то можно было бы, наверное, забить на виндоюзеров, в обмен попробовать добавить порт под мак ос икс.
К тому же я хотел бы портировать под андроид и продавать на гугл плей, у меня есть опыт разработки для андроида, несмотря на то, что приходилось писать на джаве. Это оказалось легче, чем компилировать под виндовс. Представляете? Писать на слишком ООПном языке легче чем компилировать под виндовс! Вероятно, выучить PRCовский упрощённый язык легче, чтобы приманить больше людей, чем компилировать под виндовс. Но не приманить больше людей на GNU/Linux, легче научиться компилировать под виндовс.
Ох, ну вы посмотрите, что мингв выдаёт. Как так можно? Опытным путём установил, что если скомпилировать .o под линукс и приделать в компиляцию для виндовса, то вайн распознаёт как bad exe. Теперь я взял самодельный слой для стима между C++ и C для линукса, скопировал для виндовса, но удалил хедер стима и просто скопировал объявления двух функций для старта и щютдауна, а линковщик найти не может, хоть и библотеку он находит. Незнаю, может это как-то связано с объявлением функций, я их не полностью перенёс, только возвращаемые типы как void и bool без дополнительностей.
Если так и дальше пойдёт, то придётся, по крайней мере для первых версий, оставить поддержку только для GNU/Linux + SteamOS, 100 долларов уже не вернуть, хоть окупить попробовать. Потом можно попробовать сбилдить под мак ос икс, хоть я и не собирался портировать туда. Apple мне нравится больше Microsoftа. По крайней мере он делает (делал) и полезный софт (CUPS, например), когда мелкомягкие ухудшают уже существующий софт (Линукс, например, если я не ошибаюсь). И Apple, как я понимаю, больше подходит для непродвинутых юзеров, которые часто сидят на виндовсе и за ними наблюдают Дяди Александровичи через баги в RDP и вирусы с джаваскрипта.
Anonymous No.77517
15660648519120.jpg (88 KB, 1325x171)
Картинку забыл!
>>77516
>Тип Файла не разрешён для постинга
Хахаха, тучаннелю тоже не нравится компиляция под виндовс.
Хотя может под JPG-фильтрами он не разглядит?
Anonymous No.77525
Ладно, я решил проблему. Линковщик не находил функцию действительно из-за нейм манглинга или чего-то, что делает сипипи уникальным. Непонятным осталось то, почему мингвшный г++ не компилил cpp-код как хостовый г++. Но это не так важно, погрепивши в хедерах стима я обнаружил, что те функции сишные, так что подключил их не ссылаясь ни на какой сипипи, но это слегка опасно.
Anonymous No.77567
Недавно я играл в миниигры SkyWars на некоторых школьных серверах майнкрафта. Я очень давно этого не делал и был удивлён своими неудачами, как там всё сложно. Потом я понял, что делаю не так и в итоге поднял уровень своих побед до 14% (обычно 8 или 12 игроков на карту).
Именно там можно себя почувствовать и охотником и жертвой. Видеть как игроки убегают от тебя, а ты за ними с мечём и наоборот, когда за тобой гоняются, а ты убегаешь. Как ты в начале быстро строишь мосты к неэкипированных игрокам и на месте их прирезаешь, так и за тобой. Как ты с одной стрелы убиваешь оппонента, так и в тебя стреляют, ты барикадируешься блоками, а он телепортируется эндерпёрлом, ты в панике ставишь лаву или паутину ему под ноги, судорожно убегая или в отчаянии вступая в ближний бой.
В начале я думал, что это не очень хорошо, что многое решается удачей, ведь в сундуках могут появиться как и алмазные вещи, так и пара блоков и ни еды, к тому же, донат даёт дополнительную силу, но потом я понял, что и тут всё решается в основном скиллом. Я часто использую лаву, паутину и динамит, наверное, гораздо чаще, чем другие игроки. Это даёт большое преимущество и, не смотря на это, не всегда удаётся победить. Иногда я удачно ставлю лаву, а иногда нет. Я могу поставить паутину, оппонент застрянет и опьянённый успехом иду его с ближнего боя убивать, но он всё-равно сильнее.
Разные случаи бывают на этом поле боя. Недавно я обманул одного игрока, выкопавшись за островок, будто я пропал, спрятал ник шифтом. Он потерял интерес и ушёл, благодаря чему я выжил. В другой раз оппонент упал в яму, я решил закидать его динамитом, но динамит как-то отбросил его из ямы и в итоге мне стало хуже. Когда-то мне в сундуке попало зачарованное золотое яблоко, ещё куча брони была. Рядом на островке осел один бомж почти без вещей. Я пытался его расстрелять, но он прятался, так что я пошёл строить мост к нему, а он всё-таки смог сбить меня снежками.
В свою игру я не собираюсь пытаться вводить такой ИИ, чтобы был похож на игроковый, это ни к чему. Я думал над моддингом и серверами для моей игры. Как я представляю моддинг: есть файл ресурсов, подгружаемые бинарные библиотеки и файлы локализации. Теоретически, ресурсы можно загружать с сервера клиенту и тогда моды, использующие лишь файл ресурсов будут доступны без скачки. Но это не всё. Если планировать игру как поддерживающую мнопользовательскую игру (на десятки и сотни игроков), то, чтобы избавиться от читерства, вполне можно игроку пересылать лишь поверхностный слой блоков, чтобы он не видел, что под ними, пересылать ГУИ и игрок, нажимая на кнопки, будет слать запросы в сервер. Если так подумать, то бинарные библиотеки для модов не нужны клиенту, соответственно, они могут быть только на стороне сервера и клиент может с ваниллы заходить на очень модированный сервер. А если есть моды, то можно и кастомизацию для сервером запилить, чтобы там тоже были миниигры и что угодно. Я бы мог написать, что пусть это будет сферой майнкрафта, а моя игра должна содержать секреты, которые будут открываться месяцами или годами в связи со сложностью читерства даже в синглплеере, но нет. Ведь если будет кастомизация сервера, то могут появиться школосервера с донатами. А если с донатами, значит авторам таких серверов это будет выгодно, значит они будут увеличивать геймплей и привлекать больше игроков.
Видели, что творится на современных майнкрафт-школосерверах? Там есть модельки из блоков и мобов с разными поворатами конечностей и инвентаре-подобным ГУИ. Как я понимаю, это сделано из команд и плагинов.
Так почему бы и мне не сделать хорошую кастомизацию? Даже в майнтесте есть сервера с минииграми, типа захвата флага, стрельбы. Или это в Ace of Spades было, не помню. По крайней мере там тоже етсь такое.
Anonymous No.77576
Эй, оказывается -1
1This text cannot be wrote because of non-disclosur agreement.
Anonymous No.77632
Фичи, ожидаемые в v0.1:
0. Обновление света.
1. Оптимизация чанков.
2. Двери.
3. Улучшенный GUI.
4. Пофикшеный шрифт.
5. Горение огнём.
6. Истинный генерационный поблочнок.
7. Пещеры.
8. Нормальные деревья.
9. Твёрдость листвы.
10. Заполнение блоков жидкостями.
11. Горы.
12. Нормальный океан.
13. Озёра.
14. Жилы руд.
15. Рельсы.
16. Вагонетки.
17. Локомотивы.
18. Сборка транспорта.
19. Улучшенное небо.
20. 4 породы.
21. 2 руки.
22. Отображение рукованного.
23. Уведомлеие об ачивках.
Anonymous No.78106
Я сейчас не делаю игру, к тому же есть некоторые иссуи. Но я делаю Улучшенный GUI, который станет универсальным для моих проектов. Совмещаю потенциально полезное с тем, что мне нравится.
Anonymous No.78115
15662976013310.jpg (64 KB, 736x588)
>>78106
Будет ли суммарный видеообзор и когда он будет?
Anonymous No.78117
>>78115
Будет в стиме трейлер, где показан почти весь нынешний геймплей.
Anonymous No.78275
Расскажу о своём GUI:
Виджет — основа всего. У виждетов есть координаты, тип и данные, текстура и коллбеки. Также имеет строковый ID и указатель на родителя.
Координаты и, вообще, метрики могут быть трёх типов — пиксельные; привязанные к физической величине; и значение от 0.0 до 1.0 между двумя виджетами.
Ещё имеет поворот.
Типы виджетов:
rect:
Прямоугольник, имеет цвета в вершинах, текстурные координаты и радиус кривизны вершин.
ellipse:
Эллипс, может быть кругом, имеет цвет в центре и на краях.
bezier:
Фигура как глиф в шрифтах, состоит из фигур из линий Безье, причём разнозакрученные будут между собой делать XOR, как и в шрифтах. Незнаю по какому алгоритму рендерится такое, но я использую OpenGL в качестве бекенда для рендеринга, так что мне достаточно просто триангулировать, хотя и это я незнаю как сделать. А вот в случае перевода фокуса на такую фигуру, вероятно, придётся рендерить, чтобы знать, попал ли курсор на фигуру или нет. Или тоже триангулировать и посмотреть, попал ли курсор на какой-нибудь из треугольников.
string:
Текстовая строка, сделана из внутреннего типа char, которые имеют bezier и всякие адвансы и беаринги для горизонтального и вертикального лейаута. Строка может быть наложена на линию (кривую, ломанную).
line:
Линия, может иметь ширину, стиль и текстуру.
dot:
Точка, может иметь размер, стиль и текстуру.
box:
Имеет в себе дочерние виджеты, которые могут быть в определённом лейауте — горизонтальный, вертикальный, grid и координатный. Если взять кнопки в моей игре, то их можно сделать при помощи box в координатном лейате. Там 2 ректа, первый — серый прямоугольник, второй — текст (игровой срендеренный, а не гуишный). Но если добавить объёма, то ещё пару ректов на тени.

Коллбеки могут быть на:
Клик:
Происходит при press и release на одном и том же виджете (можно ли выходить за пределы виджета между press и release, не уверен).
Press:
Нажатие клавишы мыши.
Release:
Отпускание клавишы мыши.

Above:
Когда курсор на виджете.
FocusIn:
Когда курсор вошёл в виджет.
FocusOut:
Когда курсор вышел из виджета.

Причём данные курсора могут содержать координаты, поворот пера (в случае для стилуса для графического планшета), силу нажатия и номер кнопки нажатия (на мышке 0, 1, 2 — ЛКМ, колёсико, ПКМ).

KeyPress:
нажата клавиша.
KeyRelease:
отжата клавиша.
И, соответственно, нужен клик клавишей, то есть нажать и отпустить, причём может же быть больше одной клавиши.

События колёсика (я их пока не продумал)

и

Input. Его я тоже не продумал, но при помощи него можно вводить как текст, так и из буфера обмена Ctrl+V.

Ещё над Drag-N-Drop надо подумать.

Всякие сложные виджеты, типа текстинпута это уже надо делать из элементарных виджетов.
Anonymous No.78329
>>78275
>попал ли курсор на какой-нибудь из треугольников.
Opengl умеет в буфер "выбора", лол. glPushName/glLoadName. Но это такое, со времён наскальных рисунков, просто любопытства ради посмотри. Раньше opengl умел вообще почти всё, это сейчас остались только буферы (текстурые, uniform, вершинные и прочие) и шейдеры. Зато всего лишь двумя типами объектов можно описать вообще.
Anonymous No.78345
15663283975630.png (59 KB, 713x460)
>>78275
> причём разнозакрученные будут между собой делать XOR, как и в шрифтах
Вот это то что на картинке? Такое есть. И кривая безье тоже есть, правда, тоже в glu.
Anonymous No.78466
>>78329
>>78345
Я очень не знаю опенгл и не понял, что ты написал.
Но насчёт посмотреть, попал ли курсор на глиф, я забыл, что можно же опенглом срендерить в фреймбуффер, соответственно, мне нужен только алгоритм триангуляции.
>>78345
Я ничего не нашёл об этом и не знаю как использовать.

Эй, а в опенгле можно ли сделать raytracing-шейдер, чтобы мне не приходилось сортировать прозрачные плоскости? И как это скажется на производительности?
Anonymous No.78473
Кстати, насчёт GUI. Я слышал о некоем google material, система материалов. Я не понял, что это такое. Это какая-то философия?
Или это штука, с помощью которой можно описать как одни виджеты поведут себя рядом с другими? Например, если 2 определённых виджета (или материала?) Наложатся друг на друга, то на их пересечении будет другой цвет, другой стиль текста, анимации и всё такое.
Anonymous No.78477
Также я хотел добавить взрывчатку в свою игру.
Я предполагаю, что взрывчатые субстанции будут делаться из слизней. Сами слизни будут огнеопасными, их можно будет поджечь и представьте, кинуть горящего слизня на голову противника.
Некоторые слизни и взрываться будут при горении.
Слизь, которая дропается из слизня, можно будет высушить и получить порошок. Этот порошок будет составляющей пороха (для ракет и пороховых стрел) и динамита. Блок динамита будет представлять собой 6 динамитных шашек деревянного (а не красного) цвета, связанные фитильком, а, при помощи ножниц, можно уменьшить количество шашек и по одной дропать. Динамитные шашки будут делаться из древесины, нитроглицерина и слизневого порошка, причём в специальной машине, ведь нитроглицерин взрывоопасен. Сам нитроглицерин будет производиться из жира (масло или сало), щёлока и нитратной кислоты. Мыло — побочный продукт. Динамитные шашки так же можно будет бросать в виде дропа, чтобы взорвать, но сначала надо поджечь, для этого нужна зажигалка в инвентаре, причём взять их в обе руки. Будет некоторое время, показанное прочностьбаром под предметом, когда закончится — бум.
Насчёт мыла, возможно, будут загрязнения в игре. В одном аниме я увдиел, что авторы на спрайты добавляют полупрозрачный шум. Это добавляет некой живости и натуральности картинке. Стоп, я же уже писал об этом. В общем эту грязь надо бы стирать и в этом поможет мыло. Грязь может быть как бы пылью и паутинками, мохом и ещё чем-нибудь.
Ещё я думал над добавлением экскрементов и мочи в игру, ещё канализационной воды в городах, но не уверен, а нужно ли такое вообще. Экскременты были бы жидким или сыпучим, но вязким материалом, если его высыпать в общественном месте, то репутация понизится, а если бросить в кого-то, то можно и получить по башке. Если добавить механику загрязнения блоков, то надо, чтобы экскрементами можно было бы мазать стены, а потом отмывать их мылом.
Ещё эксременты могли бы служить крафтом для какого-нибудь метательного напалма, а моча в качестве удобрения (мочевину добывать).
Ещё я хотел добавить механику супов, куда можно положить разное и будут разные эффекты и жители могут по-разному среагировать. Если сварить в канализационной воде... Точно, в случае добавления экскрементов и мочи, стоит добавить и рвоту. Прям как в дварф фортресс (хотя я там экскрементов и мочи не наблюдал). Игроку не надо будет ни какать, ни писять, ни вырывать, они не совсем люди, у них даже дети мёртворождённые, как я уже писал выше насчёт плаценты с младенцем внутри.
Так же неплохо добавить механику одежды. Верхняя одежда (футболка?), сверхверхняя (куртка), штаны, юбка, панталоны, лифчик, носки, обувь, шапка, волосы. Броня — самый верхний уровень.
Anonymous No.78502
>>78466
>Я ничего не нашёл об этом и не знаю как использовать.
Страничка 344 или чуть раньше: https://www.hardforum.ru/download/RedBook.pdf


>можно ли сделать raytracing-шейдер
Ну, там есть вычислительный шейдер, в котором можно посчитать почти всё что угодно.
Можно и во фрагментном посчитать, проблема только в том, как во фрагментный передавать большое количество треугольников.
Раньше их запаковывали в текстуры (в шейдере есть функции распаковки float-ов из текстуры), сейчас появились ubo/ssbo, и если у первого довольно скромные размеры и вершин туда можно лишь немного запихать, то со вторым вроде как можно всё что угодно делать (но я никогда не пробовал, точно не скажу).
Но это нужно будет в шейдере написать весь алгоритм ретрейсинга, и вряд ли скортировка того стоит. Да, а ещё экран 1кк пикселей, и на сцене 10к треугольников. Это нужно 10 миллиардов пар треугольник-луч просчитать - я не уверен что видеокарта такое сможет без каких-нибудь ебанутых оптимизаций.
Nvidia добавили rtx в своё новое поколение видеокарт. Там должно работать вот это расширение https://github.com/KhronosGroup/GLSL/blob/master/extensions/nv/GLSL_NV_ray_tracing.txt
Пост отредактировал Anonymous
Anonymous No.78507
>>78502
Точнее, пока что оно работать не должно, но пока что я ни разу не слышал, чтобы что-то заработало только на dx, и потом оно никаким образом не появилось на ogl.
Anonymous No.78515
>>78502
Спасибо за книгу, почитаю.
Я вообще плохо принимаю теорию, из-за чего знаю выборочно, что мне полезно.
Раз можно так делать опенглом, то мне и триангулировать не надо, просто фигуры безьер нарисовать в соответствии с разворотами.

И раз шейдер будет слишком жрущим, то придётся сортировать. Сейчас у меня очень примитивный метод сортировки отрисовки. Рисуются чанки по игреку, иксу и зеты, но сначала конец или начало это зависит от поворота камеры игрока. Надо будет придумать или узнать алгоритм, как более качественно отсортировать, по углу камеры. И ведь не только чанки, но и полигоны в чанках. А я плохо знаю математику.
Но это что, мне придётся переделывать все рисуемые данные, когда игрок поворачивает головой на несколько градусов? Это плохо.
Anonymous No.78525
>>78515
Ещё погляди книгу "расширения OpenGL" Борескова или как-то так.
Только главу с nv_register_combiners пропусти, лол, оно устарело сразу с момента выхода, наверное (возможно ещё некоторые главы в начале, не помню про что они). И главу с ассемблероподобными шейдерами только чтобы общие концепции изучить, а вот главу про glsl, вот это уже более-менее актуально до сих пор. Сейчас glsl немного переделали, но совместимость с указанной в книге версии всё ещё есть.
Anonymous No.78542
>>78515
Не понял что ты имел ввиду под сортировкой по углу и не представляю для чего такое может быть нужно.

https://habr.com/ru/post/224003/
Вот прям по первому же запросу нашлось как прям каждый шаг можно сделать. Оказывается, в ssbo можно писать и читать прям из шейдера, а это открывает просто тонны всевозможных возможностей. То есть теперь шейдер получает возможности записывать данные не только в буфера цветов и глубины, но и в какие-нибудь сложные структуры.
А opengl 4.3 сейчас на последнем intel-atome есть в интегрированной карточке, или около того.
Anonymous No.78550
>>78542
Когда камера изменяет угол поворта (это я не уверен) или немного двигается, придётся заново отсортировать прозрачные вертексы. Да, наверное, не при изменении поворта, но при движении. Получается, мне придётся сортировать полигоны в зависимости от их удалённости от игрока. Мне казалось, что что-то с углами поворта камеры надо сделать, но, может быть, нет.
По ссылке я ничего не понял, я даже ни одного шейдера ещё не писал.
Я подумал, может можно сделать шейдер, который пройдётся по всем полупрозрачным поверхностям и хорошенько смешает альфа-каналы? Я незнаю.
Надо будет попробовать сортировать по удалённости от камеры. Но мне тогда что, пересортировывать прозрачные вертексы, когда игрок проходит где-т?о 1/16 метра
Anonymous No.78554
>>78550
Там по ссылке подобный шейдер и есть. По сути, нужно лишь создать шейдер и "временный" буфер для него, и перед отрисовкой сцены активировать шейдер/буферы. Всё, дальше оно само, код отрисовки можно даже не изменять.
Интересно, почему версия на directx работает у того кролика в четыре раза быстрее. Я это обязательно проверю, это очень странно.


Просто забей, у тебя так много прозрачных треугольников? Нарисуй сначала все непрозрачные, потом отключи запись в буфер глубины(glDepthMask(GL_FALSE)) и нарисуй прозрачные. Так как запись в буфер глубины отключена, то обе прозрачных поверхности нарисуются. У цвета может быть немного не тот оттенок, если порядок получился не правильный, но это будет всё ещё существенно лучше, чем вообще не нарисовать вторую поверхность - то есть 90% визуальных косяков это решает, а остальные 10%, да кому они нужны, постоянно вижу в крупных играх артефакты связанные с прозрачностью. А если цвет совпадает (например, рисуется много одинаковых серо-коричневых клубьев пыли), то никакой разницы даже численно просто не будет, не говоря уж про визуальный вид.

А с шейдерами обязательно ознакомся - когда примерно знаешь какие есть возможности, можно на этапе придумывания корректировать-изменять идеи, чтобы они соответствовали возможностям. Простейший шейдер - 6 строчек кода (и ещё 3-4 строчки в самом шейдере). Ещё по одной, чтобы активировать или деактивировать его.
Anonymous No.78561
>>78554
>буфер глубины отключена
Это подойдёт только для монотонных прозрачностей, у меня блок воды такой. А для всяких стёкол, где полупрозрачные контуры это будет плохо. Или нет, не уверен.

Кстати, насчёт шейдеров. Я же правильно понимаю, шейдерами в майнкрафте рисуется небо? Там же верх голубой, а низ белый днём и во время заката и рассвета более светло около светила.
Anonymous No.78566
>>78561
Я думаю, там 4 треугольника, пирамидой накрывающие небо. Или 24. И цвет выставляется вершинам по магическим формулам, которые ставят рыжий около заката. Или лоуполи сфера, тогда очень просто реализовать засвет около светила. А может быть оно просто поверх неба полупрохрачные белый полигон рисует.
Anonymous No.78572
>>76875
Как происходит выбор между шрифтами?
Anonymous No.78584
>>78572
Не понял контекст.
Если какой шрифт я выбрал, то свой битмаповый сделанный.
Если какой шрифт для стим-игры выбрать, то тот, который можно свободно распространять даже для коммерческих продуктов.
Если как в фритайп выбор шрифта, то я этого незнаю, но там есть FT_Library и FT_FontFace, вроде бы в фонт фейс загружается шрифт и всё находится в фт_либрари. Но тут лучше документацию https://www.freetype.org/freetype2/docs/tutorial/step1.html
почитать.
Если ты промахнулся с номером поста, то в моём GUI это не относится к структуре виджетов, это уже хай-левел функции могли бы загружать шрифты и из них глифы. Как-нибудь.

Или ты пытаешься выудить особую информацию, генерал майор?
Anonymous No.78590
>>78584
>пытаешься выудить особую информацию
Хочу узнать, какой у тебя стандарт языка.
И почему пишешь не на питоне. Можно было бы ресурсоёмкую часть написать на си, а вот все эти шрифты, интерфейсы, загрузку и сохранение, (сеть) на питоне. Питон и почти всё в нём кроссплатформенное, а скомпилировать на си голое ядро игры без шрифтов и всего остального намного проще, так как всё платформозависимое делает питон.
Anonymous No.78653
В стиме не прошла игра, они не смогли запустить, кроме как из-под администратора виндовса, ещё написали про кучу лагов и нежелательностей (таких как спавн над водой). Ещё они не поняли как поднимать сломанные блоки.
Видимо, мне сначала придётся ввести истинный генерационный поблочнок, лучше распоточить программу, сделать настройки управления, где показано как и чем управлять и лучше проверить на самом SteamOS и MS Windows.
Anonymous No.78654
>>78590
>питон
Я собираюсь выпускать в стиме и, возможно, гугл плей, мне пришлось бы запихнуть cpython (или другой интерпретатор) + кучу его библиотек в игру, это надо ещё посмотреть лицензию каждой.
libc и так кроссплатформенная, лучше просто на си писать.
Anonymous No.78658
Хотя не, с истинным генерационным поблочноком я загнул. Надо просто исправить пару багов и я их нашёл.
Anonymous No.78664
Не имею понятия как у них игрок спавнился в воде, но это может быть только в озере и это не опасно.
Тем не менее, я сделал свой детерминированный псевдорандом намбер генератор, чтобы генерация была независима от платформы (а то в виндовсе почему-то другой рандом).
#define RMAX 50

s32 makerandom(s32 seed) {
int r[RMAX];
int i;

r[0] = seed;

int a = 16807;
int c = 2147483647;

for (i = 1; i < RMAX; i++) {
r[i] = (a*r[i - 1] + c)%c;
}
return r[RMAX - 1];
}
Anonymous No.78668
Оказывается, SteamOS использует глибси версии 2.19, когда моя хостовая система версии 2.29, из-за чего происходят ошибки в линковке.
Надо будет ещё понять почему на виндовсе не запускается. Надеюсь, там не придётся использовать разные версии библиотек на разных виндовсах. Иначе придётся оставить только какой-нибудь вин10.
хахаха, 10-битная винда!
Anonymous No.78753
Я линкую программу с libm внутри своей директории, а компилятор всё-равно линкует с той, что в стандартном пути. Офигенная фича, надёжная, полезная, не позволяет пользователям создавать устаревший софт.
Anonymous No.78755
Ух, нет, я не могу это нести. Это слишком большая ноша. Не буду выпускать эту игру.
Во-первых, линковка и поддержка закрытых программ под разные ОСы — очень сложное и вредное занятие.
Во-вторых, мне не нравится делать компьютерные игры, особенно песочницы.
В третьих, со стимом и другими штуками это всё уходит в юридическое болото. А вдруг оно поглотит меня? Если бы пейпал был разрешён в стране, в которой я нахожусь, то мог бы на итч.ио выпустить, а так я не буду.
В четвёртых, слишком большая утечка информации через посты. Пора закрывать этот тред.
Всё, пока. Сорсов не дам.
Anonymous No.78757
>>78755
Ээээ, стоять!
Anonymous No.78759
15664896509050.jpg (101 KB, 1280x720)
>>78755
Сорцы и не нужны, как будто их читать кто-то будет. Нужна демка, можно даже с вырезанными текстурами и которая выключается каждые десять минут, если ты так параноишь.
Ну и ладно.
Anonymous No.78787
>>78757
>>78759
Может и не уйду. Не пропадать же добру. Вон, дварф фортресс разрабатывается годами в месяц жабию донатят тысячи долларов, + он и в стиме выпустился.
Я бы тоже мог получать донаты, но для этого нужно минимальное игрокомьюнити. Пока вас 2-4 и вы потенциальные.
Если бы я развлекался, разрабатывая такую игру, но незнаю.
К тому же, моддинг добавить не так уж и сложно. С меня лишь механики, а контент и игроки могут запилить, например.
В стиме мне не понравилось, что меня потихоньку затаскивают в болото. Несколько агриментов, всякие свифт-данные, скан документов. И у меня нет гарантий, что не произойдёт какая-нибудь ошибка. Потом ещё пейжди пошли, всякие описания. Я понимаю, это ради качества контента, за качество могут много дать.
Если заниматсья самизадтом, то можно не бояться цензуры, игра может быть очень жестокой. В том же дварф фортрессе можно в режиме эдвенчурера прыгнуть на маленькую трёхлетнюю девочку, чтобы повалить её и откусывать пальцы по-одному, а потом бить по морде и зубы разлетаются. Хотя там графика не сильно это показывает, так что дварф фортрессу это неважно. А менхант забанили в некоторых странах. Я в него не играл, но не думаю, что там есть что-то слишком жестокое.
Для линукса можно выдавать не эльфы, а наборы скомпилированных объектников, ресурсов и Мейкфайл, благодаря которому программа слинкуется для вашего дистрибутива с его версиями библиотек.
Anonymous No.78809
Сейчас случайно наткнулся на гифку с пирамидой видимости, кстати.
Anonymous No.78810
15665099698830.webm (178 KB, 460x258, 00:00:05)
>>78809
Отвалилась.
Anonymous No.78825
Похоже, в этой игре, всё сводится к двум сплавам — бронза и сталь. Надо сделать так, чтобы они оба утилизировались. Думаю, раз бронза антифрикционный материал, то пусть из неё крафтятся подшипники, из которых колёса для вагонеток или ещё чего-то.
Сыпучие материалы я всё-таки не буду добавлять, слишком это муторно и минус к производительности. Блоки, которые "сыпучие", будут просто образовывать горы с определённым углом наклона в зависимости от своей вязкости.
Anonymous No.78827
А ведь моя игра действительно пока ещё слишком сырая. Дата выхода перенесена на 25-е сентября.
Думаю, стоит сначала добавить сущностей, мобов, улучшенную генерацию, механику сетей (железнодорожных, электрических), может быть и NPC. Но не моддинг, мультиплеер, взрывы.
Anonymous No.78853
15665552697210.png (1303 KB, 1456x796)
Хотел сделать бесшовный поблочнок, а получилась повторенья какая-то.
Я взял функцию для шума Перлина, сделал так, чтобы оно значения поштучно делало, в зависимости от координат, а размер мира ребра в 13743 больше чем Земли экватор.
анон No.78854
бампаю
Anonymous No.78856
>>78854
Зачем? Тред и так висит в самом верху вместе с чатикотредом и ещё парочкой.
А ты, случаем, не автор поста >>76353 ?
Anonymous No.78861
Кстати, я распаралеллил генерацию мира (когда генерируется область whd, на каждый новый чанк по потоку) и отсинхронизировал расчёт света (то есть он в отдельном потоке), так что в эту игру лучше играть на 24-х ядерном или лучше процессоре.
Насчёт света, механика у меня как в майнкрафте или почти как в майнкрафте. Есть 33 уровня света 0...32, но источник света теоретически может иметь больший уровень и освещать большую область. Свет может быть солнечным и не солнечным. Солнечный свет оставляет тень на трёх из шести сторон блока, типа от солнца, это придаёт хороший визульный эффект на большом массиве одинаковых блоков (в скриншотах раньше видна тень на блоках песка пляжа).
Также у меня уже запланировано, что свет будет цветным, а цветное стекло будет окрашивать его. Так же разные фазы луны (их шестнадцать) будут иметь разный цвет, из-за чего ночью может быть немного красно, сине или зелёно. Но цветной свет я буду вводить в будущих версиях, а не в этой.
Anonymous No.78865
Что насчёт модов, то я сейчас создаю файл ресурсов с помощью своего питон-скрипта. И если вводить моддинг, то я бы сделал модуль для питона, чтобы из списков и словарей генерировать нужный файл. Можно было бы делать это не в питонокоде, а каком-нибудь JSON или свой велосипед придумать, но я думаю, что это не нужно. Что там стоит в этом питоне, подключить модуль, сделать несколько словарей с данными о блоках, предметах, рецептах и сущностях, где данные сделаны из строк и чисел.
А потом ниже дописать строку компил_ресурсус(блокс=модблокс, итемс=модитмес, сщност=модсщност, оут=аутфайл).
Кроме файла ресурсов, как я уже говорил, есть файлы локализации и могут быть исполняемые shared object (Я пока ещё не проэкспериментировал с libdl для win), которые могут нести потенциальную опасность, но и потенциальную кастомизацию.
Файлы локализации выглядят так:
Язык
#комментарий
'id предмета или строки' """текст"""
Anonymous No.78867
Сейчас в моей игре есть большая проблема с физикой. Если сущность попала в блоки, то она полетит в одну сторону. Она как бы будет внутри блоков и из-за этого телепортироваться, столкновения. Но это не совсем так дожно быть. Вот в майнкрафте если дроп или моб попал между блоков, то он там и останется. Моба, при этом, будет бить удушением. Вот и уменя так же должно быть.
Что насчёт HP, то оно будет в моей игре и будет майнкрафт-подобно, тоже сердечки. Но сердечки делять на 8 частей, 4 передних красных кусочка и 4 задних чёрных. Ещё, возможно, введу эффекты, когда сердечки будут видоизменяться под действием бафов и дебафов.
Насчёт брони, можно сделать какой-нибудь ободок вокруг сердец в зависимости от надетой брони.
Anonymous No.78872
Я приблизительно определился с фичами, которые надо добавить в первую v0.1 версию. Электричество добавлять не буду, но железную дорогу да. И бесполезных слизней одного типа сделаю. 3 вида дерева всё так же останутся (дуб, берёза, сосна), а может введу ещё один (ель). Но вообще я планировал добавить ещё яблоню, какое-нибудь серое дерево и несколько подземных. Из мебели работоспособную дверь.
Ещё генерировать 2 уровня пещер. Первый это майнкрафт-подобные, будто что-то вытекло, второй — дварф фортресс-подобные, будто что-то раскололось. Кстати, если вводить магний в игру, то можно сделать твёрдые озёра бишофита, типа это они находились в верхнем слое земли, но почему-то вытекли, образовав круглые вытянутые пещеры и протекли в нормальные пещеры, образованные расколом (геологической активностью). Скрытый геологический лор.
Но для чего можно использовать магний? Флешк, что-ли. В зельях? Фейерверки? Из логического процесса он вышел, так как я уже писал, что слишком сложно будет, а игроки, скорее всего, хотели бы быстро получить доступ к логическим схемам, чтобы реализовать весь свой потенциал для игры, строя ловушки и фабрикую предметы.
Процессоры будут делаться из подземных полупроводниковых грибов.
Anonymous No.78883
Получается, в блоках будет 4 слоя:
0. Предмет. Просто блок. Может иметь объём, например океаническая вода или снег.
1. Флюид. Может быть жидкостью или газом. Жидкость имеет объём, а газ концентрацию. Воздух — не газ, а пустота.
2. Иннер. Внутренний предмет, например руды, уголь, драгоценные камни. Имеет уровень от нуля до трёх, которые различаются количеством дропа.
3. Пеинт. 6 сторон, могут иметь разные id в разных вокселях. Кровь, рвота, экскременты, краска. Краска будет где-то 16 или 32 цветов, чтобы игрок не мог нарисовать всё, что хочет, а шёл за настоящими блоками.

Так же я хотел бы ввести картографию. Видели карты сокровищ в майнкрафте? Там почти нет цвета, видны только острова. Вот я хочу, чтобы такая карта рисовалась игроком, когда он ходит вокруг. Можно ещё населённые пункты и дороги прорисовывать. Для цветных карт надо будет как-то авиасъёмку сделать. Ещё 3D-карты, для пещер, например. Это уже для продвинутых игроков, которые смогут сделать робота или голема с эхолокатором и отправить его изучать пещеры и собирать данные в какой-нибудь 3D-предмет.
Anonymous No.78914
Иногда так ищешь где баг, час прошёл, 2 часа, 3 часа, больше часов, а потом оказывается, что баг, как всегда, очень глупый.
Тем не менее, отмечаю, что используя одни и те же технологии на протяжении большого времени (си, петреды, опенгл) количество багов уменьшается, а по поведению программы даже без дебаггера иногда легко определить где баг.
Anonymous No.78915
>>78883
Шизик уже списки с нуля нумерует... Совсем обпрограммировался.
Anonymous No.78917
>>78915
Проиграл.
Anonymous No.78918
>>78917
со своего собственного поста
Anonymous No.78921
>>78918
Хотел кинуть пруфпик, что это не так, но куки уже потерты, поэтому все посты не мои.
Anonymous No.78923
15665857205120.png (188 KB, 1456x796)
Смотрите, какой одуванчик.
В этой версии должны быть цветы + их механика с ножницами. 5 видов цветов — одуванчик в двух сезонах, клевер, роза и подсолнух.
В будущих версиях клевер может быть использован для быстрой и питательной кормёжки коров, а подсолнух для добычи жира. Остальные — декорация.

>>78915
Ну да, а сам подумай.
Люди часто считают, что номер это число, но ведь это не так. Номер это лишь адрес, он подставляется числом, чтобы было удобно добавлять и отнимать числа, пока это в пределах [1,∞] є N. Адреса это тоже в некоторой степени номера. Сити 17, Улица пушкина 5, дом колотушкина 3. А видел, как этажи в домах обозначаются? 5, 4, 3, 2, 1, -1 (внезапно), -2. Почему не ноль? Иногда 13-й, 666-й и 1989-й этаж пропускают. Я решил, что индексация как в си и почти всех языках программирования (с минусами есть нюансы) очень логична, вот и считаю, начиная с нуля. Первый этаж это 0-й, Второй это 1-й, тот что ниже первого это -1-й.
Помню, пытался в луа, так там первый элемент это [1]. [1]!
Anonymous No.78924
>>78921
Это не куки, а локал сторейдж, скорее свего. Я тёр куки, а локал сторейдж оставался.
Anonymous No.78925
15665857812840.png (47 KB, 741x478)
>>78921
> пруфпик
Держите-с.
Anonymous No.78926
>>78923
Ну я в общем-то пошутил.
Полностью согласен с тобой насчет индексации ИРЛ. Вот пендосы в этом плане умнее: у них первый этаж - ground, второй - первый и т.д.
>[1]!
Непонятно для кого, если везде в других местах 0. Такие вещи ИМХО должны быть универсальны, чтобы можно было менять язык безболезненно.
Anonymous No.78929
>>78915
Лол, проиграно.
мимопрограммист
Anonymous No.78997
Офигеть, почему мне никто не сказал про -g дебаггинг symbols? Так же гораздо легче дебажить, не всегда нужно будет принтфы ставить теперь.
Я только недавно где-то в интернете увидел опцию -g3 и надпись debugging symbols, вот и решил, надо будет попробовать.
Anonymous No.79014
Вот что означает не пройденный до конца курс программирования в интернете. Они же там наверняка учили использовать мейкфайлы и гдб, столько времени мог бы не тратить. Откуда же мне было знать, что дебаггер сам может выводить строку, где сегфаулт произошёл и значения аргументов в функции?
Anonymous No.79016
>>78926
>Непонятно для кого
Для людей. Он вроде бы изначально был чем-то вроде разметки для таблиц с минимум синтаксиса, чтобы не-программисты могли его использовать.
Что понятнее для незнакомца: for i = 1,#a do или for i = 0,#a-1 do?
А никакой адресной арифметики, по типу сишных *(arr+i) там всё-равно нет.
Anonymous No.79107
Хотя не, многова-то фич для первой версии.
Добавлю только 2 вида цветков, взаимодействие их с ножницами, водоросли, двери запилю и прогрессбары генерации и загрузки мира. Ещё GUI скейлинг. Исправлю физику, чтобы сущности могли застревать и пару штрихов.
Генерацию сделаю лучше. 4 вида деревеьев, океан, 1 уровень пещер.
Anonymous No.79108
>>78915
0 - натуральное число.
Anonymous No.79138
>>79108
Ну что, срач спор устроим?
Anonymous No.79141
>>72984
Нихуя ,продолжай ,хочу поиграть ,потестить))
Anonymous No.79142
>>73436
>дварф фортресс
Только с управлением не намудри ,как в фортресе
>профсоюз
Всё ясно камуняка.
Anonymous No.79143
>>74741
Советую не делать пропускаемые ночи кровать и прочее дерьмо потому как они уничтожают сурвайвл элемент. В майнкрафте должна быть цель и средства. Цель1 - выжить ,средства - крафт и ставить блоки. Это не выполняется/не работает. Цель2 - убить дракона средства - крафт и исследование. Тоже хуёво работает учитывая первую цель ,то есть ты буквально ищешь дерьмо в одиночестве и без страха. Цель3 - творчесвовать. Тут они прыгнули выше головы ,признаю. Но это и делает игру посредственной.
Anonymous No.79144
>>78872
>будто что-то вытекло, второй — дварф фортресс-подобные, будто что-то раскололось.
Введи ещё подземные биомы ,грубо говоря - когда поверхность отделилась от недр и образовалась свободная прослойка воздуха со столбами и фекальными сталактитами сос талактитами обязательно
Anonymous No.79205
>>79142
>управление
У меня всё-таки не рогалик, но я планирую захватить WASD SPACE SHIFT C (движение) TAB (инвентарь) Q (выброс) E (интеракт) F (метание) 1...0 (слоты квик доступа) LMB RMB Midle kolyosiko.
Если вводить наём работников, то подходишь к ним, открывается гуи-окно, где можно выставить задание и настройки. Говоришь, строить куб данным блоком, в виде полупрозрачных блоков выделяешь зону не отходя с места или ставишь чертёж. И так же показываешь из каких сундуков брать стройматериалы, в каких машинах что крафтить, куда класть продукт.
>>79144
А вот про сталактиты и сталагмиты я не подумал, кстати. Действительно, их стоит добавить. Причём двух видов — большие из блоков и маленькие в виде одного блока со своей моделькой.
Ещё я вспомнил террарию, а ведь там иногда встречаются драгоценные камни в виде еле заметных кристаллов, такое тоже хорошо бы ввести в мою игру, учитывая обилие некубических блоков. При разрушении будет выпадать 3-9 соответствующих драгоценных камней, а если спилить стальной пилой, то можно сам кристалл забрать. Аналогично и со сталактитами, их можно будет потом у себя поставить.
Ножницы и пила в моей игре это, получается, почти аналог зачарованию шёлковое касание в майнкрафте.
Как я уже говорил, 26 км. Это от уровня океана до уровня лавовой мантии. Между ними буду разные слои и я мало придумал, такие пещеры с прослой можно ввести.
СОН ПРО КУБКИ И КОЛЧАНЕК Anonymous No.79211
15666615586630.png (869 KB, 2160x1080)
Первую половину ночи (хорошо, что лишь половину) кажется. Ты и твой клан находитесь в 0,0,0, нулевой позиции и нулевой кубок. Кубки перекладываются, размеры вычисляются, никак нельзя выбраться из дна. Ты не перемещаешься, но колчанька перемещается, что-то получает новые кубки, гемы пересчитываются, участки прокачки заполняются ТОШНИТ ОТ КОЛЧАНЕК И КУБКОВ
Anonymous No.79212
15666615628660.png (128 KB, 300x300)
>>79205
>26 км
А один блок к скольки километрам приравнивается?
Anonymous No.79250
15666630628050.jpg (495 KB, 845x1300)
>>79212
>>79205
Если один метр как в майнкрафте ,то стоит позаботится об оптимизации. Меня их оптимизация и это >>79143 заебало и я просто забросил майн.
В бедрок эдишн есть оптимизация ,но обновления приходят раз в сто лет ,да и сама команда mojang пилит их целую вечность 70 человек в их команде ,при доходе в миллиарды. Не хочу страдать хернёй и ждать пока там всё исправят ,или ставить моды парится над лагающими шейдерами.

Майнкрафт умер для меня и я зол на разрабов.
Anonymous No.79289
>>79212
0.0005 километров. Блок в 2 раза меньше майнкрафтовского, количество уровней света где-то в 2 раза больше, рост игрока почти 4 блока, а ширина почти 2 блока. Красителей, возможно, будет 32, а не 16.
Оригинальный майнкрафт 16-битный, мой 32-битный, лол.
>>79250
Да. Я собираюсь добавить многопоточную обработку чанков, чтобы каждое ядро процессора обрабатывало свой массив чанков, а графика будет семплироваться до полигонов на много блоков в площади (ну как в статье, которую анон кидал где-то там выше, около начала), когда блоки имеют одинаковые текстуры. Ещё семлирование блоков до одноцветных кубиков, когда их размер на экране рендерит в 1-2 пикселя (хотя не уверен, даст ли это прирост к скорости) и семплирование чанков в одноцветные кубики или как-то так. Хотя я не уверен, я доже прозрачные блоки отрисываю не так как надо, потому что у меня лагает. Надо будет посмотреть, да.
Ещё, если будет выгодно, то можно попробовать добавить поддержку OpenCL, чтобы на видюхе считать всякие механики.
>70 человек
Там, наверное, 50 маркетологов, 15 организаторов событий (майнкон), 2.5 дизайнера и 2.5 программиста.
Anonymous No.79295
>>79289
>Я собираюсь добавить многопоточную обработку чанков
Просто в обычном майне там как-то оперативную память нагружало ,видел лет 10 назад статью о том как это исправить и как метод оптимизации называется ,забыл мммммммммммммммхххх(((. Даже сейчас это решается только сбросом памяти ,то бишь в настройках ползунок туда сюда покрутить и всё. В Си майнкрафте такой проблемы нет ,память не заполняется. То есть там что-то с хранением чанков в памяти и их сбросом.

Ты ещё добавил такое: неотрисовывание и необработка графики блоков ,которых нет на экране?

>мой 32-битный, лол
Ваще класс.

>50 маркетологов, 15 организаторов событий (майнкон), 2.5 дизайнера и 2.5 программиста.
Хуже ,там даже есть админы форумов. Форумов где школьники предлагают свои идеи ,а они шкодят им их ,абсолютно бесплатно.
Anonymous No.79358
>>79295
Ты про сборщик мусора говоришь. Дело в том, что в джаве память можно только выделять, никаким явным образом удалить её нельзя (только вроде как пометить через nil - а будет ли он сразу её освобождать - чёрт его знает). А как её удалять - джава сама решает, для этого там есть некий сборщик мусора, который каким-то образом ищет память, на которую ничего не ссылается. Говно система, но программисту можно вообще не думать об утечках памяти - потому что архитектура джавы изначально предполагает сплошные утечки и "насосы" для осушения.
Anonymous No.79367
>>79295
Могу сказать насчёт потребления памяти. Сейчас у меня один совершенно пустой чанк потребляет 557 КБ, хотя можно сократить до 88 байт.
Обычный, заполненный блоками чанк будет потреблять где-то 1 МБ, но может и до 1.5 МБ дойти. На один чанк неограниченное кол-во памяти, так как если блок имеет N слотов, то слотов может быть много (тут только надо считать блок с максимум слотов, но в случае добавления моддинга можно сколько почти угодно).
Да, ты написал про сборщик мусора, в си всё не так, я просто маллокирую одно, потом фри это, так что мне надо просто следить за кодом. У меня сейчас, скорее всего, есть утечки памяти, потому что я много переписывал того-сего, но они такие незначительные, что сейчас я их не ищу. Может потом.
>неотрисовывание и необработка графики блоков
Не понял, что ты имеешь ввиду. Я планирую не отрисовывать чанки, которые игрок не видит, но это для производительности процессора. А видеокарта сама решает, когда не надо рендерить то, что не видно.
Anonymous No.79378
>>79367
>Не понял, что ты имеешь ввиду
Ок ,не лезу. Думал что раз графика не отрисовывается = меньше занимает памяти ,а оказывается это в видеокарте хранится.

>>79358
>сплошные утечки и "насосы" для осушения.
Мдаааааааааа ,почему им вообще пользуются?
Anonymous No.79388
>>79378
>почему им вообще пользуются?
Довольно удобно. Нигде не нужно писать код для учёта памяти (что особенно удобно, если он разный). Утечки памяти - наверное, почти половина проблем и багов в программах на си. В хромиуме они есть, в KSP они есть, в виндоусе они есть - всё что требует перезагрузки время от времени для нормальной работы, почти точно там утечка. А так один раз костыль написал и делаешь с памятью всё что угодно.
Ещё джава - основной язык для приложений андроида почему-то. И джава работает через виртуальную машину - если ты написал код под джаву, в теории он должен запуститься на любой системе с джавой, будь то компьютер, телефон, или роутер с люниксом.
Anonymous No.79389
>>79388
где ты роутер видел с 512 мегами оперативки?
Anonymous No.79391
>>79389
У меня роутер с 2 гигами памяти.
Anonymous No.79393
>>79389
Ну, у меня с 256 мб. Не представляю для чего они, но в панели управления написано 256 (потребляется 30%).
А за окном стоб 4g-связи, где стоят блоки с десятками проводов. По смыслу это роутеры, и наверное им нужно больше 256, если даже мой с двумя проводами зачем-то 30% потребляет.
Anonymous No.79395
>>79393
хз посмотри магестральные циски там 256 на огромную коробку для кор маршрутизации
Anonymous No.79398
>>79395
А можно не смотреть? Мне не очень интересно, и я и так более чем уверен, что 256 хватит почти какому угодно роутеру, что с самого начала и указал.
(Имел ввиду, что если роутеры на столбе оптимизированны в той же степени, что и мой...)
Пост отредактировал Anonymous
Anonymous No.79472
>>79388
Мда, вот в лайси такой фигни нет.
Там просто есть динамические массивы, которые можно изменять в размере через "функции" reshape и expand, в разных измерениях и всём таком. Память вроде бы и в куче хранится, но после выхода из функции, самостоятельно будет удалена.
Жаль, что компилятора для лайси так и нет.
Где анон, разрабатывающий его? После смерти эндчана его тред снесло.
Anonymous No.79493
>>79472
У него же хард полетел или что там с ним было.
>просто есть динамические массивы, которые можно изменять в размере через "функции" reshape и expand, в разных измерениях и всём таком
И тут вдруг ты такой взял и захотел kd-дерево реализовать. А у тебя только динамические массивы. Писать свой менеджер памяти поверх массива? Да и в стандартной библиотеке это дерево совсем никому не нужно.
А ещё существуют "умные" указатели.
Anonymous No.79546
>>79493
>хард
Нет, это было с аноном, который писал ОС на джаваскрипте.
>kd-дерево
Я не понял, что это такое. В википедии очень сложно.
В любом случае, я могу сказать, что в лайси так же есть:
а) указатели
б) динамические массивы с динамическим кол-вом измерний
в) Никто не мешает прилинковать malloc, realloc и free из libc. Или некая библиотека os должна давать доступ к таким функциям?
Anonymous No.79553
15667223838120.webm (6875 KB, 1456x800, 00:00:22)
>>79378
Попытался тебе записать видео, где показано, как видеокарта (или опенгл) оптимизирует вычисления. Я набросал дропа и когда далеко от него (то есть на экране занимет где-то 300 пикселей) не лагает, а когда близко (дроп занимает почти весь экран) — лагает, потому что их много. Но на видео это еле заметно, так как запись мне устроила ещё лагов.
Anonymous No.79558
15667246631160.png (282 KB, 1693x813)
Я тут кое-что потыкал из-за кое-каких обсуждений в другом треде. Тут просто в треде уже 9 упоминаний OpenCL, может быть тебе будет интересно.

Вот сравнение OpenCL с вычислительным GLSL-шейдером на двух немного различных задачах. По горизонтали - размер локальных рабочих групп, по вертикали - время выполнения.

Я знал, что шесть лет назад OpenCL выдавал результаты на 20-30% хуже, чем Cuda (вычислительных шейдеров тогда, считай, не было), но я думал что это только потому что его только-только начинали использовать и ещё не до конца допилили api/драйвера.
Но нет, это карточка 2019 года. И разница уже даже не 30%, а иногда доходит до 40%. Помимо этого вычислительный шейдер тривиальным образом связывается с остальными типами шейдеров - никуда не нужно ничего пересылать, даже никакой функции не нужно вызывать (массивы из opencl тоже можно запихнуть в opengl вроде, но там для этого нужны какие-то действия), так что для игры на opengl выбор очевиден.
Anonymous No.79571
15667338445670.png (16 KB, 300x300)
Я, оказывается, когда менял шум Перлина, чтобы сделать его бесшовным, испортил.
Смотрите, что он выдаёт! Неудивительно, что генерируются стены.
Anonymous No.79574
15667344566750.png (53 KB, 400x400)
Нет, нормально он генерирует хотя видны странные треугольные артефакты, раньше такого не было. Но это не очень важно
Видимо, не помещается в 64-битный дабл мои 40-битные координаты.
У меня размер мира в блоках занимает 41 бит (40 битов, если минус 1), а игрок появляется посередине, то есть это 39 битов. У меня начало координат находится не в 0, а в 549755813888. Я так сделал, потому что с минусовыми координатами были проблемы, когда я делил отрицательное число на другое, то -5, например, выдавало 0, когда нужно было -1. Я решил не заморачиваться и так сделать.
Придётся мне что-то с координатами подправить в шуме Перлина.
Anonymous No.79631
>>79553
>лагает, потому что их много. Но на видео это еле заметно, так как запись
Угу ,понятно. Но по вебмке, конечно, не очень видно - где лагает а где нормально.
В майне весь дроп "каталогизируется" в одном месте ,если его много. То есть 1000 угля в один собирается ,и выглядит как один.

>>79558
>шесть лет назад OpenCL выдавал результаты на 20-30% хуже, чем Cuda
То есть Opengl говно и его лучше не использовать для игр? Просто не очень понятно вот это.
>так что для игры на opengl выбор очевиден.
Anonymous No.79644
Мне осталось ввести ещё где-то 18 фич. Можно делать по 3 фичи в день и справиться до сентября, а можно 18 фич в день и справиться уже завтра. Так что дата релиза переносится, наверное, с 25 сентября на 20 сентября.

>>79631
Я знаю как в майнкрафте, я сам из поколения майнкрафта, а когда узнал о нём не мог установить, так как не умел устанавливать игры на вындоуз. Приходилось играть в майнкрафт вики и смотреть в ютубе летсплеи. Из-за этого я почти всегда прекрасно знал механики майнкрафта и все рецепты, но когда начали выходить новые версии, начиная где-то с 1.8-1.11 (релиз) , начало подзабываться.
У меня предметы стакаются по 8, 16 или 32 штуки, а блоки по одной штуке. Это как бы усложнёная песочница, придётся реальные шахты строить, чтобы копать. Либо пещеры искать, но и пещеры не полностью сквозные.
Я тоже потом собираюсь добавить, чтобы предметы в виде дропа собирались по несколько штук.
>opengl
Не путай OpenCL и OpenGL. Первый — стандарт для любых вычислений, используя GPU и другие устройства, Второй — API и стандарт для 3D-графики.
Anonymous No.79661
>>79644
>У меня предметы стакаются по 8, 16 или 32 штуки, а блоки по одной штуке. Это как бы усложнёная песочница, придётся реальные шахты строить, чтобы копать. Либо пещеры искать, но и пещеры не полностью сквозные.
Самое главное в песочницах это не то что они песочные ,а мотивация. Я играл в майнкрафт до того момента как там появилась кровать совсем чуть чуть поиграл конечно (((( ,но там был стимул креативить ,строить там был интерес... И настоящий хоррор. Я обосрался когда на первой ночи ко мне приполз паук. Я ахуел когда в меня со спины попала стрела. Главное - это не только прогресс и стремление к супер-стронг-персонажу ,но и риски ,опасности ,смерть.

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

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

В общем всё ,надеюсь больше так не пробъёт.
Anonymous No.79663
>>79644
>Не путай OpenCL и OpenGL
Спасибо ,но что в итоге то? Хуета?
Anonymous No.79693
>>79663
Первый (CL) сомнительный. Не вижу причин, почему он простейший код выполняет на 30% дольше. Угу, в теории кроссплатформеный и подходит для любых устройств, но не 30% производительности в помойку же, ёлы.

На GL никто не жаловался. В одной из вышеуказанных статей был результат, где GL работал вчетверо хуже DirectX в определённом тесте, но я пока что это не проверил, потому что ролеплею песчанную кошку.
Anonymous No.79750
Офигеть, какая же плохая производительность! Заново делаю генерацию мира с использование Истинного Генерационного Поблочнока и теперь деревья жрут дофига времени.
И расчёт растекания воды, если блоков больше 15, то фризит каждые 0.5 с (в это время происходит растекания и падение блоков). Я вроде бы и оптимизации сделал, которые сканируют чанк на наличие жидкостей/падающих блоков/крафтильнь и ставят флаги оптимизации, благодаря которым блоки не итерируются без надобности, но всё-равно что-то занимает одно ядро на полностью.
Кажется, мне придётся в первой же версии распараллелить обработку чанков.
Anonymous No.79755
Знаете, что? Я только что ввёл простейшее кеширование для генерации мира и в итоге один поток генерирует быстрее, чем раньше 4 потока. Получается, действительно уходить в сторону параллельности это не так хорошо, как в сторону оптимизации. Для данной задачи, по крайней мере. И увеличение потоков не много скорости добавляет, незнаю почему.
К тому же, увеличивая потоки, мне придётся лочить мьютексы, снижая тем самым скорость. Я попробовал, скорость действительно была маленькой и всё-равно баги проходили.
Вероятно, в будущем надо будет по функциям пересылать указатель на некий контекст, в котором содержатся кеши для отдельных потоков.
Anonymous No.79762
Только что придумал как добавить возможность своей генерации мира при моддинге.
Пусть генерироваться мир будет используя коллбеки.
Если игрок хочет написать свой генератор мира, то он может переопределить как функцию GenOakTrunk, чтобы изменить правила генерации ствола дуба, так и весь GenChunk, чтобы изменить правила генерации всего чанка, но сможет использовать уже готовые функции.
И тогда, если я введу моддинг, то открою исходник для генерации мира для той версии. Один раз, просто, чтобы пример был.
Anonymous No.79766
>>79750
>Истинного Генерационного Поблочнока
Что это такое то, я думал-думал, так и не понял из контекста.
Anonymous No.79770
>>79750
>И расчёт растекания воды, если блоков больше 15, то фризит каждые 0.5 с

Странно ,в майнкрафте - фризы. Это что-то новое.
Anonymous No.79772
>>79766
Раньше, выше по треду, генеративным поблочноком я называл когда блоки генерируются по одному (в чанке итерируются все блоки и вычисляется какой там должен быть), при этом я предгенерировал карты шумов перлина и просто рандомного шума.
А Истинный Генерационный Поблочнок, это когда так же всё генерируется поблочно, но шум Перлина и дргуие не предварительно генерируются, а тоже поштучно (это ещё добавляет бесшовности, но есть минус в квадратных и треугольных артефактах (хотя это от больших числе и того, что у меня не в 0, 0, 0 начинаются координаты), что я скидывал выше). Кеширование разрешено и полезно.
Если бы я генерировал не поблочно, то были бы всякие сложности, приходилось бы создавать новые чанки, когда объект не умещается в одном чанке (деревья, домики). С одной стороны, это повысило бы производительность, но с другой, мало ли к чему это привело потом? Я не хочу, мне нравится Истинный Генерационный Поблочнок, даже если приходится вводить новые оптимизации типа кеширования. Истинный Генерационный Поблочнок более математичен и менее алгоритмичен, что ли.
>>79770
>майнкрафте
Пожалуйста, не называй мою игру майнкрафтом. Можешь называть её клоном майнкрафта или просто моей игрой, пока название засекречено.
Фризы есть. Дело в том, что во время обработки мира лочатся мьютексы, те же, что лочатся при отрисовке (чтобы память не перекосомешалась и не возникали SEGFAULT и просто баги).
Но с другой стороны, что-то непонятное творится. У меня вдруг появились фризы просто когда блоки перемещаются (падают), раньше тоже появлялись, но я как-то это решил, а как — не помню. Или оно само решилось.
Anonymous No.79794
15668340605350.png (1292 KB, 1500x800)
Лес, новый, смешанный, возрождённый.
Но всё это дело жутко лагает и генерация довольна медленна.
Anonymous No.79806
Всё-таки хороший совет в непропускании ночей, анон. У меня кровать будет использоваться только, чтобы устанавливать спавн-поинт.
Как я уже писал выше, я хочу, чтобы мобы использовали разные тактики и поведения для атаки и побега. Чтобы в ловушки заманивали, в засады. Хочу, чтобы некоторые мобы были быстрее игрока (по крайней мере в начале), нападали на них ночью. Чтобы, когда кто-то узнаёт о доме игрока (рабочие NPC, например), распространялись сплетни и приходили разбойники. В частности, чтобы они начинали диалог "Давай нам N денег (моней поинт) и на этот раз обойдёмся без драки". Откажешься — убьют, а дом спалят, двери выломают. Сам решай, что лучше.
Но в первой версии не будет мобов, так что некому охотиться.
Я собираюсь ввести 3 режима игры — выживание (Survival, Relife, Respawn), хардкор (Hardcore) и креатив (Building), Причём даже в первом, в некотором случае, NPC могут понять, что игрок имеет способность респавниться и они будут искать точку его спавна, чтобы построить вокруг тюрьму! Это может случиться, если игрок будет угрозой для всего живого, если будет убивать тысячи NPC, отправлять своих големов-дронов для расстрела мирного населения. Если из городов успеют разнестись сплетни, а это скорее всего. Для этого мне придётся ввести механику сплетен, репутации, диалогов и так далее. Режим building не будет генерировать обычный мир, а просто платформу, где можно строить. Это нужно, чтобы обычные игроки (80%), которые не умеют ставить моды (когда будет доступен моддинг) не смогли узнать того, что надо добыть трудом и нормальной игрой.
Кстати, я тут подумал, можно сделать мод, который добавить питон в игру и позволит писать скрипты на уже известном ЯП (питон) и исполнять их в игре для всяких миниигр, карт на прохождение (?) или чего-то ещё.
Что насчёт големов, то я придумал кое-что. Пусть будет такой материал как сердечный камень. Он будет иногда встречаться под землёй. Чтобы создать голема, нужно в заготовку вставить сердечный камень (но можно и другой, но эффекты будут непредсказуемыми и, скорее всего, не успешными). Потом надо сделать машину, которая электрическую энергию будет превращать в некую "духовную" лучевую энергию и стрелять ею в голема, чтобы попробовать оживить. Это шаг к отказу от наёмных работников с их "Обеденный перерыв", "Ночью сплю" и "Боюсь идти в пещеру".
Также эту штуковину можно будет поворачивать при помощи логических схем и направлять на разные предметы. На мобов, чтобы взорвать их. (А если моб использует сердечные камни или другие особые материалы, то использует оружие против тебя, хехехе) Такой лазер. Но в отличии от обычных боеприпасов, требует он энергии изрядно, ни один аккумулятор столько не даст, сколько он требует, так что это подходит для стационарных баз с прямым преобразованием ветряной, солнечной, тепловой, ядерной и гидроэнергии в электрическую. Ещё круто, если сделать газы, такие как водород и метан, они будут выпускаться из трубы и гореть, направить такой луч и огонь разлетится, станет синим или радужным и всё будет сжигать в мгновение, хахахаха. Насчёт электрической энергии, думаю, можно сделать устройствам максимальное пропускное количество энергии в такт. Провода погорят, машины сломаются, а аккумуляторы не смогут дать больше, чем установлено. Это как в индастрил крафте, моде для майнкрафта.
Кроме таких штук двигать надо и обыденные, такие как двери. Мне не хочется, чтобы обычные деревянные двери двигались от логического сигнала, но и создавать отдельные движимые двери всех видов не хочется. Поэтом я придумал, пусть будет блок-манипулятор. Ставишь рядом с дверью, подаёшь сигнал и электричество и дверь/люк/сундук открывается и закрывается.
Anonymous No.79840
>>79806
>максимальное пропускное количество энергии в такт. Провода погорят
Какая механика расчёта пропущенной энергии?

>Поэтом я придумал, пусть будет блок-манипулятор
Может быть просто в двери будет слот для улучшений? Можно поставить реле (подаёт сигнал, когда кто-то открывает дверь), звонок, блок управления(не отдельный блок, а чип внутри двери)/петли принимающие логический сигнал. Лишний блок сразу уменьшает возможности строительства из-за требований к месту.

>Если из городов успеют разнестись сплетни, а это скорее всего. Для этого мне придётся ввести механику сплетен, репутации, диалогов и так далее.
За адекватный (не заскриптованный до ужаса) движок вот с этим всем тебе бы нобелевскую по геймдеву бы дали, если бы такие были.
Anonymous No.79861
>>79840
>механика
Есть источники и потребители. Источники (ветряки, солнечные панели, аккумуляторы) выдают N EU/t (энергия юнит в такт), а потребители получают некоторое максимальное EU/t. Если слишком много, то может сломаться.
>двери будет слот для улучшений
Нет. Это выглядит странно, а ещё получится, что 2 действия на одну клавишу E, и открытие и проверка слота. Да, это немного уменшит возможности для строительства, но не стоит забывать, что у меня блок в 2 раза меньше чем в майнкрафте, так что места будет занято в 8 раз меньше чем в том же майнкрафте. И я не собираюсь останавливаться на обычных дверях, хотелось бы ввести всякие раздвижные, большие двери, подъёмные мосты, может быть. Кроме того, можно и просто особую механическую дверь сделать, которая будет как бы включать в себя этот блок.
Anonymous No.79897
15669006291800.png (7 KB, 1526x609)
>>79861
>Если слишком много, то может сломаться.
Я про другое. Картинка. Как оно поймёт, что боковое ответвление на первой картинке не нагружено, и то что во второй картинке нагрузка в два раза больше на центральный сегмент, а на третьей всё хорошо?
Будет ведь глупо, если провод погорит при соединении как на картинке 1?

>что 2 действия на одну клавишу E
Можно сделать как в фактории в некоторых модах, если кликаешь на установку - то открывается дверь, а если кликаешь на определённую её часть (например, петли в случае двери), то открывается слот.

Почему нельзя добавить две клавиши действий? В доте 22 клавиши управления (это даже без кнопок курьера, открытия лавки или таблицы со счётом) на клавиатуре + 2 кнопки на мыши, и они совершенно меня не напрягают во время игры. Ничего страшного не случится, если e/r/t/y - все они будут отвечать за разные способы действия. Типа, e - "регулярное действие" (включить лампочку/открыть дверь), r - дополнительное действие, t - действие связанное с расположением, поворочавить и изменять ориентацию блока, y - логическая сеть и настройки подключения к ней.
Anonymous No.79900
>>79897
С проводами действительно есть сложности. Возможно,я не буду добавлять горение проводов, но машин.
Как будет определяться, что не нагружено? Мехника сети, при создании или изменения предмета сети (провод, машина, железная дорога, локомотив) сеть будет перерасчитана. В случае с электрической сетью, будут как-нибудь суммаризированы источники и потребители, при разветвлении, энергия располовинится. Надо будет подумать ещё. Также, когда моб подходит к оголённому проводу, он становится потребителем и получает электроэнергию, которая, в большинстве случаев, нанесёт урон.

Что насчёт двери, то я всё-равно не собираюсь делать слоты для улучшений в дверь. У меня больше майнкрафт и дварф фортресс, чем факторио. Ненатурально, если обычную деревянную дверь можно улучшить странным механизмом.
И тоже не хочется плодить клавиши управления. Особенно, если я буду портировать на смартфон, куда надо будет уместить все эти клавиши.
Anonymous No.79903
15669034058840.webm (784 KB, 480x262, 00:00:12)
>>79900
Придётся перерасчитывать, каждый раз когда что-то включается-отключается.
>при разветвлении, энергия располовинится. Надо будет подумать ещё
Тебе придумать сетку, где такие принципы по типу "при разветвлении" перестанут работать?

Есть правила Киргхофа, по которым можно посчитать провода честно, но там порождается система линейных уравнений NxN, правда, очень сильно разреженная.
Можно просто через уравнение Лапласса перереасчитывать сеть храня напряжение в каждое точке. Причём, можно как сразу проитерировать его достаточное количество раз (тогда в больших сетях будут микрофризы из-за вычислений при подключении/отключении), либо можно ограничить количество итераций, тогда в длинных проводах появляться небольшие задержки, такая якобы-скорость распространения сигнала, но всё работать будет гладко и нагрузка будет реалистично распределяться в итоге, там даже аналог ёмкости проводов возникнет сам собой, то что собственного заряда отключённого от генераторов провода будет хватать чтобы лампочка мигнула на долю секунды.
И ещё можно просто сохранить одну матрицу связности, какие пары генератор-потребитель воздействуют на какой сегмент провода, и хранить эту матрицу во всех узлах. Тогда сеть придётся перерасчитывать только при изменении формы провода во время работы нагрузка минимальная, но памяти оно съест больше раз в несколько раз.
Мне вот это было интересно. Можно попробовать что-то ещё придумать, конечно. Главное, чтобы не как в oxygen not included было, где в самом деле сгорал вот этот боковой провод-ответвление.
Зачем вообще нужна механика перегрева проводов? Она может быть довольно сложная и неочевидная (для игроков), почему не сделать лайт-версию для начала, где сеть не перегревается? Как это на геймплей повлияет?

>Ненатурально, если обычную деревянную дверь можно улучшить странным механизмом.
Вполне натурально. Ирл абсолютно одинаковые деревянные железные двери с автоматикой или без. Какая тебе разница, прицепить реле к железной или к деревянной двери? И петли с электроприводом точно так же можно к чему угодно подсоединить, при желании.
Anonymous No.79906
>>79903
>Какая тебе разница, прицепить реле к железной или к деревянной двери?
Вот и я говорю, без разницы, что будет дёргать отдельный блок-манипулятор.
Слоты в дверях ну никак не подходят для моей игры. У меня тут не улучшения, а больше конструкции из блоков. Даже та же сталеварня печь это особая конструкция без слотов. Она просто принимает дроп и выдаёт блок-жидкость. И слоты имеют скорее хранительную функцию. Даже в верстаке можно хранить предметы, когда в майнкрафте они выпадают при выходе. Конечно, можно сделать отдельный коллбек для проверки, подходит ли данный предмет в слот, но это слишком муторно.

Насчёт электрических сетей действительно всё сложно. В факторио никакого перегрева нет, там просто продукшион и консупшион. Надо будет посмотреть, как на баланс это повлияет. Может быть придётся делать крафт проводов не очень простым (резина обязательна + спецкомпоненты), может дейтсвительно приёдтся расчитывать по физическим правилам, а может лучше оставить тот же продукшион + консумпшион. Кроме того, всё это должно быть детерминированным и, желательно, лёгким для расчёта, когда дан один такт и другой (выгрузил все чанки с сетью и обратно загрузил), чтобы по возвращению всё перекрафтилось.
И это должно синхронно работать с другими сетями, например, железнодорожной, по которой будут перемещаться предметы и флуидпроводной, по которой жидкости и газы перемещаются. Кстати, конвеерных лент тут не будет, только железная дорога.
Хотя, учитывая, что сталеварая печь принимает несколько нестабильный дроп, то не уверен, получится ли такое сделать. Вероятно, придётся итеративно расчитывать чанк, который долго был покинут, чтобы расчитать дроп.
Anonymous No.79916
>>79897
>В доте 22 клавиши управления
Так-же в Cataclizm dark days ahead. Очень удобно когда привыкаешь и всё запоминаешь.

Мне, кстати идея с големами и автоматизацией кажется такой себе. Если для того что-бы что-то красивое построить придётся шкодить то это такое себе.
Пост отредактировал Anonymous
Anonymous No.79917
>>79916
>идея с големами и автоматизацией кажется такой себе
Хотя ,если там в итоге можно будет и красивые домики строить без неудобств и создавать настоящие заводы, то было бы прикольно.
Пост отредактировал Anonymous
Anonymous No.79930
>>79917
>>79916
>шкодить
кодить? Кодить не обязательно на самом деле там кое-что сложнее — логические схемы создавать
Если хочешь строить большие строения в выживании, то тебе придётся заработать MP (Money Point) и нанять деревенщин и через гуи-интерфейс показать им что строить параллелограммы и чертежи. Големам придётся логические схемы вживлять, но не обязательно, во втором случае они смогут выполнять простую работу типа сбора и посадки урожая, охраны некоторой области от мобов, перетаскивания предметов, возможно, крафтинга.
Если хочешь просто строить как в майнкрафте, то режим Building.
Anonymous No.79935
Офигеть, ещё 12 явных фич вводить и несколько неявных!:
0. Генерация озёр.
1. Генерация пляжей.
2. Цветы.
3. День/Ночь (свет).
4. Двери!
5. Прозрачные блоки.
6. Застревание в блоках.
7. Save And Load World.
8. Движение в воде.
9. Выбор мира.
10. Полоса загрузки.
11. Исправить баг с крафтом.
Что бы это ни значило.
И ведь надо ещё оптимизировать это так, чтобы у игрока не лагало и не фризило слишком сильно. Надо изменить использование мьютексов и, вероятно, распараллелить процессинг чанков. Да, параллелить придётся и лучше сразу, чтобы потом делать учитывая такую параллельную архитектуру. Возможно, лишь обработка блоков будет распараллелена, а может и нет. Ещё я подумал, что, может быть, стоит сделать расположение сущностей дискретными + float-смещение для хорошй картинки. Тогда игра станет больше похожа на клеточный автомат и легче будет считать.
А потом сбилдить под 2 платформы:
SteamOS — использует glibc v2.19, а у меня на хосте v2.29. Не имею понятия как поменять версию, не разбираюсь в ELF. Но libm требует. Видимо, придётся задебутстрапить дебиан и в чруте компилировать используя его библиотеки. Это гораздо легче, чем запускать ВМ или контейнер, хорошо, что есть чрут. Почему виндовса нет под чрутом? Он есть только в вайне, но он не может точно предсказать поведение программы.
MS Windows 64-bit — не имею понятия как эта штука работает и зачем, но её используют где-то 96% стим-юзеров (чуть больше 3% макосикс), так что и для неё сбилдю. Не уверен как. Если в прошлый раз я тестил на чужой виндовс-машине, запуская с флешки, то теперь, для проверки, мне придётся установить стим. А для этого надо установить виндоуз. Задача не из простых, могу и упасть на этом моменте. Кроме того, это очень не безопасно, виндовс-программы с лёгкостью могут украсть все данные, а у меня будет подключение к интернету, чтобы всё работало. В GNU/Linux можно было бы просто запустить программу от другого юзера, настроить фаерволл, зашифровать диск.
Anonymous No.79937
Кстати, если игра получится достаточно успешная для меня. то я, может быть, выложу исходники в виде LLVM IR и предкомпилированном resource файле, чтобы любой мог скомпилировать под ту платформу, под какую хочет, будь то GNU/Linux на mips-be, STM32-микроконтроллеров-код (ARMv7 (M)?) с эмулироемой OpenGL-совместимой видюхой или виндоуз странной сборки. Но исходики будут распространяться под проприетарной лицензией.
Anonymous No.79943
>>79935
>не имею понятия как эта штука работает и зачем,
>А для этого надо установить виндоуз. Задача не из простых, могу и упасть на этом моменте.
Пхахахаха, виндовс установить, пахах, опасно. Разве это так сложно?

>SteamOS
Один вопрос - нафига.
Anonymous No.79948
>>70449
Что такое майнтест?
мимо слоупок
Anonymous No.79952
>>79943
>Разве это так сложно?
Да, когда начинаешь установку, тебе дают какие-то странные диалоговые окна, в которых надо выбирать непонятные настройки. Зачем? Вы не можете мне просто самостоятельно разметить диск и указать список пакетов? Нет, обычные же люди, которые используют виндовс, не знают что такое "пакет" и "диск".
Помню, ещё дебиан когда-то устанавливал таким же способом, как же я намучился с ним! Через debootstrap легче, но потом могут возникнуть другие проблемы.
Мне нравится Archlinux, он очень лёгкий в использовании (хотя тоже неудобный, как все или почти все дистрибутивы линукса. Из-за systemd). Может это и дистрибутив для школьников, но с генту у меня немного не срослось, а до LFS я ещё не дорос.

>SteamOS
Единственный GNU/Linux, который поддерживает стим это SteamOS, он основан на дебиане. Вообще я делаю игру в виде ELF-файла + некоторые свои файлы ресурсов. Но ELF-файл-то нормально запустится лишь на GNU/Linux, так что для него я и делаю игру. Но учитывая его непопулярность, приходится пердолиться с виндовсом. Может и с андроидом потом придётся. На мак ос я не собираюсь портировать, всё-равно его использует меньше 4%, а в качестве исполняемых файлов он использует некий Mach-O. Нет, чтобы на свои макбуки свой дистрибутив линукса сделать, столько проблем пропало бы, а сколько софта у них было бы!

>>79948
Глупый опенсурсный клон майнкрафта, предлагающий писать моды на луа, который совершенно не предназначен для программирования. Это скорее даже движок, а не полноценная игра, есть много игр, основанные на данном движке.
Anonymous No.79985
>>79952
>тебе дают какие-то странные диалоговые окна, в которых надо выбирать непонятные настройки. Зачем? Вы не можете мне просто самостоятельно разметить диск и указать список пакетов? Нет, обычные же люди, которые используют виндовс, не знают что такое "пакет" и "диск".

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


>Мне нравится Archlinux, он очень лёгкий в использовании (хотя тоже неудобный, как все или почти все дистрибутивы линукса. Из-за systemd).

А какие там проблемы с systemd ,если они есть на всех сборках? По мне так они неудобны ,потому что функционал таких сборок работает на отъебись ,попытался как-то работать на объебунту ,охуел от багов консоли и GNOME. Да ещё и фул скрин блять - в приложениях из магазина он как опция есть ,а нихуя не работает.

>Может это и дистрибутив для школьников
Кхм ,дистрибутив для школьников? Там всё можно настроить ,он как раз для прошаренных.
>но с генту
Анон из другого треда про линуксы советует не ставить его.
>LFS
Посмотрел. Это уже чисто для настоящих П А Д Ш И Х

>Глупый опенсурсный клон майнкрафта
Дерьмо. Попытался поиграть и охуел от количества говна и неудобств. КТО В КРЕАТИВЕ ОСТАВЛЯЕТ ЗДОРОВЬЕ ПЕРСОНАЖУ? А ЗДОРОВЬЕ ВОСТАНАВЛИВАТЬ НЕЧЕМ
Пост отредактировал Anonymous
Anonymous No.80052
15669714373100.png (760 KB, 1500x800)
Лимонит встречается и в глине, и в гравии, и в земле (на скрине не видно).
Болотная руда.
Anonymous No.80055
>>80052
Что-то они все по диагонали идут справа сверху на скрине и по середине. Это так и должно быть?
Anonymous No.80094
>>80055
Нет, мой алгоритм псевдорандом барахлит.
Anonymous No.80097
Как думаете, сколько процентов стим-юезров умеет запускать игры из директории, дважды кликнув на исполняемый файл, а так же, качать эти самые файлы и распаковывать их архива?
Я думаю, где-то 90%. Всё-таки стим это только для ПК, значит эти люди часто имеют дело с ним.
Anonymous No.80121
Хм, а что если сделать так, чтобы MP (Money Point), который будет добываться при убийстве живых существ (как XP в майнкрафте) или при торговле, был одним и тем же, что и электричество? Пассивный доход, строя электростанции. Я же собираюсь игру сделать, в которую играть. Может быть стоит и объеденить эти 2 ресурса в один, но надо подумать. Причём, я же собирался ввести 2 значения для этого ресурса — MP (поинт) и ML (левел), второй растёт нелинейно, как уровень персонажа в RPG. И их можно на разные вещи юзать.
Anonymous No.80124
Ещё я придумал одного босса — стая вепрей, может быть, когда-нибудь и добавлю, если игра выйдет успешной и будет смысл/баланс в таком боссе.
В моей игре босс это нечто коллективное, когда минибосс — одно (возможно с прихвостнями) очень сильное существо.
Давайте сюда ваши идеи для боссов и минибоссов, может возьму на заметку.
Требования:
Минибосс это то, что я описал выше. Встречается редко или может быть призван предметом/ритуалом. Это может быть что-то типа огромного слизня, страшной чупакабры, дракона, двурукого бандита, большого кальмара. Может и должен использовать разные атаки и тактики. Обычно может ломать блоки (впрочем как и почти все потенциальные мобы, но с разной силой). С них должны выпадать важные или много ресурсов.
Босс это что-то более коллективное и большое. Самое банальное — город с разъярёнными жителями, который игроку придётся зачистить (иди установить мир дипломатией?), иначе они будут посылать карательные отряды (кол-во жителей так же будет уменшаться при победе над ними, но они скорее всего просто сбегут, если вы побеждаете, но не если вы поставите ловушки в вашей крепости хахахаха). Так как город это недвижимое, там скорее всего будут пушки, катапульты, баллисты и всё такое. Также солдаты в виде стрелков на стенах и грозных ближнебойцев, а пока игрок не видит — инженеры-минёры. Игроку придётся создать армию наёмников или големов и осадные оружия, чтобы победить город.
Так же боссом может быть: летающий остров с кучей пушек и бомболюком; стометровое дерево с прихвостнями из плодов-плацент; отряд разбойников, которые вас нагибают уже 20 недель подряд, потому что вы никак не можете защитить свою базу, а ведь они тоже развиваются благодаря вашей дани; армия смерти; некромант с его армией скелетов и зомби (без живой шерсти); лавовое озеро, которое затягивает вас в бездну (?????!); очень долгий дождь.
Anonymous No.80130
>>80124
Тебе с такими мыслями нужно не игру делать, а моды для игр. Нет бы дрочить байты и оптимизации, так тебе оно не очень интересно, ты постоянно говоришь про какие-то высокоуровневые абстракции и идеи вроде вот этих про минибоссов, до которых как до луны по сравнению с вебмками в треде.
Anonymous No.80131
>>80121
> MP (Money Point), который будет добываться при убийстве живых существ (как XP в майнкрафте) или при торговле, был одним и тем же, что и электричество

А как ты это с точки зрения внутреннего мира объяснишь? Типо кровью торгуют? Как в Дизонорде китов ловят ,так и у вас будут редстоун из мобов доставать?
Anonymous No.80132
>>80124
Сначала выпусти и завлеки модеров в команду ,найми. А потом уже можно развивать игру в этом направлении.
Anonymous No.80139
Под СтимОС я сбилдил. Хорошо, что для дебиана существует дебутстрап, который позволяет без пердолинга установить дебиан и управлять через чрут. Там и линкую с версиями библиотек как в СтимОС. Но мне хотелось бы менее костыльный способ. Вероятно, через patchelf можно как-то это сделать, но я даже не имею понятия что именно не так с версиями библиотек. Вроде бы это libm, с которым я линкую, требует именно glibc v2.29, а не v2.19.
>>79985
>Там всё можно настроить ,он как раз для прошаренных.
Возможно, но я не умею в нём ничего делать, вот в нынешние дни я вынужден часто выключать компьютер (на ночь) и у меня почему-то слетели настройки для history size в баше (хотя я, на самом деле, не нашёл в конфиге установки данной переменной, может я когда-то установил на один раз и не заметил, я часто переустанавливаю арчлинукс (извините)). Я его выбрал лишь благодаря исключительной простоте в установке, с его wifi-menu и AUR. Как школьник.

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

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

>редстоун
Это вообще отдельная тема и один из главных аспектов моей игры, но он для advanced игроков. Я думаю, материалы для логических схем будут добываться из особых белых пещерных грибов. Затем нужен специальный чертёжный стол, где рисуешь схему из проводов и простых логических элементов (а то и одного материала в разных варициях, дающие эффект логических элементов. Редстоун тоже не имеет логических элементов в виде блоков) в ограниченной области (32x32x5, 64x64x8), да с объёмом, чтобы не перекрывалось. Конечно же, схемы можно выделять в отдельные чертёжики-модули, создавая всякие АЛУ, регистры и другие логические устройства. Берёшь чертёж и из материалов гриба по чертежу создаётся логическая схема (комбинационная или последовательностная) или плата с последовательностной схемой, ОЗУ (чтобы не изобретать велосипед), тактовым генератором и другими устройствами. Как это будет подключаться я не уверен. Может быть логические провода будут иметь несколько параллельных линий на блок.

>>80132
>моддеров
Не совсем так. Во-первых, я собираюсь вводить моддинг только после добавления мультиплеера, чтобы потом не перерабатывать архитектуру всего, а это нескоро. Во-вторых моддинг я бы добавил исключительно ради привлечения новых игроков, ведь если они могут что-то создавать для игры, то они будут больше мемезированы ею и распространять потом эти мемы среди других людей, всё больше и больше привлекая игрков. Я и сам, если 3 раза увидел мем, такой как непонятное название, пойду и запрошу у поисковика инфу по нём. А если игрок может и распротранять своё творчество, то вообще. Раньше я не собирался вводить моддинг, чтобы игрок мог получить новый контент лишь хард-воркингом в игре, но понял, что это не надо. Хардкор для хардкорщиков, казуал с читерскими модами для казуальщиков и экспериментаторов.
Да, не спорю, что надо сначала оптимизацию и архитектуру разработать, но я тоже хочу попредставлять какие крутые штуки могли бы появиться в моей игре. Не уверен насколько легко тот же ИИ будет прописать, даже с хардкодеными отдельными тактиками.
Anonymous No.80159
Я ещё задумывался о том, чтобы мобов сделать 2D в виде анимационных спрайтов. Но незнаю как делать с хандленными предметами, а ещё же я хочу механику отрубания конечностей. Или может какой-то синтез между 2D и 3D.
И будет ли это смотреться норм?
Anonymous No.80166
>>80159
>И будет ли это смотреться норм?
НЕТ ,как в первом думе мне не надо, пожалуйста.
Anonymous No.80167
>>80159
Вообще лучше сначала сконцентрироваться на том что сейчас нужно сделать - а именно твои первые фичи и оптимизация.

Альфа версии майна были вообще практически без всего ,чисто трава деревья и камень с каменными инструментами и верстаком
Anonymous No.80168
>>80159
Вообще лучше сначала сконцентрироваться на том что сейчас нужно сделать - а именно твои первые фичи и оптимизация.

Альфа версии майна были вообще практически без всего ,чисто трава деревья и камень с каменными инструментами и верстаком
Anonymous No.80349
Наверное, в новой версии мне действительно надо будет немного поменять механику сущностей, чтобы сделать их дискретными. У них будут дискретное положение и дискретная скорость, но будет записан такт, в котором должен произойти переход по координатам и, таким образом, сущность будет плавно перенесена в зрении игрока. И мир станет более дискретным и лёгким.
Знаете, а у меня координаты и блоков и всего другого идёт не в блоках (0.5 метра), а в вокселях и координаты блоков кратны 16. Но количество блоков на чанк ­— 4096, хотя это можно легко изменить. Таким образом, может быть, можно будет поставить 5 тарелок на 4хблочный стол.
Со прайтовыми мобами действительно плохая идея. Я ещё думал, может рендерить детализированного моба на текстурку и показывать такой спрайт, но были бы сложности с большими мобами.
Лучше 3D.
Anonymous No.80538
15671560182710.png (1685 KB, 1500x800)
Мне осталось, наверное, лишь сделать новое сохранение и загрузку мира и оптимизровать обработку чанков.
Генерацию я уже распараллелил (опять), с кешем.
Anonymous No.80574
Я не смог установить виндовс. Есть вариант распространять билды для виндовса в виде DLC, вместе с закрытыми исходниками в виде LLVM IR, Makefile и файла ресурсов, но сколько игроков это оттолкнёт! Одно дело скомпилировать так, чтобы оно иногда запускалось, а другое дело поддерживать. Поддерживать я не могу.
Бывает, сначала думаешь, что сможешь разобраться с чем-то отвратительным и вроде бы ты это сделал, но оказывается, что не доделал а доделать не получается.
Может быть я зря начал эту затею. Больше двух месяцев потратил на это.
Anonymous No.80576
>>80574
>Я не смог установить виндовс.
Это, чёрт возьми, как? В десяточке там уже даже рук не надо, оно само поймёт что у тебя лапки и всё поставит. На какой стадии проблема хотя бы?

Ладно, а wim файл накатить и настроить загрузчик возможно? Всё что нужно - записать на флешку iso файл на 100 мб с winpe, докинуть на неё же wim файл, запустить этот winpe с флешки и прописать в консоль что-то вроде dism /Apply-Image /ImageFile:E:\me.wim /index:1 /ApplyDir:D:\. И всё. Перезапускаешь и система работает (скорее всего).
Пост отредактировал Anonymous
Anonymous No.80596
>>80576
На самом деле моя причина глупа. Виндовс, который я заполучил, содержит эфи, но не МБР, а я не разбираюсь в эфи.
Ну ладно, я немного понервничал, но лучше денька 3 попердолиться, чтобы заполучить очень полезный результат.
Сейчас я пробую установить виндовс из qemu на образ диска размером с диск другой моей машины (там сейчас СтимОС). qemu у меня медленно работает, потому что я не разобрался что там в арчлинуксе с KVM (или это была какая-то другая проблема?), но хоть установить надо. Потом попробую перезаписать на диск той машины.
Anonymous No.80782
>>80596
>Виндовс, который я заполучил, содержит эфи, но не МБР, а я не разбираюсь в эфи.
А в чём проблема собственно? Я тоже не разбирался ,создал пару разделов и забил ,винда всё сама накатила.

Ты ведь уже установил её?
Anonymous No.80791
>>80782
Моя вторая машина почему-то не хочет загружаться с SD-карты либо USB-устройства с EFI. Я пробовал и отключать секур бут и включать, порядок в обоих (и MBR, и efi) сделал такой, чтобы с SD-карты загружалось, но даже когда я хочу выбрать устройство, с которого разгрузиться, из списка, там нет такого.
А через qemu я ещё не установил, потому что это было очень долго. Сейчас мне приходится заново это делать, часов 6 устанавливаться будет.
Anonymous No.80866
15672495504730.gif (673 KB, 879x521)
Увидел сегодня на хабре картинку. Такими же я хотел сделать мобов в своей игре.
Но такой подход не подойдет ей, потому что будет сложно целиться по отдельным частям. Ещё если моб большой и ветвистый, то на близком расстоянии не будет понятно где что находится.
Такое бы подошло играм, где не нужно приближаться к мобам и где хитбокс один.
Anonymous No.80884
Какой же этот виндовс нестабильный! Как его вообще умудряются устанавливать?
Я вроде бы сделал что-то такое установка заняла всего лишь 3 часа вместо ожидаемых 6, но я при этом выделил виртуалке 2 ядра вместо одного, потом ещё пару часов виндовс загружался, но отключилось электричество. Я попробовал на ноутбук перенести образ диска, который у меня получился, запустилось, появилось обычное геометрически странное и дизайнерски уродливое лого виндовс 10, вроде бы нормально загружалось, но появилось окно, где было сказано, что рестартинг прошёл как-то не так, либо другая ошибка. Сказали, чтоб переустановил и снова попробовал запустить.
Если и на виртуальной машине спустя 3 часа загрузки выйдет то же окно, то придётся заново всё устанвливать 6-12 часов.
Наверное, в таком случае, лучше суспендить процесс через какой-нибудь cryopid и сохранять его на диск, чтобы по 10 раз не пробовать заново установить виндовс.
Anonymous No.80891
15672536082120.png (21 KB, 1024x793)
Вы видите? Видите? Что это такое?
Сегодня я не смогу установить, так как до конца электрического дня осталось несколько часов. Можно только действительно опробовать CryoPID, но стоят ли эти мучения того? Как я уже писал, я смог скомпилировать под виндовс, это в раз 5-20 легче, чем установить виндовс. То есть я могу распространять билд под виндовс если только DLC стима это позволяют, но, вроде бы, да, я не могу его полностью поддерживать так, чтобы он запускался из-под стима.
Может быть мне стоит поднакопить на лицензию от гугла и настоящий смартфон, чтобы распротранять андроид-версию, это гораздо большая аудитория (но и не факт, что для игры). Компиляция под андроид (используя джаву. котлин, возможно, легче) раза в 3-4 сложнее, чем компиляция под виндовс. + придётся добавить сенсорное управление, но это всё ещё легче, чем установка виндовса, наверное.
Anonymous No.80893
>>80884
>установка заняла всего лишь 3 часа
>ещё пару часов виндовс загружался
На ноутбуке с i3 на hdd виндоус устанавливается минут за 20-30, в virtualbox.
Забей на виндоус, займись чем-нибудь более интересным - я завтра скину сюда все файлы виртуалки с win10/win7. Virtualbox же кроссплатформенная? Значит, у тебя моя виртуалка тоже должна заработать.
Anonymous No.80896
15672539697530.webm (4919 KB, 636x360, 00:01:40)
Мм, вебм забыл, она будет уместна, наверное.
Anonymous No.80904
>>80893
Хорошо, попробую твои файлы, а пока пошлифую саму игру.
Anonymous No.80907
>>80893
И ещё, если можешь, делай диск с размером 31272730624 байт, чтобы я попробовал на ноутбук перенести (или простой файлы файловой системы, только мне ещё надо знать как размечается виндовс-система).
Anonymous No.81072
Пока анон пообещал мне файлы виртуалки, я параллельно свой виндовс устанавливаю, 5 часов уже, полёт нормальный, загружается.
Задаюсь вопросом, почему у других людей, когда они запускали игру, из обычного пользователя не получилось, а от администратора смогли. Может быть там какие-то не такие пермиссии для файлов? Версии библиотек опасные? Или я слинковал немного не по тому имени, но виндовс сам разобрался? rpath должен быть обязательно в ./, а не в ./lib? Может, мне при компиляции надо было как-то указать поле разработчика/издателя? Когда не знал о GNU/Linux, у меня был виндовс и там иногда выскакивало сообщение "разрешено изменить жёсткий диск этой программе" и несколько полей.
Anonymous No.81128
15673480704100.png (6 KB, 626x178)
Что-то какая-то хрень с виртуалкой. Я хотел скриншотов наделать, что где делать. Пробую новую поставить, накатываю образ. И тут хоп, нужно через diskpart присвоить названия дискам, потом какой-то bcd файл создать, потом ещё какая-то шиза. В общем, скриншотов стало больше 10 и я забросил эту затею, потому что по картинкам разбирать такое такое себе. Win7 то нормально ставится с полпинка, это в win10 какие-то gpt, уефи-хуефи и прочую дичь завезли.

http://95.27.236.54/VM/ - айпишник сдохнет через пару дней.
win10_2 - работающая система с win10. Там vhd файл, его можно просто через 7-zip открыть как архив и перекинуть на любой диск. А ещё виндоус умеет загружаться из vhd файла.
iso-wim - какие-то образы через которые можно поставить систему. bt64 (bootice) для настройки загрузочных секций и прочего, и dism - для разворачивания образа. Это если хочется повозиться. Вот единственная нужная команда на картинке, по сути, всё остальное можно сделать через интерфейс bt64, почти что, это зависит от того, стоит ли у тебя uefi и прочее. Ставится минут за пять в виртуалке. В C:\re\any\Активация активатор, если будешь ставить на реальную систему.

Извини, меня вырубает, если не заработает завтра отвечу + выкачу win7, если она нужна.
Anonymous No.81148
15673515318400.png (18 KB, 1024x793)
>>81128
Ого, долго загружает, 8 часов. Смогу только завтра скачать.
Тем временем, у меня устанавливается моя версия, застрял пока на этом Just A Moment, который длится почти 5 часов.
Anonymous No.81153
Как я уже писал, лучше попердолиться с виндовсом 3 дня, чтобы получить лучший результат. Сегодня второй день. План такой: если с моим виндовсом или виндосом того анона ничего не получится, то я возьму и снова попробую установить мой виндовс на qemu, но когда он начнёт перезагрузку (спустя 3 часа после установки), надо этот момент выследить и выключить машину. И потом уже перезаписать диск на вторую машину и попробовать продолжить установку с неё. По идее ничего не должно нарушиться, если не будет конфликтов с конфигурацией ПК, которую виндовс мог сохранить. Может быть, стоит в qemu выбрать процессор как у второй машины.
Второй вариант это попробовать поставить виндовс 7, как написал анон выше, там, вроде бы, нет uefi, значит с MBR смогу запустить. Её, кажется, собираются поддерживать до 2020, а если игра будет успешной и прибыльной, то вполне можно будет купить отдельную машинку с предустановленным вин10, чтобы поддерживать уже его.
Anonymous No.81174
Это ужас. Я смог установить виндовс.
Anonymous No.81201
Я все посмеивался с анона, ставящего винду, а тут вдруг решил и сам поставить. ЭТО АД, я никогда так не ошибался. И дело даже не в том, что все ломается. В линуксе ведь тоже все ломается. Но у линукса есть всякие вики, мануалы и коммьюнити, а у винды нет ничего!!! Все вопросы на своем форуме они просто закрывают или отвечают в духе "обновите систему". Ужас!
Anonymous No.81946
15677628503710.png (1447 KB, 1500x800)
...восхождение...
..................
!
— Три тысячи чертей, [ЦЕНЗУРА], где тебя носит?!
— Продолжаю выныривать... Уровень опасности: 0.
— [ЦЕНЗУРА], приём. Почему долго не выходили на связь?
— виндовсы страшны и погрузительны. То что я увидел на дне... увидел на дне... увидел на дне... увидел на дне...
[неразборчиво]...
— [ЦЕНЗУРА], приём. Вас плохо слышно.
— страшно [неразборчиво], о [неразборчиво], лучше туда не плыть
— [ЦЕНЗУРА], продолжайте подъём. Глубина 200 метров. Конец связи.

☼Герои те, кто умеют ставить Виндовс и использовать его. На этот раз я не стал таким. Но это не страшно. Виндовс никуда не делся, как и его пользователи. Можно попробовать ещё раз. Когда-нибудь☼

Виндовс 10. Статус — [ЦЕНЗУРА]
Виндовс 7. Статус — Нерабочий.
Виндовс от анона. Статус — tar: skip to next header. Exiting due to previous errors. Комментарий: Как распаковать диск? Я незнаю, какие опции нужны. Ошибка возникала где-то на 4 ГБ, это связано с 32-битными числами? Я всё ещё имею архив и могу попробовать снова. Надеюсь тут нет бага с таром.

Ныне поддержка: Linux + SteamOS.
https://store.steampowered.com/app/1143340/Industriworks/
Anonymous No.81947
>>81946
А я уже думал, что винда тебя угробила.
Anonymous No.81955
>>81946
Угу, я тоже не могу открыть 7zip-ом. Я посмотрел, там разные форматы tar-ов, и совместимы они только при не таких больших файлах.
Я просто всегда такие громадные файлы скачивал через список файлов, чтобы потом после скачивания не "разархивировать" ещё раз. И не мог подумать, что кому-либо придёт в голову использовать tar.

Вот я заранее пожал в 7z, а то ты долбанёшься через свой тор ещё раз его скачивать (впрочем, всё-равно долбанёшься, 7z не совладал): http://95.27.236.54/VM/win10_2.7z
Anonymous No.81977
Что ожидает игру? Скажу, что ревью-процессы в стиме очень важны, особенно для начинающих разработчиках. Благодаря им я понял уровень качества, который требует стим, в частности то, что я должен поддерживать свою игру на платформах. Если бы я просто выпустил скомпиленные экзешники, которые запускаются под вайном, то стим-юзер мог бы увидеть, что не получилось запустить.
Насчёт доступности, то такая последовательность:
0. Пробую поставить VM с виндовсом, чтобы начать поддерживать виндовс.
1. Если не получается, то оставляю лишь поддержку Linux + SteamOS, но в некоторых уголках интернета сделаю инструкцию как запустить игру, купив её в стиме и скачав через steamcmd, открывая Win+R и вводя команды. Ведь под виндовс я скомпилировал, просто, может быть, придётся её от-администратора запускать или ещё чего подшаманить.
2. Если количеством покупок не удовлетворён, то расчитываю на Андроид. Но мне всё-равно придётся получить долларов 100, чтобы вложиться в лицензию гугл плея, покупку смартфона и писать на джаве обёртку.
3. В самом крайнем случае выпускаю бесплатную версию на каком-нибудь итчио, с контактами для доната в криптовалюте (пейпал, используемый в итчио, в стране моего проживания не даёт принимать деньги) и ссылкой, чтобы купить Steam Edition-версию игры, которая только под линукс и версии выходят на неделю-месяц раньше. Это если лицензия со стимом позволяет, надо будет перечитать ещё.
Последний вариант мне совсем никак не нравится, 2-й тоже, так что между каждым шагом я буду повторять 0-й.

Насчёт разработки самой игры:
На скриншоте выше вы можете увидеть модельку слизня. Мне надо добавить скейлинг по разным осям, анимацию прыжка, поворот сущностей, доделать столкновения, добавить HP и урон. Название игры уже рассекречено — Industriworks. В Индустриворкс HP будет обозначаться сердечками как и в Майнкрафте, но они имеют 8 делений, то есть игрок по-дефолту будет иметь где-то 64-80 ХП.
Я ещё облагорожил ГУИ, сделав элементы более объёмными. Надо будет управление по слотам расставить. Я сделал так, чтобы по шифту можно было все контенты выбранного слота переносить в контейнер, но не наоборот. Надо будет сделать и наоборот и внутри самого инвентаря и чтобы можно было 1-2-3-4-5-6... быстро выбирать, если зажать Ctrl. Или среднюю кнопку мыши. Или колёсиком покрутить.
И надо будет улучшить реакции с предметами, чтобы, например, огонь поджигал листву и древесину и чтобы слизни горели, чтобы вода и другие жидкости тушили огонь, пусть ещё вода в малом объёме постепенно впитывалась землёй, но не другими материалами и приходилось бы крафтить швабру и убирать.
Частицы и отоборажение рукованного я буду добавлять позже.

Со стимом я ещё не совсем разобрался, особенно комьюнити хабы. Надо будет выпустить некоторые рецепты, которые не показаны ни в трейлере, ни в скриншотах, ни в сообщениях ачивок.
Anonymous No.82008
>>81955
Твой айпи не доступен, можно, пожалуйста, снова его открыть? Не докачал вчера.
Теперь я использую не браузер, а wget -c, чтобы продолжать качать скачанное. Надеюсь из-за этого не будет ошибок. Кстати, ещё через wget получается в несколько раз быстрее, хоть и через тор, за пару часов скачивается. Интересно, он как-то подругому пакеты отправляет?
Anonymous No.82020
>>82008
Угу, тоже не понял. Там было два куска, в сумме не 8.1 Гб, что больше чем архив. Подумал, может быть почему-то какой-то кусок заново докачивался. Энивей, пока не могу.
Anonymous No.82029
>>82020
Да, я сначала с браузера качал, скорость была норм, а потом резко опустилась. Я думал, перезапущу тор, он продолжит, а браузер сказал, что failed и удалил скачанное. Вот через вгет снова начал.
Окей, я подожду когда ты сможешь.
У меня, кстати, есть некий доступ к виндовс-машине, но он нерегулярный и не всегда будет. Если использовать только её, то не смогу выпускать обновления, когда захочу без рисков. Конечно, если я буду править только код, но не библиотеки и всякие файловые операции, то это должно быть нестрашно, но лучше проверять.
Anonymous No.82159
Сети, одежда и дырявые блоки.
Распишу как я представляю:

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

Экипировка уровня одежды.
Я думал над 4-мя слоями одежды, которые имеют по 7 слотов, а именно голова, торс, ноги, ступни, руки: нижнее бельё: ожерелье, бюстгальтер/лифчик/чтоэто, трусы, браслеты для ног и кольца; одежда: шапка, футболка/етс, юбка/штаны/шорты, ботинки, перчатки; броня: шлем, нагрудник, поножи, ботинки, перчатки; навешивалки: вставки из сердечного камня (для отражения лучей смерти/жизни), может быть рессоры как в portal, будут увеличивать дальность прыжка, высоту падения, но и рост игрока; соответственно.
Надеюсь не страшно, что называется "сердечный камень" как материал из TES.

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



Сейчас я делаю слизня, который будет прыгать, поворачиваться и гореть, а потом займусь железными дорогами и поездами. Железные дороги будут делаться из стали и древесины, максимальный поворот на блок — 45°, так что, чтобы повернуть на 180°, придётся 5 блоков в ширину (на самом деле 10, потому что железная дорога и блок 2x1x2 xyz).
Но это по горизонтали, по вертикали, думаю, 22.5° и 45°, причём поднимать в 45° тепловоз вряд ли сможет, а 22.5° нормально.
Вагонетки будут сцеплены между собой цепями, так что поезд будет единым целым и не будет безумия как в майнкрафте.
В вагонетки можно будет класть предметы и мобов, в т. ч. и игрока. Ещё особые флюидные вагонетки для жидкостей и газов. А может быть и обычные вагонетки смогут перемещать жидкости, но с потерями.
Это для версии v0.1. Может ещё добавлю и музыку в виде одного произведения.
Anonymous No.82237
Ой, вот я дурак! Я же когда покупал свою другую машину, там был предустановлен виндовс. И, как я выяснил, в биосе сохранён ключ. Я узнал как его получить при помощи https://superuser.com/questions/637971/how-do-i-get-out-my-embedded-windows-8-key-from-a-linux-environment
Но эта машина всё-равно не хочет загружать сдкарту с UEFI и виндовсом, как и другие с UEFI.
Может быть эта информация приведёт меня к установке виндовса...
Anonymous No.82265
15679392112550.webm (16362 KB, 1504x800, 00:00:55)
Начало слизня.
Он какой-то нестабильный.
Anonymous No.82349
Попробовал установить виндовс, но 2 образа сказали, что ключ не подходит.
Как же это сложно! Вот же майкрософты, успели прорекламировать свою ОС и теперь обычные люди по инерции устанавливают только виндовс.
Что-то всё сопротивляется установке виндовса, будто некая нить моей судьбы отторгает виндовс (либо "неправильного" виндовса).
Помню, когда-то был в школе и одноклассник спросил, как я могу находиться рядом с айфонами, почему я не дёргаюсь от них, но я ответил, что это айфоны должны гореть от моего прикосновения.

[update]

Оказывается, у меня под носом лежала машина с виндовсом. Рабочим и лицензионным. facepalm.
Мне-то нужно было просто посмотреть шире.
Anonymous No.82537
Ахахахахаха, я нашёл баг, ахахаха, какой же он нелепый.
Баг, из-за которога Индустриворкс отказывался запускаться в виндовсе это баг виндовса.
Когда-то давно я искал как читать libpng из памяти и не нашёл. Вместо этого я нашёл fmemopen. Но на винде, на виндовском stdio.h или libc нет ни fmemopen, ни open_memstream, ни fopencookie. Но есть tmpfile. Я думал, что это тоже что-то типа fmemopen, но оказалось, что оно открывает реальный файл в особой директории. И в винде эта директория является корнем чего-то, к чему нет пермиссий у обычных пользователей.
Но теперь, внезапно, я узнал, что libpng можно дать коллбек, через который он будет читать.
Теперь игра запускается и работает, но почему-то, иногда, вылетает.
Наверное, скоро будет поддержка виндовса у Industriworks.

Анон, который мне делал VM, твой труд мне уже не нужен (наверное), но всё-равно спасибо, что старался ради игры, ради меня или ради ещё чего-то.
Anonymous No.82602
Я сделал версию под виндовс и теперь тут https://store.steampowered.com/app/1143340/Industriworks/ показаны системные требования, которые одинаковы за исключением ОС, ведь это для разных ОС, а сама игра должна выйти 23-го сентября. Пока версия 0.0.4.
Я тут думал насчёт механики наёма жителей и подумал, что эта идея плохая. Ну вот пойдёт нанимать игрок жителей, а на какие деньги и где искать деревню?
Я ещё раздумывал над такой вещью, как RPG-прокачка персонажа. Пусть слева от инвентаря будет вкладка с навыками. Чтобы открывать, надо тратить ML (money level), а чтобы задействовать их, тратить либо ML, либо MP (money point). Навыки могут быть пассивными, которые действуют и так, а могут быть активными и их надо будет использовать вместе с рунами или чем-то таким. Но главное то, что, чтобы увеличить количество доступных навыков, надо открывать ачивки. Когда откроется N ачивок, больше навыков будет доступно для открытия.
И пусть тогда в этих навыках будет штука, чтобы делать големов, которые и будут автоматизировать производство и обработку ресурсов, а также строительство и крафтинг. Тем не менее, големов можно будет создавать и при помощи электрической энергии, как я уже описывал выше. Жители будут нужны только для торговли. А может и для наёма, но не как рабочих, а как боевых наёмников.
Просто зачем игроку ломать голову над тем, где найти деревню, если голема он может создать прямо на месте? По-моему, так лучше. Механика создания големов, вероятно, будет разнообразная. Самые простые материалы для них — камень, а более продвинутые — сервоприводные или гидравлические системы "мышц", ещё колёса всякие, пропеллеры, благодаря которым големы станут дронами. Если механика создания големов будет действительно продвинутая, то можно в таких встраивать печи, чтобы они обрабатывали материалы в себе. Но баланс пока не ясен.
Ещё, пусть тот сердечный камень, о котором я говорил, будет сердечным кристаллом, чтобы не было коллизий с TES, хотя не думаю, что это слишком плохо. Но я подумал о таком розовом кристалле "классической" формы, который будет в пещерах добываться. Но, думаю, он будет нужен только для создания големов из электричества, а не MP.
Anonymous No.82637
15680528199720.png (2010 KB, 1500x800)
Есть игры для пользователей, а есть игры для самой себя.
Приведу в пример факторио и дварф фортресс. Факторио при старте игры имеет много намёков и туториалов, которые позволят пользователям играть в неё, играть, а не изучать. Да и сама она не такая уж и сложная для пользователя, что делает её просто интересной казуальной игрушкой, где ты строишь структуры и "учишь науку". И эта игра популярна.
А вот дварф фортресс не имеет ничего такого, пользователю придётся перечитать вики, прежде чем начать играть. Это игра для игры, там просто высчитаваются события и немногие готовы среди передвигающихся тайликов разглядеть баталию и учить команды для управления дварфами.
А если взять Майнкрафт, то это отдельный случай. Несмотря на то, что, чтобы узнать рецепты, надо идти на вики, из-за её уникальности на момент создания, игроки не против запоминать несколько сотен рецептов внутри 3x3 слотового воркбенча.
Я не хочу разрабатывать видеоигры, у меня другая цель. Вот и мне надо делать игру, ориентируясь прежде всего на пользователей. А так как она подразумевает создание фабрик, как в факторио, а кубики-строительство как в майнкрафте и страшный прекрасный мир как в дварффортресс это второстепенный план, мне действительно стоит давать игроку возможность в начале, может и не самом, но среднем начале создавать автоматизацию.
Я предполагаю, пусть игрок в первые минуты срубит дерево, пойдёт в пещеры и найдёт руды и сердченый кристалл, а потом он сможет создавать големов для автоматизации. Я предполагаю, что пусть начальные големы имеют мало функций. Например, один голем буду перебрасывать ресурсы из одного контейнера в другой, ходя на некотором расстоянии. Второй голем будет агриться на всех мобов (в т. ч. и игрока) и защищать либо забивать. Третий голем сможет ставить некоторые блоки.
Големы высших уровней пусть смогут крафтить, детектить разные виды мобов и ресурсов. А големы вообще высшего уровня получать задания строительства в виде чертежей. Но функционал будет не слишком разнообразным, если не добавлять логические схемы. Усовершенствованные игроки смогут создать свой алгоритм хождения, защиты, etc при помощи логических схем.
Как я уже писал, за всем стоит MP и его форма ML. Откуда оно добывается я написал. Либо из торговли, либо убийством.
Но я бы хотел такую кривую, чтобы сначала игроку было выгодно убивать животных и монстров. Постепенно, из убийства он перерастал бы в торговца благодаря своему производству + разводил скот (с которого дропается мало MP, в отличие от диких животных), чтобы продавать их ресурсы. Торговал бы сначала с деревенскими жителями, а потом в городскими. Но со временем, ML требовал бы всё больше и больше. Откуда его взять? Надо... Я тут подумал, что это слишком жестоко, так что я не буду писать.
Anonymous No.82830
>>73881
>В это нельзя будет играть.
Ты сильно повлиял на разработку игры. Но я, всё же, думаю, что пусть эти самые големы программируются логическими схемами. Может и не полностью.
Допустим есть самый первый голем. Его поведение заключается в том, что он идёт в одном направлении, натыкается на дроп/стену/контейнер, берёт вещи по возможности, разворачивается на 180* и повторяется. При этом, если в руках есть предметы и он наткнётся на контейнер, то положит. Всё.
И пусть на [E] у него открывается ГУИшка со слотом логической схемы. Там будут несколько проводов. Один — включить/выключить естесственное поведение. Если подавать ноль, то поведение выключится. Несколько других проводов отвечают за поворот, брание/бросание предметов, на которые можно подавать логические сигналы. Так же некоторые провода отвечают за обнаружение стены или предметов, то есть сенсоры.
У более сложных големов уже будет больше возможностей.
Ух, всё это похоже на пускание электродов тока в мозг живого существа, что очень жестоко. Но големы не люди и не животные. Это просто раб, раб созданный быть рабом. Он не чувствует ни радости, ни горя, он, вероятно, и не жив. Как страшно.
Крафтинг големов? Мне понравилась идея с крафтингом вещей в моде Таумкрафт для майнкрафта. Там из пьедесталов ставилась фигурка, вокруг ещё пьедесталы и на них вещи. А рядом банки с эссенциями. Я, может быть, сделаю так, чтобы крафтить пьедесталы из обожжённых камней, выставлять их определённым узором, а на него класть камни, древесину, вещи всякие и в центр кусочек сердечного кристалла. Затем игрок берёт свои MP и в инвентаре покупает заклинание на оживление голема. Из этих блоков получается голем, причём части его тела соответсвуют блокам, из которых создан.
Наверное, мне стоит ввести големов прежде ЖД, но без логических схем. Игра выходит 23-го сентября, может и успею.
Что насчёт логики в факторио, то даже я не захотел разбираться со всякими умножениями, плюсами, числовыми значениями. Зачем это если есть обычные биты? Даже для андроида встречаются игрушки, где надо переключать логические вентили для получения результата. И людям несложно понять, что такое И, ИЛИ, КСОР, НЕ. Триггеры уже посложнее будут, да. Но лучше пусть люди учат уже известный API, чем всякие переусложнённые вещи. Не то чтобы я хотел учить людей цифровой логике и созданию микроэлектронных логических устройств... Каждый 10-й школьник может на верилоге написать небольшой 8-битный счётчик. Правда ему придётся немного поучить кое-чего.
Надо будет мне искать способы оптимизации логических устройств в игре. Логические устройства игры исполняются на реальном логическом устройстве. Выражения из логических комбинационных схем можно пытаться упростить. Искать XOR-элементы и заменять их оператором ^ в Си. Искать D-, RS- и другие триггеры, совмещать из них регистры, которые в компьютере будут просто переменными, АЛУ операторами плюса, минуса, умножения и других. Не знаю насколько это просто. Хотя, если давать игроку стартовый набор простейших логических устройств, то было бы легче.
Anonymous No.82883
>>82830
>Зачем это если есть обычные биты?
В факторио я могу собрать змейку, а в майнкрафте на красной пыли - вертел я это собирать. Там просто возможность складывать 8-битных числа занимает места больше, чем вся змейка в фактории. То есть просто сравни какой сложности штуки собирают в фактории с числами, и какой сложности в майне с битами.

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

>И людям несложно понять, что такое И, ИЛИ, КСОР, НЕ
И тем же людям очень сложно перейти от И/ИЛИ к сложению или, упаси господи, делению чисел.
Пост отредактировал Anonymous
Anonymous No.82945
Я думал над тем, что надо добавить систему частиц как в майнкрафте в мою игру. Но это не так, не надо. Вечно я ориентируюсь на майнкрафт и ограничиваю себя, хотя это моя игра и я могу делать тут, что хочу. Хорошо, хоть разок подумал сделать мобов спрайтовыми с пиксельным рендерингом, хоть эта идея и оказалась плохой.
Что можете предложить, чтобы выглядело красиво, но при этом не частицы как в майнкрафте? Что можно придумать оригинальное? Частицы в майнкрафте используются во всяких блоках типа факела или редстоуна, разрушении других блоков, когда мобы отскакивают и всё такое.
Может пусть это будет воксельным? Или спрайтовым? Типа от факела отлетают красные воксели, а от блока идёт спрайт с падающими кусочками. Или может блок будет потрясывать. Не уверен, что это подходит.
Anonymous No.83014
15682253247820.png (709 KB, 1500x800)
Прототип голема. Он сделан в основном из мрамора, но ещё габбровая нога и гранитная рука. Вместо голова сердечный кристалл в медной оправе, позволяющаяя каменным глыбам держаться вместе и двигаться.
Пока что не могу анимировать анатомические движения. Надо сделать так, чтобы каждый параллелепипедик крепился к другому в некоторой точке. И тогда относительно этой точки будут происходить передвижения и вращения параллелепипедов. А анимировать будет отдельная для моба функция.
Кстати, у големов, наверное, не будет коленей и локтей, в отличие от обычных мобов.
Anonymous No.83103
Я решил сделать объём жидкостей дискретным. От 0, до 64.
Также я решил сделать сущностям 2 скорости/положения — флоатские и дискретные. Дискретными локашионами будут обладать големы, потому что они важные элементы в механизации. Тем не менее, их движения будут выглядеть плавными благодаря расчёту. Но если, например, они будут очень медленоо идти по некоторой координате (несколько градусов угол упёрся в стенку, например), а потом их остановить, то они, как бы, телепортируются на долю вокселя обратно.
А всякие мобы и животные могут и флоатские значения иметь.
Anonymous No.83132
Я хотел сделать дискретные положения для всего, но понял, что это не очень. Я всё это время гитил код в коммиты, захотел вернуть, а гит заплевал ошибками и чуть не испортил исходники. Пришлось вручную по памяти переделывать. Хорошо, что я параллельно сохранял по директориям разные версии.
Знает кто-нибудь файловую систему, чтобы можно было указать ей сжать те файлы, чтобы уменьшить размер и файловый менеджер с таким функционалом? Нет? Я тоже.
Anonymous No.83141
Раньше я думал над тем, что не надо вводить огнестрельное оружие. Но сейчас я думаю, что может и стоит. Но в данном случае, огнестрел будет големом.
Просто огнестрельное экшоннее.
Тем не менее, луки тоже смогут пригодиться, если на стрелы будет возможность насаживать всякие интересные штучки и яды. Их снаряды летят по параболе.
Anonymous No.83212
Эй, я только что придумал, что можно сделать с электричеством. Видели, как провода идут в факторио? Они на столбах, между которыми ниточка медного цвета.
Я подумал, что можно и в Industriworks сделать кабель, но он будет лежать на земле. Он не будет блоком, вместо, это будет нечто другое, типа сущности и оно будет кривым. И тогда кабеля не будут подсоединяться друг к другу. Пусть будут источники и что-то типа трансформаторов, которые собирают провода вместе и выдают всю энергию в один, либо наоборот, берут источники и подносят потребителям.
В таком случае можно и потери энергии реализовать, и взрыв кабелей с машинами от слишком выского еЭ/с (единиц энергии в секунду).
И тогда разные кабеля будут иметь разную пропускную способность. Например, медные, золотые и ещё какие-нибудь.
И, наверное, крафт кабелей будет включать в себя резину. А резина пусть будет создавать из высушенной слизи слизней. Я представляю слизней в Индустриворкс как мобы, сделанные из чего-то немного липкого и огнеопасного, а высушенном состоянии — взрывоопасного и содержащего серу. Каучук будет, наверное, из Гевеи или чего-то ещё. При этом такой крафт можно тоже сделать не на верстаке, а на земле — вылить каучук как жидкость, бросить высушенную слизь в виде дропа и поджечь.
А если я буду реализовывать такие кривые штуки, то и рельсы можно сделать кривыми, подобно как в факторио.
Можно сделать создание рельс необычным: шпалы крафтятся на наковальне, затем надо в землю положить гравий или булыжник (эта опция усложнит, я подумаю на ней), положить шпалы, а под них доски, причём в зависимости от типа доски будет разная текстура. Если захочу добавть ещё сложности, то пусть шпалы надо будет сваривать, но это вряд ли, так как добавляет лишний нелогичный рецепт, иначе придётся весь стек крафтинга сварочного аппарата придумывать. Сталь и так сложно создаётся (причём, уже реализовано) — строится печь из шамотных кирпичей, а внутри блок кучи угля, который поджигается. Причём, этот блок не вечен, у него есть уровень ресурса как у инструментов. И в дальнейших версиях я его ещё усложню. Если сейчас сверху надо кидать чугунные болванки, то потом надо будет производить кокс, искать флюс (доломит, известняк) и смешивать это всё вместе в печи. Если я захочу ещё больше усложнить производство стали, то пусть и сами печи со временем разрушаются, а големы пусть строят новые. Это лучше, чем сварочный аппарат, я думаю.
Anonymous No.83241
А мьютексы могут стать проклятыми? А то у меня один странный попался, из-за него всё перелочилось. При этом я пытался игрока превратить в сущность, много переделать пришлось. Теперь сущности имеют слоты и встроенные предметы, в которых они могут, например, крафтить. У самого плеера и раньше так было, только обычный верстак и часть слотов урезаны.
Anonymous No.83361
Раньше в чанках и блоках хранились предметы, дропы, сущности. А теперь хранятся указатели на них. Это позволяет перебрасывать лишь указатели между чанками, благодаря чему это быстрее и не надо ставить лишние мьютексы и пересчитывать адреса. Ещё это дало возможность, чтобы слоты имели указатель на свой предмет или сущность, что дало возможность перебрасывать предметы из контейнера в инвентарь по SHIFT+LMB. Раньше можно было только из инвентаря в контейнер.
Я не сделаю версию с големами в следующую неделю. Наверное это будет в новой версии, в версии v0.1, а нынешняя будет v0.0.5. Сейчас я добавляю ГУИ, чтобы показывать насколько мир загрузился, а потом попробую дроп сделать с дискретным положением в пространстве.

Я думаю, что крафт первых големов будет таким:
N H N
S S S
N S N
S N S

Это на пьедесталах, кроме N, который пустой. S — камень, а H — голова. Сердечный кристалл в медной оправе нужен для големов, которые переносят предметы из одного контейнера в другой. А с чугунной оправой это те, кто будут копать в бок.

Чтобы сделать пьедестал, придётся сотворить сталь, потому что, пьедестал будет крафтиться из цельного камня, а цельный камень будет выпиливаться стальной пилой.
Anonymous No.83481
Вектор поменялся.
Я, возможно, в будущих версиях сильно изменю деревья. Если посмотрите сейчас на скриншоты, то они созданы из блоков. А я хочу попробовать сделать деревья, которые будут как бы одним предметом, со своей процедруно сгенерированной моделькой и со сгенерированной ветвистостью и лиственностью. И тогда из одного дерева будет выпадать фиксированное количество древесины. Что насчёт листвы, то её блоки, может быть, будут удалены. А может быть, она будет срезаться и деревьев и выпадать в виде листочков, из которых крафтиться блоки листвы.
Когда буду добавлять големов, то, наверное, будет и третий голем, который будет крафтить вещи на верстако-подобных машинах. Но он будет не сущностью, а блоком-контейнером, из низа которого, выпадают лапки. У этого голема будет записан некоторый рецепт и из своего сундучка он будет брать предметы.
У меня игра прежде всего про фабрики. Если сравнивать с факторио, то вместо бельтов у меня ЖД, вместо инсертеров и большого количества машин — големы. При этом оно в 3D и более усложнено. При этом есть 4 побочных ветки развития. И это если вектор не поменяется в противоположную сторону.
Как я писал и раньше, то 5 веток достижений как пятиконечная звезда, направленная вправо. Справа по часвойо стрелке — индустриализация, охотничество, путишествия, создание своего государства или населённого пункта, порабощение.
Столько всего хотелось бы ввести, но я моя нынешняя версия еле держится. Тем не менее, я стараюсь писать функционально и с забегом на будущее, делать ядро игры в её коде, а коды предметов с их коллбеками в "mainmod".
Anonymous No.83484
Где сейчас можно потыкать рабочие версии?
Anonymous No.83525
>>83484
Здравствуйте. 23-го сентября вечером Industriworks будет выпущена в steam на странице https://store.steampowered.com/app/1143340/Industriworks/.
Вы сможете купить её где-то за 2 доллара. К сожалению, вы должны иметь аккаунт Steam и незаблокированный банковский счёт для покупки.
Возможность продавать через другой (вероятно, свой) магазин за криптовалюту будет рассмотрена позже.
Anonymous No.83636
Я придумал идею ещё лучше насчёт третьего голема.
Во-первых, лучше напишу. Он как бы блок и:
Г Г
Г Г
Л Л
Л Л
В В
В В

Г — часть голема-блока. Он квадратный 2x2x2 и имеет контейнер, в который можно складывать ресурсы для крафта. Л — лапы голема. 8 членистых лапок, но они неосязаемы, это просто декорация+анимация. В — верстак или другая крафтильня.
И я подумал, что пусть будет дополнительная вариация данного голема, которая будет с автомолотом. Этот автомолот будет использован для крафта на наковальне, причём никакие молотки больше тратиться не будут. Ещё он может добавить некоторые анимации для определённых рецептов, где надо, например, перетирать что-то.
Думаю, будет и третья вариация — с увеличенным контейнером. Пусть самый бомжовый крафт-голем имеет всего 9 слотов, а улучшенный — 16.
Но это всё я добавлю нескоро, недели через 2, то есть через неделю после релиза на Стиме. Умножаем на pi/2, итого через 22 дня от сегодня. Мне надо ввести скелет-на-велосипеде (сущность), чтобы големы и почти все мобы (не слизни, например) могли вращать и двигать конечнсотями.
Сейчас у меня код в частях GUI и управления очень граязный, влажный и костыльный, фу такое писать. Вечно у меня проблемы с ГУИ. Его надо немного переделать, а код привести в нормальный вид.
Над ЖД, боем, генерацией мира и электричеством буду думать после големов.
Anonymous No.84669
Я сделал версию 0.0.5, хоть сама игра и выйдет 23-го сентября. В этой версии я немного улучшил отрисовку, добавил счётчик сгенерированных чанков при загрузке, задискретил объём и ещё парочку вещей. Завтра собираюсь в некотором месте запостить рецепты крафтинга вещей.
Следующая версия скорее всего будет 0.1. И туда я собираюсь добавить лучшую генерерацию. Возможно, это будут улучшенные озёра, ещё надо сделать генерацию нормальных пещер и рудных жил и добавить предмет сердечный кристалл, а вместе с ним и големов. А вместе с големами и слизней, из которых можно будет добывать MP, которое тратить на големов.
Anonymous No.84777
ВНЕЗАПНО билд под виндовс не заработал. А именно, при падении блока дропнутого происходил сегволт.
А если что-то работает в одной системе, но не в другой, значит дело в системных вещах — память, потоки, стек. Причём этот билд не работает и в вайне. Видите как хорошо вайн эмулирует виндовс?
Я пробовал некий winedbg, он включает в себя gdb или что-то такое, случился жданный сегфаулт, я нажал команду bt (backtrace), а там 0xXXXXXXXX ??() 0xXXXXXXXX ??() 0xXXXXXXXX ??(). Подумал я, что не хватает дебаггинг-символов и сделал компиляцию для виндовса с -g3, но результат был таким же. Тем временем, я обнаружил, что билд под виндовс у меня компилировался без оптимизаций, а я ещё удивлялся, почему генерация мира на виндовсе такая медленная?
Долго (нет, полтора часа) пытался найти баг, пока не вспомнил про утилиту cppcheck, которая иногда мне помогает. Проверил я ей свои сишные файлы, а там действительно есть проблема — неинициализированные переменные. Ох уж этот си... Получается, всё это время, в стеке под линуксом находились нули, благодаря чему эти переменные-указатели становились NULL, а в виндовсе такого не было.
Падения всё-равно иногда происходят, но segfault перехватывается и во время этого сохраняется мир. Ещё должна бекапиться копия, но почему-то этот функционал на одном моменте разработки отвалился.
Anonymous No.84812
Тут https://steamcommunity.com/sharedfiles/filedetails/?id=1866265922 есть рецепты крафта для Industriworks, который выйдет 23-го сентября на https://store.steampowered.com/app/1143340/Industriworks/
Этот гайд описывает почти весь контент, который на данный момент есть в игре.
Anonymous No.84831
ПРЕДМЕТЫ ИСКУССТВА
В Industriworks я бы хотел добавить такие вещи как картины, книги и карты. Карты это предметы с особым отображением — можно опустить голову вниз и посмотреть на неё, как карты в майнкрафте. Книги — как карты, но позволяет переворачивать страницы и там может быть кроме картинок текст. Картины — просто блоки с особыми пиксельными данными.
Игрок сам может рисовать карты, книги, картины, но главная их фишка в генерациях. Сколько сюжетов можно сделать для пиксельных картинок ориентированных на сеттинг Индустриворкс! А в книгах можно писать некоторые рецепты крафта или, например, инструкцию по выплавке стали и всё такое, так что даже игрок без интернета при должном исследовании сможет создавать новые предметы. Не хочу вводить гайды или книгу рецептов.
Ещё я подумал и решил, что я не хочу видеть людей (расу) в своей игре. Думаю, первой разумной расой будут кабаны гоблины. Гуманоидные существа ростом в 0.7 человеческого, кожа имеет оттенки от серого до серо-зелёного и серо-синего. Имеют причёску как у древних лысых японских мужчин, размножаются почкованием, но имеют горизонтальный перенос генов, когда их почки складываются в кучу. Умеют торговать, говорить, воевать, наниматься, крафтить бетон. Живут в небольших поселениях, состоящих из бетонных куполов или коробок + под землёй, но не углубляются в твёрдые горные породы. Атакуют кучей. Имеют простую иерархию с монархом, диархами или триархами в верхушке, все остальные — равны.
Но это потом. Я подумал и вывел 30 механик, которые я бы хотел ввести. Но будет до 40. Я собираюсь усиленно разрабатывать эту игру месяцев 5. 40/150 = по одной механике в 3.75 дня. И как же я это сделаю, а? Это, наверное, слишком сложно.
В любом случае, я сейчас двигаюсь в сторону големов, а потом железной дороги, после неё электричества и кабелей.
Я ещё подумал над нефтью и может быть добавлю её в игру, но не уверен как это будет реализовано. Пусть деревья это долгорастущий затратный ресурс, так что много резины из деревьев не получить, но нефть — другой разговор, так что игрокам придётся добывать нефть. Или пойти по тернистому зелёному пути.
Anonymous No.84855
15688276849560.webm (6535 KB, 1712x864, 00:00:07)
Еле понял как сделать скелетную анимацию3, потому что я не очень хорошо представляю опенгл. Я просто накодил чего-то и это работает и представляю в виде 3D сцены. А как там эти преобразования идут... Я не знаю.
Anonymous No.85024
15689197125520.webm (16562 KB, 1712x864, 00:00:14)
Теперь и мобы могут ломать блоки.
Anonymous No.85051
Сейчас я начинаю понимать, что мной была выбрана немного неверная архитектура. Я слышал, что в майнтесте каждая вещь это нода. Наверное и мне стоило сделать именно ноды, потому что те же сущности и предметы имеют общие вещи, такие как слоты, места, где будут отрисовываться предметы в виде дропа (как когда моб держит в руке или когда на предмете лежит).
А в итоге я снова делаю повторения. Вместо нод у меня сущности, предметы и дроп. Но мне не хочется опять перелопативать всю архитектуру.
Вероятно, во многих играх в основе лежат эти самые ноды, которые уже могут быть хоть мобом, хоть моделькой, хоть предметом.
Anonymous No.85169
Я придумал по-новому как будет происходить взаимодействие с големами:
Игрок создаёт их на пьедесталах, но чтобы големы работали, нужно MP. Этот мп будет идти прямиком из их создателя. Так что, чтобы они работали, игроку придётся убивать мобов и торговать. Но расход MP можно уменьшить до 40%, если использовать электрические пушки, о которых я когда-то писал выше. Чтобы ещё больше уменьшить расход MP, игроку надо будет крафтить сложные машины для создания роботских конечностей, которые будут потребять электричество, а не MP, но это всё ещё будет голем. Количество MP сократится до 1-2%. В конце коцнов, можно будет сделать робота вместо голема, но он не будет работать просто так, ему нужны будут логические схемы и такое подходит только для продвинутых игроков. Кстати, вместе с логическими схемами можно будет создавать особые устройства типа ОЗУ или оптических свёрточных нейросетей, которые позволят добавлять сложный функционал, такой как распознавание особых предметов или мобов.
Создаваться големы и другие вещи на пьедесталах будут при помощи заклинаний. Заклинания можно будет получить слева от инвентаря. Там будет окошко с заклинаниями, и их надо открывать всё новые и новые. Но чтобы открыть, игроку надо будет сварить N зелий и выпить их. А зелья будут создаваться из наковален, мобов, големов, сложных машин, взрывчатки, драгоценных камней. Это несколько похоже на факторио, где предметы для изучения науки создаются из сложных предметов, чтобы у игрока была мотивация строить фабрики.
Если игрок выпьет достаточно зелий, то откроет возможность открыть одно из заклинаний. Чтобы окончательно открыть, надо потратить некоторое кол-во ML (money level), потом заклинания автоматически будут тратить MP на создание себя, если их осталось меньше одной штуки.
Одно из заклинаний используется для создания големов, но при помощи специальной машины, можно будет тратить только электричество для создания голема (но не работы).

Но в первых версиях големы просто будут работать.
Anonymous No.85170
15690527615020.png (846 KB, 1702x852)
Anonymous No.85181
Как же мне не нравится в си то, что структуры не могут автоматически инициализироваться некоторыми значениями! Только что оказалось, что при генерации ГУИ печки, одна из иконок имела нулевые размеры. Но при этом она каким-то образом рисовалась и только сейчас перестала рисоваться. Сумасшествие!
Такого не было бы, если в си к элементам структур можно было бы присваивать некоторые значения и они появлялись бы при выделении структуры на стеке. Ах ну да, наверное поэтому и не добавили такую фичу. Ведь почти всё в си делают через heap и malloc.
Anonymous No.85221
15690712457570.png (6 KB, 634x207)
>>85181
Просто компилируй свой код как с++, там почти всё то же самое, но есть дефолтные значения для структур. Причём, если ты его не задаёшь, то он не выставляет нули и не тратит на это время.
Anonymous No.85253
>>85221
Теперь мне учить отвратительный C++, чтобы знать, почему мой код в некотором месте падает? И смотреть на варнинги, когда я закомментировал кусок кода, но осталась неиспользованная переменная?
>не выставляет нули
Лол, то есть на выбор либо писать для каждого члена структуры нулевое значение, либо memset и всё-равно вручную устанавливать значения?
Нет, спасибо.
Anonymous No.85260
>>85253
> либо писать для каждого члена структуры нулевое значение
Можно свой конструктор по умолчанию для структуры запилить, десу.
мимо_вкатываюсь_в_кресты
Наверное, тот анон это и имел в виду.
Пост отредактировал Anonymous
Anonymous No.85264
>>85253
Зачем учить. Просто скомпилируй свой код без изменений с++ компилятором и допиши в нужном месте дефолтные значения для полей - пофиксить придётся только приведение типов указателей в некоторых местах, скорее всего.

Если бы он выставлял нули - было бы хуже, потому что не было бы адекватной возможности это отключить, только через какой-нибудь больной на голову __attribute__(()).
Зачем тебе нулевые значения в структуре? Мне кажется чрезвычайно интуитивным и логичным, то что код не делает того, что там явно не написано.
Если они явно нужны, то обычно они не нулевые, и это не все поля структуры.
А ещё можно сделать свою структуру, которая во всех местах себя будет вести эквивалентно нужному тебе int-у или другому типу через приведение типов, но при этом оно будет со значением по умолчанию, которое не нужно будет явно выставлять нулём.

>>85260
Удобнее написать значения по умолчанию, зачем лишнюю функцию писать?
Anonymous No.85277
>>85264
>Мне кажется чрезвычайно интуитивным и логичным, то что код не делает того, что там явно не написано.
И разве это явно, что при создании переменной, она заполнится случайными значениями из стека?
Вот в Лайси будет лучше. Там члены структур и просто переменные, кажется, обнуляются, но это можно отключить через __noinit__. Либо можно написать значения по умолчанию, которые там будут.
Anonymous No.85282
>>85277
>И разве это явно
Да, явно. Ты не определляешь значение переменной и потому её значение - неопределённое.
Anonymous No.85650
Вот и выпущена игра: https://store.steampowered.com/app/1143340/Industriworks/
Вы можете купить её за 40 гривен или за другую сумму в зависимости от вашего региона. Это как 1-3 шоколадных батончика, только их вы съедите за 2 минуты и насытитесь на полдня, когда Индустриворкс вы можете потреблять час (на данной версии) и насытиться на пару дней, причём после конца насыщенности, вам не придётся покупать новую копию.
Ожидайте следующей версии v0.1 с големами и нормальными пещерами первого уровня. Она выйдет, наверное, в начале Октября.
Anonymous No.85653
>>85650
Мое увожение.
Anonymous No.85825
15693435532700.jpg (353 KB, 1400x1650)
Почему-то в начале у меня была фиксация на майнкрафт, чтобы сделать майнкрафт-подобным. Частицы, кубические мобы, небо в звёздах и облаках.
Теперь наоборот. Мне хочется делать более непохожим на майнкрафт. Например, я потом дроп сделаю, чтобы он не крутился вокруг своей оси как в майнкрафте, а чтобы он всегда смотрел на игрока.
Но главное, я подумал, может сделать мир не совсем процедурно-генерируемым? Может быть сделать один континент или несколько континентов, архипелаг и пусть он генерируется всегда одинаково, но в некоторых вариациях?
Таким образом можно добавить некоторых персонажей и локации, которые появляются всегда, но в разных местах, проработанные ландшафты биомов... И лор.
Например, я же хотел добавить гоблинов. И пусть гоблины будут правителями поверхности, а пещерный мир будет заполнен иными расами.
А за основной картой будет просто полностью процедурно-генерирумый мир.
Anonymous No.85851
Пока что курс моей игры сводится к тому, что появляется в некоем мире управляемое гуманоидное тело, которое строит фабрики, чтобы выпить 25 наковален, съесть 300 порченных (предполагаемые 3 моба) и вдохнуть 100 чугунных кругов 1.5 дм в диаметре сантиментров 10-20 в высоте, а потом пойти убивать минибоссов. Потом ему надо построить ФЕRМY или пройти долгий путь торгаша, чтобы усвоить 3000 электрических пушек и 1000000 бронебойных патронов, чтобы он смог построить армию големов и пойти убивать настоящих боссов.
Или нет. Сейчас очень ранний этап разработки, но големы и MP должны появиться в следующей версии.
Мне нравится идея генерации определённого континента и определённых, но вариативных локаций. Можно придумать много всяких замков, шахт, населённых пунктов, которые будут встречаться где-то в одном экземляре. Также можно N артефактов единых в экземляре таких как картины, книги. И их можно запросто уничтожить и придётся либо самому рисовать, либо начинать всё заново, как бы это страшно не звучало.
Anonymous No.85859
Мне понравились гоблины из аниме Goblin Slayer. Ощущение, будто они играют в RPG, где выживает сильнейший, но даже сильнейшего как в конце этой анимы может победить враг, который хитрее.
В Индустриворкс гоблины не будут такими. Они будут как люди, но более хамоватые и бьющиеся. Среди них будут разные профессии, будут художники и, даже, учёные. И разные структуры. Например, школьные помещения, совсем не похожие на человеческие (людей не будет в игре, кроме игроков). Хотя нет на некоторые школы похожие. Доска на стене, а вокруг стулья, столы или что-то такое, куда гоблинчики могут приносить тетради и писать. На доске и на много чём можно писать мелом, который по совместительству будет флюсом. На доске могут быть сгенерированы рисунки или всякие математические формулы. Например, правила операций с комплексными числами, записанные на гоблинском. Да, гоблины не такие уж и глупые, но не все. Гоблины могут часто драться, выбивая зубы (?), рядом с населёнными пунктами могут быть гоблины-аутсайдеры, которые могут ограбить и/или убить игрока. Большинство гоблинов предпочитает торговлю.
По крайней мере, такое было бы классно добавить.
Я бы хотел добавить сперва трёх диких животных: зайцы/кроли, вепри и олени. Кстати, гоблины могут оседлать вепрей и таранить вас. Среди этой троицы, вепри — самые умные, опасные и отмороженные твари. Я бы хотел из них сделать одного минибосса и босса. Босс — стая вепрей, они атакуют сгруппировано и их тоже надо побеждать армией, но если вы сильный, то можете и так. Если этот босс победит игрока, то последний ударивший вепрь обретёт суперсилу и нимб и станет минибоссом, а остальные разойдутся.
Три ночных враждебных моба — порченные. 2 варианта порченных гоблина и 1 порченный вепрь. У первого 2 рога образовались, а кожа потемнела до серо-коричневого и имеет нарывав, второму повезло меньше и вместо аккуратных ассиметричных рога у него выросли роговые наросты. Третий это вепрь с одним рогом-буром.
Другая раса — эльфы. Высокие гуманоиды, живут на деревьях и в замках. Рубят деревья, чтобы строить на других дома. Редкая раса, так как большую часть исстребили гоблины, но теперь и эльфов можно встретить в гоблинских поселениях, и наоборот. Имеют свой тип верстака, где можно крафтить высокие двери, как для эльфов. Или нет.
Третья раса — кобольды. Живут в первом-втором уровне пещер, имеют пещерных лисиц в качестве домашних животных, но при этом не рабов. Занимаются мелким воровством, меньше учёных и художников, чем у гоблинов, а если и есть художники, то рисуют порнографию в основном. Становятся богатыми среди своих, если у них нет принтера (?). Реже убивают разумных существ.
Первый уровень пещер — вытянутые вытекшие полости. Уже тут встречается сердечный кристалл, нужный для создания големов.
Второй уровень пещер — многочисленные каньоно-подобные расколы, прыгающие везде. Растут узкие пещерные деревья и мох.
Третий уровень пещер — поднятия горных пород с образованием больших плоских полостей.
Возможно, на втором и третьем уровнях будут жить гномы.
Далее идёт твёрдый щит. В немногих местах есть готовые проходы.

Пока что в игре ничего такого нет.

Сейчас я пишу одну очень сложную функцию — PedestalRecipeMatchPattern. Она нужна, чтобы крафтить големов. Она сложная, так как там надо вращать на кратное 90° проверку блоков, а там же какие-то сложения нужны или что-то. Думал, может сегодня вечером допишу, но нет, завтра. Пора бы уже нормально заняться, а то распластался как мегатонны древних растений.
Anonymous No.85903
>>85825
>Почему-то в начале у меня была фиксация на майнкрафт
Тебе вообще стоило бы за кружечкой чего-нибудь обсудить с кем-нибудь что ты хочешь видеть. Мозговым штурмом, лол, так чтобы вас прям понесло. Слишком уж много фиксаций на некоторых странных идеях и суевериях.


>Может быть сделать один континент или несколько континентов, архипелаг и пусть он генерируется всегда одинаково, но в некоторых вариациях?
Может быть тогда сразу в ммо переквалифицироваться? А? Логичное же развитие идей. Сначала заранее сгенерированный архипелаг, потом персонажи, которые есть всегда, лор, потом квесты для групп от этих персонажей и вот, уже почти оно самое.
Anonymous No.85907
>>85903
>ММО
Не. В тех же ТЕС есть Тамриэль, хоть и его кусочек, но это не MMO.
У меня будет новая смесь. Песочница-РПГ для убийства боссов с лором.
Anonymous No.85934
15694154862580.webm (10232 KB, 1650x820, 00:00:26)
Ну наконец-то, хоть намёки на пьедестальный крафтинг.
Кстати, оказалось, что в той функции надо было делать, вроде бы, переход к другому базису, а это что-то из векторного анализа, а я его незнаю.
Ещё у меня почему-то координаты X и Z перепутаны местами. Странно. Или я чего-то не понял.
Эх, вот бы научиться эффективнее думать, чтобы быстрее программировать.
Anonymous No.86001
Эх, жаль, что на си не существует кроссплатформенного варианта для создания директорий. Была бы библиотека, но все предалагают свои велосипеды писать. Ну конечно, си это же велосипедный язык. Даже всякие библиотеки пишут в основном на C++, а для си просто биндинги делают, чтобы всякие шизики тоже могли использовать их либу.
Жаль, конечно, что нет ничего такого, а я хотел повысить стабильность — чтобы директория saves создавалась, если не найдена. Неужели мне придётся через ифдефы это указывать? Ох уж этот си!
Вот существовал бы хотя бы частичный компилятор Лайси, жизнь была бы проще. Там, вроде бы, библиотеки должны распространяться в виде исходников, компиляция которых кешировалась бы соответственно опциям компиляции со всякими оптимизациями и другим.
Anonymous No.86147
15695124187460.webm (11158 KB, 1240x700, 00:00:20)
Теперь големы умеют таскать вещи из контейнеров в контейнеры. Только я не подумал, что когда закончатся в одном, он всё время будет их свапать. Ну и ладно, всё-равно это один из самых первых големов. Другими ступенями будут такие, что подобны инсертерам из факторио.
Теперь надо запилить:
0. Голема-шахтёра.
1. Голема-крафтера.
2. Спавн слизней как источник MP.
3. Генерацию мира, чтобы были зачатки нормальных пещер, в которых генерируется сердечный кристалл.
4. Сам MP-bar и окошко с заклинаниями.
5. Способность перетаскивать големов. Может быть, с помощью другого заклинания, а может быть с помощью поводка из льна, который тоже надо будет добавить.
6. Поддержка фуллскрина.
И v0.1 будет готова. Следующей будет v0.1.1, где будет горение, combat, GUI-scaling и ещё что-то.
Anonymous No.86177
>>85903
— Что ты хочешь видеть?
— XX000 $ов.
— Сделай что-нибудь уникальное.
— °o°

Помню, когда выбирал проект, чтобы запилить. Мне не пришло в голову ничего, кроме клона майнкрафта. Суть была в том, что я могу очень долго разрабатывать Индустриворкс до большого состояния, таким образом, единожды потратив оставшиеся 100 долларов на фии стимаппса, я могу преобразовывать усердие и труд в увеличение вероятности покупки пользователем. А за весь свой геймдевский опыт я выпустил 3 игры: Один платформер, одну ерунду и Industriworks. При этом были наработки в области кубиков, так что тут опыт уже был.
А ведь сейчас столько уникальных прекрасных игр есть (я в них не играл). Untitled Goose Game, Noita, Baba Is You, ещё неплохой Ancestors: Humankind Odyssey. А давновышедший undertale вообще был просто поделкой на гейммейкере, но имеет прекрасную музыку и некоторый разветвлённый цикличный сюжет и он вышел очень популярным.

На данный момент продаж очень мало, 0...40. Мне надо минимум X00 до 23-го октября и минимум XX000 до конца января. Как же мне это сделать?
Я мог бы вручную рекламировать на разных площадках, но я лучше сначала введу големов, которых покажу кое-где.
И трейлер в стиме по надуманным причинам бедненький получился. Не показан процесс производства стали, например. В новой версии я переделаю и покажу там големов.
Как же сложно программировать на си.
В версию v0.3 надо будет ещё и реальных мобов завести типа кабана, оленя и зайца, а потом и гоблины пойдут. v0.2 Для железных дорог и электричества.
А уже на версии v0.4 или v0.5 буду задумываться над генерацией мира, который не полностью самостоятельно генерируется.
Anonymous No.86263
Хмм, возможно стоит сделать даже так, чтобы при генерации всегда один и тот же континент генерировался, с теми же персонажами, местами и так далее, но в зависимости от действий игрока и сида, в дальнейшей перспективе всё могло становиться подругому. Строились бы другие места, умирали бы не те персонажи. Это получается вариативно процедурная генерация истории, когда местности не вариативная.
Хотя это довольно сложно реализовать, придётся писать структуры для всяких городов, стран и персонажей, инты, флоаты, указатели, счётчики, регистры, АЛУ, северный мост, системный блок, монитор-компьютер...

Или нет.
В любом случае, я пока определился, что игрок будет начинать на стартовом архипелаге с размерами где-то 20x20 км. Он будет покрыт лесами, лугами, меловыми утёсами около океана и небольшими снежными шапками гор, наверное.
А рядом уже будет большая земля — небольшой континент где-то 3000x4000 км. Вокруг должны быть ещё островки и архипелаги, а за всей этой зоной будут процедруно генерируемые острова. Или вообще граница мира.

Сейчас я занимаюсь разработкой голема-крафтера, который при помощи своих манипуляторов создаёт новые вещи на верстаке или других крафтильнях. Это, в общем-то сделано за исключением анимации части сущности. Но сначала я улучшаю голема-переносчика так, чтобы он знал, где out-слоты, in-слоты и fuel-слоты по тегам самих слотов.
Anonymous No.86369
15696681697950.webm (18922 KB, 1504x800, 00:00:35)
Теперь големов можно делать покаменно.
Осталось запилить 11 фич для выхода версии v0.1, сегодня я сделал 6. Это гораздо больше чем те средние 2.1 в день, которые раньше были. Задачи стали проще благодаря созданию главной архитектуры. Хотя, учитывая как часто я программирую, эти 6 превратятся в 2.5 в день средних.
Тем не менее, архитектура всё ещё ужасная. Много костылей, мало коллбеков. И я до сих пор не обобщил предметы, сущности и дроп в одну структуру. Думаю, займусь этим к выходу версии v0.2. Всё-равно это не так уж и долго делать. Просто следовать указаниям компилятора, где находятся ошибки и варнинги, там и исправлять. А потом появится несколько багов, которые я буду решать несколько дней.
Кстати, я часто слышу, что при компиляции проекта кучи варнингов сыпятся, это нормально, не обращайте на них внимания. Это правда? Это рутина рядовых программистов? Я на все варнинги обращаю внимание, даже если это надо явно поставить преобразование void()(itemdata_t) в void()(void*) упс, немного кода слил, но это нестрашно или когда стандарт языка Си или варнинг от самого clang-кланга требует в скобки поставить выражение типа if (a = b()). Это, кстати, меня спасало то ошибки, когда я вместо == поставил =. Хороший варнинг.
Я до сих пор подганяю алгоритмы под нужный результат. С одной стороны, мне всё-равно придётся переписывать, а с другой стороны, может и нет и я только выиграю время.
Anonymous No.86452
Я взял и обобщил предметы, дроп и мобов в одно — ноду. Три часа переписывал все исходники на новый лад. Есть ли автоматиизированные инструменты для этого? Потом ещё было 2 бага, но они не такие уж и страшные оказались.
Но всё-равно корявенько получилось. Теперь у меня предметы (блоки, жидкости, вещички) и сущности имеют одну и ту же структуру данных, которая показывает как их обрабатывать и инициализировать, но ведь дроп это нечто другое. Он есть в node_t, но не NodeData_t, то есть он полностью состоит из себя.
Предметы и сущности имеют много одинаковых элементов, такие как количество слотов, коллбек для генерации ГУИ, коллбек для поведения, светимость и ещё ряд свойств.
Ещё я сломал inner-слой (руды, уголь) и мне надо заново его добавить.
Anonymous No.86492
Истинный генерационный поблочнок слишком медленный, потому что он предполагает делать обратные функции для нахождения блоков. А обратные функции могут быть очень сложными, взять тот же RSA просто пример, он у меня не используется.
Надо будет перейти на обычный генерационный поблочнок, с генерацией метаданных. Например, полость с пещерами, пусть выбираются детерминированно случайные точки и от них идут линии и получаются пещеры в виде линий.
Ещё многие вещи можно будет не кешировать.
Anonymous No.86591
Это лютый бред. Си — очень старый ЯП и не подходит для написания современных программ. Была бы реализация Лайси + набор полезных библиотек, особенно, для математики, хороший платформер можно было бы написать за неделю, при это на код потратился бы 2-3 дня, когда остальное время на создание ассетов.
Я же на си уже больше трёх месяцев мучаюсь с кубиками.
Anonymous No.86594
15698661242090.png (1175 KB, 1500x800)
MP бар и окошко заклинаний.
Я, кстати, за эти два дня ввёл лишь 2 фичи. Большой разброс.
Anonymous No.86646
Мне осталось сделать 2 фичи — генерацию вытекших пещер и сердечных кристаллов внутри и тогда v0.1 будет готова.
Кстати, я лишь недавно узнал об glScalef. Внезапно просто догадался, что opengl такую функцию must have, когда мне пришлось рисовать уменьшенную версию блоков (на пьедесталах). Если бы я раньше об этом подумал, то можно было бы сразу сделать скейлинг GUI и играть можно было бы даже на маленьких экранах. Но, увы, я собираюсь добавить его в v0.1.1.
Список фич для v0.1.1:
0. Анимация Голема-Крафтера
1. HP
2. Урон от скорости (падения, в частности).
3. Бой: урон (в v0.1 можно только слаймов удалять кликом и получать MP)
4. Бой: отбрасывание (ухх вепри)
5. GUI-scaling.
6. Окно выбора мира с загрузкой, удалением и созданием.
7. Заяц/Кролик (опасное дикое животное, но пугливое).
8. Вепрь/Кабан (опасное разумное дикое животное, но всё-равно пугливое)
9. Олень/Бемби (опасное сверхдикое животное, невероятно пугливое)
10. Спавн Животных (костыль, пока не прикручу нормальную генерацию популяций).
11. Исправить один баг.
12-14. Оптимизировать чанки. У меня еле отрисовываются и обрабатываются чанки. А я хочу, чтобы можно было смотреть реально далеко и через бинокль/подзорную трубу. По крайней мере, в случае созданного мира с ЛОРом можно прописать картинкой высоты, биомы и кое-какая декорация затуманенная будет и чанки будут прогружаться только для тех же биноклей.

И сейчас чанки еле-еле обрабатывается, если с жидкостями. Я планировал распараллелить обработку чанков, но лучше бы сначала прочие оптимизации ввести, чтобы мучиться с локингом мьютексов не сейчас, а потом.
Anonymous No.86665
Какой же слабый уровень оптимизации у меня! Я добавил функцию логгирования FPS и TPS (takt per second) и с квадрадиусом обработки чанков в 1 (3x3x3 чанка) максимальный TPS составляет около 30, когда в норме TPS должен быть 50.
Но это не точно, потому что у максимальный FPS показывается как 15, но вижу я гораздо больше кадров. Где-то ошибка.
И ведь я только что оптимизировал обработку чанков, но, видимо, не в том месте. Я сделал так, чтобы чанк имел указатели на блоки, которые могут быть обработаны немедленно, но оказалось, что это не сильно повлияло на производительность. Особенно непроизводительна жидкость, когда она разливается, очень много раз ставятся новые блоки и старые проверяются.
Я, конечно, могу взять и распараллелить, но этого будет недостаточно. Нельзя убегать от проблем оптимизации организации памяти к параллелизму.
Anonymous No.86672
>>86665
Считай отдельно сколько времени уходит на рендер (на вызов функций ogl и на подготовку геометрии), на обработку чанков, на обработку сущностей, на обработку жидкостей и так далее чтобы с большой точностью представлять где и на что уходит время. Вдруг у тебя 90% времени уходит на твой мьютекс драный, а в остальном код нормально работает.
Как в фактории - там по f5 выводится эта информация.
Anonymous No.86706
Посмотрите на код и на результат вывода программы:

HeightMetadata_t* HeightMetadataByCoord(coord_t x,coord_t y,coord_t z) {
for (int i = 0; i < HeightNum; i++) {printf("%i %i %i\n",i,HeightNum,i < HeightNum);
if (heights[i].x == (x - x%HEIGHTMETADATA_WIDTH) && heights[i].y == (y - y%HEIGHTMETADATA_WIDTH) && heights[i].z == (z - z%HEIGHTMETADATA_WIDTH)) {
return &heights[i];
}
}
return NULL;
}


0 1 1
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1


Не удивляйтесь, если увидите сумасшедшего или нервного программиста. Не понимаю, как программу могло повести в такое поведение, но я уже по опыту знаю, что если код ведёт себя совершенно не так как надо, то ошибка скорее всего во мне, а не в коде. Вдруг в моём мозге случились какие-то изменения и теперь я путаю больше и меньше, хотя тогда и мышечная память должна была поменяться и я бы не смог так легко написать "i < num". Другой вариант может быть в том, что какой-то другой поток во время проверки условий быстро меняет HeightNum, а потом возвращает на место, но у меня в генерации мира а данный момент только один поток включён, а даже если и есть другие, то они должны только увеличивать число.
Прежде чем больше вдуматься в код я проверяю, не сплю ли я, а вдруг это та самая ошибка при оптимизации -O3? Хотя это вряд ли, ошибки с ним бывают на грани между языком и другой вещью, фреймворком, библиотекой, недокументированными особенностями, или операций со стеком и регистрами (setjmp, longjpm), но на проверку условий это не должно влиять. Потом я проверяю как оно компилируется через gcc, вместо clang, в итоге... Проверил через gcc, и действительно, это какой-то баг кланга. Кланг это молодой компилятор и не удивительно, что бывают баги. gcc во второй раз для меня показал себя более стабильным.
К сожалению, у меня довольно проприетарный код и я вряд ли зарепорчу это в баги кланга, хотя щас попробую что-нибудь придумать с этим, упростить.
Anonymous No.86714
Помню, когда-то играл в террарию и у меня не было инструмента, чтобы добыть одну из послехардмодовых руд и я думал, а почему бы не построить печь вокруг жилы? Но в террарии так нельзя.
Так вот, а что если в Индустриворкс со временем ввести такую жилу, которую, чтобы добыть, придётся строить печь вокруг неё? Это может быть адамантин или выдуманная титановая руда. И если вводить титан, то и сплав из титана и золота. Я слышал, что есть такой в реале и он очень прочный на удар, если в какой-то бета форме или что-то типа того. Дорогой сплав.
Anonymous No.86715
15700154761880.jpg (119 KB, 1280x720)
>>86706
>(heights[i].x == (x - x%HEIGHTMETADATA_WIDTH) && heights[i].y == (y - y%HEIGHTMETADATA_WIDTH) && heights[i].z == (z - z%HEIGHTMETADATA_WIDTH))
Ты точно хотел написать именно такое условие?
if(0 == 0 == 0 == 0)
printf("+\n");
else
printf("-\n");

Угадаешь что выведет такой код?
А потом нули на единички замени. И ещё проверь условие (9 == 8 == 7 == 0) для полноты картины. Кажется, кое-кто пропустил главу в инструкциях к си.
То есть я не знаю что ты имел, но почти совсем точно, что ты хотел проверить более простое условие, чем у тебя в действительности написано.

>при оптимизации -O3?
При -O3 в самом деле иногда появляются дополнительные ошибки - не помню есть ли оно в си, но в крестах volatile решает 90% таких проблем. Запускай с -O2 вначале же - разница минимальна почти во всех случаях.
Пост отредактировал Anonymous
Anonymous No.86716
>>86715
То есть там && стоят конечно (прости, я не проснулся ещё и стриггерился на множественные == без скобок), но выглядит всё ещё не очень интуитивно.
Anonymous No.86726
Какой же си ужасный ЯП! Его нельзя использовать в современном мире!!! Я решил попробовать либсишную рандом и из мана узнал про random_r, но оно не возвращает значение, а только в структуру записывает, а из чего эта структура состоит, не написано! Я пошёл в интернет искать, как получить из struct random_data элементы, ничего не нашёл в плохом поисковике DuckDuckGo (когда уже они научатся давать более широкий выбор, а не просто набор слов, пусть и с некоторой вариативностью (кавычки, не, синонимы)). Может там надо было из буффера-аргумента, в любом случае, в итоге оказалось, что random_r, как и fmemopen нет на виндовсе и нужны велосипедить.

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

>>86715
Да, угадал. Везде плюс, это ясно с моим опытом. И я никаких книжок не читал, я просто посмотрел лекции по си и уже почти 3 года как имею опыт с си и могу понять в т. ч. и
((void(*)())(0x2)())
, который недавно был в одном из комментариев преподаватель шутит над студентами. Хотя я не всё использую и с тем же условием if else однострочные я не был уверен, что он перейдёт в else скомпилируется.
А условие
(heights[i].x == (x - x%HEIGHTMETADATA_WIDTH) && heights[i].y == (y - y%HEIGHTMETADATA_WIDTH) && heights[i].z == (z - z%HEIGHTMETADATA_WIDTH))
можно переписать в многострочный вид для лучшей читаемости:
(heights[i].x == (x - x%HEIGHTMETADATA_WIDTH) &&
heights[i].y == (y - y%HEIGHTMETADATA_WIDTH) &&
heights[i].z == (z - z%HEIGHTMETADATA_WIDTH))

Но я этого не делаю с такими короткими условиями в своём коде, потому что мне гораздо быстрее написать в одну строку, а то потом мой текстовый редактор с auto индентацией вставит в последнем где-то 4 пробела вместо таба (когда инструкции пойдут, для строк с условием это нужно), мне придётся их стирать (их может быть как 4, так и 5, в зависимости от условия я вставлю разные пробелы) и ставить таб, ещё немного некрасивую новую строку ставить (чтобы условие не сливалось с инструкциями) и только потом писать инструкции.
Anonymous No.86728
>>86726
>когда уже они научатся давать более широкий выбор, а не просто набор слов
Все поисковики имеют эту функцию. Посмотри вебархив яндека за 1995 год, там есть страница с последними 15 запросами из которых около 5 "умных" (с логическими операторами). То есть яндекс умеет в эту штуку уже 24 года. Гугл тоже, но не знаю с какого момента.
http://arnoreuser.com/downloads/quickreferencesheets/DuckDuckGo_FULL.pdf
https://developers.google.com/issue-tracker/concepts/search-query-language
Anonymous No.86729
>>86728
Я имел ввиду выбирать тему, направление и всё такое.
Anonymous No.86737
В общем-то все фичи для v0.1 готовы, но я не хочу её выпускать, пока не ускорю генерацию значительно и процессирование не очень значительно.
Я ввёл новый движок генерации пещер. Теперь сначала генерируются ломаные полоски в 3D-пространстве, но на самом деле точки, которые на этих полосках, они имеют радиус и генерируют кое-какие пустоты. Раньше пещерами являлись просто куски 3D шума перлина, причём растянутого, из-за бага, который я до сих пор не исправил. Хотя нет, вот взял, исправил только что.
Я сделал кеширование этих областей и теперь генерация чанка поверхности занимает где-то 0.6 секунд, когда раньше 1.3. Но генерация чанка подземелья очень медленная — 8-14 секунд. Это плохой результат. Я хочу, чтобы можно было сгенерировать областьт в 9x3x9, но генерация такого будет занимать где-то 160 секунд, хотя параллелизмом можно сократить где-то до 50 сенунд, если на 4-х ядерном процессоре.
Я собираюсь отказаться от поблочноковой философии генерации мира. Из-за того, что мне всё-равно надо делать обратную функцию, производительность падает. А новую метадату делать не хочется и не получится. Но из-за этого мир может генерироваться не совсем детерминированно от сида, а как повезёт со свитчингом потоков. Например, если у двух деревьев коллизятся кроны, то в нынешнем варианте определённый вид дерева имеет большую силу для генерации. А сейчас я в блок добавлю флаг, показывающий, что он сгенерирован и не надо его генерировать снова.
Я хотел ещё сделал генерацию сердечного кристалла в пещерах, но я всё-равно с ними пока не совладал, так что они генерируются вместо некоторых цветков.
Anonymous No.86823
15700923233690.png (1529 KB, 1500x800)
камень и руды заменены на землю Видите, какие у меня пещеры? Мне это совсем не нравится.
Во-первых шарообразная форма образований слишком шарообразная. Можно сделать так, чтобы вместо шара было образование из шума Перлина, но он чрезвычайно жрущий. Можно сгенерировать в самом начале ассет и формочек в виде шума Перлина, которые использовать в зависимости от координат и будет получше. Другой вариант в том, чтобы в зависимости от стороны шара использовать разные функции изменения радиуса, тогда вместо сферы будет что-то типа геоида.
Во-вторых, слишком много линий пещер в одном месте, из-за чего образовалась такая огромная пустотная конструкция. Я хотел, чтобы пещеры первого уровня были продолговатыми и ветвистыми.
Алсо, у меня слой земли где-то 15 метров, так что может быть ещё один уровень пещер — нулевой, который будет являться норами для некоторых мобов.
Я немного подшаманил и теперь самый толстый чанк поверхностного уровня генерируется за 0.2 секунды, но это без деревьев и растений. Не понимаю, каким образом можно ещё ускорить. Сейчас я генерирую слой земли поблочно, но до максимальной высоты для данного чанка, так что верхние блоки срезаются и не проверяются. Есть вариант генерировать землю постолбно и удалять блоки при проверке на наличие пещер.
Anonymous No.86881
Хотя не, подержу v0.1 у себя ещё недельку. Думаю, в эту версию возьму и добавлю первую цель — получить доступ к заклинанию Реконфигурация, с помощью которого можно будет создавать новый вид големов — голем-инсертер. Его можно будет купить за несколько Money Level, но перед этим выпить 25-50 наковален. Чтобы их выпить, надо будет налить воды в металлический котёл, дропнуть наковальню и при помощи заклинания Разложение сделать особую жидкость, которую набрать в колбу и выпить.
Anonymous No.86914
Можете подсказать хороший музыкальный трекер для GNU/Linux, чтобы со звуками можно было много чего делать? Я использую milkytracker, но он мне не нравится.
Я пытаюсь сделать музыку для Индустриворкс, но я не музыкант. Я попробовал проанализировать чужую электронную музыку и пришёл к выводу, что все используют распространённый комбинации из нескольких нот (?), но накладывают на них другие комплексные звуки, благодаря чему звучит по-другому и делает уникальным. И делают несколько таких штуковин, которые дополнительно комбинируют между собой.
Я такое пронаблюдал и в старой классической музыке, но там более сложные кобинации и более примитивные накладывания звуков (из-за ограничений инструментов).
Я и раньше создал несколько музыкальных произведений и обнаружил мелодию из другой. А сейчас мне в голову пришла некая комбинация, которую я точно уже где-то слышал.
Anonymous No.87015
Я сделал таргетинг предметов, но это маленькая фича. Мне осталось добавить 9 фич:
0. Горн (чтобы не класть руду в тигель вручную)
1. Музыка.
2. Зелья (выпить наковальню).
3. Голем-инсертер (ух, анимацию делать).
4. Анимация голема-крафтера (эх, анимацию сделать).
5. ГУИ скейлинг (оказалось, с Scalef проблемки, мда. Вручную скейлю).
6. Дебрис.
Думаю, до 10-го октября управлюсь.
Anonymous No.87357
15705425336990.webm (10471 KB, 1504x800, 00:00:25)
Anonymous No.87380
>>87357
Вау, выглядит классно. Правда я так и не понял что это.
Anonymous No.87494
Я подумал и решил понизить тактрейт с 50 до 32. Думаю, стоит максимально меньший тактрейт делать, чтобы снизить нагрузку, при этом не забывать о хорошем разрешении. Я не думаю, что 32 такта в секунду это мало.

>>87380
Голем-крафтер.
Anonymous No.87496
>>87494
Поставь 30 или другой делитель шестидесяти. 2 такта на один кадр на большинстве экранов. Если 32, то мигающая установка будет 90% времени мигать за 2 кадра, а иногда будет проскакивать вспышка на 1 кадр, что будет выглядить довольно сомнительно и не очень плавно.
Anonymous No.87616
Я немного подумал над версионингом и:
v0.1: Големы, MP, плавильня, вот это всё.
v0.1.1: Нормальное управление мирами, добавление нового режима игры — Building aka Creative. Что насчёт режима Building, то игрок будет появляться на пустой каменной платформе и иметь возможность взять любой или почти любой блок и предмет. Дальность установки блоков будет очень большой, причём можно будет ставить в пустоту, но главное, это что можно будет сразу массивами ставить блоки. То есть, выбрал один угол, второй и третьим высоту.
v0.1.2: Добавление каменных кирпичей, smooth камня, дверей, возможно, стульев и кроватей. Ещё стоит добавить стенды, которые выглядят как пьедесталы, но для своего вида камня. А пьедесталы можно будет создать, клинув с Decomposition на такой стенд. В выживании (режим Spawn, Respawn, Spawning или Respawning) игрок сможет падать и прыгать, а не летать.
v0.2: Добавлю ХП, боёвку, трёх животных, трёх хостайл мобов, гоблинов, торговлю с гоблинами, выращивание кропов, улучшенную генерацию мира, генерацию поселений гоблинов и генерацию пещер. Ещё надо бы те самые розы, о которых я когда-то писал, добавить.
v0.3: И лишь тут уже появятся ЖД и, может быть, электричество. Что насчёт ЖД, то я хочу, чтобы это были такие большие, сложные рельсы с необычным методом построения. По-отдельности рельсы и шпалы, причём в зависимости от доски будет разный цвет шпал. Электричество будет в проводах и болтаться на земле или крепиться на отвесные держатели проводов.
v0.4: Может быть, логический схемы и улучшенная автоматизация, новые големы, очень умные големы-строители. Они и рельсы будут строить и другие сооружения. И самим големам можно будет переопределить логику логическими схемами.

Думаю, нефть я добавлю, но она будет не в виде струёв из земли, а скорее как грунтовые воды. Грунтовая нефть. Её добывать вёдрами или чем-то ещё, из неё будет создаваться резина с помощью заклинания Полимеризация.

Но всё может легко поменяться. Да и фич многовато на каждую версию.

>>87496
Не уверен, должна ли когда-нибудь появиться такая мигающая установка, но всё-таки установил в 30 на всякий случай. Всё же, я собираюсь когда-нибудь добавить моддинг и кто может что угодно добавить.
Anonymous No.87632