Ruby RL

Форум для проектов, находящихся на стадии Альфа и Бета. В них ещё не реализована вся задуманная автором функциональность, а значит идёт активная разработка.

Модераторы: Sanja, Максим Кич

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Ruby RL

Сообщение kipar » 07 мар 2011, 23:59

В забугорном 7DRL я участвовать как-то не решаюсь, свою попытку стартую здесь.

Недавно начал искать идеальный язык ООП, пока недостатков не нашел только у Ruby. Ну кроме того очевидного недостатка, что это интерпретатор.

Сегодня дочитал руководство.
За пару часов смог настроить ncurses (точнее под 1.9 так и не смог настроить, так что скачал скомпилированный пакет для 1.8 ) и заставить бегать @ по экрану :lol: .

Следующие задачи: добавить цвета( и мышь?), интегрировать туда реализации LOS и A* с roguebasin, придумать в чем же будет состоять игра. Ни на что играбельное не претендую, просто хочу оценить Ruby.

-----
Залил последнюю версию на SourceForge: http://sf.net/projects/rubyrl
Последний раз редактировалось kipar 19 апр 2012, 08:21, всего редактировалось 2 раза.

Аватара пользователя
Xecutor
Мастер
Сообщения: 758
Зарегистрирован: 25 мар 2008, 08:32

Re: Ruby RL

Сообщение Xecutor » 08 мар 2011, 07:22

Ruby хорош. Но есть один существенный недостаток - из популярных скриптовых языков он самый медленный.
Я когда с ним баловался, у меня некоторые тесты были в десятки раз медленнее перла!
С одной стороны для RL не так важно, но с другой стороны тот же fov может притормаживать, если в лоб всё делать.

Я сейчас присматриваюсь к Falcon (www.falconpl.org).
Он правда еще в разработке, и модуль по работе с консолью еще не готов.
Язык мультипарадигменный. Куча всяких удобных штучек в языке. VM весьма шустрая.
Написан на С++, и модули писать на С++ очень удобно.
Возможно я займусь libtcod биндингами для фалькона.
Кстати SDL биндинги там уже есть. Но кому нужен голый SDL?

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Ruby RL

Сообщение kipar » 08 мар 2011, 09:56

Нда, если он такой медленный это печально. Как раз сейчас и проверю, как там с фовом дела обстоят. За ссылку спасибо, посмотрю, но по Ruby по крайней мере есть много инфы.

Идею игры уже придумал: Бои мехов (аля МехВарриор&GearHead). Правда задумка черезчур амбициозная, так что упростим до максимума:
есть три типа оружия:
- ракеты (большой урон, неограниченный радиус, но медленно летят, так что можно успеть спрятаться или сбить)
- лазеры (низкий урон, средний радиус, идеальны для сбивания ракет)
- пушки (большой урон, минимальный радиус).
Если успею - сделаю модификации, отличающиеся по весу\потреблению энергии\урону\перезарядке\количеству боеприпасов, считываемые из файла или генерируемые рандомом (смотря что проще). Если нет - обойдемся коэффициентом (СилаПушек\СилаЛазеров\СилаРакет).

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

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

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

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Ruby RL

Сообщение Jolly Roger » 08 мар 2011, 13:46

Дальше, лично мне, хотелось бы увидеть продолжение сами знаете какого рогалика.
И если ведьму я ещё стерпел, то сейчас уж написал :evil:
:D
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Ruby RL

Сообщение kipar » 08 мар 2011, 16:09

:lol: В RFRL я затеял рефакторинг системы карт, заодно еще раз убедился какой хорошей зарядкой для ума становится отладка при отсутствии нормального отладчика. Так что чтобы развеятся хочу попробовать программировать на чем-то "высокоуровневом", без забот с выделением памяти и соответствием типов.

Уже есть цвета, система тайминга, взрывающиеся ракеты и пуляющие ими враги.
Фов (взятый целиком с rogubasin) кстати не тормозит, но то ли из-за моих кривых рук, то ли из-за ncurses автоповтор клавиш работает очень хреново, поэтому скорость работы ограничена скоростью тыканья по кнопкам.
Скрытый текст: ПОКАЗАТЬ
screen0.JPG
screen0.JPG (32.73 КБ) 8070 просмотров

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Ruby RL

Сообщение Jolly Roger » 08 мар 2011, 16:48

Будем считать, что ты меня убедил. 8)
:lol:
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
XVs
Сообщения: 719
Зарегистрирован: 18 янв 2010, 15:46
Контактная информация:

Re: Ruby RL

Сообщение XVs » 08 мар 2011, 17:14

kipar писал(а):Бои мехов (аля МехВарриор)
ХОТЕТЬ!

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Ruby RL

Сообщение kipar » 08 мар 2011, 21:26

Так, первый день завершен, разобрался с организацией в ncurses окон, сделал режим прицеливания\просмотра, сделал стрельбу. Дело за боевой системой.
Скрытый текст: ПОКАЗАТЬ
screen0.JPG
screen0.JPG (32.4 КБ) 8053 просмотра
Исходники:
lib.zip
(7.84 КБ) 254 скачивания

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Ruby RL

Сообщение Феникc » 09 мар 2011, 04:29

А где же exe'шник?
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Ruby RL

Сообщение kipar » 09 мар 2011, 08:47

Ехешника нет :)
Пользователи линукса и макоси по идее имеют Ruby в составе операционки, а для винды можно скачать архив из моего первого сообщения и распаковать его в каталог с исходниками (main.rb естественно оставить новый)

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Ruby RL

Сообщение kipar » 09 мар 2011, 21:46

Что ж, день 2 завершен.
Разбил мехов на две фракции(друзья\враги),
Сделал базовую боевую систему:
у меха есть части тела. Каждая часть состоит из слотов. В каждом слоте либо броня(А), либо одно из оружий(L\M\C)
При попадании в мех выбираем случайную часть тела, в ней N(=урон) раз выбираем случайный слот. Если в слоте оружие - оно уничтожено, если броня - то уничтожена с шансом 0.5. Если часть тела(кроме рук)уничтожена - мех уничтожен.
Конечно надо будет еще сделать прицельную стрельбу(иначе от всех этих частей тела смысла мало). Видимо сделаю так: лазеры и пушки будут по умолчанию выбирать самую поврежденную часть, ракеты будут как сейчас стрелять по случайной.

Еще надо сделать кулдауны у оружия - сейчас игрок может безнаказанно засыпать врагов ракетами, а враги просто пуляют ракетами один раз из десяти. Да, проверку ЛОС (брезенхема) для врагов я тоже пока не сделал, поэтому лазерами и пушками они не стреляют.
Сделал инициализацию параметров мехов из шаблонов - из текстового файла видимо смысла считывать нет - в случае с интерпретирующем языком отличие хардкода от внешнего файла минимально :)
Скрытый текст: ПОКАЗАТЬ
screen0.JPG
screen0.JPG (59.82 КБ) 8018 просмотров
Исходники:
lib.zip
(9.79 КБ) 248 скачиваний
(да,ехешника нет, и хелпа тоже. играть там пока особо не во что)

Дальнейшие планы: доделать боевую часть (кулдауны для оружия, проверка лос, АИ), возможно сделать генератор карты с разрушенными домами и порядка 10-20 типов мехов (от кастомизации я решил отказаться, поэтому оружие и броня мехов будут жестко заданы. Игрок сможет только покупать\продавать мехи. Хотя потом может и усложню боевую систему). Ну и можно будет переходить к небоевой части.
Да, еще не забыть сделать цветные сообщения в логе и окне информации о цели(вместо Head: AAAAMC писать MC красным\желтым\зеленым).

Аватара пользователя
Феникc
Сообщения: 679
Зарегистрирован: 27 ноя 2010, 15:01
Откуда: Челябинск

Re: Ruby RL

Сообщение Феникc » 10 мар 2011, 01:12

Ну хоть основы управления-то напиши...

Да, если зажать 5 или Enter, экран уезжает вверх.
Всё вышесказанное - ИМХО, если не указано обратное.

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Ruby RL

Сообщение kipar » 10 мар 2011, 16:10

5 и ентер (и все остальные кнопки) НЕ зажимать :)
Ходить - нумпадом или стрелками.
L - Стрельба лазерами (повторное нажатие для подтверждения)
M - Стрельба ракетами (-\\-)
С - Стрельба пушками (-\\-).
X - смотреть (-\\-).
Esc - выход из режима стрельбы
Q - сдаться
Вроде пока все.

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

JustHarry
Сообщения: 655
Зарегистрирован: 30 июл 2010, 17:13

Re: Ruby RL

Сообщение JustHarry » 10 мар 2011, 17:18

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

Кстати, может сделаешь режим атаки\защиты крепости? Ну то есть, кучка мехов сидит в домике, а другая кучка пытается их убить. А значит первая кучка может прикрываться стенками, а другая использует терраморфинг... вот его то не хватает! В оригинальном МехВарриор можно было ракетами "выкапывать" ямки, где можно было прятяться от орудий врага, не знаю правда, как это сделать в рогалике, может банальным разделением высот, ну то есть:

.......................
.......................
.......................
.М....................
.......................
.......................
.......................
Мех стреляет ракетой в землю.

.......................
.......................
.....>OOO<........
.М..>OOO<........
.....>OOO<........
.......................
.......................

Заходя на клетки >, можно спуститься в овраг:

<...>
<M.>
<...>

Здесь <> это не лестницы, а просто направления выхода.

Без этих составляющих битва мехов, имхо, просто рандомная перестрелка вундервафлями. Конечно, в 7DRL эта фича плохо укладывается, но...
XVs писал(а):
kipar писал(а):Бои мехов (аля МехВарриор)
ХОТЕТЬ!

Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Ruby RL

Сообщение kipar » 10 мар 2011, 17:42

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

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

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

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя