Add ideas about level wallpapers
This commit is contained in:
parent
248fa10a5f
commit
42caa20f6e
49
Ideas.md
49
Ideas.md
|
@ -170,6 +170,55 @@ For creating Doodads in particular:
|
||||||
wants to export with the level file itself, for easy sharing.
|
wants to export with the level file itself, for easy sharing.
|
||||||
* It should have space to store a custom background image.
|
* It should have space to store a custom background image.
|
||||||
|
|
||||||
|
## Wallpaper Images
|
||||||
|
|
||||||
|
* Levels can pick a "wallpaper image" to go behind their pixels. One example of
|
||||||
|
a wallpaper would be a sheet of standard ruled notebook paper.
|
||||||
|
* The texture file will be a square (rectangular maybe ok) with four quadrants
|
||||||
|
from which the textures will be extracted. For example if the overall image
|
||||||
|
size was 100x100 pixels, it will be divided into the four 50x50 quadrants.
|
||||||
|
1. `TL`: Top left corner is the top left edge of the "page" the level is on
|
||||||
|
2. `TR`: Top right corner is the repeated "top of page" texture.
|
||||||
|
3. `BL`: Bottom left corner is the repeated "left of page" texture.
|
||||||
|
4. `BR`: Bottom right corner is the repeated background texture that extends
|
||||||
|
infinitely in all directions.
|
||||||
|
* Levels will be able to choose a "page type" which controls how the wallpaper
|
||||||
|
will be drawn and how the level boundaries may be constrained. There will be
|
||||||
|
four options:
|
||||||
|
1. **Unbounded:** The map can freely grow in any direction, including into the
|
||||||
|
negative X/Y coordinates. The map author will not run up against a boundary
|
||||||
|
as the level grows in any direction.
|
||||||
|
2. **No Negative Space:** The map coordinates can not dip below `(0,0)`, the
|
||||||
|
origin at the top-left edge of the map. The map can grow infinitely in the
|
||||||
|
positive X and Y directions (to the right and down) but is constrained on
|
||||||
|
the left and right edges. The game engine will stop scrolling the map when
|
||||||
|
the top or left edges are reached, and those edges will behave like a solid
|
||||||
|
wall.
|
||||||
|
3. **Bounded:** The map has a fixed width and height and is bounded on all
|
||||||
|
four edges.
|
||||||
|
4. **Bounded, Mirrored Wallpaper:** same as Bounded but with a different
|
||||||
|
wallpaper behavior.
|
||||||
|
* The page types will have their own behaviors with how wallpapers are drawn:
|
||||||
|
* **Unbounded:** only the `BR` texture from the wallpaper is used, repeated
|
||||||
|
infinitely in the X and Y directions. The top-left, top, and left edge
|
||||||
|
textures are not used.
|
||||||
|
* **No Negative Space:** the `TL` texture is drawn at coordinate `(0,0)`.
|
||||||
|
To its right, the `TR` texture is repeated forever in the X direction, and
|
||||||
|
along the left edge of the page, the `BL` texture is repeated in the Y
|
||||||
|
direction. The remaining whitespace on the page repeats the `BR` texture
|
||||||
|
infinitely.
|
||||||
|
* **Bounded:** same as No Negative Space.
|
||||||
|
* **Bounded, Mirrored Wallpaper:** same as No Negative Space, but all of the
|
||||||
|
_other_ corners and edges are textured too, with mirror images of the Top,
|
||||||
|
Top Left, and Left textures. This would look silly on the "ruled notebook"
|
||||||
|
texture, but could be useful to emborder the level with a fancy texture.
|
||||||
|
* The game will come with a few built-in textures for levels to refer to by
|
||||||
|
name. These textures don't need to be distributed with the map files themselves,
|
||||||
|
as every copy of the game should include these (or a sensible fallback would
|
||||||
|
be used).
|
||||||
|
* The map author can also attach their own custom texture that will be included
|
||||||
|
inside the map file.
|
||||||
|
|
||||||
# Text Console
|
# Text Console
|
||||||
|
|
||||||
* Create a rudimentary dev console for entering text commands in-game. It
|
* Create a rudimentary dev console for entering text commands in-game. It
|
||||||
|
|
Loading…
Reference in New Issue
Block a user