# Todo

Here some ideas for improving this tiny engine:

## Rendering
- [ ] replace the OpenGL renderer with a Vulkan backend
- [ ] add sprite atlas support (test case Kenny flappy bird)
- [ ] add animatable sprites (access to UV mapping and tiling)
- [ ] add a SDF based renderer (parametric tiles and font rendering)

## Game Support
- [ ] audio!
- [ ] some minimal animation system with tweening with different f-curves


## System Level

- [ ] add a `Asset` handler to load cache and manage assets
- [ ] introspection of file system if we load asset

## Design

- [ ] replace some of the 'unknown source' assets

## Build / Dev Support
- [ ] add a test rig either with Snitch or Catch2
- [ ] write some reasonable testcases
- [ ] add CPU and GPU benchmarks to address various issues


# Performance

For such a small engine, this should never happen:

```bash
 Performance counter stats for 'bin/paradiso_pong':

            555,35 msec task-clock:u                     #    0,042 CPUs utilized
                 0      context-switches:u               #    0,000 /sec
                 0      cpu-migrations:u                 #    0,000 /sec
             4.072      page-faults:u                    #    7,332 K/sec
       319.484.735      cycles:u                         #    0,575 GHz
       358.165.995      instructions:u                   #    1,12  insn per cycle
        86.037.942      branches:u                       #  154,926 M/sec
         2.469.068      branch-misses:u                  #    2,87% of all branches

      13,092775373 seconds time elapsed

       0,311565000 seconds user
       0,247491000 seconds sys
```
above run with `perf stat bin/paradiso_pong` shows some really bad performance issues.
