Blazor GameDev – part 3: sprite rendering