Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 36 25 12
Игра Бабушкин Покер Devin !ZwvVFIaY6c 20/11/23 Пнд 01:13:49 916376 1
image.png 392Кб, 650x365
650x365
Название рабочее. По сути это вариация игры "тысяча", но с диким хоум рулз, которые я видел только в деревне, где по этим правилам бабушка играла с друзьями.

Делать буду на годоте. Моя первая игра.

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

https://www.youtube.com/watch?v=WjT5sLMD7Kw&list=PLkhDORpHGmvrW7ByiEL-M9JU_rl27QzmI вот по этому тутору иду и делаю сразу.
Аноним 20/11/23 Пнд 13:08:55 916472 2
медведь в машин[...].gif 716Кб, 499x300
499x300
Добро пожаловать!
Если дропнешь через не удивимся.
Успехов
Аноним 20/11/23 Пнд 13:14:39 916475 3
>>916472
Этот аутист каждый месяц создаёт треды. Типа он начинает создавать свою первую игру. Выдумывает какую-нибудь охуительную историю, а потом забрасывает тред.
Аноним 20/11/23 Пнд 13:23:11 916478 4
>>916376 (OP)
Давай, там работы на недельку, если что непонятно спрашивай.
Аноним 21/11/23 Втр 00:45:53 916730 5
image.png 255Кб, 1608x1268
1608x1268
image.png 512Кб, 2880x1800
2880x1800
Меня кстати зовут Duplan.

Это будет мое атмосферное креативное имя.

А вот вам мое репчик: https://github.com/duplan/granny-poker

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

Я думал, нужно как-то по-хитрому использовать гит, но битард из видео

https://www.youtube.com/watch?v=k0aH_V2GrBs

просто в папке с годот-проектом инициализировал и погнал. Сделаю так и я. Пишите, если можно сделать лучше.

Больше я проебался с тем, чтобы гит не путал мои ssh ключи от работы и от ГЕЙмдев акка.

Вот если что команда:

git config core.sshCommand 'ssh -i ~/.ssh/ваш_приватный_ключ -o IdentitiesOnly=yes'

Карты скачал в первом же попавшемся месте. Рамку взял у чела в асетах.

Этому тутору 3 года и даже синтаксис устарел, так что смотрю критически.

От чела немного сразу пытаюсь, он подгоняет рамку под карту скриптом. Мне это непонятно, нахуй тогда мне редактор и наследование? Но найти как это сделать я не успел, пора спать. Просто у родительского компонента MarginContainer есть абсолютный размер в пикселях (control:layout:transform:size), у спрайта-рамки, нихуя. 2D node: transform и там только скейл. Завтра поглядим, как сделать. Ну хуйня же скриптом задавать, уж статичные объекты я могу заготовить полноценно? Но если редактором не предусмотрены ни глобальный размер для спрайта, ни обращение по скейлу к родителю, то пихуй, задам в скритпе.
День 1 Аноним 21/11/23 Втр 01:06:55 916733 6
Сразу же все запорол, кек.

Галку не поставил, заголовочек.

>>916730
>От чела немного сразу пытаюсь

Пытаюсь уйти

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

>>916475
Лол, ну разок да, было, я тогда на юнити хотел эту же игру делать, но отложил. Остальное не я. Но сейчас я не сольюсь, каждый день буду ебашить.

Я кстати нашел правила, почти такие же, но у бабушки упрощенные были, потом скажу, что изменено

https://academypoker.ru/raznovidnosti-pokera/1812-pravila-igry-v-raspisnoj-poker.html

>>916472
Привет, анон. Спасибо, не дропну.
День 2 Аноним 24/11/23 Птн 01:01:52 917701 7
image.png 2308Кб, 2880x1800
2880x1800
image.png 2373Кб, 2880x1800
2880x1800
Решил делать на юнити))

В годоте редактор какой-то нищий, дебагинг куцый, префабов нет - короче ай.

Вот такой курс купил во карточной игре в триде https://www.udemy.com/course/unity-card-combat/

И на него поглядывая делаю. Вот есть деревянный стол, карта и тетрадка - счет записывать.

Будет от первого лица игра, и в тетрадочку посматривать можно будет.

Ryder поставил, плагины все навернул - есть теперь автокомплит и все дела.

С гитом хз пока, я так понимаю тут не как в годоте, весь проект пушить не принято. Почитаю надосуге про это. Хотите, чтобы я пушил?
Аноним 24/11/23 Птн 01:33:33 917708 8
>>917701
>Решил делать на юнити))
>Хотите, чтобы я пушил?
Нет
Аноним 24/11/23 Птн 14:32:05 917808 9
>>917701
Отписался от треда.
Аноним 24/11/23 Птн 19:42:49 917886 10
>>917808
>Отписался от треда.
держи в курсе
Аноним 24/11/23 Птн 23:08:18 917929 11
1700856499481.jpg 32Кб, 1280x720
1280x720
>>917701
> Хотите, чтобы я пушил?
Пулин-пушин. Сингин-синкин. Дайвин-даин.

Сегодня ночью гобот придёт и сотрёт твою лицензию
Аноним 24/11/23 Птн 23:19:00 917932 12
>>917929
>Сегодня ночью гобот придёт
гобот, не вибрируй
День 3 Аноним 25/11/23 Суб 20:16:44 918200 13
image.png 809Кб, 1444x568
1444x568
image.png 29Кб, 704x240
704x240
image.png 523Кб, 2880x1800
2880x1800
Сегодня выходной, получилось поделать побольше. Следую за курсом, адаптируя на ходу под свое.

1. Добавил скриптабл обжекты, которые как я понял, будут типа хранилища переменных для объектов типа карты или счета.
2. Добавил скрипты к счету и карте, которые на старте подставляют нужные значения.
3. Запомнил полезную настройку, где можно выводить на весь экран игру в плеймоде (скрин 1)
4. Запомнил полезную настройку, чтобы закреплять объект в инспеторе (скрин 2)

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

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

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

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

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

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

Но зато заработало и в рантайме обновлять спрайт оказалось легко, см скрин 3.

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

Завтра уже поинтереснее будет, больше кодинха, меньше возни в редакторе.
Аноним 25/11/23 Суб 20:19:12 918203 14
>>917708
>>917808

Ребята, вы чего :(

Это же просто инстурмент!

>>917929
I understood that reference.
Аноним 25/11/23 Суб 20:20:06 918206 15
ГОСПОДИН МОДЕРАТОР, А МОЖЕТЕ МНЕ В ШАПКЕ ПОМЕНЯТЬ СЛОВО "ГОДОТЕ" НА "ЮНИТИ" ????
Аноним 25/11/23 Суб 20:27:49 918211 16
Аноним 26/11/23 Вск 21:58:59 918546 17
image.png 335Кб, 1520x1342
1520x1342
image.png 297Кб, 1530x1398
1530x1398
Сегодня сделал не так много.

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

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

Почитал про List в шарпах. Это получается мутабельная, более прожорливая версия массива.

А на этом все. Завтра в руке буду карты располагать.
Аноним 26/11/23 Вск 22:02:17 918547 18
image.png 333Кб, 1496x1340
1496x1340
image.png 286Кб, 1428x1342
1428x1342
Сегодня сделал не так много.

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

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

Почитал про List в шарпах. Это получается мутабельная, более прожорливая версия массива.

А на этом все. Завтра в руке буду карты располагать.
День 5 Аноним 28/11/23 Втр 00:58:59 918876 19
image.png 2119Кб, 2880x1800
2880x1800
image.png 139Кб, 1538x930
1538x930
Сегодня промежуточный день (уделить на буднях могу пока час через два, сегодня час), так что сделал немного.

Вот карты в руках расположить нехитрым скриптом. Но он у него корявый, от крайных точек тоже нужны отступы, чтобы они далеко друг от друга так не были, я уж не говорю о том, чтобы угол менять от центра, чтобы типа веерка было. Это я уже сам сделаю когда буду допиливать. Пока так.
Аноним 28/11/23 Втр 01:18:00 918879 20
>>918876
нихуя не понял, почему на картах какой-то старый адрт и 80ых, где голые тянки?
День 6 Аноним 28/11/23 Втр 23:40:38 919089 21
image.png 144Кб, 708x770
708x770
image.png 174Кб, 1502x732
1502x732
Сделал (списал с гайда) плавное прилетание карт в руку при помощи покадрового обновления позиции и разворота.

Он использовал перемещение Vector3.lerp(startPos, endPos, moveSpeed Time.DeltaTime) что, как я понял, нетипичное использование этого метода, который подразумевает, что последним аргументом будет отдаваться равномерно уменьшающаяся величина (типа, остаток пути), что обеспечит линейную скорость движения.

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

Может кто объяснить?

Еще не очень понял, чем это отличается от transform.translate?

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

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

---

Узнал, что можно мультиселектом перетаскивать в public массив / список в редакторе, а не дрочиться по одной штучке.

Узнал, что можно переключиться (см скрин1) в дебаг мод и видеть приватные переменные в редакторе.
Аноним 28/11/23 Втр 23:41:57 919091 22
>>918879
Скинь пак, заряжу голых, ваще похуй.

Или ссылач дай
Аноним 29/11/23 Срд 16:32:55 919275 23
День 7 Аноним 02/12/23 Суб 01:29:27 919965 24
Dec-01-2023 23-[...].mp4 7434Кб, 320x232, 00:00:20
320x232
Сегодня только сделал ховер, что когда мышку наводишь - картишки приподнимаются. У чела их моих уроков примитивная реализация, которая допускает глич, который я записал на видео.

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

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

Мини-лайфхак, если поставить на паузу и потом нажать запуск плей мода, а после, подождав, стартануть - не будет статера при запуске.
День 8 Аноним 07/12/23 Чтв 00:57:28 920959 25
image.png 124Кб, 1696x870
1696x870
pickdemo.mp4 5425Кб, 480x230, 00:00:14
480x230
Добавил выбор карт из руки и вазюкание их по столу. Он сделан каким-то достаточно сложным путем, где, как я понял по коду, из камеры в сторону курсора проецируется луч и берется место, где он достиг указанного слоя (я на стол добавил слой). И вот в это место я передвигаю карту. И она получается следует за мышкой. См. скрин.

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

Но я пока что буду просто брать на вооружение все эти приемы и потом их использовать в разных местах. Вот еще видосик приложил. Ну, такими темпами, за пару лет думаю запилю игруху - ебанетесь)))
Аноним 09/12/23 Суб 09:00:17 921281 26
Плиз вернись на Годот тогда я буду читателем твоего треда.
Аноним 23/12/23 Суб 19:57:08 923798 27
Ну что сынку помогла тебе твоя юнити?
Devin !ZwvVFIaY6c 21/07/24 Вск 15:35:53 965475 28
О, тред не удалили штоле
День 9 )) Devin !ZwvVFIaY6c 21/07/24 Вск 16:12:40 965509 29
demo210724.mov 13417Кб, 640x372, 00:00:38
640x372
Вернулся к проекту и снова ежедневно над ним работаю.

На данный момент есть раздача карт и механики хода.

Пока делал простые абстракции

GameController - это еще в планах, будет что-то типа стейт машины, чтобы хоть где-то применить няшный паттерн. Но пока игры еще нет, то что есть регулирует RoundController.

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

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

HandController - олицетворяет игрока, всего их 4. Владеет информацией о состоянии руки игрока, расположении веера и т.д. Разрешает делать ход, если приналежит игроку и вызывает (пока не ненаписанный AIController, если принедлежит боту). Для движений и смены статуса вызывает Card. После конца хода просит TurnController передать ход другому игроку, тот, когда обойдет всех - отчитывается RoundController. Я хз, норм ли такая последовательная смена состояний, мб это нубский подход, дальше будет видно.

Card - ну тут понятно, все движения и считывание юзерского ввода на этом классе.

Выделение карты сделал простым шейдером самодельным по гайду. Подсвечивание места куда класть карту делаю sparklesParticleSystem.Play(); / sparklesParticleSystem.Stop(); частицы бесплатные скачал где-то.

Все карты хранятся в одном ScriptableObject, откуда их рандомно тянет RoundController, когда раздает карты.

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

Мне это не очень нравится, под некоторыми углами ебется отображение и можно видеть сквозь рубашку. Это по хорошему надо делать наверное двухсторонним материалом. Но пока как есть так есть. Если кто-то что-то хочет подсказать - пожалуйста.
Аноним 22/07/24 Пнд 15:39:35 965868 30
>>965509
>HandController - олицетворяет игрока
нейминг мое почтение, мне кажется ты сам запутаешься через полгода что у тебя делает КруглыйКонтроллер, а что делает КонтроллерПоворота. Дело конеш твое, но я б уделил больше внимания неймингу.
Я бы игрока назвал Player. В нем можно хранить его очки/деньги и руку с картами, мб какой-то уровень сложности/опытности игрока.
В игороке был бы клас PlayerHand или просто Hand в котром бы хранились карты. "Круглые контроллеры" можно в один синглотон запихнуть и назвать его GameMaster, он будет отвечать за правила игры передавать ход, раздавать карты. В нем конечно тоже надо декомпозировать сущности на какие-то классы для. Ну и вообще Контроллер - слово паразит. Итак понятно, что код что-то там контролирует.
Devin !ZwvVFIaY6c 23/07/24 Втр 10:20:21 966052 31
image.png 1871Кб, 1024x1024
1024x1024
Отдохнем от книг, просто ПОДЕЛЮСЬ СОСТОЯНИЕМ.

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

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

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

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

По заветам Арсена Маркаряна сильно поменял фокус с самодрочки с ЦЕЛЯМИ и ПОКАЗАТЕЛЯМИ (и грызением себя) на более полюбовные инструменты развития. В частности я говорю про юнити. Арсен предлагает аппелировать к двум абстракциям. Горилле внутри себя (это не он сам придумал, раньше это называли "рептильным мозгом"), которая жаждет простых эволюционных удовольствий, а также внутреннего ребенка.

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

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

И... я стал делать только больше и с бòльшим удовольствием. Прогресс идет как никогда раньше. (что не значит, что я двигаюсь быстро, я двигаюсь быстрее). Я перестал подсознательно трепетать перед сессиями этой деятельности и начинать оттягивать их другими полезными делами. Потому что делать игру мне стало интереснее, чем мыть посуду. Может кто заметил, что я ничего не делал по приложению в выходные. Потому что мне (и даже горилле в кои-то веки) хотелось заниматься геймдевом. А кто я такой, чтобы ей перечить?
Devin !ZwvVFIaY6c 23/07/24 Втр 10:21:03 966053 32
Ох лол, не тот тред

МОДЕРАТОР СОТРИ >>966052
Devin !ZwvVFIaY6c 30/07/24 Втр 19:19:08 968306 33
720demo3007.mov 26839Кб, 1280x700, 00:00:34
1280x700
Еще раз правила игры
https://www.nashpoker.net/ru/articles/raspisnoy_poker-30/

Пока отошел от обучающего видео и сделал ставки на первый раунд.

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

Добавил BiddingController, которому RoundController делегирует этап ставок. Чем более поздний раунд - тем больше карт в раздаче и больше может быть ставка, максы от 0 до 9. В планах порт на телефон, так что я не стал делать ввод с клавиатуры, пока что выбираем кнопками.

Кнопки я делаю универсальные из префаба базовой кнопки. Меняю только хэндлер класс на этапе инициализации. И добавил интерфейс слушания нажатия кнопки на все классы, которые будут ее хендлить. ООП ЕБАТЬ

Получается такой вот контроллер с интерфейсом хэндлера кнопки

public class BiddingController : MonoBehaviour, IButtonClickHandler

И при инициализации кнопки типа

var button = Instantiate(bidButtonPrefab, bidButtonPositions[index]);
button.GetComponentInChildren<TMP_Text>().text = index.ToString();
var buttonListener = button.GetComponent<ButtonListener>(); buttonListener.ClickHandler = BiddingController.instance;

Позиции для кнопок я заранее разметил невидимыми объектами на канве.

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

Удивился, что в шарпах нет аналога модулей руби. Чтобы тупо вынести методы класса в другой файл, но у них бы доступ к всему интерфейсу класса, будто они в нем и прописаны.

Пришлось делать какую-то компромиссную залупу типа RoundUtility.GetDealerIndex(this)

То есть для получения контекста передается this.

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

public int roundNumber
{
get { return RoundController.instance.roundNumber; }
}

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

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

На демо видно как все красиво.
Аноним 30/07/24 Втр 19:26:10 968311 34
>>965868
>я б уделил больше внимания неймингу
Костяк у меня из гайда, он так неймил. Но вообще от его стиля у меня иде подчеркивает половину когда, так что наверное так не называют скрипты обычно. Я сам из веба, для меня контроллер это вообще пиздец узкая вещь, которая хттп запросы с бизнес-логикой женит.

Но как минимум handController надо дейстительно декомпозировать. Будет Player у которого как минимум есть рука, а есть и голова, где боты будут над ходами думать.
Аноним 30/07/24 Втр 22:09:22 968329 35
ты правила все обсоси сначала, используй все комбинации ситуаций, потом уже проект создавай
Аноним 31/07/24 Срд 15:58:54 968444 36
image.png 14Кб, 240x262
240x262
>>968311
>Я сам из веба, для меня контроллер это вообще пиздец узкая вещь, которая хттп запросы с бизнес-логикой женит.
Ну вообще да. Контроллер - это некий регулятор - ремапщик, переводчик. Взять-тот же геймпад. Он превращает нажатия кнопок в какой-то евент. Внутри игры тоже может быть класс контроллер который уже ремапит еневты нажатия кнопок в какие-то именованные функции типа идти, стрелять, присесть. Да хоть в тракторе рычаг - тоже своего рода контроллер. Но проблема в том, что это слово все равно очень абстракное, потому что сильно контекстозависимое. В электронике контроллер - это вобще микрокопьютер в одной микрухе со своим процом, памятью, интрефейсами, портами.
Конкретно в твоей игре неплохо бы определиться с предметной областью и назвать её суперчитаемо, чтобы никаких левых трактовок быть прсто не могло. Вот что у нас вообще есть в любой катрочной игре? Карта, Колода, Крупье, Игрок, Стол, Ставка, Бита и.т.д ООП тем и хорош, что оно позволяет называть все вещи своими бытовыми именами. И код становится похож на обычный человеческий текст из понятий: РаздатьКарты(), ВзятьКарту(), сброситьКарту(), СледующийХод()
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов