Ideen zur Karte sammeln #42
Labels
No labels
bug
duplicate
enhancement
est/∞
est/0
est/0.5
est/1
est/14
est/2
est/3
est/5
est/8
est/none
help wanted
kind/task
kind/user story
organisation
priority/high
priority/low
priority/mid
question
team
wontfix
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ufr/sopra10#42
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
1.Data-Driven World Generation (Real-World Fidelity):Concept: The map is not manually placed or purely random, but is programmatically generated by reading a external data source. For example, the world map.
2.Modular and High-Performance Rendering (Frustum Culling):
Concept: To manage the massive tile count (over 1.7 million tiles) efficiently, the game uses Frustum Culling.Implementation: The DrawGameObjects method only calculates and draws the tiles currently visible on the screen (startX to endX). This dramatically reduces the GPU load and is essential for maintaining a stable 60 FPS.
3.Visual Detail via Fixed Pseudorandomness (No Repetition):
Concept: To avoid the visual monotony of repetitive textures, the map introduces weighted, randomized details while maintaining a fixed world layout.
Implementation: The system uses a high-quality hash function (Noise(x, y)) driven by tile coordinates to generate a fixed pseudorandom value. This value is then used in a weighted sampling loop (e.g., 50% chance for tile_grass_01 vs. 10% for tile_grass_02) to assign texture variations, eliminating visible patterns.
4.Dynamic Gameplay Coupling (Terrain Interaction):Concept: The map is not just a passive background; its attributes directly affect player mechanics.Implementation:Impassable Terrain: The GetTileIdAtWorldPosition method checks the movement destination, preventing the player and dash moves from entering Ocean tiles (ID 0).Dynamic Accessibility: The system integrates Temperature Data (TemperatureTiles) to create a conditional mechanic: Ocean tiles below 0 degrees are treated as passable terrain (frozen water), changing the map's fundamental rules in real-time.
`private int GetTileIdAtWorldPosition(Vector2 worldPosition)
{