Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

☂️ Game engine: Issues with SDL rendering #3145

Open
10 tasks
Tracked by #3143
olanti-p opened this issue Sep 15, 2023 · 0 comments
Open
10 tasks
Tracked by #3143

☂️ Game engine: Issues with SDL rendering #3145

olanti-p opened this issue Sep 15, 2023 · 0 comments
Labels
bug ☂️ umbrella tracks multiple issues at once

Comments

@olanti-p
Copy link
Contributor

olanti-p commented Sep 15, 2023

There are some issues with how the UI and world map are rendered, and the rendering resources are managed:

  • Rendering can affect game world. Main offender is the memory map, which is added to mostly on rendering stage, but is used for some in-game functionality like vehicle pathfinding. There's also this: Game effects are applied during drawing #993
  • Game definitions such as items, creatures, terrain, etc. don't cache graphical tiles they're using. Meaning, on every frame for every visible thing on the map the game has to look up the needed graphical tile, and on failure, resolve the looks-like chain to find the closest match.
  • The map is drawn from scratch on every frame, but situations when that's needed are very rare. Most of the time, contents of the frame are almost fully identical to contents of the previous frame.
  • Graphical tile animations cause full redraws.
  • Graphical tile animations halt when player opens a UI that does not explicitly call for map view redraws (e.g. all "Do action where?" prompts)
  • There are multiple independent animation systems in place: SCT (scrolling combat text), weather particles, explosion animations, bullet animations, graphical tile animations.
  • Ids of graphical tiles used by the UI are hardcoded, and are not easily available for tileset makers.
  • There can only be 1 type of every "overlay" at once, meaning complex UIs (e.g. aiming UI that displays multiple lines of fire) have to hack around this restriction.
  • It is impossible to mix interface and graphical tiles
  • Map/overmap viewports are hardwired
@olanti-p olanti-p added the bug label Sep 15, 2023
@olanti-p olanti-p changed the title Game engine: Rendering API Game engine: Rendering in SDL Sep 15, 2023
@olanti-p olanti-p changed the title Game engine: Rendering in SDL Game engine: Issues with SDL rendering Sep 15, 2023
@scarf005 scarf005 added this to Roadmap Jan 7, 2024
@github-project-automation github-project-automation bot moved this to Todo in Roadmap Jan 7, 2024
@scarf005 scarf005 changed the title Game engine: Issues with SDL rendering ☂️ Game engine: Issues with SDL rendering Mar 22, 2024
@scarf005 scarf005 added the ☂️ umbrella tracks multiple issues at once label Mar 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug ☂️ umbrella tracks multiple issues at once
Projects
Status: Todo
Development

No branches or pull requests

2 participants