Gyre! [2D rlg/trpg]

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

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

Аватара пользователя
karagy
Сообщения: 1271
Зарегистрирован: 10 янв 2007, 14:13

Re: Разработка [пока-что-без-имени] [чего-то похожего на rlg

Сообщение karagy » 16 янв 2014, 07:11

На заметку: в новостном шуме, наряду с Protobuf и BSON так-же упоминается Apache Thrift.

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] [чего-то похожего на rlg

Сообщение Venom » 16 янв 2014, 09:31

karagy писал(а):На заметку: в новостном шуме, наряду с Protobuf и BSON так-же упоминается Apache Thrift.
>Thrift is clearly abundant in features. What is sorely lacking though is good documentation.
Вообще, выглядит крайне хорошо во всём, кроме документации. Мне он почему-то раньше на глаза не попадался, ознакомлюсь в свободное время. Подозреваю, что АТ окажется чрезмерно сложным для хранения даты в рогалике, but... who knows?

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

Re: Разработка [пока-что-без-имени] [чего-то похожего на rlg

Сообщение Xecutor » 16 янв 2014, 16:04

Несколько лет назад для внутрипроектных нужд я налабал штуку под названием protogen (изначально codegen).
Делает он вот что:
Скрытый текст: ПОКАЗАТЬ
Есть языконезависимое описание сообщений. Типы для полей сообщений произвольные, их названия нужно просто объявить.
Как сообщения так и поля сообщений могут иметь произвольные свойства и метасвойства.
Так же есть (необязательное) понятие протокол - коллекция сообщений с дополнительными свойствами уровня протокола.
И есть проект. Задаёт входные/выходные директории и, самое главное, шаблоны.
Шаблоны это текстовые шаблоны с достаточно сложным языком поддерживающим циклы, условия и переменные.
Собственно приложение парсит определения сообщений и протоколов, и скармливает их движку шаблонов.
Из всего этого можно генерировать произвольные исходники для произвольных языков.
Но шаблоны должны поддерживать объявленные типы.
Мы сделали набор шаблонов для C++ и Java, а так же небольшие библиотечки для сетевого взаимодействия.
Получилось весьма удобно. Создание чего-нибудь типа протокола удалённого администрирования делается на 1-2-3.
Сейчас это закрытая штука, но в принципе там ничего секретного нет, я могу поговорить с начальством на тему открыть исходники, если интересно.
Примеры:
Определение мессаг и протокола:

Код: Выделить всё

type bool
type byte
type int16
type int32
type int64
type string

property opt _bool
  optional true
  mandatory false
end

property mnd _bool
  default
  optional false
  mandatory true
end

property notarray _bool
  default
  array false
end

property array _bool
  array true
end

property outmsg _bool
  default message
  outmsg true
  inmsg false
end

property inmsg _bool
  outmsg false
  inmsg true
end

property inoutmsg _bool
  outmsg true
  inmsg true
end

property innerMessage _bool
  default message
  innerMessage false
end

enum byte FileType
  file 1
  dir 2
  link 3
  special 4
end

message FileInfo
  property innerMessage=true
  string name 1
  int32 size 2
  FileType fileType 3
end

message GetFileList 1
  string path 1
  int32 count 2
end

message GetFileListResp 2
  FileInfo list 1 array opt
  int32 reqId 2 opt
  int32 error 3 opt
  bool more 4 opt
end

message GetMoreFileList 3
  int32 reqId 1
end

message GetMoreFileListResp 4
  FileInfo list 1 array opt
  bool more 2
  int32 error 3 opt
end

message CancelMoreFileList 5
  int32 reqId 1
end

protocol FileSystemAccess
  GetFileList outmsg
  GetFileListResp inmsg
  GetMoreFileList outmsg
  GetMoreFileListResp inmsg
  CancelMoreFileList outmsg
end

Вот шаблон генерирующий интерфейс обработчика:

Код: Выделить всё

#ifndef __$foreach namespaceprt$$var namespaceprt:uc$_$-foreach$$var protocol.name:uc$HANDLER_HPP__
#define __$foreach namespaceprt$$var namespaceprt:uc$_$-foreach$$var protocol.name:uc$HANDLER_HPP__ 1
$foreach message$
$if message.inmsg$
#include "$var msginc.path$$var message.name$.hpp"
$-if$
$-foreach$

$foreach namespaceprt$
namespace $var namespaceprt$ {
$-foreach$
class $var handler.class${
public:
$foreach message$
$if message.inmsg$
  virtual void handle(const $ifdef msgns$$var msgns$$-ifdef$$var message.name$& msg)=0;
$-if$
$-foreach$
};


$foreach namespaceprt$
}
$-foreach$

#endif

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] [чего-то похожего на rlg

Сообщение Venom » 17 янв 2014, 06:36

Xecutor писал(а):Несколько лет назад для внутрипроектных нужд я налабал штуку под названием protogen (изначально codegen).
Делает он вот что:
Скрытый текст: ПОКАЗАТЬ
Есть языконезависимое описание сообщений. Типы для полей сообщений произвольные, их названия нужно просто объявить.
Как сообщения так и поля сообщений могут иметь произвольные свойства и метасвойства.
Так же есть (необязательное) понятие протокол - коллекция сообщений с дополнительными свойствами уровня протокола.
И есть проект. Задаёт входные/выходные директории и, самое главное, шаблоны.
Шаблоны это текстовые шаблоны с достаточно сложным языком поддерживающим циклы, условия и переменные.
Собственно приложение парсит определения сообщений и протоколов, и скармливает их движку шаблонов.
Из всего этого можно генерировать произвольные исходники для произвольных языков.
Но шаблоны должны поддерживать объявленные типы.
Мы сделали набор шаблонов для C++ и Java, а так же небольшие библиотечки для сетевого взаимодействия.
Получилось весьма удобно. Создание чего-нибудь типа протокола удалённого администрирования делается на 1-2-3.
Сейчас это закрытая штука, но в принципе там ничего секретного нет, я могу поговорить с начальством на тему открыть исходники, если интересно.
Примеры:
Определение мессаг и протокола:

Код: Выделить всё

type bool
type byte
type int16
type int32
type int64
type string

property opt _bool
  optional true
  mandatory false
end

property mnd _bool
  default
  optional false
  mandatory true
end

property notarray _bool
  default
  array false
end

property array _bool
  array true
end

property outmsg _bool
  default message
  outmsg true
  inmsg false
end

property inmsg _bool
  outmsg false
  inmsg true
end

property inoutmsg _bool
  outmsg true
  inmsg true
end

property innerMessage _bool
  default message
  innerMessage false
end

enum byte FileType
  file 1
  dir 2
  link 3
  special 4
end

message FileInfo
  property innerMessage=true
  string name 1
  int32 size 2
  FileType fileType 3
end

message GetFileList 1
  string path 1
  int32 count 2
end

message GetFileListResp 2
  FileInfo list 1 array opt
  int32 reqId 2 opt
  int32 error 3 opt
  bool more 4 opt
end

message GetMoreFileList 3
  int32 reqId 1
end

message GetMoreFileListResp 4
  FileInfo list 1 array opt
  bool more 2
  int32 error 3 opt
end

message CancelMoreFileList 5
  int32 reqId 1
end

protocol FileSystemAccess
  GetFileList outmsg
  GetFileListResp inmsg
  GetMoreFileList outmsg
  GetMoreFileListResp inmsg
  CancelMoreFileList outmsg
end

Вот шаблон генерирующий интерфейс обработчика:

Код: Выделить всё

#ifndef __$foreach namespaceprt$$var namespaceprt:uc$_$-foreach$$var protocol.name:uc$HANDLER_HPP__
#define __$foreach namespaceprt$$var namespaceprt:uc$_$-foreach$$var protocol.name:uc$HANDLER_HPP__ 1
$foreach message$
$if message.inmsg$
#include "$var msginc.path$$var message.name$.hpp"
$-if$
$-foreach$

$foreach namespaceprt$
namespace $var namespaceprt$ {
$-foreach$
class $var handler.class${
public:
$foreach message$
$if message.inmsg$
  virtual void handle(const $ifdef msgns$$var msgns$$-ifdef$$var message.name$& msg)=0;
$-if$
$-foreach$
};


$foreach namespaceprt$
}
$-foreach$

#endif
Хех, а у нас похожую задачу выполняла лапша из скриптов на Питоне. То, что у тебя темплейты - хардкодилось в скрипты прямо, и переключалось аргументами. Не сказать, чтобы это было удобно или надежно, но все-таки решало чуть больше проблем, чем создавало. Впрочем, у нас вообще был удивительно низкий уровень контроля за качеством, с учетом того, что наше SDK выкатывалось каким-то геологам и медикам.

Спасибо за предложение, но у меня есть сильные сомнения в оптимальности его использования: полное отсутствие поддержки, комьюнити и документации(?). Не для слабых духом путь =)
Алсо, на твоем месте я бы все равно задумался о переговорах с начальством на тему выкатывания в опенсурс: в каждом втором проекте этот велосипед изобретается заново.

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

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Jolly Roger » 20 янв 2014, 06:05

Venom писал(а):
Максим Кич писал(а): А структуры попроще читаться должны нормально. Форматированием только не стоит пренебрегать и нормальную подсветку иметь.
kipar писал(а): Если формат уже продуман и ты уверен что будут огромные объемы - почему бы и нет. Так и так бинарный формат понадобится для сейвов.
Ну, тогда на конкретных релейтед примерах спрошу совета. Есть листы вот такого вида, мои - их близкородственные порождения:
Осторожно, размеры!
Скрытый текст: ПОКАЗАТЬ
Изображение
Изображение
Слегка несвежие и не самые удачные реализации, но это и не важно.
Как благородному дону их хранить?
С интересом читал тему. Вставлю и свои пять копеек.

Лично мне эта простынят не нравится.
Почему? Исключительно из собственного печального опыта (см подпись). Реализация всего, что там перечислено, похоже на попытку сначала продавать билеты на поезд и нанимать кондукторов, а потом строить железную дорогу.

Нужно кушать сосиску с другой стороны и реализовать, можно на бумаге, геймплейную ситуацию, например сражение и решить какими статами, можно это выразить.
А не делать статы и пытаться приклеить к ним геймплей, это путь к корзине или сильной смене концепции. Оба варианта мне не нравятся. :cry:
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Venom » 20 янв 2014, 06:14

Jolly Roger писал(а): С интересом читал тему. Вставлю и свои пять копеек.

Лично мне эта простынят не нравится.
Почему? Исключительно из собственного печального опыта (см подпись). Реализация всего, что там перечислено, похоже на попытку сначала продавать билеты на поезд и нанимать кондукторов, а потом строить железную дорогу.

Нужно кушать сосиску с другой стороны и реализовать, можно на бумаге, геймплейную ситуацию, например сражение и решить какими статами, можно это выразить.
А не делать статы и пытаться приклеить к ним геймплей, это путь к корзине или сильной смене концепции. Оба варианта мне не нравятся. :cry:
Надеюсь, мне удастся решить вопрос со свободным временем и переездом, и тема эта интерес будет представлять не только теоретический =)

Простыня эта - из настолки с большой историей, обкатанной и неплохо мне известной. Да, часть параметров, привязанных к социалке полетят в мусор.
Если идти с другой стороны - выйдет Desktop Dungeons, Айзак или еще какой минимализм. Зачем нужно что-то кроме полоски хп и (не обзательно) маны? Ну, можно еще силу, ловкость и интеллект добавить для проверок всего на свете. С точки зрения геймплея многие вещи, вроде разделения оружейки по тяжести, видов магии банально не нужны.

Геймплейные ситуации уже много раз обкатаны, у меня есть некоторый опыт с SR4 =)

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

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Jolly Roger » 20 янв 2014, 06:35

Venom писал(а):
Jolly Roger писал(а): С интересом читал тему. Вставлю и свои пять копеек.

Лично мне эта простынят не нравится.
Почему? Исключительно из собственного печального опыта (см подпись). Реализация всего, что там перечислено, похоже на попытку сначала продавать билеты на поезд и нанимать кондукторов, а потом строить железную дорогу.

Нужно кушать сосиску с другой стороны и реализовать, можно на бумаге, геймплейную ситуацию, например сражение и решить какими статами, можно это выразить.
А не делать статы и пытаться приклеить к ним геймплей, это путь к корзине или сильной смене концепции. Оба варианта мне не нравятся. :cry:
Надеюсь, мне удастся решить вопрос со свободным временем и переездом, и тема эта интерес будет представлять не только теоретический =)

Простыня эта - из настолки с большой историей, обкатанной и неплохо мне известной. Да, часть параметров, привязанных к социалке полетят в мусор.
Если идти с другой стороны - выйдет Desktop Dungeons, Айзак или еще какой минимализм. Зачем нужно что-то кроме полоски хп и (не обзательно) маны? Ну, можно еще силу, ловкость и интеллект добавить для проверок всего на свете. С точки зрения геймплея многие вещи, вроде разделения оружейки по тяжести, видов магии банально не нужны.

Геймплейные ситуации уже много раз обкатаны, у меня есть некоторый опыт с SR4 =)
=D> =D> =D> =D>
Вы очень точно уловили мою идею!
То, что описано, было бы иделально! Если можно было бы сделать игру без статов - это шикарно.
Один, два - великолепно!
Остальное, по необходимости.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Venom » 20 янв 2014, 07:12

Jolly Roger писал(а): =D> =D> =D> =D>
Вы очень точно уловили мою идею!
То, что описано, было бы иделально! Если можно было бы сделать игру без статов - это шикарно.
Один, два - великолепно!
Остальное, по необходимости.
А игрока чем удерживать? RoR, BoI, FTL, DD - игры с минималистским подходом - ухитрялись удержать моё внимание буквально на несколько часов. И то, в основном, собирательством, к которому я неравнодушен =)

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

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

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Jolly Roger » 20 янв 2014, 09:14

Venom писал(а):
Jolly Roger писал(а): =D> =D> =D> =D>
Вы очень точно уловили мою идею!
То, что описано, было бы иделально! Если можно было бы сделать игру без статов - это шикарно.
Один, два - великолепно!
Остальное, по необходимости.
А игрока чем удерживать? RoR, BoI, FTL, DD - игры с минималистским подходом - ухитрялись удержать моё внимание буквально на несколько часов. И то, в основном, собирательством, к которому я неравнодушен =)

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

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] рогалика

Сообщение Venom » 20 янв 2014, 09:29

Jolly Roger писал(а): Точно, что не статами, которые добавлены ради статов. :)
Никто и не говорит, что статы должны быть ради количества. Но разделение проверок на разные статы даёт возможность игроку развлекать себя билдостроением: вместо скучного сферического в вакууме "Стрелка" игрок может вылепить "Стрелка с двумя модифицированными пистолетами, обладающим навыками в механике и перком на одинаковое владение обеими руками" или "Стрелка с арбалетом, полагающегося на скрытность и использование гаджетов". Даже если это не меняет кардинально геймплей, это дает возможность развлекать себя отыгрышем в голове =)
В Cataclysm играл? Отлично работает похожая механика: вывалим на игрока кучу всего, пусть сам решает что делать. Игра при этом сводится к одному и тому же, но ощущения разные Х)

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

Re: Разработка [пока-что-без-имени] [чего-то похожего на rlg

Сообщение Jolly Roger » 21 янв 2014, 11:16

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

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] [чего-то похожего на rlg

Сообщение Venom » 21 янв 2014, 11:32

Jolly Roger писал(а):Всё же Катаклизм берёт не наваленной кучей, а богатством геймплейных возможностей, что несколько разные вещи.
При всём уважении, не соглашусь.
Оговорка - я не слежу за ним примерно с тех пор, как его бросил Вейлс.
Раньше геймплей в любом случае сводился примерно к одному и тому же. Геймплейные возможности были по большей части гиммиками, всё сводилось к отыгрышу в голове либо минмаксу. И да, это была именно куча безо всякого единного вижна - по крайней мере, со стороны игрока систему узреть было практически невозможно.
Насколько знаю, это и сейчас точно такой же charlie foxtrot: монстры изо всех возможных источников, рандомный шмот и оружие, имплантанты и мутации, а еще можно форт в лесу и сломать ногу. И кошачьи ушки из меха.

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

Re: Разработка [пока-что-без-имени] [чего-то похожего на rlg

Сообщение kipar » 21 янв 2014, 13:03

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

Venom
Сообщения: 51
Зарегистрирован: 05 апр 2011, 21:44

Re: Разработка [пока-что-без-имени] [чего-то похожего на rlg

Сообщение Venom » 21 янв 2014, 13:36

kipar писал(а):
Venom писал(а): можно форт в лесу и сломать ногу. И кошачьи ушки из меха.
Все-таки несколько отличается от двух стрелков с примерно одинаковым уроном, один из которых будет качать меткость чтобы реже промахиваться, а другой точность чтобы чаще наносить двойной урон.
Вот если эти статы будут поддерживать разнообразные игровые механики (гаджеты, скрытность и механика из твоего примера) то да (хотя тогда и статы не так важны, просто приятный бонус). Но без самих этих механик статы не нужны.
kekeke. Но в Катаклизме как раз-таки и есть эта проблема: стрелки с одинаковым уроном повсюду. Образно выражаясь, офк. Ушки, бтв - гиммик. Форт - механика, да, но unintended, судя по всему. Упоминались они в контексте того, что у Катаклизма отсутствует целостность самой идеи.
Да, так и планируется - на разных статах будет висеть разная механика. Я не считаю нужным добавлять неиспользуемые статы.
Другой вопрос в том, что у нас с предыдущим оратором диаметрально разные точки зрения на то, насколько узко должны быть специализированы и дифференцированы статы.

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

Re: Разработка [пока-что-без-имени] [чего-то похожего на rlg

Сообщение kipar » 21 янв 2014, 14:20

Venom писал(а): Да, так и планируется - на разных статах будет висеть разная механика. Я не считаю нужным добавлять неиспользуемые статы.
Другой вопрос в том, что у нас с предыдущим оратором диаметрально разные точки зрения на то, насколько узко должны быть специализированы и дифференцированы статы.
Насколько я понял Jolly Rogera, он сказал точно тоже самое - статы ради статов не нужны, а к если каждому есть механика и соответствующие геймплейные возможности - другое дело. Я в катаклизме честно говоря не вижу "стрелков с одинаковым уроном" - в зависимости от того чем дерешься стиль игры все-таки меняется. А что много однотипных пистолетов или бесполезного оружия - ну для атмосферы же.
Идеи конечно нет, хотя если почитать заметки в лабораториях, получается что-то похожее на SCP (точнее явное подражание SCP, чего уж там), в котором тоже особой центральной идеи не заметно.

Ответить

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

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