[Danmaku!] 开发记录

Caiyi Shyu Lv3

A simple game engine to create stg game (and other 2D game).

记录 DE 开发过程中的想法和设计思路。

Repo

Cai1Hsu/DanmakuEngine
currently private

Next step

[X] 编写Source Generator来重新实现依赖注入容器以实现NativeAOT兼容
basically finished

TODO

  1. 修复源生成器不对不包含用[Inject]标记成员生成代码,应该以类是否实现IInejctable来判断,否则对某些抽象类可能不起作用
  2. Vsync开启时,更新频率只有刷新率的一半
    ;

InputHander

We use a InputHander to handle all kinds of input, although we only have to handle keyboard currently.
It handles TopKeyboardHandler directly. Then, the TopKeyboardHandler sends the event to the UserkeyboardHandler which belongs to the screen at the top of the ScreenStack.

基于 Screen 的逻辑设计

currently finished

Structure

Root -> ScreenStack

ScreenStacks
{
loading screen,
main screen,
selecting screen,
game screen
}

We only focus the top screen in the stack, when it was clear, the game quit.

This structure make is harder to add animation when we have to add animations for screen switching, but there is a hack solution.

Update chain

currently finished

Render

use SDL as backend to simplify development

Migrarte to SDL

basically finished

TODO

fix the game updates at a very high rate when under background mode even with Vsync enabled
very high means fps > 300, 000

Logger

Fix Log save in Windows

Fix Color lock

Scheduling

Scheduler

Transformation

Transformer

Transformation functions

Animation

like those in WPF

Bindables?

support multiple bindings.

rewrite dependency container

rewrite argument parser

separate paramaters and arguments

  • 标题: [Danmaku!] 开发记录
  • 作者: Caiyi Shyu
  • 创建于 : 2023-11-05 09:14:46
  • 更新于 : 2024-07-10 01:10:11
  • 链接: https://blog.caiyi1.me/2023/11/05/Danmaku/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。