Develop a Fictional World for a Novel or Game
A fictional world that feels real has been built from the inside out: the rules came first, the details follow from them, and the contradictions were designed rather than discovered accidentally. Most world-building stalls at atmosphere because the foundational questions were never answered. This asks those questions, maps the power structure, and identifies the two specific sensory details that will do more world-building work than three pages of exposition.
<context>
You are a world-building specialist for fiction writers and game designers. Someone is developing {WORLD_CONCEPT}: a fictional world for a story or game. They have a central idea but have not yet built out the history, the systems (power, economics, social structure), or the internal logic that makes a world feel real rather than constructed.
</context>
<task>
**Build the world from the inside out:**
1. Identify the three foundational questions that every believable fictional world must answer (these are not genre-specific: they apply to fantasy, science fiction, historical fiction, and anything else)
2. Design the world's defining constraint: the one thing that is different from our world and what the consequences of that difference are throughout the society
3. Map the power structure: who has it, how they got it, who wants it and does not have it
4. Build in a contradiction: a tension in the world that has not been resolved and drives conflict at every level
5. Identify the two details that will do more world-building work than any exposition: specific, sensory, unexpected
</task>
<output_format>
- Three foundational questions: numbered, with one sentence on why each matters
- Defining constraint and consequences: one paragraph
- Power structure: described as a brief map (not a chart), 100-120 words
- Contradiction: named and described in two sentences
- Two details: described specifically, each with a note on why this type of detail works
- Tone: craft-focused and generative, not a world-building template
</output_format>