At no point did I compare myself or my work to games like Honey Select or DaZ. Games at that level are usually made by teams of several people, organized in a completely different way, and with many more years of development behind them. I work alone, and Lusty Buccaneers is a relatively new game. Even so, I release new content every fifteen days, which very few developers do, even those using AI.
And once again, you assume that making a game—or even creating images or animations with AI—is easy, when you’ve never done it yourself. Most importantly, making a game is much more than just that.
If you truly believe it’s that easy and that I’m earning too much, then feel free to stop what you’re doing and make your own game. I don’t think it’s necessary to continue this discussion. Best regards.
# 1. THE LOGIC (Python Class)
# This handles the data. It saves automatically with the game.
init python:
class Quest:
def __init__(self, id, title, description):
self.id = id
self.title = title
self.description = description
self.completed = False
self.timestamp = 0 # To sort by newest if needed
# Helper functions to make the script code clean
def add_quest(id, title, desc):
q = Quest(id, title, desc)
store.quests.append(q)
renpy.notify(f"New Quest: {title}") # Free UI polish
def update_quest(id, new_desc):
for q in store.quests:
if q.id == id:
q.description = new_desc
renpy.notify(f"Quest Updated: {q.title}")
return
def complete_quest(id):
for q in store.quests:
if q.id == id:
q.completed = True
q.description = "Quest Completed."
renpy.notify(f"Quest Completed: {q.title}")
return
# Initialize the variable that holds the list (Crucial for Save/Load)
default quests = []
# -----------------------------------------------------------
# 2. THE UI (The Journal)
# A simple screen with two tabs: Active and Completed
screen quest_journal():
modal True # Blocks interaction with the game while open
tag menu # Replaces other menus if needed
frame:
align (0.5, 0.5)
xysize (800, 600)
padding (20, 20)
vbox:
spacing 20
# Header with Close Button
hbox:
xfill True
text "Quest Journal" size 40 bold True color "#ffffff"
textbutton "X" action Hide("quest_journal") align (1.0, 0.0)
# The List of Quests (Scrollable)
viewport:
mousewheel True
draggable True
scrollbars "vertical"
vbox:
spacing 15
text "--- Active Quests ---" size 24 color "#f39c12"
# Loop through ACTIVE quests
for q in quests:
if not q.completed:
frame:
xfill True
padding (10, 10)
background "#333333"
vbox:
text q.title size 22 bold True color "#ecf0f1"
text q.description size 18 color "#bdc3c7"
null height 20
text "--- Completed ---" size 24 color "#27ae60"
# Loop through COMPLETED quests
for q in quests:
if q.completed:
text "✔ [q.title]" size 20 color "#7f8c8d"
# Optional: A HUD button to open the journal
screen quest_hud_button():
textbutton "Journal":
align (0.95, 0.05)
action Show("quest_journal")
# -----------------------------------------------------------
# 3. USAGE EXAMPLE (How to use it in the script)
label start:
show screen quest_hud_button
"Welcome to the game. Let's start a quest."
# START A QUEST
# Usage: add_quest(unique_id, Title, Description/Hint)
$ add_quest("q_oreshi", "The Legendary Sword", "Go to the market and buy the Oreshi Sword.")
"I should check my journal."
# ... Game happens ...
# UPDATE A QUEST (e.g. step 2)
"I bought the sword! Now I need to find Zoro."
$ update_quest("q_oreshi", "Bring the sword to Zoro at the gym.")
# ... More Game happens ...
# COMPLETE A QUEST
"Zoro took the sword. He seems happy."
$ complete_quest("q_oreshi")
"Done. That took 0 effort to implement. For real, shit is tuff. Just implement it and fuck your walkthrough."
return