Rendering should move to the SDL GPU renderer so i can do lighting and particles etc
	  - Example suitable for my most primitive use case: https://github.com/TheSpydog/SDL_gpu_examples/blob/main/Examples/Blit2DArray.c
	  - Try vulkan and D3D tutorials to come up to speed on the moving pieces, then figure ou the details from the examples and API docs
	    - https://vulkan-tutorial.com/Drawing_a_triangle/Graphics_pipeline_basics/Introduction
	    - https://learn.microsoft.com/en-us/previous-versions/windows/desktop/bb153302(v=vs.85)
	    - http://www.directxtutorial.com/LessonList.aspx?listid=112
	  - Shaders compiled with: https://github.com/libsdl-org/SDL_shadercross. There are no docs on this tool.
	  - Shader language is tricky. MS is abandoning HLSL and everyone unifying on Spir-V. But Spir-V is intermediate, HLSL is more high level so easier to pick up.
	    - https://flathub.org/apps/org.shadered.SHADERed
	    - Really good HLSL tutorials: https://www.youtube.com/playlist?list=PL78XDi0TS4lEMvytsE_MoWEpzBcukXv9b
	    - Spir-V tutorials: https://github.com/google/spirv-tutor

Actors should collide with each other
       - Box2D is going to be overkill for this for simpler platforms. We're going to benefit from a simpler approach.
       - https://katyscode.wordpress.com/2013/01/18/2d-platform-games-collision-detection-for-dummies/ looks promising

Actor registry should be able to iterate actors by their layer

World collision geometry should be loaded from object layers on the map

Actors should collide with the world

Actors should be able to follow a path defined with a polyline on a layer on the map

Maps should be able to have image layers

Map parallax should work

Find a better way to store the character states than the SDL Properties. Having to snprintf() the states every single time is likely not performant. Started a knr library which contains an itoa implementation, try that.
