-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.todo
178 lines (147 loc) · 8.71 KB
/
todo.todo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
Bugs:
================================================================================
☐ DeltaTime keeps accumulating, when Browser window looses focus (Alt+Tab out for example)
TextDisplay:
================================================================================
✔ Add a clear function, that replaces a number of characters with spaces, but leaves the Cursor-Position unaltered @done (27.10.2023, 04:54:27)
✔ Make Text-Display Moveable on Screen Similar to TileMap @done (27.10.2023, 04:54:37)
✔ Add Setters and Getters like in BitmapEntity @done (27.10.2023, 04:54:45)
✔ ScreenOffset <= done MoveTo and MoveBy added @done (27.10.2023, 04:54:57)
✔ Alpha @done (27.10.2023, 04:55:04)
☐ Make bounderies resizeable (right now bounds are always the canvas size) @low
Rendering:
================================================================================
✔ Rendering Rework @done (29.11.2023, 05:02:59)
✔ 1. Skip setting pixels, that have already been drawn to @done (13.11.2023, 07:18:33)
✔ 2. Reverse Render-Layer order @done (13.11.2023, 07:18:34)
✔ Debugging, Debugging, Debugging @done (29.11.2023, 05:02:56)
✔ TileMap.SetAlpha(CANV_ALPHA_NONE) is rendered as CANV_ALPHA_FULL @done (14.11.2023, 06:34:08)
✔ Text-Layer is glitching (as if not all pixels are set opaque, some are blended) @done (14.11.2023, 06:34:14)
✔ Transparent Pixels are still marked as "rendered" @done (14.11.2023, 07:04:58)
✔ Scene shows up in render layer. Even without a Draw method @done (15.11.2023, 05:37:26)
✔ Test how drawing a bitmap, that overflows all 4 sides functions @critical @done (27.10.2023, 04:55:57)
✔ Fix Oversized Bitmaps being cut of to early @done (27.10.2023, 04:56:05)
☐ Adapt TileSets for SpriteSheets
☐ Tinting Bitmaps/TileMaps/Sprites on Draw
☐ Collision Layers
Maps:
================================================================================
✔ Rework Setters and Getters to Work like BitmapEntities Do @critical @done (27.10.2023, 04:56:23)
☐ Test how drawing Maps, that are smaller than the screen behaves @critical
☐ Maps Collision layers
✔ MoveTo negative direction does not loop the map @critical @done (29.11.2023, 05:01:59)
✔ Maps Alpha blending @done (27.10.2023, 04:57:29)
☐ Allow to fill columns or rows of Tiles with data @high (Instead of just single tiles or the entire map)
☐ Maps Clipping-Rect @low
✔ Allow maps scroll.x any y propperties to be negative @done Map scroll replaced by x,y coords @done (27.10.2023, 04:57:19)
Keyboard Input:
================================================================================
✔ Browser side - Key-Statemanagement @done (27.10.2023, 04:57:39)
✔ Go Side @done (27.10.2023, 04:57:46)
✔ KeyStates @done (27.10.2023, 04:57:51)
Ressource Loading:
================================================================================
✔ Establish some sort of handle that can be used to identify the ressource in both browser and Go @done (27.10.2023, 06:25:56)
✔ Use Makefile to copy all files in `./project-template/ressource` to `./project-template/build/ressource` @done (29.10.2023, 02:17:44)
✔ Freeing requested Ressources @done (29.10.2023, 02:25:18)
Binary:
----------------------------------------------------------------------------
✔ Go Tells Worker to load a ressource @done (27.10.2023, 06:26:00)
✔ Worker immediatly responds with an ID as a Handle @done (27.10.2023, 06:26:02)
✔ test if worker can load stuff via AJAx @done (28.10.2023, 06:10:21)
✔ worker loads file from the `./build/ressource` Folder @done (29.10.2023, 02:40:43)
☐ if no file is found or failed to load, tell go about that
✔ Worker then transferes the bytes to GO @done (29.10.2023, 02:40:53)
✘ Worker then tells main thread to load ressource via AJAX @cancelled (28.10.2023, 06:10:23) <- worker can load files on its own
✘ Main-Thread loads requrested ressource from its `./build/ressource` folder @cancelled (28.10.2023, 06:10:24)<- worker can load files on its own
✘ Main-Thread responds back with Uint8Array holding the the bytes of the loaded ressource to worker @cancelled (28.10.2023, 06:10:30) <- worker can load files on its own
Audio:
----------------------------------------------------------------------------
☐ Tell Browser to load and provide Audio from within Go <audio> tag
☐ Function to make the browser free the loaded Audio again
☐ Trigger audio playback from within Go
☐ Cancel audio playback from within Go
☐ Mabe change audio volumne from within Go @low
Tooling:
================================================================================
✔ Automate Assets.png cnnversion (User should only have to put the PNG into the ./assets folder) @done (27.10.2023, 04:58:23)
✔ Extend Makefile @done (27.10.2023, 04:58:29)
✔ Move tools-scripts into "project-template" @done (27.10.2023, 04:58:34)
✔ get rid of ./project-template/.tools/ ZSH-Scripts @done (27.10.2023, 04:58:39)
✔ startserver.zsh @done (27.10.2023, 04:58:48)
✘ stopserver.zsh @cancelled (27.10.2023, 04:59:01)
✔ entr.zsh @done (27.10.2023, 04:59:33)
✔ Create Script to remove Demo-Project files from `project-template` @done (29.11.2023, 05:00:48)
✔ make it a `make` task @done (29.11.2023, 05:00:49)
Loading Compressed Data:
================================================================================
✔ Bitmap data @done (27.10.2023, 05:00:11)
☐ mapData
Examples:
================================================================================
☐ UI
☐ Buttons
✔ Text Display / Labels @done (2.11.2023, 05:48:52)
☐ Mouse Input
☐ Keyboard Input
☐ TileMaps Backgrounds
Documentation:
================================================================================
## Usage:
✔ Project-Setup @done (27.10.2023, 05:00:32)
✔ Engine-Lifecycle @done (27.10.2023, 05:00:38)
✔ Project - main.go @done (29.11.2023, 05:03:54) => see Documentation/Engine.md
✔ Scenes @done (27.10.2023, 05:01:11)
☐ Scene-Transitions
☐ Drawing Stuff
✔ Layers @done (3.11.2023, 06:46:34)
☐ Components
☐ Assets
☐ loading
☐ component conversion
✔ Mouse-Input @done (27.10.2023, 05:01:32)
✔ Keyboard-Input @done (27.10.2023, 05:01:41)
☐ Loading Ressources at Runtime
☐ Audio-Output
☐ Storing Data in the Browser
## Example
☐ Mouse Cursor Demo
☐ Map Demo
✔ Basic TileMap @done (29.11.2023, 05:05:17)
☐ Custom TileMap
☐ Cli-interface / text Adventure type of demo
## Reference:
✔ Engine @done (27.10.2023, 05:02:12)
✔ Engine-State @done (27.10.2023, 05:02:16)
☐ UI
☐ Labels
☐ Buttons
☐ Canvas
☐ TileMap
☐ Concept
☐ Map creation
☐ Map Editing
✔ Scrolling @done (22.11.2023, 17:54:43)
✔ TileSet @done (27.10.2023, 05:02:45)
✔ Bitmap @done (27.10.2023, 05:02:49)
☐ Collision Layers
☐ Bitmap Entities
Done:
================================================================================
✔ Restructure how BlitBitmap receives its params @done (24.9.2023, 07:19:41) As they will become more and more complex @done (27.10.2023, 05:05:01)
✔ Implement Bitmap ClipingRect @done (24.9.2023, 16:36:16) @done (27.10.2023, 05:05:09)
✔ Printing Text from string to Screen @done (27.10.2023, 05:05:25) @done (27.10.2023, 05:05:33)
✔ TileSets and Maps @done (27.10.2023, 05:05:41) plus some metadata to find clipping Rects @done (26.9.2023, 07:07:20)
✔ TileMaps are lists of ClippingRects @done (27.10.2023, 05:06:03)
✔ Map Drawing @done (27.10.2023, 05:06:13)
✔ Define basic Print Text Functions @done (27.10.2023, 05:06:21)
✔ Documentation: Readme.md => Link to Graphics does not work @done (27.10.2023, 05:06:27)
### Mouse Input:
✔ Browser side @done (27.10.2023, 05:06:38)
✔ Go Side @done (27.10.2023, 05:06:42)
✔ Process Mouse Position @done (26.9.2023, 05:39:49) @done (27.10.2023, 05:07:19)
✔ Process Button clicks @done (27.10.2023, 05:07:24)
✔ Mouse is not available to Tick function due to being bound to the canvas (Bind mouse to Engine instead) @done (27.10.2023, 05:07:30)
✔ Documentation: Setup.md => "if you have entr as available shell command[s]" @done (27.10.2023, 05:07:37)
### Keyboard:
✔ Symbol-Keys are not recognized yet. @done (27.10.2023, 05:07:46)