Today I started my challenge to create a game in 7 days.
Today I started my challenge to create a game in 7 days.
First, I selected a theme — I went with "gathering". The theme was suggested by AI, but the idea is all mine.
The concept I came up with is about traveling through random dimensions and gathering resources to help a village grow and progress. Yeah, the idea is pretty basic — I know — but I like it. I want the game to feel a little like Terraria and Stardew Valley.
🎮 My Inspiration
What I love about Terraria is the freedom to explore and how every world feels different and mysterious. From Stardew Valley, I want to bring in that cozy atmosphere — the feeling that even grinding can be relaxing if done right. I hope to create something that blends both: a cozy game with surprises and exploration.
⚙️ What I Did Today
-
I created a simple system that generates random names for each location.
Player Logic
Crystal logic
Life bar like terraria
-
I started planning out how the dimension travel will work.
🧠 Today's Challenges
It took me longer than expected to figure out how to generate good random names. I didn’t want names to sound too similar or too weird. I might improve it later by adding name templates or lore-based prefixes.
Also, just organizing the basic structure of the project and figuring out what to do first took more time than I thought.
📅 Plans for Tomorrow
-
Add first types of resources that the player can gather.
-
Add basic enemies that appear in random dimensions.
-
Try to make simple combat and resource drops.
I also created a system that generates a random name for each location.
@export_category("Language-Based Name Generator") @export var language_rules: Dictionary = { "syllables": ["ar", "thor", "mor", "del", "fin", "gal", "len", "dor", "eth", "ion"], "prefixes": ["Dark", "High", "Old", "Lost", "New", "Great", "Little"], "suffixes": ["ville", "ham", "ford", "bury", "stead", "wick", "mouth"], "patterns": [ {"template": "PREFIX-SYLLABLE", "weight": 0.3}, {"template": "SYLLABLE-SYLLABLE", "weight": 0.4}, {"template": "SYLLABLE-SUFFIX", "weight": 0.3} ] } func generate_location_name() -> String: var pattern = select_pattern() var name = "" for token in pattern.split("-"): match token: "PREFIX": name += language_rules["prefixes"][randi() % language_rules["prefixes"].size()] "SUFFIX": name += language_rules["suffixes"][randi() % language_rules["suffixes"].size()] "SYLLABLE": name += language_rules["syllables"][randi() % language_rules["syllables"].size()] _: name += token # Делаем первую букву заглавной if name.length() > 0: name = name[0].to_upper() + name.substr(1) return name func select_pattern() -> String: var total_weight = 0.0 for p in language_rules["patterns"]: total_weight += p["weight"] var random_value = randf() * total_weight var cumulative_weight = 0.0 for p in language_rules["patterns"]: cumulative_weight += p["weight"] if random_value <= cumulative_weight: return p["template"] return language_rules["patterns"][0]["template"]