ShadoWalkeR
Про то какой там быдлокод
Anonymous
Ну, естественно я не говорю что надо писать плохо, если пишешь игру Но я говорю что не обязательно писать хорошо, если пишешь игру Чаще это только лишние затраты времени и сил, когда можно обойтись парой костылей
Anonymous
Ну или не парой
Dadaskis
Ну если уж и писать, то так что бы вносить изменения было удобно.
ShadoWalkeR
Ну это предпочтение каждого. Я не могу понять один момент - человеку реально удобно ориентироваться в этой простыне? Его ничего не смущает?)))
Lucky
Да, там всё удобно. Код структурирован.
Lucky
если бы кто-то знал ещё что это.
Lucky
лучший игровой код у игры кон-тики
Lucky
она реально запускается на калькуляторе.
Lucky
мк-61 емнип.
Lucky
как поиметь исходники факторио?
Lucky
ну, значит утверждение голословно.
Lucky
скорее всего там кучи грязных хаков.
Lucky
или нет.
Dadaskis
Грязные хаки ради оптимизации очень плохи?
Lucky
ну, они грязные, они хаки и код, набитый ими очень трудно поддерживать.
Anonymous
Нууууу У них невероятная оптимизация (разделённая графика и физика) и очень удобный моддинг
Anonymous
Мне почему то кажется что у них все ништяк с кодом
Anonymous
Иначе быть не может
Lucky
Придётся реверсить
Anonymous
Лучше мод напиши
Anonymous
На lua кстати
Lucky
Как только найду где скачать.
Anonymous
В стиме за 500 рублей :D А вообще на торрентах без проблем находится
Tverd
Исходники на луа можно глянуть в Don't starve
Tverd
на мой взгляд, довольно не плохой код, во всяком случае намного лучше и понятнее, чем в проджект зомбоид
Tverd
https://store.steampowered.com/app/219740/Dont_Starve/
Snusmumriken
Исходники на луа можно глянуть в Don't starve
Имхо, DS не шибко организована, можно было бы дерево организовать с тем же возвратом локальных модулей. Часть - именно такая, но далеко не всё, особенно конкретные монстрики выглядят как будто их набивали всякой фигнёй как подушку.
Snusmumriken
Tverd
Никто не говорит что идеальный код)
Snusmumriken
Ну, типа "сишники пишут на луях как на сишке" : )
Tverd
Это ещё не так плохо, как java программисты пишут на луа
Roman
А я когда в луа либах копаюсь, то это всегда один файл и это удобно. Например, опенрести, его пилит программист 80 левла, и каждый отдельный модуль - файл, будь то адаптер базы или сишный модуль. И это не плохо! Копирую с гитхаба один файл, разбираюсь, все тут. И код, я бы сказал, хороший, быстро можно понять что где
Roman
Код в десятке файлов не обязательно проще воспринимается, чем в одном
Roman
Конкретно для луа по такой схеме это лучше делать: если может понадобиться делать require на что-то отдельно - тогда вынести, если нет то не надо, а то ещё проблемы могут быть с поиском зависимостей
Dadaskis
Как сделать многопоточность в Lua?
Snusmumriken
Lanes например.
Snusmumriken
Или юзни FFi, открой треды, пихни туда новые LuaState, свяжи с пайпами оси.
Dadaskis
5.3 кстати
Snusmumriken
Ну тогда lanes.
Alexey
я использую llthreads2
Dadaskis
Крч, я не понимаю как билдить эти библиотеки и вообще использовать. Если я у себя вызову require, то лады, но что о другом компе?
Dadaskis
Пытался тыкать luarocks, не понял.
Dadaskis
Что мне делать с либами? .-.
Lucky
реквирь их наверно и дёргай функции
Dadaskis
Просто тот же llthreads2 требует билда, в Lanes тож проблемы с makefile.
Dadaskis
Странно что в luaRocks мне кидает постоянно ошибку "Current directory does not exists"
Dadaskis
Эту ошибку кидает если в luaRocks выполняется условие (not fs.current_dir()) or fs.current_dir() == "".
Dadaskis
Узнал что у меня выдаёт... Выдаёт nil. Какого фига?
Dadaskis
Когда убрал строчки с проверкой ошибки то теперь выдаёт всегда luarocks help
Dadaskis
Что ж делать то?
Alexey
Под какую ос надо собирать?
Alexey
Ну и тебе точно нужно несколько потоков?
Dadaskis
Windows 7 64 бит у меня, но хочется что бы запускалось и под 32 бит. Да, нужно, ибо делаю майн и подгрузка чанков вызывает фризы что сильно бесит. Компилятор MinGW GCC.
Dadaskis
C++ движок, добавляю функции при помощи luabridge. Блоковая система сделана, чанки сделаны, ток генерация немног кривая, а ещё грёбанные фризы...
Dadaskis
Вообще странноватый движочек у меня. Блоки заранее сделаны, к ним кастомизированные шейдеры можно разве что присобачить. Мышкой камера управляется самим движком, но всё-таки сенсу можно подкрутить и другие мелочи.
Dadaskis
Это ещё не странно если подумать...
Dadaskis
Вот добавление функций...
Dadaskis
Вот эта вещь кажется странной.
Dadaskis
Если хочешь увидеть реализацию моего де... крч бери ссыль https://github.com/Dadaskis/NotMinecraftEngine
Tverd
А чанки у тебя генерятся в луа или в С? Уже нашел, в луа...
Dadaskis
Надо оптимизировать визуализацию, ибо она дерьмо.
Dadaskis
Каждый раз инфа о блоках обновляется, зачем если можно запомнить? Но это уже дело оптимизации...
Dadaskis
но почему-то в оптимизации первый пункт - это добавление многопоточности. Пытался потоки на С++ перенести на Lua, ток всё криво-косо и крашит.
Dadaskis
В школке починю тогда генерацию чуток, а ещё надо сделать адекватным её, скорее всего вводить global height map... Чуток костыль, хотя юзабельно если подумать...
Dadaskis
Не совсем имею представление о Lua C API...
Мерль
вряд ли можно сделать внутри без того, чтобы переписывать весь рантайм
Dadaskis
Я написал не подумав, ночь влияет всё-таки на мозги.
Мерль
всё ок )
Мерль
я тоже тут перлы генерирую
Dadaskis
Хотя если подумать, можно сделать методы в Engine которые контролят луа стейты из луа.
Мерль
я тут чуть ли не с основания, емнип
Мерль
Хотя если подумать, можно сделать методы в Engine которые контролят луа стейты из луа.
у меня в голове примерно такая картинка: несколько стейтов сидят в разных потоках, между ними в очередях бегают сериализованные сообщения хотя, если можно обойтись без сериализации, то будет круто, но надо придумать способ запаковывать таблицы с глубоким копированием
Dadaskis
у меня в голове примерно такая картинка: несколько стейтов сидят в разных потоках, между ними в очередях бегают сериализованные сообщения хотя, если можно обойтись без сериализации, то будет круто, но надо придумать способ запаковывать таблицы с глубоким копированием
Ну я могу сделать несколько стейтов в разных потоках, в Engine добавить метод который будет управлять стейтами из луа. Скорее всего будут ещё wrapper'ы методов luabridge... Лады, все-равно на инфе нефиг делать, забацаю.
Dadaskis
Библю Fast-noise, а там беру значения шума и через билинейную интерполяцию.
Dadaskis
Поэтому global height map будет юзабелен.