Compare commits

..

No commits in common. "main" and "v0.0.4" have entirely different histories.
main ... v0.0.4

3 changed files with 6 additions and 24 deletions

View file

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

View file

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

View file

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