Вехи разработки рогалика

Темы, связанные с проектированием и программированием roguelike-игр

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

Ответить
Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Вехи разработки рогалика

Сообщение Foxman » 22 янв 2012, 20:11

При написании рогалика столкнулся с проблемой. Неизвестно где я и куда идти. То есть я понимаю, что не сделано то и это, но это хаотичный рой мыслей.
Скрытый текст: ПОКАЗАТЬ
Веха или Milestone (майлстоун) — термин, использующийся в управлении проектами, контрольная точка, значимый, ключевой момент, (например, переход на новую стадию, новый этап в ходе выполнения проекта). Как правило, с этим моментом связано завершение какого-либо ключевого мероприятия, подписание важных документов или любые другие значительные действия, предусмотренные планом проекта. Сдвиг вехи приводит к сдвигу всего проекта.

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

Финальный вариант списка буду редактировать в первом посте, жду ваших предложений.

Итак...

Веха 1. "Его видо"
Отображение карты
Отображение главного героя
Отображение сообщений (Удобно для отладки)

Веха 2. "Оно ходит"
Перемещение героя
Проверка препятствий

Веха 3. "Оно видит"
Контроль зоны видимости

Веха 4.
Генерация случайного заполнения карты с примитивными предметами и объектами. (камень, палка)
Базовое взаимодействие с окружением. (взять, посмотреть инвентарь, выбросить)

Веха 5.
Добавление контейнеров и взаимодействие с ними. (сундук, куча хлама, шкаф, открыть/закрыть)

Веха 6.
Добавление дверей, базовое взаимодействие с ними (открыть/закрыть)

...
Последний раз редактировалось Foxman 23 янв 2012, 05:33, всего редактировалось 1 раз.

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Вехи разработки рогалика

Сообщение Jesus05 » 23 янв 2012, 01:30

1 веха: "его видно"
Отрисовка карты
Отрисовка ГГ

2 веха: "оно бегает"
Перемещение ГГ.
Скроллинг карты и постраничный (покомнатный) вывод карты.
Проверка препятствий.

3 веха: "оно видит"
Просчет ФОВ.

4 веха: "упорядочивание хаоса" (тут то я и сдулся на своем недо-движке-недо-рогалике)
Генератор подземелья.

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

Re: Вехи разработки рогалика

Сообщение JustHarry » 23 янв 2012, 06:13

Вехи, лол.

http://rlgclub.ru/wiki/%D0%9A%D0%B0%D0% ... 0%BE%D0%B2

Все уже придумано до нас.
Скрытый текст: ПОКАЗАТЬ
Веха 1.
Рогалик готов, он лучше АДОМА и любого другого рогалика. Я сделал игру мечты.

Веха 2.
Хватит мечтать, пора кодить!

Веха 3.
... НЕ МОГУ ПЕРЕРИСОВАТЬ ЭКРАН

Аватара пользователя
Foxman
Сообщения: 246
Зарегистрирован: 19 янв 2012, 20:30

Re: Вехи разработки рогалика

Сообщение Foxman » 23 янв 2012, 06:21

JustHarry писал(а):Вехи, лол.
Пришел и всю малину обкакал, ну и кто ты после этого?

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

Re: Вехи разработки рогалика

Сообщение Xecutor » 25 янв 2012, 13:33

0. Написать язык программирования на котором будешь писать рогалик :)

У меня уже в этом деле виден свет в конце туннеля.
Примерчег:

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

attr rarity
class Item(level)
  level
end

class Bonus
end

class IntBonus(value):Bonus
  value
  func describe()
    return "intellegence +$value"
  end
end

class StrBonus(value):Bonus
  value
  func describe()
    return "strength +$value"
  end
end

class Sword(l):Item(l)
  @{rarity=70}
  power=10+level*5
  func describe()
    return "Sword +$power"
  end
end

class Shield(l):Item(l)
  @{rarity=50}
  defense=10+level*5
  func describe()
    return "Shield [$defense]"
  end
end

class Ring(l):Item(l)
  @{rarity=20}
  bonus=(a=Bonus.getChildren())[math::irand(#a)](3+math::irand(level))
  func describe()
    return "Ring of $bonus.describe()"
  end
end

func spawnItem(level)
  sum=0
  items=Item.getChildren()
  for i in items
    sum+=i.{rarity}
  end
  sum=math::rand(sum)
  for i in items
    r=i.{rarity}
    return i(level) if sum<r
    sum-=r
  end
end

for i in 1..10
  print(spawnItem(3+math::irand(3)).describe())
end
Выхлоп:
Shield [25]
Ring of strength +6
Sword +35
Shield [35]
Ring of intellegence +3
Sword +35
Sword +25
Sword +30
Shield [35]
Shield [30]

Аватара пользователя
Apromix
Мастер
Сообщения: 1236
Зарегистрирован: 04 июл 2011, 10:44
Откуда: Украина, Черновцы
Контактная информация:

Re: Вехи разработки рогалика

Сообщение Apromix » 25 янв 2012, 13:37

Xecutor писал(а):0. Написать язык программирования на котором будешь писать рогалик :)
О-о! Это суперовская мысль! У меня даже есть идеи! А че, можно в поучительных целях взять и попробовать :D

Аватара пользователя
Toth
Сообщения: 327
Зарегистрирован: 11 ноя 2009, 13:36
Откуда: Красноярск

Re: Вехи разработки рогалика

Сообщение Toth » 09 фев 2012, 14:46

Веха 1. "Его видо"
Отображение карты
Отображение главного героя
Отображение сообщений (Удобно для отладки)

Веха 2. "Оно ходит"
Перемещение героя
Проверка препятствий

Веха 3. "Оно видит"
Контроль зоны видимости

Веха 4.
Генерация случайного заполнения карты с примитивными предметами и объектами. (камень, палка)
Базовое взаимодействие с окружением. (взять, посмотреть инвентарь, выбросить)

Веха 5.
Добавление контейнеров и взаимодействие с ними. (сундук, куча хлама, шкаф, открыть/закрыть)

Веха 6.
Добавление дверей, базовое взаимодействие с ними (открыть/закрыть)

--------

Веха 1/2 "Его Бридо". Окно со статистикой персонажа.
Веха 2/2 "Оно бродит". Расчет скорости от тайлов карты: дорога, грязь, болото, вода.
Веха 3/2 "Его видо".
Веха 4/2 "Есть где-то", и тут же Веха 4/3 "Есть что-то". Предметы. Например = КОРИЧНЕВЫЙ ТВОРОГ.

(взять, посмотреть инвентарь, выбросить) тут много противоречий в 4-ю веху не вписываются.
Взять/выбросить - Веха 2/3 "Оно может"
Посмотреть инвентарь - Веха 1/3 "Его бридо видно"

Веха 5 и 6, это на самом деле Веха 2/3 "Оно может". Т.е. мы их вычеркнем и продолжим.

Думаю так:
Веха 5. "Есть кто-то, который оно видо, и тот нехорош, нужно взять его бридо?". Существо видит видо и нападает, чтобы поиметь бридо. Оно имеет предмет и может ударить его. Будет - КИСЕТ.

Веха 6. У видо - есть боридо, параметры которого, позволяют сделать так, чтобы в КИСЕТ попал КОРИЧНЕВЫЙ ТВОРОГ. И существу будет задан вопрос: "А кто вы все?". Существо, ничего не ответит. А видо скажет: "Вы все - ЧЕРВИ!!!". А матушка скажет: "Надо было сосать ПО-ЧЕСТНОМУ".

Вот такой расклад. А автор всего в одной букве, в третьем слове - ошибся.

Ответить

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

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