Суп, /gd. Собираюсь писать игру на подобии кубача. Требования к игре следующие:- Мультиплеер с максимально возможным числом игроков в одном мире.- Графика и физика уровня майнкрафта, возможно даже проще.- Взаимодействие игроков с миром не очень интенсивное и по большому счету сводится к наблюдению за многочисленными процессами, обрабатываемыми сервером (игра чем-то похожа на стратегию в этом смысле).Также есть два стула:- Node.js на сервере и браузерный клиент на WebGL- Java на сервере и десктопный клиент на Java+какой-либо 3Д-движок.Поясни, плиз, за плюсы и минусы этих стульев. Мне нравится первый вариант, но я встречал мало годных браузерных 3Д-игор, поэтому переживаю за подводные камни такого подхода.
Если коротко, ты ничего не запилишь и смысла обсуждать эти вопросы нет.
>>262751>ты ничего не запилишьБля(( Почему ты так думаешь?
Бамп.
>>262739 (OP)WebGL всё ещё тормозной и недопиленный, сразу вычёркивай, 3D-браузерку (без поддержки красноглазых, правда) куда легче написать на унитях. Но это если ты готов взять готовый движок и не хочешь кириллить.>Java+какой-либо 3Д-движокLWJGL для майнкампфа хватило, но можешь взять LibGDX - более высокоуровневую обёртку. Только игра на крестах всё равно будет летать раз в пятьдесят быстрее. И если учился на LWJGL, перейти на голый OpenGL будет значительно легче.
>>262792>WebGL всё ещё тормозной и недопиленный, сразу вычёркивайВот смотри, что я нашел: http://webblocks.uk/http://game.cubiverse.net/Вполне играбельно даже на моем ноуте с интегрированной графикой. Вторая игруля на медиуме стабильные 50 фпс выдает.>>262792>написать на унитяхЧто-то мне кажется, что оверкилл будет. Мне надо то кубы, да персонажи неподвижные чтобы были.>>262792>Игра на крестах всё равно будет летать раз в пятьдесят быстрееГотов рассмотреть и такой вариант. Что у крестовиков-игроделов в ходу нынче?
>>262796>Что у крестовиков-игроделов в ходу нынче? Опять же, зависит от твоей любви к велосипедизму. В принципе, для графона а-ля майнкрафт хватит и пары недель ковыряния freeglut'a с devIL'ом, если тыкать их вечером и сильно лениться.А если хочешь сделать что-нибудь смотрибельное, УЕ4 подойдёт. Но, опять же, с интегренкой его редактор лагает.
>>262827>что-нибудь смотрибельноеЧто ты под этим подразумеваешь?>редакторКакой редактор, анон? Уровни же генерить нужно.В остальном спасибо тебе.
>>262739 (OP)Хоспади, какое говно я рисовал пять лет назад и думал, что норм. сейчас ничего не изменилосьмимоавтор второй картинки.
>>262792>игра на крестах всё равно будет летать раз в пятьдесят быстрееНе будет.>>262796>http://webblocks.uk/Мауслук не работает. shift ничего не делает.>http://game.cubiverse.net/Белый экран.Ну ты понел.
>>262848Смешарики это прогресс, по-твоему?
>>262855>Мауслук не работает. shift ничего не делает.Хуй знает, у меня вроде работает.>>262855>Белый экран.Та же хрень. Играю в старой версии хрома, которую пользую для прона. Видать у них там что-то сломалось.>>262855>Ну ты понелНе стоит использовать WebGL из-за проблем с совместимостью? Но там же все пофиксят через пару лет. Правда ведь?>>262855>>игра на крестах всё равно будет летать раз в пятьдесят быстрее>Не будет.Что бы ты порекомендовал в качестве платформы для сервера/клиента подозреваю, что лучше делать их по одной технологии, чтобы было проще с общим кодом.
>>262848> я рисовалПоясни за автора Копателя, раз ты инсайдер.
>>262864>Что бы ты порекомендовал в качестве платформы для сервера>Мультиплеер с максимально возможным числом игроков в одном мире.Эрланг ё пинус.>клиентаЧто угодно, где большая часть работы сделана за тебя.
>>262855>Не будет.Будет. Для меня это оказалось критично, когда я купил планшетобук с фуллхд и интегренкой.
>>263029>Будет.Если ты разбираешься в крестах, можешь написать свой менеджер памяти и вообще крутой кодер. Иначе (то есть, в 90% случаев) не будет.
А node.js че? Как же их хваленое захуячить все в один поток и не проебывать ресурсы на переключение контекста? Не поможет оно мне? Можно было бы в одно приложение вынести обсчет мира, а в другое ответ на запросы пользователей.
>>263207Пилить сервер и клиент удобнее на одном языке. Олсо, 263159-кун подметил, что если ты хуёвый программист, то будет трудно запилить на крестах что-то рабочее. Я его дополню тем имхо, что если ты хуёвый программист, тебе на JS будет трудно запилить что-то объёмное, язык слишком нестрогий чтобы интерпретатор тебя ударил по пальцам своевременно. Запили прототип на джавке или любом другом строгом языке, с которым ты хорошо знаком или собираешься хорошо познакомиться.
Если ты задаешь такие вопросы, то Webgl скорее всего не для тебя. У меня опыт в жс большой, и я не велосипедил свой движок. Я в готовый движок импортировал готовую модель с анимацией 3 дня. И то с багами получилось, лол. В то время как есть куча движков для других языков где можно мышкой программировать, для вебгл ничего такого нету. И я не вижу профитов в одном языке для сервера и клиента.
>>263298>на JSТащемта я на TypeScript'е собирался пилить ибо не уважаю языки с динамической типизацией. Меня привлекает возможность сделать игорь, которой к которой не нужно ставить клиента. Однако, аноны уже обоссали меня насчет WebGL.>>263302>и я не велосипедил свой движокСобираюсь иcпользовать Tree.js, а не делать на голом WebGL.>>263302>импортировал готовую модель с анимацией 3 дняМне оно не нужно. Будут кубы онли.
Палю годноту:
Делали уже в гд игры на жс и ноде. Вдохновляйся:http://gruzovique.herokuapp.com/Рогалия тоже на жс, но серв на go вроде бы.
>>263302>И я не вижу профитов в одном языке для сервера и клиентаЕсли в игре бегают полтора землекопа, то да, проблем никаких сихронизировать сервер и клиент. Но у анона майнсрафт с кучей взаимодействий: если сервер клиенту будет передавать каждый чих окружения, а клиент не сможет этого предугадывать, понадобится хорошее соединение, так что игроки с ADSL уже отпадают.
Вы мне еще вот что скажите. Каким способом лучше всего захуячить все кубами? Пусть у нас есть некоторая функция cubeId = world(seed, p), которая говорит нам какой куб в точке p должен находится при использовании семени seed в нетронутом девственном мире. Тогда возникают две концепции построения движка само собой мир надо будет разбить на чанки, но для простоты обойдемся пока без них:1. Для каждой точки мира p, пытаемся найти ее координаты в БД. Если находим, значит ставим куб, указанный в базе, если нет, то ставим куб, выдаваемый ф-ей world. При приходе инфы с сервера, добавляем/убираем кубы.2. Делаем все как в п. 1, но рисуем не отдельными кубами, а целыми йоба-3д полигонами, охватывающими группы прилежащих кубов. Сверху на эти мега-полигоны наклеиваем куски текстур. При приходе данных с сервера добавляем/удаляем вершины мега-полигонов и соответственно доклеиваем текстуры между вершинами, если необходимо.Вопрос: имеет-ли второй метод какие-либо преимущества перед первым?
>>263407И как язык улучшит соединение?
>>263536Никак. Один язык нужен потому, что на сервере тебе тоже нужно писать игру. Причём результаты с сервера должны совпадать с результатами клиента. Это значит, что используя два языка, тебе придётся писать две игры, а не одну.
>>263533Ну дак что лучше с точки зрения вычислений? Замостить 3д сцену тупо кубами, или же заменять группы кубов большими полигонами? С одной стороны так вершин меньше будет, а с другой, на ЦП сперва придется прогнать алгоритм объединения кубов в полигоны, хотя и нужно это будет только при изменении сцены.
>>263594Ну чего вы не отвечаете? Спрошу тогда еще прямее. Нагружают ли клиента невидимые вершины? Те которые в принципе не могут быть видны, т. к. спрятаны за другими объектами.
>>262739 (OP)нода - однозначно нет. у тебя карта будет весить охуенно много и ее всю нужно будет держать в памяти. я бы C++ выбрал, ну или Java/C# если C++ не умеешь
>>263594есть такая хрень Roblox - майкрафт с продвинутой физикой и он до*га популярен в шатах и на иксбоксеТак вот они спекают все в большие меши и пересчитывают когда по физике/действиям пользователя надо.Но там жесткий CPP. Пытаться делать это на клиенте... будет трудно.Невидмые вершины - нагружают, если ты их рисуешь. если не рисуешь - не нагружают
>>263873>RobloxЛол. https://www.youtube.com/watch?v=R6Z8U3fnXqg>>263873>Невидмые вершины - нагружают, если ты их рисуешь. если не рисуешь - не нагружаютЗачем тогда делать делать меши, если можно отлельными кубами их кажется векселями называют рисовать?>>263873>Пытаться делать это на клиенте... будет трудно.Почему? Зачем вообще серверу кубы в меши пересчитывать? Коллизии считать? Но ведь их проще по близости к центру куба вычислить: |player.x - cube.x| + |player.y - cube.y| + ... > cube.size
>>263882
>>263882>Зачем тогда делать делать мешиЗатем. Возьми ровную поверхность, формально она состоит из кубов, но видны только два верхних полигона из 12. Ровная карта 100 на 100 клеток = 10 000 кубов, а теперь сравни числа 20 000 и 120 000.
>>263887>>263892Лол, воксель конечно же.>>263892>а теперь сравни числа 20 000 и 120 000.Но ты же говоришь, что внутренние вершины не нагружают клиента. Я потому и спросил, что не понятно тогда зачем высчитывать меш, раз число видимых вершин не поменяется, а только исчезнут невидимые.
>>263898>Но ты же говоришьТы не поверишь, но в гд больше 2 человек сидит.
>>263882>Зачем тогда делать делать меши, если можно отлельными кубамиЗатем что один меш рисуется за один проход (dc) независимо от количество треугольников. Если же не объеденять - у тебя и каждый куб за один проход рисоваться будет.а для видеокарты количество треугольников значительно менее важный фактор по сравнению с числом проходов (отрисовок, drawcalls)Плюс там есть еще освещение (даже примитивное как в майнкрафте), плюс если ты тени хочешь - то вообще *да. экстремально кубы возводят сложность "в куб", по сравнениб со сложным мешем из много-вершинКстати погугли minetest
>>263903>>263901Спасибо, няши. Понял вас.
>>263548Хуйню несешь.
>>263903>minetest
>>262739 (OP)> node.jsОбосрался в голос.
>>264063Вот этого ценителя удвою, прррррлихт такой пиздец.
>>264069А че? Не то чтобы я в другое ничего не умею даже наоборот, я node.js еще в руках как следует не держал, в отличии от жавы, просто если браузерку делать, то удобнее на нем будет.
>>262739 (OP)>Суп гд, собираюсь писать>Сап, б, я посралДнина тупая, когда напишешь, тогда и позовешь. Понаустраивают тут консенсусов, а потом любят друг друга в анусы.
>>263903>Если же не объеденять - у тебя и каждый куб за один проход рисоваться будет.батчинг
>>264087матчинг и детинг
>>264080>нина тупая, когда напишешь, тогда и позовешьТы думаешь я не напишу?(((
>>262848Дай угадаю - ты сейчас рисуешь аниме/фуррей?Я гадал?
>>264223Неа. Пиксельное хуинди.Хотя, а кто нет?
>>264087>>264118Бля, я не понял. Ты хочешь сказать, что число вершин значения не имеет и можно не заморачиваться объединением кубов?
>>262739 (OP)Короче, палю тебе годноту sdl + emscripten, есть уже сайты которые работают на этой связке и годнота лютая Только гайдов ты не найдёшь и в 99% случаев придётся сидеть на стеке, мылорассылке и ирочке. Ну либо и дальше смотри на хуи дроченыенеопимизированные говнодвижки
>>264774Ты ждешь ответ, который хочешь услышать? Количество чего угодно имеет значение, объединять кубы придется в любом случае.
>>264797>Ты ждешь ответ, который хочешь услышать?Нет, просто я боюсь, что напишу объединятор, а получится, что производительность на 1% только возрастет.
>>264859А что ты за эти 2 недели вообще сделал то?
>>264861Экзамены в аспирантуре сдал. Сейчас свободен опять. Думаю набросать попробовать, но все еще не определился под браузер делать или под ПеКа.
>>262739 (OP)>Суп, /gd. Собираюсь писать игру на подобии кубача.Пришло время устанавливать блендер!
>>262739 (OP)Напиши клон Minecraft на с++ или delphi, но начни там пилить всякие плюшки, сюжет может или миссии, что-то интересное, чтобы был смысл.
>>265120>сюжет может или миссии, что-то интересное, чтобы был смыслНи сюжета ни миссий не будет. Смысла соответственно тоже. Зато можно будет пилить свои караваны в буквальном смысле и грабить чужие.>>265118>блендерЧто ета?
>>265122>>блендер>Что ета?Одна из моих любимых компьютерных игрhttps://2ch.hk/td/res/51520.html
>>265122А подземелья с жопоразрывающими мобами и ловушками будут?
>>264063Проиграл с Glubokiy Minet
>>265339>А подземелья с жопоразрывающими мобами и ловушками будут?Нет(( Атмосферности и ламповости у меня не будет. Будет карта вроде пикрилейтед, но с разноцветными зонами. И все. Ни деревьев. Ни воды. Только разноцветные кубы.
>>266024>БудетКек.
>>266024А караваны зачем тогда, если проработанного игрового мира не придвидится?И почему люди захотят в это играть, когда есть тот же копатель и минсруфт? Ты это всё уже продумал?
>>266030(((>>266035>И почему люди захотят в это играть1. Можно будет строить йоба-структуры, которые не снились ни майнкрафтерам, ни копателям.2. Можно будет давать пизды другим игрокам, стараясь не получить ее самому.Главное отличие в том, что играть надобудет не одним персонажем, а сразу десятью, сотней, тысячей...