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 assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
ufr/sopra10#42
Loading…
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)
{