Игра на семь дней (A game for seven days)
Привет!
Прошлой зимой я начал изучать Ren'Py и начал игру, разработку которой никогда не продолжал с тех пор. Пока я всё еще планирую однажды вернуться к её разработке, сегодня я проверил папку и подумал, что исходный код script.rpy, пожалуй, может быть интересен, если кто-нибудь захочет сделать игру, используя ту же концепцию.
Идея игры заключается в том, что события игры происходят в течение одной реальной недели. Вам нужно играть ежедневно, чтобы завершить игру.
Может вам нужно ежедневно получать предмет для строительства чего-нибудь или встречаться с одним из тем же персонажем каждое утро для достижения конца истории? Для каждого дня недели существует иной вариант развития событий и игрок должен сыграть во все (не обязательно проходить по порядку, если пропустите вторник, можете сыграть в следующий вторник).
Мой исходный сюжет был о приезде кого-либо в новый город, переезде в пустую квартиру и ежедневной попытки найти предмет мебели для заполнения пустого месте в комнате, встречая новых людей на своём пути — но мне любопытно узнать, какие еще истории смогут придумать люди, используя этот принцип.
Вот исходный script.rpy без сюжета. Всего лишь каркас с распознавание даты, завершённым/незавершённым переключением дней и шаблоном предложений о “предметах”.
## script.rpy для игры за семь дней
## оригинал исходного кода, созданного nicolas (probablement.net)
## Время
init -1 python:
import time
time = time.localtime(time.time()).tm_wday
days = ['Понедельник', # 0
'Вторник', # 1
'Среда', # 2
'Четверг', # 3
'Пятница', # 4
'Суббота', # 5
'Воскресенье'] # 6
## Начало
label start:
# Который час?
$day = time
$dayname = days[time]
# Проверка того, завершена ли уже игра.
if persistent.all_items:
centered "Я уже получил все предметы."
return
# Общее начало.
centered "[dayname]"
"Я проснулся."
# Первое объяснение.
if not persistent.first_exp:
"Мне нужно получить 7 предметов."
$persistent.first_exp = True
jump gotoday
## Перейти ко дню.
label gotoday:
# Перейти к ежедневному сценарию.
if day == 0:
jump mon_start
elif day == 1:
jump tue_start
elif day == 2:
jump wed_start
elif day == 3:
jump thu_start
elif day == 4:
jump fri_start
elif day == 5:
jump sat_start
elif day == 6:
jump sun_start
else:
"Время вышло!"
return
## 0 ПОНЕДЕЛЬНИК
label mon_start:
# Проверить прошлое.
if persistent.mon_item:
"Я уже получил предмет в понедельник."
jump closing
elif persistent.mon_started:
"В прошлый понедельник я ничего не нашел."
# Флаг day, как только начался день.
$persistent.mon_started = True
"В этот понедельник я получу предмет понедельника."
menu:
"Получить предмет понедельника":
$persistent.mon_item = True
"Вы получили предмет понедельника!"
jump closing
## 1 ВТОРНИК
label tue_start:
# Проверить прошлое.
if persistent.tue_item:
"Я уже получил предмет во вторник."
jump closing
elif persistent.tue_started:
"В прошлый вторник я ничего не нашел."
# Флаг day, как только начался день.
$persistent.tue_started = True
"В этот вторник я получу предмет вторника."
menu:
"Получить предмет вторника":
$persistent.tue_item = True
"Вы получили предмет вторника"
jump closing
## 2 СРЕДА
label wed_start:
# Проверить прошлое.
if persistent.wed_item:
"Я уже получил предмет в среду."
jump closing
elif persistent.wed_started:
"В прошлую среду я ничего не нашел."
# Флаг day, как только начался день.
$persistent.wed_started = True
"В эту среду я получу предмет среды."
menu:
"Получить предмет среды":
$persistent.wed_item = True
"Вы получили предмет среды!"
jump closing
## 3 ЧЕТВЕРГ
label thu_start:
# Проверить прошлое.
if persistent.thu_item:
"Я уже получил предмет в четверг."
jump closing
elif persistent.thu_started:
"В прошлый четверг я ничего не нашел."
# Флаг day, как только начался день.
$persistent.thu_started = True
"В этот четверг я получу предмет четверга."
menu:
"Получить предмет четверга":
$persistent.thu_item = True
"Вы получили предмет четверга!"
jump closing
## 4 ПЯТНИЦА
label fri_start:
# Проверить прошлое.
if persistent.fri_item:
"Я уже получил предмет в пятницу."
jump closing
elif persistent.fri_started:
"В прошлую пятницу я ничего не нашел."
# Флаг day, как только начался день.
$persistent.fri_started = True
"В эту пятницу я получу пятничный предмет."
menu:
"Получить пятничный предмет":
$persistent.fri_item = True
"Вы получили пятничный предмет!"
jump closing
## 5 СУББОТА
label sat_start:
# Проверить прошлое.
if persistent.sat_item:
"Я уже получил предмет в субботу."
jump closing
elif persistent.sat_started:
"В прошлую субботу я ничего не нашел."
# Флаг day, как только начался день.
$persistent.sat_started = True
"В эту субботу я получу субботний предмет."
menu:
"Получить субботний предмет":
$persistent.sat_item = True
"Вы получили субботний предмет!"
jump closing
## 6 ВОСКРЕСЕНЬЕ
label sun_start:
# Проверить прошлое.
if persistent.sun_item:
"Я уже получил предмет в воскресенье."
jump closing
elif persistent.sun_started:
"В прошлое воскресенье я ничего не нашел."
# Флаг day, как только начался день.
$persistent.sun_started = True
"В это воскресенье я получу воскресный предмет."
menu:
"Получить воскресный предмет":
$persistent.sun_item = True
"Вы получили воскресный предмет!"
jump closing
## Конец
label closing:
if persistent.mon_item and persistent.tue_item and persistent.wed_item and persistent.thu_item and persistent.fri_item and persistent.sat_item and persistent.sun_item:
$persistent.all_items = True
centered "Я получил все 7 предметов!"
else:
centered "До завтра!"
return
Желаю приятного вечера.
Лучший,~ nicolas
Источник[править | править код]
Статья "A game for seven days" на английском языке
На главную страницу | Книга рецептов Энциклопедии Ren'Py | Форумы Lemma Soft | Вернуться к началу статьи |