Skip to content

Commit 15150eb

Browse files
authored
Merge pull request #107 from andy840119/2024.1201
Changelog 2024.1201
2 parents 2867ed7 + 397beec commit 15150eb

File tree

5 files changed

+104
-0
lines changed

5 files changed

+104
-0
lines changed
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
---
2+
title: "2024.0831"
3+
date: 2024-08-31
4+
---
5+
6+
## Achievement
7+
8+
- Re-implement the stage system.
9+
- Use command to adjust the lyric's transformer like how storyboard did.
10+
- Separate the stage from the beatmap.
11+
- Planning 2-weeks december vacation.
12+
- Stay at Osaka and Kyoto for few days and trying to servival.
13+
- Work few days at Tokyo.
14+
- Go to Comiket.
15+
- Give some weird meat a try.
16+
- Skiing for 5 days.
17+
- Remember update the changelog.
18+
19+
## Blog
20+
21+
- Add special badge at the start of the changelog item. [karaoke](#2279#2281@andy840119)
22+
![](res/2024-12-01-08-24-24.png)
23+
24+
## Code quality
25+
26+
- Rename from "language" to "translation" in some classes. [karaoke](#2282@andy840119)
27+
- Regular clean-up code. [karaoke](#2288@andy840119)
28+
29+
## Editor
30+
31+
- Add translation edit section to the editor. [karaoke](#2284@andy840119)
32+
![](res/2024-12-01-08-26-09.png)
33+
- Add karaoke-specific sections to setup screen. [karaoke](#836@andy840119)
34+
- Separate singer and singer state into different list. [karaoke](#2289@andy840119)
35+
- Improve singer section. [karaoke](#2290@andy840119)
36+
37+
## Gameplay
38+
39+
- Fix note judgement cause exception. [karaoke](#2293#2295@andy840119)
40+
41+
## Stage
42+
43+
Guess it's time to explain why changelog not update so long.
44+
Before that, lets talking about what is `Stage` first.
45+
46+
`Stage` is a system to give the effect to the lyric. For example:
47+
48+
[![](res/2024-12-01-07-38-35.png)](https://x.com/k_sukeo_/status/1412379617269219329)
49+
It's a very classic Japanese lyric arrangement.
50+
It has usually 2~4 lines of lyric at the screen.
51+
Each lyric can be padding to left/center/right.
52+
If the lyric is end, the next lyric will take over it's position immediately.
53+
54+
[![](res/2024-12-01-07-41-30.png)](https://support.apple.com/zh-tw/guide/music-web/apdm5e4a7164/web)
55+
And here's the lyric arrangement that apple music use.
56+
The current lyric at the center, if the lyric is end, next lyric will move to the center to replace the old one.
57+
58+
In order to add more type of stage arrangement in the future. e.g., let user able to edit the lyric's position and appear/disappear time.
59+
The stage system should be flexible.
60+
61+
And stage system should have those features:
62+
63+
- It can assign the lyric's actual Start/End time in the playfield.
64+
- Change the property in the lyric to adjust the position. e.g. Position, margin and padding.
65+
- Change the property in the lyric like drawable. e.g. Scale and alpha.
66+
- Add custom element to the playfield. e.g. beatmap info preview.
67+
- (TBD) Change lyric's font.
68+
- (TBD) Change lyric's shader effect.
69+
70+
And [here's the system desing](https://app.affine.pro/workspace/40306a8a-6c73-4c99-a961-4f928980ef42/uso65AOQC3Hhn3Fs7wh8n)
71+
Thanks to the affine, it's a open-source platform that able to write the doc and graph.
72+
~~It has few bugs while undo/redo but still worth to give it a try.~~
73+
74+
And here's the milestone, the re-implement plan is tracked in [this issue](https://github.com/karaoke-dev/karaoke/issues/2090)
75+
76+
- M0 - Preparation
77+
- Move the stage-related class from beatmap namespace into it's own namespace. [karaoke](#2089@andy840119)
78+
- Adjust the folder structure in the stage namespace. [karaoke](#2297@andy840119)
79+
- System desing for the new stage menegement system. [karaoke](#2244#2294@andy840119)
80+
- M1 - Create the transformer command generator
81+
> Before:
82+
> Implement the transformer action for different type of stage.
83+
> After:
84+
> Let stage generate transformer command, and provide the same command executer to execute all transformer command that generated from any type of stage.
85+
> Benefit:
86+
> Make the system more fiexible, and easier to maintain.
87+
- Create the command generator for the hit-object. [karaoke](#2296@andy840119)
88+
- Create the command generator for the playfield. [karaoke](#2303@andy840119)
89+
- Create the command generator for the create custom element in the gameplay. [karaoke](#2304@andy840119)
90+
- M2 - Create the drawable stage environment
91+
> It's a wrapper for able to provide the necessary resource for lyric/playfield.
92+
> e.g. DI that able to execute the transformer command.
93+
> Design is inspired from the `DrawableStoryboard` in lazer.
94+
- Create the drawable stage. [karaoke](#2301@andy840119)
95+
- Create the stage-related injections. [karaoke](#2296#2301@andy840119)
96+
- M3 - Not provide state-related properties by the beatmap
97+
> It's time to separate the stage system form the beatmap.
98+
- Able to control lyric's stage/end time by stage and drawable layer. [karaoke](#2298@andy840119)
99+
- Remove the old hit-object applier from the beatmap. [karaoke](#2301@andy840119)
100+
- emove the old playfield applier from the beatmap. [karaoke](#2303#2304@andy840119)
101+
- M4 - Refactor
102+
- Refactor the interface in the stage namespace. [karaoke](#2302@andy840119)
103+
- Remove the stage info list in the beatmap. [karaoke](#2305@andy840119)
104+
- Remove the current stage info in the beatmap. [karaoke](#2305@andy840119)
1.84 MB
Loading
500 KB
Loading
120 KB
Loading
36.6 KB
Loading

0 commit comments

Comments
 (0)