Двач.hk не отвечает.
Вы видите копию треда, сохраненную в 03:41.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
ИндиММО 634039 В конец треда | Веб
Короче делал проектик на Phaser и вдруг решил что сингловые игры уже морально устарели и всем нужны именно ММОшки, и запилил такой вот шаблончик для ММО. На данный момент есть генератор бесконечного мира. Который генерит вот такой вот мирок, размеры тайтлов сделал 16х16. Вот сейчас думаю что это маловато. Мир подгружается чанками. Думаю вообще сейчас над концепцией игры, какую боевку сделать и т.д. Изначально думал что нибудь пошаговое склепать в мире какого нибудь фентези. Короче хотелось бы услышать мнение народа.
Новый проект.mp422,5 Мб, mp4
2 634040
Новый проект.mp422,2 Мб, mp4,
1280x720, 0:41
3 634042
4 634046
>>634039 (OP)

> Короче хотелось бы услышать мнение народа.


не взлетит
/thread
5 634049
>>634046
Та пофиг, что добавить, вот что интересно, взлет не взлет меня не интересует
6 634053
>>634049
Добавляй то, что тебе интересно, во что бы ты сам поиграл. Если ты сам не знаешь зачем делаешь, то зачем вообще браться?
7 634055
>>634053
Хотел услышать интересные идеи
8 634066
>>634039 (OP)
На чем сервер?
9 634073
>>634039 (OP)
Был тут уже один долбоёб, который похожую хуйню с колобками делал.
10 634113
>>634066
Golang
image.png32 Кб, 392x316
11 634492
Ладно, буду тут просто дневник разработки вести, пока что буду оптимизировать базу для будущего, буду фиксить все пиздецовые хуйнюшки, типа пикрил. Думаю на счет коллизий, нужны ли дереву они? Реализацию придется делать скорее всего на сервере, щоб слишком умные игроки не проходили сквозь все что захотят. Боевку буду делать пошаговую, тайтлы земли оставлю 16х16, деревья делаю выше, возможно потом тайтл игрока сделаю чуть больше, в 32х32 приятнее рисовать. Возрастет нагрузка на сервер из-за проверки коллизий, а это значит придется делать некий протокол который будет выдавать игроку разрешение ступить куда либо. Аж страшно стало от уже навалившихся задач
12 634494
>>634492
Если у тебя тайлы - то какие коллизии? Проверяй тайл занят/не занят и разрешай/запрещай движение.
13 634496
>>634494
Лол, точно, после работки туплю сижу, благо завтра выходной
ScreenRecorderProject55.mp45,7 Мб, mp4,
1218x566, 0:10
14 638888
Короче, решил в изометрии делать, не так убого смотрится и есть маневр для художеств
15 638913
>>638888
Ля братишка делай РПГ песочницу
16 638930

>Браузерка


Еб твою мать.
17 638988
>>638888
По-моему, на прямоугольной сетке тоже может нормально выглядеть, зато ассеты делать полегче будет.
18 638997
>>638988
Это если руки не из жопы. Если они не из жопы, то и текстовый квест будет выглядеть более чем нормально.

Автор, это не ты лет 5 назад выкатился с зоны и делал 3д-игру про колобков, которые катаются и стреляют?
image.png145 Кб, 1051x563
19 639040
>>638988
Это так, но я не художник, а для TOP-DOWN игры нужен талант, особенно в 2020, но я обнаружил что обычные 2D Координаты легко конвертнуть в изометрию, только немного непривычно с координатами работать.
20 639041
Кстати, изменил размер тайтлов на 32х32, стало лучше (вроде)
21 639043
>>638913
Это и так будет РПГ, я думаю на счет пошаговой боевки, сеттинг с большой вероятностью фентези
image.png93 Кб, 781x538
22 639398
Пока делаю систему перемещения которая будет полностью от сервера зависит, для безопасности...
Новый проект.mp419,5 Мб, mp4,
1920x1080, 0:45
23 639485
- Ввел логин и пароль, после перезахода игрок сохраняет свою позицию в мире. Есть баг, после перезахода игрок не может двигаться
- Полностью перевел игру в изометрию, но сохранил урезанный TOP-DOWN клиент
- Движение теперь полностью обрабатывается на сервере, игрок может только отправить данные куда он хочет двигаться, раньше за это передвижение полностью отвечал клиент
24 639489
>>634049
Сделай ммо rimworld.
25 639509
Слушай, ОП идея хорошая но поменяй карту пожалуйста
Сделай изометрию с приятной плоской текстурой ландшафта, а не этот паинт.
И йоб желательно заменить на элементарные спрайты с анимацией, для начала в пикселе хотя бы.
Тебе не трудно - тем кто заглянет, приятно
26 639546
Сделайте ему уже траву, хотя бы в пеинте, глаза болят
27 639548
>>639546
я попытался и вообще мимопроходил.
28 639564
>>639548
Вот мои простые спрайты, на коленках делал, если есть возможность, перерисуйте, я пока занимаюсь кодом
29 639565
>>639489
Была такая мысль, но кто то уже делает рим ворлд по сетке, да и как это будет в ММО смотреться? Ты же имеешь ввиду непрямое управление персонажем?
image.png92 Кб, 692x381
30 639566
Короче с сервером все отлично, жрет мало, держит хорошо, теперь надо над клиентом проработать, т.к. разработка будет долгой, думаю взять тайпскрипт, а то в голове все объекты становится трудно держать, особенно когда уже возвращаешься к старой функции
31 639606
>>639566
Нужен компактный шрифт
Haven & Hearth 4.jpg242 Кб, 808x634
32 639665
Вспомнил ламповый ХаХач.
javaw 2013-06-02 09-18-46-84.avisnapshot00.36[2013.08.0618.[...].jpg570 Кб, 1280x974
33 639709
>>639665
Как же хочется в хих, хоспаде.
sage 35 639755
sage 36 639756
37 639757
>>639753
Что ты пытался? Почему тайлы бледные, как твое лицо, когда игру не пустили в стим? Почему тайлы не симметричные, блядь?
38 639761
>>639757
Я не ОП.

> Почему тайлы бледные, как твое лицо, когда игру не пустили в стим?


Терпеть не могу насыщенные и яркие цвета. Но чет да переборщил.

>Почему тайлы не симметричные, блядь?


Тут я ниибу, я мимопроходил и использовал >>639564 как маску.

На будущее, если у кого появится вопрос:

>нахуй делаешь если не умеешь


Потому что никто ОПу не помогает, а это хоть что-то.
39 639764
>>639761

>Потому что никто ОПу не помогает


А нужно ли? Пока что мы видим только школьника, впервые решившего сделать мам-ммо, из говна и браузера. Не имея никаких наработок он высрал невнятное поделие, без описания, планов, и чего-либо. Очевидно что он сольется через месяц, просто потому что не осилит.
40 639765
>>639764
Ну да.
41 639784
>>639764

> из говна и браузера


вэй вэй, ващет я написал сервер на чистом Go, хорошо что сам язык позволяет так легко и просто писать на нем. Клиент на js, так что можно и декстоп клиент сделать и даже на мобилку, использую библиотеку Phaser, а не модные нынче движки и конструкторы, очевидно что я уже сделал более менее рабочий прототип, нужно проработать концепцию и стилистику, определится с боевой системой и т.д.
42 639804
>>639784
Играть то где?
Какую ролевую систему будешь делать?
Кто квесты будет писать?
Что с экономикой?
43 639808
>>639804
1. Универсальный вариант, в браузере.
2. Думаю
3. Песочку квесты не очень нужны, но я думал над созданием мирных городов, где можно будет их выполнять.
4. Как в раннем TZ

Все это в процессе вполне корректируется и изменяется
44 639810
>>639808

>1. Универсальный вариант, в браузере.


Я имел в виду ссылку. Подними бэк на каком нибудь хероку.
Или в докер запихни и на любом PAAS сервисе разверни.
45 639811
>>639808

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


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

>4. Как в раннем TZ


Что это?
46 639812
>>639810
Зачем деплоить сырой прототип, который будет еще и падать иногда? Как только будет более менее рабочий вариант, я обязательно запущу его
>>639811
Хорошая идея, но я сначала хочу сделать основу, на которой можно будет строить полноценную игру, нужно так-же учитывать что я делаю только в свободное от работы время.

>Что это?


TimeZero
47 639815
>>639812

>TimeZero


А какая там экономика?
48 639817
>>639815
Ну как минимум раньше жеско разделялось все на профы, копалка в шахтах копает, сталкер охотится на монстров и т.д. Для получения профы приходилось делать сложные квесты и тратить очки перков не в боевые навыки, а в профессиональные. Из ресурсов делалось все, оружие, броня, химия, производили их владельцы фабрик, производили все по купленным чертежам. В каждом городе в шахтах были свои уникальные ресурсы, ну короче тебе лучше почитать, благо игра не ноунеймовая, но я думаю за основу именно такую систему взять
49 639820
>>639566
typescript дело хорошее, хотя в голове за тебя держать он объекты не будет) Можешь чуток порисовать в uml
50 639821
>>639784
А что по твоему нынче популярно?) Для рендера тот же phaser юзаешь или мб что-то more fancier типо pixi.js?
51 639825
>>639821
Да, для рендера тупа Phaser юзаю, легко и удобно
HarmizVenZZZ 52 639837
ОП, бро, те скок лет?
Если больше 16, то лучше задумываться делать то, что изи поднимется. По тебе видно, что ты не опытный в сфере геймдева.
Первые проекты делаются такими, чтоб подняться. Не оч потными и не рискованными.
Ты же делаешь ПОШАГОВУЮ ММО в 2020
На счет ммо я не имею ничего против, сам задротил. Но этот жанр морально устарел, и ничего кроме вова после открытия не держится +- норм(даже ААА, да и сам вов тонет)
Пошаговую ето уже страшно
Попытайся делать другой проект, там подняться сможешь, а после - соберешь команду, да сделаете.
Проект подобный те в соло не осилить бро
ВОт ты сделаешь - и что дальше? Как сервера держать будешь? Как организовывать?
А держание сервера - окупиться?
а кроме етого вопроса есть еще множество, которые тоже сложные, и(если не дурак), то поймешь что останешься без почки если попытаешься реализовать это сейчас. А если ты это делаешь тупо для опыта, то искать стак братьев(команду аутистов ) выгоднее в этом плане + имя сделаешь в паблик-медиа
ток жанры выбирай по перспективнее и движок модный аля говноюнити-гмк-анрил
53 639875
>>639837

>На счет ммо я не имею ничего против, сам задротил. Но этот жанр морально устарел, и ничего кроме вова после открытия не держится +- норм(даже ААА, да и сам вов тонет)


Просто забирают себе часть рынка

>Пошаговую ето уже страшно


Мне нравятся пошаговые бои

>Попытайся делать другой проект, там подняться сможешь, а после - соберешь команду, да сделаете.


Другой проект это стрелялочку для детей? Я ващет думал игру по самосбору сделать, мой механизм бесконечной генерации мира подойдет и для генерации гигахруща

>Проект подобный те в соло не осилить бро


http://www.westward-online.com/

>ВОт ты сделаешь - и что дальше? Как сервера держать будешь? Как организовывать?


До этого слишком далеко

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


Все вопросы решаемы, а местные аутисты это клепатели аркадок на движках

>ток жанры выбирай по перспективнее и движок модный аля говноюнити-гмк-анрил


Предпочтения в жанре всегда меняются и не люблю по чужим лекалам работать, движки это всегда лишние зависимости и т.д., есть хорошие годные библиотеки
image.png62 Кб, 1000x528
54 640010
>>639753
Пока поставил твой тайтлсет, даже хз
55 640014
>>639875

>клепатели аркадок на движках


грустно кекнул
мимо геймдизайнер
56 640021
>>634039 (OP)
>>640014
Ладно, вкину тебе идей
Пилишь ММО - значит упор делаешь на взаимодействие игроков. Нужен блок механик, которые будут ставить геймплей так, чтобы поощрять эти взаимодействия
Самое простое решение - деление персонажей на классы, как это реализовано в том же варкрафте, т.е. у одних персонажей есть опция торговать лицом, но нет опции наносить урон, а у других - кидать фаерболы, но такие не могут терпеть урон. Если развивать эту идею, то такой "маг" быстро складывается, у него сбиваются касты etc. подумой.
Подумол, понял, что игроки будут выбирать дпс-магов и игнорировать скучных орков-танков и решил уравнять всех игроков и сделать игру про волшебников. Тогда заставь их выбирать вектор развития своих школ магии, чтобы сделать их все равно разными и толкнуть на пресловутое взаимодействие, по типу - маг льда фиксирует огра, маг молнии бьет, а маг воды баффает урон. Сделай разнообразнее - заклинания льда не работают на железного голема, но зато школа огня плавит ему ноги, не давая ходить, превращаясь из урона в контроль. Что бы ты там не делал, если боевая механика центральная в твоей игре, то сделай её интересной и командной.
Но бой - не единственное, чем игроки будут заниматься в ммо, как не старайся. Когда они обнаружат, что шанс выпадения $ФЕСКИ ВЕЛИКОГО ШАТАТЕЛЯ$ 0.01%, а она дает аж +2 к силе шатания, они её захотят. И чтобы реализовать свои влажные мечты побегут на заранее приготовленный тобой аукцион, где часами будут пытаться порешать рыночек, добиваясь приобретения вожделенного головного убора.
И начнется - фарм мобов, профы, кланы, чтобы этим бесконечным гриндом было хоть сколько-то весело заниматься.
Как ты понимаешь, следуя моим советам ты сделаешь очередную невыразительную дрочильню. Чтобы этого избежать не следуй моим советам, за исключением двух вот этих:
1) Еще раз, все что ты делаешь - ты делаешь чтобы заставить игроков взаимодействовать друг с другом.
2) Не забывай про баланс. В ммо он такой - чтобы заработать на шапку ты можешь 2 дня бить мобов или 2 дня собирать реги для крафта.
Помни: геймдизайн - это наука про выбор, которого на самом деле нет
56 640021
>>634039 (OP)
>>640014
Ладно, вкину тебе идей
Пилишь ММО - значит упор делаешь на взаимодействие игроков. Нужен блок механик, которые будут ставить геймплей так, чтобы поощрять эти взаимодействия
Самое простое решение - деление персонажей на классы, как это реализовано в том же варкрафте, т.е. у одних персонажей есть опция торговать лицом, но нет опции наносить урон, а у других - кидать фаерболы, но такие не могут терпеть урон. Если развивать эту идею, то такой "маг" быстро складывается, у него сбиваются касты etc. подумой.
Подумол, понял, что игроки будут выбирать дпс-магов и игнорировать скучных орков-танков и решил уравнять всех игроков и сделать игру про волшебников. Тогда заставь их выбирать вектор развития своих школ магии, чтобы сделать их все равно разными и толкнуть на пресловутое взаимодействие, по типу - маг льда фиксирует огра, маг молнии бьет, а маг воды баффает урон. Сделай разнообразнее - заклинания льда не работают на железного голема, но зато школа огня плавит ему ноги, не давая ходить, превращаясь из урона в контроль. Что бы ты там не делал, если боевая механика центральная в твоей игре, то сделай её интересной и командной.
Но бой - не единственное, чем игроки будут заниматься в ммо, как не старайся. Когда они обнаружат, что шанс выпадения $ФЕСКИ ВЕЛИКОГО ШАТАТЕЛЯ$ 0.01%, а она дает аж +2 к силе шатания, они её захотят. И чтобы реализовать свои влажные мечты побегут на заранее приготовленный тобой аукцион, где часами будут пытаться порешать рыночек, добиваясь приобретения вожделенного головного убора.
И начнется - фарм мобов, профы, кланы, чтобы этим бесконечным гриндом было хоть сколько-то весело заниматься.
Как ты понимаешь, следуя моим советам ты сделаешь очередную невыразительную дрочильню. Чтобы этого избежать не следуй моим советам, за исключением двух вот этих:
1) Еще раз, все что ты делаешь - ты делаешь чтобы заставить игроков взаимодействовать друг с другом.
2) Не забывай про баланс. В ммо он такой - чтобы заработать на шапку ты можешь 2 дня бить мобов или 2 дня собирать реги для крафта.
Помни: геймдизайн - это наука про выбор, которого на самом деле нет
57 640023
>>640021
Добавлю
Если хочешь вызвать у игроков разрыв шаблона и отличиться - используй в качестве основы для своей ролевой системы ролевую систему для нри.
За столом очень мучительно подсчитывать хит-поинты, и модель урона в них часто принимает вид: бросаешь 3д6.Чтобы убить слабого врага нужно выкинуть 8+, среднего 10+ и сильного 13+. На соседней доске /bg/ есть тред с целым архивом спираченных рулбуков разных ролевых систем. Спизди у них, покопайся, может найдешь что-нибудь интересное для себя.
58 640051
>>640021
Кстати, да, тоже задумываюсь о балансе, по любому будет какое-то имбовое направление, но до этого еще далеко конечно, надо техническую часть сделать
59 640054
>>640010
хуита, согалсен
60 640055
>>640010
Ч с разрешением? Чому они пережаты?
ScreenRecorderProject57.gif4,1 Мб, 904x484
61 640056
Жаль на рисовку нет времени, да и руки кривые
62 640057
>>640055
Играюсь с разрешением
63 640058
Ну линуксе вид немного другой, наверное это от разрешения экрана зависит, у меня старый нищемонитор
sage 64 640263
>>640021
Ты ему советы даёшь, как будто у него игра готова. У него всё, что есть это блядский перс, который перемещается по одной локации. Даже наблюдателя нельзя сделать. И сервак у него валится, если он хочет сделать любое действие.
65 640305
>>640263

> У него всё, что есть это блядский перс


Несколько персонажей*

>который перемещается по одной локации


Бесконечно генерируемому бесшовному миру, который использует чанковую систему
66 640306
>>640263

>И сервак у него валится, если он хочет сделать любое действие


Валится при попытке зайти за персонажа который уже в игре
1025694336.jpg113 Кб, 848x1200
67 640512
>>634113
привет, а какие-нибудь библиотеки юзаюешь для игрового сервера

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

ты случаем пикрил не читал, я заказал просто ее
68 640518
>>640512
Да, норм книженция, но можно и без нее обойтись, библиотеки все стандартные
69 640524
Графон был лучше с 16х16. Один хрен рисовать не умеешь, 16х16 этот прискорбный факт как-то скрывает. Сейчас слишком детально и выглядит плохо, лучше уже и не будет.
70 640558
>>640524
Это иллюзия из-за того что на карте 16х16 было больше объектов, одинаково убого смотрится, я жи понимаю что говно, ибо в тестурки я вкладываю максимум 5 минут, и сейчас у меня заказ крупный и времени нет пока развивать проект, но на вырученные деньги думаю нанять художника, щобы он мне спрайты нарисовал
мимо ОП треда
71 641945
Вот и загнулся
72 642032
>>641945
Завтра сдаю проект и возвращаюсь к игре
74 642036
>>642033
А ты в изометрии шаришь? Я бы даже задонатил тебе немношк
76 642038
>>642037
Хороший ресурс, можно на первое время напиздить оттуда тайтлов
77 642040
>>642038
Можно и нужно!
78 642335
Пока выбираю разрешение игры, спиздил несколько тайтлсетов
79 642341
>>634039 (OP)

>вдруг решил что сингловые игры уже морально устарели и всем нужны именно ММОшки


А с чего это ты решил? По мне так как раз ммо и сетевые игры уже порядком подзаебали, и очущается острый дефицит хороших синглплеерных игр.
80 642351
>>642341

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


Они подзаебали, потомущо их делают на конвейере
81 642701
>>642351

Они заебали, потому что кругом метаблядки и гайдопетухи, от игры с ботами в синглах интереса и разнообразия уже реально больше
82 642767
>>634039 (OP)
Самые первые образцы мне понравились, а изометрия твоя — хуйня без души, ломающая глаза. Да, есть много хороших изометрических игор, но твоему проекту реально лучше было в оригинальном виде. Сейчас ты мне просто Рогалию напоминаешь.
image.png237 Кб, 970x551
83 642952
Решил немного порисовать сегодня, вроде неплохо
image.png305 Кб, 938x529
84 642992
Добавил деревья, на очереди камни и т.д.
85 642999
>>634039 (OP)
Ты ведь в курсе печальной истории хахача уровня гд - рогалии?
86 643009
>>642999
Не в курсе, я недавно в вашей ГД помойке
88 643016
>>643015
Блять, пздц, по их стопам пошел, аж стыдно
89 643019
Ну короче почитал про это рогалию, какой-то дикий упор на строительство, вещизм, фермы и т.д. Ну и боевка там ужасная конечно, у меня правда ее вообще нет, но я планировал пошаговые бои делать, и упор на исследование мира, который бесконечно генерится, вот хотел устаревание чанков сделать, что если туда никто очень долго не заходит он удаляется, а затем при заходе генерируется совершенно новый
90 643205
>>643015
Это Рунскейп уровня /б/?
91 643248
>>634039 (OP)

>> решил что сингловые игры уже морально устарели


слишком толсто
ScreenRecorderProject81.mp48 Мб, mp4,
804x518, 0:18
92 643296
Ну вроде со статикой разобрался, сделал сортировку по глубине, теперь это полноценная изометрия, пора браться за мобов и боевую систему, ну и поиск пути надо сделать полноценный с проверкой на доступность тайтлов и т.д.
93 643311
>>643296
Подумай о такой анимации. https://www.youtube.com/watch?v=sY37G9_sDFM
94 643378
>>643311
>>643311
Опа, спасибо, как раз думал как минимизировать затраты на анимацию персонажей, всего две проекции персонажа и смотрится органично, ты не знаешь какие там технологии юзали? Это обычные растовые картинки, но пиздато анимированные?
95 643449
>>643378
Да тут вроде вообще одна проекция, да рисуются ножки\ручки в фотошопе, анимируются в spine который не найти, blender или dragon bones, как раз буду пробовать так сделать в блендере, но это сложновато, во первых рисовать надо хорошо, изучить прогу по анимации, саму анимацию, как то все подогнать под стандарт одежды, оружия одноручное\двуручное. Вот в BB еще больше сократили затраты на анимацию, нет ног от рук только кулачки.
96 643483
>>643449
Ну это уже уровень кубов, в вот корейцы хорошо придумали
97 643570
>>634039 (OP)
Идея сделать современную ммо в 1 рыло утопична даже больше, чем полёт на Марс в 2020 году.

Я скажу сколько времени тебе потребуется на подобную реализацию. Примерно 20-40 лет и то получится хуже, чем у любой студии из 30-40 человек.
98 643571
>>643570
Просто отсекай априори нелепую траты времени, чтобы после не оказаться в ситуации депрессии.

Всегда нужно делать что-то минимальное. Фичи и контент ты будешь запиливать уже после написания готовой игры. Сейчас все игры продаются до релиза, либо не продаются в принципе.
99 643580
>>643570
Ну хз, можно основу сделать , рабочий прототип, а дальше уже предложения пойдут и желающие помочь
100 650625
R.I.P.
101 650630
>>650625
Тю
Думал пару тайтлов анону намалякать
102 650670
>>650625
Не РИП, я сейчас занят немного, так же переписываю алгоритм перемещения на поиск Пути - А, кумекаю вот, надо ли из всех тайтлов граф делать или на ходу перемещать, пока что у меня дичь выходит
103 655463
>>650670
Анон, я нахальный пидорас, покажи свой код? Не понимаю как оно всё работает и хочу почитать чужое. Можешь и не свой, может сам чьё нибудь читал и сможешь показать?
104 655824
>>655463
Лол, думаешь поймешь що я карябую?
105 655825
>>655463
Короче вот, статью на хабре сделал на случай если надоест разработку вести, а передать опыт ннадо бы
https://habr.com/ru/post/488752/
106 656087
>>655825
Так это же даже лучше, чем код. Спасибо, анончик.
107 657065
>>656087
С тебя звездочка на гитхаб
108 662578
Вот кстати первый прототип моей игрульки, можете потыкать
https://lolodin.github.io/My2DGame/
109 662988
>>662578

>MMO


>Без сетевой части


Ты там совсем охуел?
110 663039
>>662988
Это прототип, просто чтобы вы потыкали пока, я заебался уже писать если честно
111 663261
>>663039
Найди кто будет делать сервер
А ты делай клиент
изображение.png66 Кб, 1223x1277
112 663675
>>662578
Качественный контент, да
113 663845
>>663675
Надо другую шумовую функцию найти
114 663898
>>662578
Ладно, для прототипа на коленке пойдёт
Теперь надо запилить двухсторонний A*, чтобы персонаж не ходил по воде
И уменьши камеру, чтобы всё было побольше и персонажа можн было хотя бы разглядеть
115 664004
>>663898
Игра давно в изометрии, а поиск пути вот калякую, вроде ласт функцию дописать осталось, но лень пздц
image.png227 Кб, 772x432
116 668025
Накалякал поиск пути, чет месяц потратил, сорян, жаль по прямой не всегда пойдет, т.к. в игре это расстояние одинаковое можно сказать, ща пофикшу перемещение, а то пздц какой-то
ScreenRecorderProject93.mp46,8 Мб, mp4,
892x560, 0:24
117 668039
118 676231
R.I.P.
119 676252
>>676231
Мобов пилю, ща на РАБотку еще на гошника устраиваюсь
120 677845
крч такой бизнес-план:
1. делаешь бесконечную генерацию до определенных пределов, сколько осилит сервер (даже у того же кубача есть лимиты в сколько-то миллионов чанков)
2. делаешь всех игроков на один сервер
3. делаешь игру в браузер с адресом типа nazvanie.io
4. делаешь цветные ники и шапки за донат
5. ???
6. PROFIT
121 677879
>>677845
Фенкс, я вот тут поиск пути набросал и думаю над боевкой и генерацией мобов, что вот лучше сделоть, щобы интересно было
ScreenRecorderProject98.mp418,5 Мб, mp4,
800x480, 0:24
122 677883
Пока немного сгладил перемещение
123 677884
https://github.com/Lolodin/MMORPG ,ну вот гитхаб, можете посмотреть, код нет смысла прятать
124 677898
>>639566
Загони ботов пачку туда. Часто такое бывает, что вроде хорошо работает, а потом при росте нагрузки оказывается, что потребление ресурсов растёт нелинейно.
125 678106
>>677879

> что вот лучше сделоть, щобы интересно было



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

2. Сделать мобов разными в разных точках карты. Типа на юге карты мобы слабые, в центре посильнее, на севере самые грозные. Не знаю, что у тебя будет в плане прокачки-развития, но с такой системой будет какое-то ощущение прогресса.
Если карта бесконечная во все стороны - делай разные биомы. Типа в лесу максимум волки и медведи, а засыпанная снегом поляна спавнит каких-нибудь йети и ледяных големов и тд
126 679125
>>640021

>Еще раз, все что ты делаешь - ты делаешь чтобы заставить игроков взаимодействовать друг с другом.


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

>Не забывай про баланс. В ммо он такой - чтобы заработать на шапку ты можешь 2 дня бить мобов


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

>>638913

>РПГ песочницу


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

>>668025

>Накалякал поиск пути, чет месяц потратил


В чём проблема оставить только WASD/стрелочки? Откуда такое повальное увлечение мышкотырканьем? Это же извращение - "ходить мышкой". Сделай WASD, это намного удобнее - двигаешься одной рукой, а стреляешь, собираешь лут, выбираешь цель и т.д. - второй рукой. Для примера посмотри Realm of the Mad God - да, это ММО-шутер (2D), но управление там идеально, WASD-движение и мышка только для наведения прицела и окошек. Бесят ММО, которые зачем-то заставляют перемещаться мышкой, дебилизм какой-то. Знаю, "диды так играли и мы будем играть", но это реально неудобно и пора бы от этого отказаться, чай не 90-е. В древних играх на буквенные клавиши биндилось дохрена команд и потому ничего кроме мыши для движения не оставалось, но сегодня этим никто не парится, никому в современных играх не нужно биндить что-то именно на WASD, так что можно сделать адекватное перемещение персонажа без накручивания системы поиска пути (поиск пути для аватара игрока - даже звучит абсурдно). Да, у меня бомбит. :(

>>678106

>нажал кнопку>персонаж сам подошел к мобу>персонаж начал бить автоатакой


Бесит такое, из-за этого случайно агришь нейтральных мобов или бьёшь игрока, которого не хотел бить.
126 679125
>>640021

>Еще раз, все что ты делаешь - ты делаешь чтобы заставить игроков взаимодействовать друг с другом.


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

>Не забывай про баланс. В ммо он такой - чтобы заработать на шапку ты можешь 2 дня бить мобов


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

>>638913

>РПГ песочницу


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

>>668025

>Накалякал поиск пути, чет месяц потратил


В чём проблема оставить только WASD/стрелочки? Откуда такое повальное увлечение мышкотырканьем? Это же извращение - "ходить мышкой". Сделай WASD, это намного удобнее - двигаешься одной рукой, а стреляешь, собираешь лут, выбираешь цель и т.д. - второй рукой. Для примера посмотри Realm of the Mad God - да, это ММО-шутер (2D), но управление там идеально, WASD-движение и мышка только для наведения прицела и окошек. Бесят ММО, которые зачем-то заставляют перемещаться мышкой, дебилизм какой-то. Знаю, "диды так играли и мы будем играть", но это реально неудобно и пора бы от этого отказаться, чай не 90-е. В древних играх на буквенные клавиши биндилось дохрена команд и потому ничего кроме мыши для движения не оставалось, но сегодня этим никто не парится, никому в современных играх не нужно биндить что-то именно на WASD, так что можно сделать адекватное перемещение персонажа без накручивания системы поиска пути (поиск пути для аватара игрока - даже звучит абсурдно). Да, у меня бомбит. :(

>>678106

>нажал кнопку>персонаж сам подошел к мобу>персонаж начал бить автоатакой


Бесит такое, из-за этого случайно агришь нейтральных мобов или бьёшь игрока, которого не хотел бить.
127 679255
>>679125

>Для примера посмотри Realm of the Mad God


Блин, спасибо анонче, все же я наверное откажусь от изометрии, и буду пилить в таком стиле, мне понравился процесс игры, и стилистика, переделать клиент можно в две секунды, к тому-же я сохранил обычный топдовн клиент, поиск пути оставлю для ботов
128 679443
Аноны, вопрос такой.
Глядя на труды ОПа задумался над своей РПГ. Точнее задумывался-то давно и даже что-то частями пилил.
А тута решил забросить делать шутан и попробовать РПГ. Хочется чтобы рельеф/карта были красивыми поэтому сейчас делаю небольшой редактор карт безовсяких тайлов, но т.к. игра задумывается в 2Д, то встаёт вопрос над уровнями рельефа (имею ввиду всякие холмы, горки и тд).
Есть ли какие-то красивые\интересные реализации уровней рельефа для 2Д?
129 679472
>>679443

>реализации уровней рельефа для 2Д


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

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

Но если подумать, я бы вот хотел сделать типа 2.5D реализацию: карта состоит из 2D-тайлов, но при этом её можно вращать на 90 (60) градусов. Получается не одна проекция, а целых 4 (6 для гексагонов) - и вот тут-то и становится возможно увидеть, что расположено за горой или высоким домом, заглянуть за широкое дерево без "рентгена" и т.д. Можно спокойно пилить любые холмы и ямы, игроку просто придётся нажимать Q/E для разворота проекции. Хотя тут возникает вопрос - не придётся ли пилить слишком много дополнительной графики? Для каких-нибудь цельных домиков скорее всего да, а вот круглые (дерево, столб) и просто тайловые (горы) объекты, наверное, можно слепить из всё тех же ресурсов...

В общем, что-то вроде Don't Starve или того же RotMG - и там, и там есть вращение карты, однако в этих играх карты полностью плоские (не считая стен и порталов). Собсна не совсем ясно, зачем в этих играх нужно было делать возможность вращения карты, если все объекты мелкие и одинаково выглядят с любой стороны... Вот с крупными объектами было бы интересно, да.
.png1,6 Мб, 509x1200
130 679498
>>679472

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


У меня пока задумка делать мир бесшовным. Порталы будут в города\подземелье.
Ещё думаю над тем как сделать воду, точнее чтобы берег был не тайловый, а красивые изогнутые линии + речки всякие.
А про графику и ресуры. Можно моделировать здания, деревья и тд, а потом рендерить их в текстуру (заранее имеется ввиду) под нужным ракурсом.
Как-то давно наткнулся на пикчу и захотелось сделать свой варик, но для соло игрока.
Вращаемая карта из шестиугольников.png108 Кб, 926x900
131 679533
>>679472

>я бы вот хотел сделать типа 2.5D реализацию: карта состоит из 2D-тайлов, но при этом её можно вращать на 90 (60) градусов. Получается не одна проекция, а целых 4 (6 для гексагонов)


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

>>679498

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


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

>Ещё думаю над тем как сделать воду, точнее чтобы берег был не тайловый, а красивые изогнутые линии + речки всякие.


Тут два варианта:
- делаешь >9000 тайлов разных кривых берегов и ручейков, по желанию можно сделать автоматическое размещение подходящих кусочков;
- либо рисуешь реки как отдельные объекты (как дома или деревья), но тогда они не смогут быть длинными, иначе будут зря нагружать рендерер (хотя сегодня это мелочь, конечно). Нет, конечно, можно сделать их из кусочков, тогда будет как отдельная тайловая карта, но с другими параметрами тайлов (тайлы намного крупнее основной карты).
Хотя, имхо, если уж делать реки "гладкими", то и остальные тайлы/объекты должны сочетаться. Будет некрасиво, если реки выбиваются из общего стиля карты.

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


Знаю про это, но в любом случае это нагрузка на художника/свой художеский скилл)
132 679546
>>679533

>но с шестиугольниками для вращения на все 6 сторон придётся сделать дополнительные тайлы


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

Что думаете на счёт таких карт?

если что, я не оп, просто мимо пробегал и заинтересовался темой 2Д-(ММО)РПГ
133 679618
>>679125

> агришь нейтральных мобов


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

> бьёшь игрока, которого не хотел бить.


в 99% ММО пвп-действия включаются отдельной галочкой или вообще ограничены отдельным локациями(типа WvW в гильдварс2), так что не вижу особой проблемы - нейтрального игрока не заденет, враждебного атакует по правилам п.1
.png970 Кб, 900x574
134 679624
>>679546

> Похоже, я ошибся, новые тайлы нужно рисовать только для вращения на 12 сторон


Нет
Их нужно нарисовать только с одной стороны, но нужно их структурировать и рисовать по слоям: вода, уровень земли 1, уровень земли 2 и тд
Алсо, для графики ещё хочу попробовать пикрелейтед - texture splatting
Если применять твою методу, надо будет ещё подумать как текстура ляжет на всё это при поворотах
135 679637
>>679624

>>для вращения на 12 сторон


>Нет


Я имею в виду, что шестиугольник мы можем использовать один и тот же для 6 сторон, а для ещё 6 сторон его нужно повернуть на 30 градусов. У меня шестиугольники смотрят в сторону зрителя всегда одним из углов, так вот чтобы они могли смотреть не углом, а одной из сторон, придётся их перерисовать (на самом деле это не гексагоны, а немного приплюснутые шестиугольники - ровный гексагон показался некрасивым). Но вообще тут ещё вопрос того, что изображено на тайле - если это что-то строго ориентированное (как табличка, строго указывающая направление) - придётся нарисовать 6/12 раз, иначе будет дезориентировать. В том же Don't Starve предметы всегда лицом к зрителю, и это немного раздражает/дезориентирует (лично я стараюсь карту не вертеть).

>рисовать по слоям: вода, уровень земли 1, уровень земли 2


А, ну да, забыл про это. Персонажи ведь всегда к какому-то из уровней принадлежат... Хотя в моём случае всё равно непонятно как это прикручивать к принципам ECS...

>Алсо, для графики ещё хочу попробовать пикрелейтед - texture splatting


Это ведь только для реалистичных текстур и сложных ландшафтов имеет смысл? В таких 2D РПГ ведь графика собирается вручную/полуавтоматически, это проще (посмотри тайлсеты для RPG Maker, например, как там сделаны переходы между водой и землёй).
136 679646
>>679637

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


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

> Хотя в моём случае всё равно непонятно как это прикручивать к принципам ECS


Просто не задрачивать ECS сильно.
Хранить уровень земли (если таковой будет) и номер гексагона. Тем более планируется ли переход между уровнями? Как персонаж спустится на воду или заберётся на холмик?

> Это ведь только для реалистичных текстур и сложных ландшафтов имеет смысл?


Что ты имеешь ввиду? Это я немного увлекался редактирование вакрафта и для неё создали редактор noggit. Там этой техникой разрисовывается ландшафт. Вот и подумал что вместо обычных тайлов можно попробовать её использовать.

> В таких 2D РПГ ведь графика собирается вручную/полуавтоматически


Над этим я тоже подумал. Можно вот такую методу применить https://archive.gamedev.net/archive/reference/articles/article934.html
137 679705
>>679646

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


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

>Просто не задрачивать ECS сильно.


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

>Тем более планируется ли переход между уровнями? Как персонаж спустится на воду или заберётся на холмик?


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

>Что ты имеешь ввиду?


Я имею в виду, что для простых "мультяшных" тайлов а-ля классические RPG Maker'ские пилить какое-то сложное смешивание текстур - оверкилл. Тем более, что такие тайлы рисуются вручную, и программное смешивание может плохо выглядеть - лучше пусть этим займётся художник... А вот с фототекстурами - другое дело, их вручную смешивать слишком трудно/нет смысла, программно получится не хуже.

>Можно вот такую методу применить


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

Мне кажется, мы мешаем ОПу, всё-таки это тред его проекта, а не просто любой 2д мморпг...
138 679768
>>679705

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


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

> пилить какое-то сложное смешивание текстур - оверкилл.


Ну вот грейвярд кипер выглядит классно
Правда, я как-то раз смотрел. Там многое сделано из готовых чанков.
Вот, например, речка состоит из двух берегов, а где сама вода - там ничего нет, просто пустота.
test.webm899 Кб, webm,
800x600, 0:07
139 680042
>>679768

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


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

>Ну вот грейвярд кипер выглядит классно


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

> Так ведь суть ECS - на каждый случай игры создавать отдельный компонент


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

> Мне кажется, для такого всё-таки художник нужен, а не какая-то особая фича движка...


Нужен человек со вкусом просто.
test.webm226 Кб, webm,
800x600, 0:03
141 680336
>>680299

>Это дико бесит, меня по крайней мере.


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

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


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

Но вообще это тема для другого треда, наверное)

>Нужен человек со вкусом просто.


Человек со вкусом не обязательно умеет рисовать, а умеющий рисовать обычно вкус имеет)

>>680042
Добавил слоёв - получились холмы; осталось реализовать повороты и ещё кучу всего, если делать игру.

Мучаюсь: мне создавать свой тред, чтобы уже там хвастаться? Я пока не уверен, что смогу развить из этого наброска какую-то серьёзную игру, изначально хотел просто показать, как это могло бы выглядеть. Идеи на подобную тему когда-то давно были, но теперь я понимаю, что не смогу красиво всё нарисовать, а брать чужую графику/покупать/заказывать не хочу...
142 680364
>>680336

> а вот для каких-то особых взаимодействий с предметами новый компонент уже не нужен - достаточно проверить состояние компонента коллизии (в нём будет лежать флаг "есть столкновение!" и ссылка на виновника столкновения).



Ну вот, например, пекмен. Там есть предметы которые игрок собирает. Чтобы не городить какие-то ссылки на другие сущности, достаточно циклом пройтись по массиву предметов и сравнить bboxы с игроковским. Если есть пересечение, то считается что предмет подобран и его можно не рисовать на экране и дать игроку бонус какой-то.
143 680369
>>680364

>Ну вот, например, пекмен. Там есть предметы которые игрок собирает.


Ну, пакман - маленькая простая игра, в ней, наверное, действительно нет смысла "городить" ECS. Но мы же в треде ММОРПГ, так? Даже если это маленькая инди-ММО, она должна иметь большие возможности для расширения. Пакмана не нужно расширять, ты напишешь его один раз и забудешь, и нет особой разницы, как реализован подбор предметов. А вот в постоянно обновляемой ММО это важно. Важно, чтобы код был расширяемым.
Вот ты собираешься

>циклом пройтись по массиву предметов и сравнить bboxы с игроковским,


а где ты это будешь делать? В обработчике поведения игрока, типа player.update? А сколько подобной логики там будет сконцентрировано? А если понадобится лишить игрока части этой логики, без ущерба остальным сущностям? А если вдруг захочется сделать так, чтобы монстры тоже собирали предметы? А если вдруг понадобится, чтобы у каждой подбираемой вещи были свои условия подбора? И т.д., и т.п. Лень выдумывать, но можно выдумать массу способов расширения геймплея, из-за которых код игрока будет разрастаться, а контроль над ним - теряться. Ну и кроме игрока, монстров и подбираемых предметов могут быть и другие сущности, их нужно как-то внедрять в уже имеющуюся базу кода...

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

...так, ладно, я могу на эту тему слишком много говорить. лучше б игры делал
144 680387
эххххх завидую я вам, на юнити наверное быстрее писать чем самому корябать на Го и ЖСе
145 680428
>>680387

>эххххх завидую я вам, на юнити наверное быстрее писать чем самому корябать на Го и ЖСе


Кому завидуешь?

Я это >>680042 >>680336 на FreePascal с SDL2 сделал (мог и без SDL2, но надоело копаться в различных API; может потом как-нибудь откажусь и от SDL2). Заготовка движка с системой ECS была готова с декабря (в очередной раз переписана с нуля, теперь ещё более ECS-но, чем ранее), но я не знал, куда её можно было бы применить с учётом моих ограниченных навыков. Идея с гексагональной картой показалась интересной, решил попробовать, тем более идея "Don't Starve"-подобной игры несколько лет вертится... Ну и на реализацию нужных компонентов с системой, примитивную генерацию и многослойный тест суммарно ушло около 3-4 часов - в то время как на Unity или Godot можно было бы просто набросать стандартных компонентов или взять готовый ассет... Но мне не хочется натягивать графику на готовые компоненты готовых движков, мне интересно самостоятельно изобретать велосипеды и видеть, как они начинают работать) Наверное, эффект IKEA - готовый движок или библиотеку ты просто берёшь и используешь, а с нуля всё делаешь своими руками, оттого выше интерес и ценность самодельного движка. Игру так сделать труднее, но интереснее, если всё получается)

Может потом тоже попробую сделать сервер (тоже на FreePascal), но онлайн-игры имеют множество собственных проблем, с которыми мне не хочется сталкиваться. В итоге можно долгое время совокупляться с чисто сетевыми проблемами, забыв о геймплее и контенте для игры... А ведь потом ещё этот сервер где-то поддерживать нужно, а у меня нет белого IP и не хочется оплачивать VPS/VDS ради онлайна в 1.5 человека включая себя. Т.е. сетевые игры намного труднее даже без какого-либо сложного контента/геймплея (как те .io-игры).
146 680559
>>680428

>Может потом тоже попробую сделать сервер (тоже на FreePascal)


Не, на поскале это будет совсем муторно делать, надо учесть что у тебя будет общие данные, которые как то распределять между потоками нужно, хз как на паскале это проворачивают
147 680563
>>680369

> а где ты это будешь делать? В обработчике поведения игрока, типа player.update? А сколько подобной логики там будет сконцентрировано? А если понадобится лишить игрока части этой логики, без ущерба остальным сущностям?



В классе Game (он ведь по мимо этого содержит и информацию об игре) функция Update/Frame
У игрока функция Touch которая принимает указатель\ссылку на предмет
Функция может просто возращать булево значение и уже потом решать какой бонус дать игроку, а можно реализовать логику прямо внутри неё

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


Делаешь им функцию Touch
148 680580
>>680559
Ну потоки на паскале делаются легко, для этого есть простой в использовании класс TThread. Для сети тоже есть куча компонентов/модулей, но я только когда-то давно пробовал по туториалам использовать компоненты для HTTP и UDP на Delphi, с тех пор с сетью никак не взаимодействовал, не было интереса/задач, так что это новая тема для меня. Главная проблема в том, что я почти ничего не знаю про архитектуру сетевых приложений и т.п., а уже рвусь пилить игровой сервер)

>>680563

>В классе Game (он ведь по мимо этого содержит и информацию об игре) функция Update/Frame


Главное, чтобы этот класс/метод не превращался в монстра, делающего всё что угодно...

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

>Делаешь им функцию Touch


Копипастом из класса player? Или унаследовать их от общего предка, и поместить Touch в класс-предка? А потом двигать методы туда-сюда по дереву и ставить костыли, чтобы монстр-пешеход мог открывать ящики, а монстр-птица не мог, но при этом игрок по-прежнему имел способность летать (способность ходить; способность летать; способность атаковать; способность открывать ящики - комбинируя их получаем разные классы, но дерево из таких классов будет выглядеть жутко)...

Ой, всё, об этом можно долго спорить, тем более я сам пока слабо разбираюсь (например, много слышал про "систему сообщений", но так и не понял, как её делать и использовать, и не знаю, как у меня будут взаимодействовать между собой разные сущности).
148 680580
>>680559
Ну потоки на паскале делаются легко, для этого есть простой в использовании класс TThread. Для сети тоже есть куча компонентов/модулей, но я только когда-то давно пробовал по туториалам использовать компоненты для HTTP и UDP на Delphi, с тех пор с сетью никак не взаимодействовал, не было интереса/задач, так что это новая тема для меня. Главная проблема в том, что я почти ничего не знаю про архитектуру сетевых приложений и т.п., а уже рвусь пилить игровой сервер)

>>680563

>В классе Game (он ведь по мимо этого содержит и информацию об игре) функция Update/Frame


Главное, чтобы этот класс/метод не превращался в монстра, делающего всё что угодно...

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

>Делаешь им функцию Touch


Копипастом из класса player? Или унаследовать их от общего предка, и поместить Touch в класс-предка? А потом двигать методы туда-сюда по дереву и ставить костыли, чтобы монстр-пешеход мог открывать ящики, а монстр-птица не мог, но при этом игрок по-прежнему имел способность летать (способность ходить; способность летать; способность атаковать; способность открывать ящики - комбинируя их получаем разные классы, но дерево из таких классов будет выглядеть жутко)...

Ой, всё, об этом можно долго спорить, тем более я сам пока слабо разбираюсь (например, много слышал про "систему сообщений", но так и не понял, как её делать и использовать, и не знаю, как у меня будут взаимодействовать между собой разные сущности).
149 680585
>>680580

> Копипастом из класса player?


Я не знаю какой ты программист
Можешь делать в меру своих навыков

> монстр-пешеход мог открывать ящики, а монстр-птица не мог


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

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


Тут наследование не нужно
150 680611
>>680585

>> Копипастом из класса player?


>Я не знаю какой ты программист


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


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

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

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


Ну и? Будешь делать класс Monster и потомки RoadMonster и FlyingMonster? Логику-то ведь нужно где-то разместить. А графика будет в классе Renderable, от которого наследуется Monster... или он наследуется от Movable?

>Возможность взаимодействовать с чем-то можно дать/забрать у кого угодно (как, например, возможность атаковать и тд)


Каким образом? Через флаги? А нужно ли добавлять флаг CanAttack в класс LootBox? А если мы вдруг захотим сделать мимика, который функционирует как сундук, но умеет нападать? Наследовать Mimic от LootBox или от Monster? Или добавить в LootBox функцию Attack и флаг CanAttack? Всё это слишком сложно и чревато проблемами в будущем, когда придётся что-то менять...

>Тут наследование не нужно


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

По-моему это уже холивар.
150 680611
>>680585

>> Копипастом из класса player?


>Я не знаю какой ты программист


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


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

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

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


Ну и? Будешь делать класс Monster и потомки RoadMonster и FlyingMonster? Логику-то ведь нужно где-то разместить. А графика будет в классе Renderable, от которого наследуется Monster... или он наследуется от Movable?

>Возможность взаимодействовать с чем-то можно дать/забрать у кого угодно (как, например, возможность атаковать и тд)


Каким образом? Через флаги? А нужно ли добавлять флаг CanAttack в класс LootBox? А если мы вдруг захотим сделать мимика, который функционирует как сундук, но умеет нападать? Наследовать Mimic от LootBox или от Monster? Или добавить в LootBox функцию Attack и флаг CanAttack? Всё это слишком сложно и чревато проблемами в будущем, когда придётся что-то менять...

>Тут наследование не нужно


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

По-моему это уже холивар.
151 680662
>>680611

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


Это ты как опытный игростроитель говоришь?

> Копипаст кода = трудности с его модификацией во всех местах сразу (когда нужно обновить логику).


Повторюсь, если ты программируешь так, то это не значит что у других точно также

> Будешь делать класс Monster и потомки RoadMonster и FlyingMonster? Логику-то ведь нужно где-то разместить


Для логики есть класс Movement

> А если мы вдруг захотим сделать мимика, который функционирует как сундук, но умеет нападать?


И опять ты мимо
Можешь посмотреть как сделаны банкиры в mangos (эмуляторе сервера вов): обычные юниты, могут атаковать
Щёлкаешь на них ПКМ открывается окошко банка, а рядом с ними гильдбанк, не двигается, не летает, не умирает и с ним игрок тоже взаимодействует

> Ну не знаю, я бы всё-таки отделил движущиеся объекты от атакующих.


> То есть разные объекты - разная функциональность, зачем их смешивать друг с другом в одном классе?


Ты иерархии строить не умеешь
Есть такой принцип: разбиения задачи на подзадачи и ты его игнорируешь
Ты все классы смешиваешь в кучу, а когда надо расширить (например, движение) ты зачем-то делаешь вообще новый класс, а не занимаешься классом движения
152 680776
>>680662
Я не понимаю, как ты предлагаешь делать игры без композиции и наследования, но с ООП.
Чисто на процедурах тоже сложно, слишком много протаскивать через аргументы придётся.
153 681204
Довеча короче поиграл в Darkwood и мне понравилась боевка, думаю реализовать у себя ее, интересно как в онлайне будет смотреться
image.png87 Кб, 669x393
154 697559
Ну що сучечки, я опять не вкатился в программирование, а это значит буду развивать свою игрулю дальше. Що было сделано за время пока я не отписывал в тред, немного отрефакторил свое поделие, взял новую либу под вебсокет, изменил общение с сервером на более продвинутую и оптимальную модель,сделал коллизии. Думаю над введением безобидных мобов для оживления мира, потом уже буду думать о взаимодействии с миром. Думаю отказаться от Phaser на клиенте, а все пилить на Go, взяв для клиента либу Ebiten
155 702387
>>634055
Я, кстати, поддвачну, а то гейм-дизайнеры вечно плачут, что не умеют в кодинг, а так бы сделали убийцу всех игр. Так расскажите кодеркам без фантазии и мне тоже, чего бы такого сделать
156 702513
>>702387

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


У нас целый тред есть с охуительными идеями игор. Бери любую. Даже если рофельная.
Упс. Тред-то утонул. Жаль.
Штош, тогда вот тебе парочка охуительных идей прямо ИТТ:
157 702683
>>702513
Тред живой, оптимизировал вебсокеты чтобы юзерам доставляли только актуальные изменения в чанках. Раньше я скармливал соединениям все ивенты которые происходили в мире, теперь будут только актуальные. Сейчас делаю коммерческую херню, будет время вернусь к игре.
Мимо ОП-гей
158 702684
>>702683
702513-кун писал не про этот тред, что он утонул, а про другой, с охуительными кириллоидеями. Хотел сам написать свои идеи, но проебался с разметкой
159 708574
>>702513

> Тред-то утонул.


Внезапно тред всплыл из бездны >>605406 (OP)
Восславим Солнце, братие!
160 708777
Сук много работы просто, не могу сейчас активно развивать, с выходных попробую уже ввести каких никаких мобов
161 753126
Так я вернулся, скоро подниму сайт для своей игоры и буду вести дневник разработчки
162 753584
как там в 1989 году? мады пилишь?
163 848794
>>753584
рэтро в модэ
164 848812
>>848794

изыди, некромант!
165 848813
ОП обосрался!
166 848939
грустно очень такие треды до конца читать
167 849575
>>634113
нет такого языка клоун
пиздец блять
хоть бы инструмент выучил для начала
168 849661
>>848813
Я не обосрался, просто бесконечно переписываю архитектуру
169 849666
>>849661
Красава, наш челвоек.
in-game-buttons.jpg397 Кб, 1440x2960
170 882178
ОПчик, молодца, делай, старайся.
Если вдруг захочешь какое то сотрудничество (Например видосы об играх друг друга запилить), то пиши по контактам:
https://plugfox.dev/make-world-ru/
Мимо тоже делаю мультиплеерную игру с сервером и клиентом и даже потом планирую запилить глобальный мир, как в ММО
171 882179
>>680611
Напиши на псевдоязыке как ты запрогал бы мобов тогда. Условно: обычного монстра, сундук и сундук-мимика
sage 172 882320
>>882178
Иди нахуй с рекламой своего говна, залётнй
173 886944
>>882178
Делаю, правда долго это все, но набил опыт по архитектуре, вроде дело пошло на лад, с нуля начал писать
174 887140
>>886944
молодца, пингуй как результаты будут какие то, где побегать можно будет
175 893658
>>887140
https://www.mediafire.com/file/ugrc29p5if9fd4e/main.exe/file
Сделал первую версию и арендовал самый бичевский вдс, пока можно просто ходить по бесконечному мирку
176 893668
>>893658
галку ОПа хоть поставь. Рандомный экзешник запускать как то не хочется, проверять антивирусом пока влом
177 893691
>>893668
Лол. Чем тебе поможет галка? ОП такой же рандом который может подкинуть что угодно.
178 893693
>>893691
так он хотя бы зашквариться когда я заморочусь, проверю антивирусом и запущу на старом ноуте его экзешник.
179 893825
>>893668
могу под линух клиент кинуть, но тут без говняка не ссыте
180 893828
Так блэть, там рега только если у тебя числовой ароль и логин
181 893847
>>893658
Делал на JS, а теперь пересел на Go?

>можно просто ходить по бесконечному мирку


Это у тебя и в 2020 было. Нет смысла тестировать.
182 893861
>>893847
Да, на гошке полностью, для графики ebiten для интерфейса ebitenui,
Сервак без фреймов писался
Охуенный.mp41,6 Мб, mp4,
640x360, 0:06
183 926344
>>634039 (OP)
Ну что, ОП, как дела продвигаются?
Уже 4 годика исполнилось твоему проектику на Phaser. Легендарный батя-гд татрикс примерно за это же время с нуля запилил свою ммо рогалию, вышел в ранний доступ на модели б2п, релизнулся, перешел на ф2п и похоронил игру.
184 926583
>>926344
Идет разработОчка....
Вообще дело туго идет, я еще лидом на основном проекте работаю, так что времени мало остается на игрулю.
Из последнего що сделал:
1. Менюшка реги\логина, пока не понял как это сделать более гибким, топорно в общем получилось. Пока не придумал как облегчить себе работу с интерфейсом
2. Решил что будет управление мышкой, запилил поиск пути, на стороне серверочка, реализация в процессе пока.
3. Вечно пытаюсь улучшить архитектуру, чтобы добавлять фичи в 3 строчки.
185 926585
>>926583
Жаль пруфов нет что это оп....
186 926678
>>926585
Такие пойдут?
187 926680
Мне еще не нравится как у меня на клиенте подгружаются и хранятся объекты, не очень гибко щоли, зато быстро
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную в 03:41.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /gd/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски