LINUX.ORG.RU
ФорумGames

Игры в терминале

 , , ,


19

14

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

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

Теги для поисковых ботов (жрите мои любимые ботики): ascii games, terminal games, ncurses games, tty games, console games, cli games, tui games, text-based games, command line games, игры в терминале, игры в консоле, игры для командной строки.

Критерии отбора:

  1. Язык программирования: Си(в приоритете), си++. Остальные пока не рассматриваются. Потенциальные в будущем - ада, фортран, бейсик, паскаль. Жирный пайтон идет лесом, хипстерские гоу, раст и иже с ними туда же.
  2. Открытые исходники с лицензиями, позволяющими модификацию, не препятствующие распространению. Свободные и одобренные дядюшкой Столлманом в приоритете.
  3. Зависимости. Без sdl и других графических либ. Опционально пускай будет, например, для музыки. Но не навязывается. NCurses и подобные библиотеки для работы с терминалом всяко одобряются и котируются. Не приветствуются в зависимостях всякие гугловские юнит тесты и другие чёрт ногу сломит либы. Для маленьких терминальных игр эта мишура не нужна.

Источники игорей:

  1. https://ttygames.wordpress.com/
  2. https://github.com/ligurio/awesome-ttygames
  3. https://inconsolation.wordpress.com/
  4. https://kmandla.wordpress.com/
  5. https://ibiblio.org/pub/linux/games/ Артефакты прошлого. Игры для терминала надо искать. Не всё собирается с современным компилятором.
  6. gopher://sdf.org/9/users/saahriktu/bttf/gamez_p0.tar.lzma (использовать lynx) - сборник ascii игр, собранный камрадом @saahriktu
  7. https://www.youtube.com/user/livibetter/videos
  8. https://zenway.ru/tag/ASCII
  9. https://blends.debian.org/games/tasks/console
  10. ASCII игры по Linux
  11. Поиск на github.com, gitlab.com по соответствующим запросам
  12. Поиск рогаликов на http://www.roguebasin.com/index.php?title=Category:Roguelike_games
  13. Все поисковики, даже малоизвестные иногда выдают страницы, на которые не попадешь с гугла или яндекса.

Сами игори:

!!!NEW!!! 1. 8f - Терминальный вариант карточной игры Сумасшедшие восьмёрки (Crazy Eights).

  1. Alienwave - Сложная Galaga-подобная игра с хорошим ascii-артом.
  2. Bricktick - Красивый клон арканоида с бонусами.
  3. CLines - Качественная реализация всеми известной офисной игры Color Lines.
  4. Dominoes - Реализация одного из вариантов игры Домино.
  5. Lwrace - Бегаем символом «O», собираем «$», избегаем «#», уворачиваемся от «o».
  6. Morpion solitaire - Отличная реализация отличной же тетрадной игры Join Five.
  7. MyMan - Пакман для терминала с множеством настроек.
  8. Peg-solitaire.c - Добротная реализация одноименной настольной игры с 5-ю раскладками.
  9. XT gyoretsu - Воссозданная с любовью и с ncurses старая тетрадная игра.
  10. Ztrack - Псевдо-тридешные гоночки с красивым бэкграундом.
  11. to be continued


Последнее исправление: nab_linux (всего исправлений: 16)
1 июня 2023 г.

Из стана хипстеров клон Battle City, писал пока изучал сам язык. https://github.com/alh1m1k/goTerminalBt ascii арт и управляющие символы, цвета и звук (только при запуске локально) настройка через json. Клон не полный, есть свои идеи. Проект рабочий, открытый но заброшенный

alhimik
()
Ответ на: комментарий от monkdt

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

alhimik
()
Ответ на: комментарий от nab_linux

Bricktick обладает всеми атрибутами хорошей ascii игры.

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

Ну и понятия «броска» биты, как это было сделано в оригинальном арканоиде, конечно же нет.

Xintrea ★★★★★
()
Ответ на: комментарий от dataman

termbox-tetris - ещё один простой тетрис с использованием библиотеки termbox2.
$ cc tetris.c -o tetris -lm

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

Кстати, у меня собирается так:

cc tetris.c -o tetris -lm -lpthread

Xintrea ★★★★★
()
Ответ на: комментарий от alhimik

Проект рабочий, открытый но заброшенный

$ go build .
# GoConsoleBT
./blueprint.go:233:15: undefined: os.ReadFile
./effect.go:151:16: undefined: os.ReadFile
./effect.go:169:16: undefined: os.ReadFile
./effect.go:187:16: undefined: os.ReadFile
./effect.go:202:16: undefined: os.ReadFile
./io.go:15:9: undefined: os.ReadFile
./io.go:19:9: undefined: os.ReadFile
./io.go:23:9: undefined: os.ReadFile
./io.go:31:23: undefined: os.WriteFile
./io.go:35:18: undefined: os.ReadFile
./io.go:35:18: too many errors
note: module requires Go 1.16

Xintrea ★★★★★
()
Ответ на: комментарий от alhimik

Обновил Go и собрал бинарник. Как играть я не понял, даже сделав шрифт очень маленьким а окно максимально большим. В одном случае из 10 можно увидеть свой танчик, успеть понять что он управляется, но в него почти сразу попадают и танчик исчезает и все. Что дальше делать неясно.

Xintrea ★★★★★
()
12 октября 2023 г.
19 января 2024 г.
2 апреля 2024 г.

Язык программирования: Си(в приоритете)

Мпм Былины. Это mud. Исходники самого движка были открыты. исходники зон нет. И ещё пачка мадов разной паршивости. Клиентов нормальных фактически нет - есть отечественной разработки jmc под венду, но написано вроде как на java т.е. может завестись и на линаксе, mmc написано на C линкуется с каким-то пятым перлом, tf было, но помоему все.

Играть в 2024 в это я не советую при наличии варкрафт приваток - это глупо.

Ygor ★★★★★
()
Последнее исправление: Ygor (всего исправлений: 1)
Ответ на: комментарий от Ygor

клиент нормальный это например Mudlet скриптуемый на Lua.

а вообще там можно и в MOO типа LambdaMOO (похожее на Lua) и в прочее MUCK на форте закопаться.

из движков ещё CoffeeMUD и CircleMUD относительно легко собирается везде.

а MOO интересен тем, что оно программируемое – начиная с парсера текстового ввода вся логика написана на языке LambdaMOO типа Lua но с персистентными объектами, в базе сохраняемыми

а так ещё есть Pike который на самом деле LPC из LPmud – интерпретируемый С.

на нём кстати тоже какой-то MUD клиент написан на GTK.

и где-то логика самого Mudlib была на нём же написана.

anonymous
()
Ответ на: комментарий от anonymous

Да да да, начинаешь копаться с этими свободными клиентами, jmc кстати тоже отрыт вроде как и 100% открыт mmc. И тут начинается оно то не умеет, то оно не хочет. К черту. Мады тоже к черту. При наличии пачки перацих серверов вова, который такой же мад, только в графике и на несколько порядков по игровым механикам лучше, мады уже в 10х потеряли свою актуальность. Исходники ператок к основным популярным аддонам вроде 1.12 и 3.3.5 в сети есть.

ТС просто посерьёзке в мады никогда не катал, как скатает, сразу свалит в вов.

Ygor ★★★★★
()
Ответ на: комментарий от Ygor

вот, вспомнил ссылку про «правильные mud клиенты»

Gypsum – MUD клиент на GTK2 и Pike

Pike: скриптовый интерпретируемый Си Pike.offsite habr:330638 Pike.FAQ

интересно позалипать также в каком-нибудь tkMOO: gh:tkMOO-lite tkMOO-light WALKTHRU

вот, например, метапрог

разработка экспериментов про чятики , жгутики и проводочки векторный гипертекстовый JHCore rich-text data (jtext)

– идёт полным ходом :))

ну как идёт. то есть, шла. лет 20 назад.

the road not taken – метапрог, которого мы заслужили.

MOO вообще, кстати, забавная штука.

погружение в MOO:

moor – форк LambdaMoo на Rust

https://giters.com/verement/lambdamoo https://github.com/lisdude/toaststunt https://github.com/toddsundsted/stunt https://github.com/bigfug/moo https://github.com/TurtleEngr/moo-LambdaMoo https://github.com/wrog/lambdamoo https://git.jl-k.com/rheaplex/moocode https://github.com/daitangio/gammamoo

коннектий: teaching/oc/13/lambda ~slator https://chatmud.com/

https://www.toastsoft.net/

но лучше, конечно, свой собственный на локалхосте развернуть :))

только чятиться не с кем :))

anonymous
()
Ответ на: комментарий от Ygor

TL;DR: MOO это язык программирования программируемых MUD-ов, похожий на Lua

LambdaMOO – это мудсервер

core, например, JHCore, HellCore, RPGcore и прочие – это mudlib + база данных типовые для мудсервера

я потыкал у себя на локалхосте LambdaMOO пару лет назад, даже допортировал уникодный вариант до Win64 (и сокетов под WinSock)

в целом – язык LambdaMOO довольно сильно похож на Lua.

Pike, или LPCmud появился как интерпретируемый Си для DikuMUD мудсервера – чтобы потребление памяти было довольно минимальное.

DikuMUD например представляет собой движок + библиотеки правил (mudlib) + описание зон (сore).

в LambdaMOO core представляют собой не просто описание зон и мобов, но и логика самого муда программируется на LambdaMOO языке

то есть: LambdaMOO-язык это скриптовый язык похожий на Pike, Lua…

но с одним отличием: есть сущность «персистентный объект».

например, объект №1 – это ООБД объект который обрабатывает соединиения.

то есть, вся логика, жизненный цикл пользователя начиная с захода в муд – написана на этом языке.

парсер команд – тоже написан на этом языке.

поведение NPC, объектов, обработка ввода пользователя и роботы-пользователи – написаны на этом языке.

язык позволяет создавать объекты реагирующие как агенты на правила, поведение, какие-то специальные глаголы

например, игрок сам по себе является объектом player

далее в cores можно запрограммировать что угодно.

то есть: MOO, например, LambdaMOO, stunt.io, HellCore, toaststunt или moor – это программируемый MUD.

в котором есть пользователи визарды, с правами «программист».

он может создавать объекты, программировать их логику, раздавать объекты с правами владения/копирования/размножения (порождения) другим пользователям.

то есть, по сути мы имеем совместный многопользовательский метапрог

anonymous
()
Ответ на: комментарий от anonymous

старые MOO клиенты, например tkMOO были реализованы на tcl/tk.

и там было реализовано нечто вроде совместного «коллаборативного» IDE

например, можно было невозбранно поиграть в шахматы исходник chess.moo

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

чисто текстовый telnet протокол затем расширялся в MCCP, и прочие расширения

например, предлагаемый XMCM в текстовом сообщении вида

 $#$chess-board 29360152 
        object: #269 
        board: RP....prNB.P..pn.P....pbKP....pkQP....pqBPN...p..P...p.nRP...bpr 
        turn: 0 
        colour: white 

передаёт состояние доски (как ООБД персистетного объекта № 269, и какой-то timestamp

расширения в MCP релизуют разную функциональность

например, jtext и displayurl

векторный гипертекстовый фидонет

то есть, гиперссылки различного вида.

anonymous
()
Ответ на: комментарий от anonymous

MacMOOSE – это IDE для разработки на LambdaMOO

здесь мы видим окошки этого IDE

описание и программа есть в архиве

что такое tkMOO: MUD/MOO клиент, написанный/автоматизированный на Tcl/tk

что такое MOO: программируемый (на Lua-подобном языке LambdaMOO) MUD сервер

что такое MCP, MCCP, и прочие расширения протокола: возможности передавать например, гиперссылки на команды через чисто текстовый telnet протокол

в общем, сам по себе LambdaMOO (сервер и язык) – довольно минималистичное зрелище, настройки начинаются в core db

язык позволяет обрабатывать списки, есть персистентные объекты БД которые и программируется (например, парсер, обработка соединений или NPC или вещи или … что угодно)

есть встроенный mudmail, можно посылать сообщения игрокам либо наружу (в интернет через sendmail и т.п.)

ещё была где-то статья про MOO интерфейс к gopher, smtp, pop3, nntp

делается не сложно.

далее в чисто текстовом строчно-ориентированном пытаемся не только писать мессаги мейла, но и исходники MOO-объектов.

в стандартных core db есть простой текстовый редактор, очень убогий и примитивный (типа telnet smtp)

в принципе, на чём-то типа tkMOO/MCP либо более современными вариантами (муд клиент на Pike, Python, Lua и т.п., МУД/LambdaMOO сервер на Rust, Pony, Python или чём-то простом и похожем)

– можно было бы запилить более навороченное IDE.

да даже целый метапрог, векторный и гипертекстовый

со жгутиками и проводочками, ога :^)))

anonymous
()
Ответ на: комментарий от Ygor

нормальный кроссплатформный клиент, скриптуемый на Lua: Mudlet mudlet.org или под венду – Pueblo gh.com/uecasm/pueblo

из минималистичных серверов на Lua есть MudCore и Prosser

также можно потыкать TinyMUSH – сервер TinyMUSH/TinyMUSH

anonymous
()
Ответ на: комментарий от anonymous

ещё наткнулся на такое: ColdC

ColdC is a run-time mutable object oriented database + language, engineered specifically to be the backend for an online game, such as a MMO.

ColdC was initially created by Greg Hudson with ColdMUD, and was later developed and evolved by many enterprising individuals. ColdC is a low-profile object oriented database language. It is intended for network servers which require run-time morphism (such as Virtual/Interactive Environment Servers).

по первым ощущениям – нечто похожее на LambdaMOO, Pike или Lua

anonymous
()
Ответ на: комментарий от anonymous

нормальный кроссплатформный клиент

Если играть на ру-серваках, то на том клиенте к которому поделятся конфигом и чарами. Чтобы с нуля написать свой надо сколько-то месяцев поиграть в мады. А, так или иначе, это говно того не стоит, сейчас у всех компы достаточные чтобы тянуть к примеру TES III который на сто голов выше чем любой мад.

К тому же ру-мадах в большинстве своём администрация полный неадекват. Никогда толком не играл на этом проекте - один чар прокачанный до 27(максимум там 30) не в счет - но всегда ходил читать туда драммы по типу этой: https://forum.a-mud.ru/viewtopic.php?t=287 Люди попрощались с чарами которых фармили годы буквально десятки тысяч часов, потому что этому «чудаку» было лень почекать свои же зоны которые он проверял и подключал на предмет скриптов разного рода.

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

Если ты так хочешь в этот чан с говном, ну посмотри те же былины - они хотя бы проработаны более или менее ближе к нормальной аrpg. А все остальное чуть более смешные анекдоты на С.

Ygor ★★★★★
()
Ответ на: комментарий от Ygor

Мультиксы и метапроги

всё это мычание новой школы, массивно-объектно ориентированное по сути своей довольно таки мейнфреймово.

и возникает идея проникнуться старой школой.

например, тем же мультиксом в симуляции

симулятор можно установить по инструкции здесь

исходники векторно-гипертекстовые можно посмотреть здесь

мультикс на Raspberry PI 3 видео

замеры производительности на Raspberry PI 2 здесь

также в блоге эмулятора пишут, что запускается на андроиде

что такое мультикс?

проект Project MAC, предок Unics (pronounced as «Eunuch» – кастрированный Multics)
Multics – это мейнфрейм и ОС специфической архитектуры. мейнфрейм и его софт написаны на PL/1 и ассемблере.

на PL/1 написаны компиляторы: APL, Lisp 1.5 (MIT Lisp), Fortran, C (K&R C89), Pascal, BASIC, алгол кажется, какой-то был.

Emacs там – написан на MIT LISP, PL/1 и ассемблере.

есть SQL-подобное (скорее, SQLite-подобное) СУБД Linus (на PL/1).

есть компиляторы и несколько текстовых редакторов.
есть текстовый процессор вроде runoff, troff.

есть «файловые сегменты» данных (наподобие mmap файлов).

Logical Volume Manager, Shell (похожий на EXEC2 и JCL).

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

на этом можно тоже запилить очередной MOO- либо MUD-подобный сервер.

на этот раз, на PL/1 и лиспе.

в исходниках кажется где-то были ADVENTURE, DUNGEON на фортране.

можно попытаться запустить MDL lisp и Zork I на MDL.

anonymous
()
Ответ на: комментарий от Ygor

играл в былины, арктику, слотмуд и ещё парочку. лет 20 назад более-менее активно.

народ там подбирался интересный. было атмосферно.

в современные муды давно не играл. в ру активно не игрался.

ну если не считать CoffeeMUD и LambdaMOO на локалхосте :))

anonymous
()
Ответ на: комментарий от Ygor

Adamant MUD

агерои:

Играю в мад с 1999 года (четверть века!) и буквально ни разу о такой не слышал, поэтому заинтригован. Что это такое вообще, чем это было?

да, эпичьненько :))

кто ещё в муды игрался 25+ лет?

я примерно с 1998 с перерывами, в разные. так что общий стаж – лет 20, не более. потом работа появилась :)

anonymous
()
Ответ на: комментарий от anonymous

да, эпичьненько :))

Это не всё - этот господин на мадосе (ник у него так там и на мудконекторе) заточил игру так чтобы играть можно было с эликсирами. А эликсиры получались за коды с сайта на странице с рекламой. Одно обновление - один код. Чтобы пару часиков нормально поиграть надо было десять кодов. Благо мне тогда, когда я туда пришёл попался игрок-программист с программой на .net которая получала эти коды пачками и складывала в буфер обмена.

Ygor ★★★★★
()
Ответ на: комментарий от anonymous

играл в былины, арктику, слотмуд и ещё парочку. лет 20 назад более-менее активно.

Начал в 2007 играл с годичными перерывами и закончил в 2012.

играл в былины

Помню в 14 помоему последний раз туда зашёл, а вахтеры местные отдали акки левому челу, обложил в приват - вернули красных чаров - видете ли у васи всех чаров побанили, а тут его корефан иммом стал, через подставную гильду замутил войнушку с другим иммом. Короче помойка она и есть помойка.

Ygor ★★★★★
()
Ответ на: комментарий от Ygor

показал девушке муды. она познакомилась с каким-то аспирантом и вышла за него замуж. уехала в москву.

история успеха, ога.

ещё было с десяток друзей в мудах. давно уже всех не видел IRL (а половину IRL и не знал).

anonymous
()
Ответ на: комментарий от anonymous

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

хотя про линейку и вовку тоже такое рассказывали.

anonymous
()
Ответ на: комментарий от anonymous

You might wonder how well a sub-$100 Amazon tablet performs?

1.725688 MIPS

в Raspberry Pi 3 было примерно в половину медленнее, но там многоядерность в эмуляторе с тех пор добавили

да, там ещё какой-то forum был типа консольный чат, начиная с 60х годов (говорят в 80х им активно пользовались, но до МУДов вроде не дошло дело)

занятно, что оригинальный мейнфрейм был производительности примерно около 1 MIPS

то есть: сейчас почти у каждого смартфон раза в 2 производительнее того самого мейнфрейма, мультикса изначального

а насколько эффективно оно используется ???

anonymous
()
Ответ на: комментарий от etwrq

пример MOO работающей через браузер: ice.cold.org

судя по описанию ColdC Manual, это язык LambdaMOO

но они что-то там в core доработали – надо смотреть что именно, ходить по всей базе.

introTutorial_start

the Pit

по ссылкам можно ходить, хелп и состояние сервера можно смотреть.

#1 – это корневой объект $root, #0 – первый объект $sys

всё остальное реализовано через ООСУБД поверх этих объектов.

ещё есть задачи, команды, пользователи, вещи, NPC, и т.п. объекты

anonymous
()