Compare commits

...

2 commits
v0.0.4 ... main

Author SHA1 Message Date
Hartmut Seichter
42a0d56173 add some notes about design problems in quickwings 2025-05-25 14:12:20 +02:00
Hartmut Seichter
aea5ca958a update to contributors and ideas files 2025-05-25 14:03:25 +02:00
3 changed files with 24 additions and 6 deletions

6
CONTRIBUTORS.md Normal file
View file

@ -0,0 +1,6 @@
# Contributors
- Hartmut Seichter (dev lead)
- Robin Rottstädt (image loader)
- Tim Gösselmann (Win32 fixes)
- Hannes Brothuhn (Flappy Bird clone)

View file

@ -4,6 +4,7 @@ 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)
@ -15,11 +16,11 @@ Here some ideas for improving this tiny engine:
## System Level
- [ ] add a `Asset` handler to load cache and manage assets
- [ ] introspection of file system if we load assset
- [ ] introspection of file system if we load asset
## Design
- [ ] replace some of the 'unkown source' assets
- [ ] replace some of the 'unknown source' assets
## Build / Dev Support
- [ ] add a test rig either with Snitch or Catch2
@ -27,10 +28,11 @@ Here some ideas for improving this tiny engine:
- [ ] add CPU and GPU benchmarks to address various issues
# Issues
# Performance
For such a small engine, this should never happen:
```sh
```bash
Performance counter stats for 'bin/paradiso_pong':
555,35 msec task-clock:u # 0,042 CPUs utilized

View file

@ -1,8 +1,7 @@
/**
* paradiso - Paradigmen der Softwareentwicklung
*
* (c) Copyright 2023-2025 Hartmut Seichter and Contributors, Robin Rottstädt,
* brxxh (Hannes Brothuhn)
* (c) Copyright 2023-2025 Hartmut Seichter and Contributors
*
*/
@ -13,12 +12,16 @@
#include <paradiso/renderer.hpp>
#include <paradiso/shader.hpp>
#include <paradiso/sprite.hpp>
#include <paradiso/utils.hpp>
#include <paradiso/vector.hpp>
#include <paradiso/window.hpp>
#include <chrono>
#include <thread>
// TODO remove all hard coded 'magic' values!
// TODO - remove global variables
const int frame_rate = 60;
bool game_over = false;
float risky_pos_x;
@ -38,6 +41,7 @@ struct Background {
paradiso::Renderer renderer{};
// TODO no constructors in rule of zero
Background() {
auto backgroundImage =
paradiso::BitmapIO::get().load("background-day.png");
@ -91,6 +95,8 @@ struct Pipe {
bool pos_reset = false;
// TODO no constructors in rule of zero
Pipe() {
auto pipe_image = paradiso::BitmapIO::get().load("pipe-green.png");
@ -115,6 +121,8 @@ struct Pipe {
void update() {
// TODO improve state handling
if (game_over == true) {
paused = true;
}
@ -174,6 +182,7 @@ struct Grass {
paradiso::Renderer renderer1{};
paradiso::Renderer renderer2{};
// TODO no constructors in rule of zero
Grass() {
auto grassImage = paradiso::BitmapIO::get().load("base.png");
grassLeft = paradiso::Sprite{
@ -244,6 +253,7 @@ struct QuickWings {
int collision_counter = 0;
// TODO no constructors in rule of zero
QuickWings() {
float scaleh = 0.08f;
float scalew = 0.158f;