И снова здравствуй, великий гульнябуд.ру!
Дано: хочу для души написать online roguelike.
И хочу красивой (для рогаликов) картинки: текстовый экран 80x25, 16 цветов.
Но вот незадача: клиенты подключаться должны telnet'ом или putty'ей.
Вопрос: как и чем это сделать?
Я думаю, что мне нужен протокол VT220, чтобы сервер "рендерил" картинку у себя в буфер в памяти и отсылал клиентам.
Есть ли простое описание протокола, с примерами и на русском?
Или вообще он не подходит для этой задачи?
Хех. Прикольная идея :)
Если дойдёт до беты, буду тестером.
Было бы свободное личное время то посоучаствовал бы даже... жаль времени нет.
Это ты типа MUD изобрести пытаешься? ,)
я думаю стоит в интернете (на том же сорсфорже например) поискать исходники мадов, и посмотреть как сделано.
например тут посмотреть
Давай толпой писать? Я сейчас тоже рогаликами занялся.
Ps-spectre
> Это ты типа MUD изобрести пытаешься? ,)
Мил человек, да неужто ты MUD от roguelike не отличаешь?
Я хочу именно multiplayer roguelike, т.е. чтобы было видно карту с ASCII символами, главный герой - @, лук - {, щит - ( и т.д.
ffinder
мадов с псевдографикой тоже хватает, сути это не меняет особо, ибо речь шла о цветном режиме через телнет, я просто поделился мыслями что можно было бы глянуть как в мадах сделано.
Ps-spectre
Понимаешь, дело тут в том, что в MUDах можно просто гнать поток данных, а в рогаликах надо иметь доступ печатать в произвольное место экрана.
Вот как это сделать я и спрашиваю.
ffinder, сорри что пофлудил, я, к сожалению, помочь не могу, ибо не знаю как это делается. :(
А что через socket.h не катит уже?
Что мешает взять curses и гнать дату через сокеты?
MarkoPolo
> гнать дату через сокеты?
так и задумывается
> клиенты подключаться должны telnet'ом или putty'ей.
MarkoPolo
> Что мешает взять curses
Ну, наверное то, что curses работают с терминалом (шеллом).
Это в древние времена пользователи одной юникс-системы заходили с терминалов со своим логином/паролем.
Сейчас терминал (вернее его эмулятор) нужен чтобы не писать свой клиент.
Т.е. игровой сервер должен висеть на открытом порту, и притворяться терминальным сервером, т.е. говорить с эмулятором терминала "на его языке" (по протоколу VT100 или VT220).
Не знаю зачем это надо...
А! Я понял! Ты все хочешь положить на сервер, как в MUD-ах!
Я предлагаю писать программу-клиент, юзаем для отрисовки curses, на клиенте по TCP или UDP подключаемся к программе-серверу и шлем по сокетам поток байт, как во всех мультиплеерных играх. Зачем болтать с эмулятором терминала напрямую, если можно болтать через клиент?
MarkoPolo
> Зачем болтать с эмулятором терминала напрямую, если можно болтать через клиент?
Видимо потому что нужно писать отдельный клиент, а хочется, чтобы можно было играть на любом устройстве со своим терминалом. Хоть на смартфоне.
Т. е, на шелле написать?
Можно каждый кадр полностью перезаполнять экран символами.
Если очень просто и быстро надо написать, то сделать ssh доступ к паре файлов коммуникации, которые лежат на сервере.
Ваще ничо не понял. но чем же сетевая часть ммог с псевдографикой сложнее сетевой части обычной ммог. Сервер, клиент, запрос-отклик. Не?
izg
Он хочет написать лишь сервер. Клиентом может быть что угодно с терминалом.
Тема в архиве.