lowlighter / gracidea

🌺 A Pokémon 2D live map gathering all regions, including wandering pokémons and characters and animated tiles!
https://gracidea.lecoq.io
GNU Affero General Public License v3.0
220 stars 21 forks source link

map very laggy, especialy with water on #29

Closed LFGaming closed 3 years ago

LFGaming commented 3 years ago

Describe the bug The map is very lagy to move around, especialy when you still have water turned on.

To Reproduce Steps to reproduce the behavior: Just open the map and move around a bit.

Expected behavior Have the map run a bit smoother/ faster, preferably also when water is turned on

Screenshots uhm, dont know what to show

Platforms impacted

lowlighter commented 3 years ago

Yes, but I don't have any good solution to fix it for now 😕

The larger the screen, the laggier it gets (especially on 4k screens).

This is because more tiles are loaded, (+ seas tiles which are animated and thus cannot be cached) Assuming you're on a laptop with somewhat regular size, you'll load something like 11 chunks x 6 chunks with each chunk being 16x16 tiles, so around ~15000 tiles are rendered 😅 (somewhat doubled when sea is displayed + we're in a browser environment so it don't get as efficient)

So it's kind of miracle that currently it works. There some cacheAsBitmap optimization when a chunk is fully static but I'm pretty sure it's not enough. I don't want to use pre-rendered chunks though, as the aim is to later make a "live rendering" including wandering peoples, creatures, water reflection, handling upper layer correctly, etc.

Hopefully one day it'll be improved though 🙂

lowlighter commented 3 years ago

Whole project was migrated to deno and deno deploy, and switched to vanilla html instead of using Vue, now only dependency is pixi.js

It should be a lot faster now!