README for labirint_game
Small MUD for Russian speakers (That is very old Perl OOP code)
Mission
Миссия у данного кода исключительно образовательная. Она помогает детишкам понять, как устроены MUD-игры. Это однопользовательский вариант, но принципиально он ничем не отличается от игр с множеством игроков.
Меня спросили о правилах и описании игры, а их у меня не было. Была только игра, писанная мною более десяти лет назад. Но с точки зрения правил игры, проще показать детям этот код и саму игру, чем описывать многочисленные правила в каком-либо документе.
Сам контейнер с игрой вы можете развернуть у себя или на AWS, взяв его с докерхаба: 'wws22/labirint_game'
Контейнер неправильный, совершенно не соответствует идеологии Docker, но это был мой первый опыт и к тому же, стояла цель минимизировать как итоговый размер, так и зависимости. Учиться самому Docker на этом примере НЕ НАДО!!!
Итак, смотрим в <https://github.com/wws22/labirint_game/tree/master/lib/Labirint/Object/Cell>
Это всё наследники базового класса Cell, которые и определяют игровую логику. Вам имеет смысл читать только те фрагменты кода +/- 2-3 строчки верх/вниз, где есть текст на русском языке. Еще, этажом выше, есть Player.pm который является 'O:other' для экземпляров ячеек лабиринта. В коде попадается некий 'O:mananger'. Это ссылка на игровой мир, содержащий вообще все объекты. Однако для понимания логики и правил игры вам он не сильно нужен.
Всё специфическое и неинтересное тряхомудье связанное с подъемом энджина, организацией двух миров (мир реальных пользователей и мира в котором сейчас ходит конкретный игрок), расстановка клеток, дыр, стен, это всё есть в /web/cgi/labirint.cgi. Но я не думаю, что детям имеет смысл туда смотреть. Там кода много, а образовательного смысла мало. Думаю, что вы сами с детишками придумаете, как 25 клеток и стенки по полю рассовать.
Я думаю, что лучше всего просто войти в игруху, открыть карту и начать ходить по клеткам, одновременно читая их код в /lib/Labirint/Object/Cell/* Это будет, вроде как и игра, и вроде как понимание, что в это время программа делает. Пусть дети чуток поиграют, посмотрят и после смогут уже сами написать это же на том языке программирования, которому вы их учите.