Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Игра Бабушкин Покер

 Devin !ZwvVFIaY6c 20/11/23 Пнд 01:13:49 #1 №916376 
image.png
Название рабочее. По сути это вариация игры "тысяча", но с диким хоум рулз, которые я видел только в деревне, где по этим правилам бабушка играла с друзьями.

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

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

https://www.youtube.com/watch?v=WjT5sLMD7Kw&list=PLkhDORpHGmvrW7ByiEL-M9JU_rl27QzmI вот по этому тутору иду и делаю сразу.
Аноним 20/11/23 Пнд 13:08:55 #2 №916472 
медведь в машине горящей.gif
Добро пожаловать!
Если дропнешь через не удивимся.
Успехов
Аноним 20/11/23 Пнд 13:14:39 #3 №916475 
>>916472
Этот аутист каждый месяц создаёт треды. Типа он начинает создавать свою первую игру. Выдумывает какую-нибудь охуительную историю, а потом забрасывает тред.
Аноним 20/11/23 Пнд 13:23:11 #4 №916478 
>>916376 (OP)
Давай, там работы на недельку, если что непонятно спрашивай.
Аноним 21/11/23 Втр 00:45:53 #5 №916730 
image.png
image.png
Меня кстати зовут 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 #6 №916733 
Сразу же все запорол, кек.

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

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

Пытаюсь уйти

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>917929
I understood that reference.
Аноним 25/11/23 Суб 20:20:06 #15 №918206 
ГОСПОДИН МОДЕРАТОР, А МОЖЕТЕ МНЕ В ШАПКЕ ПОМЕНЯТЬ СЛОВО "ГОДОТЕ" НА "ЮНИТИ" ????
Аноним 25/11/23 Суб 20:27:49 #16 №918211 
>>918206
А ЛИНКУ НА ЭТУ https://www.udemy.com/course/unity-card-combat/
Аноним 26/11/23 Вск 21:58:59 #17 №918546 
image.png
image.png
Сегодня сделал не так много.

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

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

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

А на этом все. Завтра в руке буду карты располагать.
Аноним 26/11/23 Вск 22:02:17 #18 №918547 
image.png
image.png
Сегодня сделал не так много.

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

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

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

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

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

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

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

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

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

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

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

---

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

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

Или ссылач дай
Аноним 29/11/23 Срд 16:32:55 #23 №919275 
>>919091
на, заодно хайпанешь https://2ch.hk/ruvn/res/153833.html#154480
День 7 Аноним 02/12/23 Суб 01:29:27 #24 №919965 
Dec-01-2023 23-26-01.mp4
Сегодня только сделал ховер, что когда мышку наводишь - картишки приподнимаются. У чела их моих уроков примитивная реализация, которая допускает глич, который я записал на видео.

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

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

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

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

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

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

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

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 #30 №965868 
>>965509
>HandController - олицетворяет игрока
нейминг мое почтение, мне кажется ты сам запутаешься через полгода что у тебя делает КруглыйКонтроллер, а что делает КонтроллерПоворота. Дело конеш твое, но я б уделил больше внимания неймингу.
Я бы игрока назвал Player. В нем можно хранить его очки/деньги и руку с картами, мб какой-то уровень сложности/опытности игрока.
В игороке был бы клас PlayerHand или просто Hand в котром бы хранились карты. "Круглые контроллеры" можно в один синглотон запихнуть и назвать его GameMaster, он будет отвечать за правила игры передавать ход, раздавать карты. В нем конечно тоже надо декомпозировать сущности на какие-то классы для. Ну и вообще Контроллер - слово паразит. Итак понятно, что код что-то там контролирует.
Devin !ZwvVFIaY6c 23/07/24 Втр 10:20:21 #31 №966052 
image.png
Отдохнем от книг, просто ПОДЕЛЮСЬ СОСТОЯНИЕМ.

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

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

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

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

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

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

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

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

МОДЕРАТОР СОТРИ >>966052
Devin !ZwvVFIaY6c 30/07/24 Втр 19:19:08 #33 №968306 
720demo3007.mov
Еще раз правила игры
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 #34 №968311 
>>965868
>я б уделил больше внимания неймингу
Костяк у меня из гайда, он так неймил. Но вообще от его стиля у меня иде подчеркивает половину когда, так что наверное так не называют скрипты обычно. Я сам из веба, для меня контроллер это вообще пиздец узкая вещь, которая хттп запросы с бизнес-логикой женит.

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

Отзывы и предложения