I'm Making a Small RPG and I Need Feeback Regarding Performance
19 comments
·November 7, 2025gwbas1c
Why are you worried about performance for a 2D game that's basically moving a few sprites around the screen? A game like this shouldn't be taxing for modern hardware; and should even run cleanly on pretty much any computer made in the last 15-20 years. (Or even older, if you weren't using Javascript.)
As some of the other comments imply that there are some performance issues; more than using a profiler, I would make sure that your mental model of the event loop from your framework is correct. If all you're doing is moving some sprites around the screen, you need points where your code pauses because it has nothing to do. This could either be awaiting something from the framework, or putting most of your logic in callbacks that are triggered by the framework.
A different way to say it: Between frames, there's not that much calculation that your game needs to do when you're just moving a few sprites around in 2D. The event model that you hook into should be something where your game does its calculations, and then waits between frames.
BugsJustFindMe
> is it just my machine? I’m using a Macbook Air M3 with 16GB of RAM
Using one of the singularly most powerful personal computers ever made. It's probably not the machine if they don't notice everything else being unexpectedly bad too.
Lord-Jobo
Well. That’s a bit misleading.
A real example: MacBook Pro m4 will have absolutely god awful performance on certain web based games * (compared to windows or even android), regardless of the browser or any browser performance settings. This is not the hardware explicitly, obviously it’s a very high performance chipset, but it’s definitely the hardware in terms of what the OP is asking. Because that particular hardware is falling down all over the place in this scenario when others are not.
Fixing it? Sure that’s almost certainly on the games side, some kind of inefficient process or element that doesn’t work right in that environment and needs to be hammered out or replaced.
But for diagnosis? Yeah, “it’s the hardware” is the right answer. And you can’t fix it without diagnosis.
*replicated on latest chrome, Firefox, safari, and Brave, with the games: Idlescape and (now dead)osrsIdle ~8 months ago
jesse__
> Well. That’s a bit misleading.
Uhh .. wut?
The game appears to be similar to a point-and-click adventure game, which were popular in the 80s, and ran just fine.
In 1988, a CRAY Y-MP supercomputer had "64 megawords of memory". I have no idea how large a word was on those machines, but by todays standards, that means 128MB. Let's go with that. The Y-MP was the size of two massive fridges.
Now, the Macbook air OP owns, which is smaller than a toaster, has 128 TIMES as much memory in it as a supercomputer did back in 1988. Similar story for processing power, storage, etc. Point and click adventure games haven't changed all that much, and even back then didn't require a supercomputer to run.
> But for diagnosis? Yeah, “it’s the hardware” is the right answer.
Given the above, how you came up with this is beyond me.
aleph_minus_one
> > is it just my machine? I’m using a Macbook Air M3 with 16GB of RAM
> Using one of the singularly most powerful personal computers ever made.
Some arbitrary PC Master Racer: "Hold my beer, and I will show you a powerful personal computer." :-)
sionisrecur
I'd suggest getting a SteamDeck and use it as the lower limit on performance. If it runs there, it will run everywhere else.
jesse__
First off, yay for making games! I love working on games, and have spent many, many hours doing it, so welcome to the club :)
Second, let me introduce you to my good friend, the profiler. A profiler is an absolutely indispensable tool for making games. Find one that you like, and learn to wield it with laser-guided precision.
Generally, there are two things you want a good profiler to tell you about; execution speed, and memory. Finding a profiler that tells you about execution speed is pretty easy (basically all of them at least nominally do that), and finding one that also profiles memory (in a useful way) is somewhat harder. I'm not sure of the state of profilers for Javascript, but maybe the tool you're using (KAPLAY) has one built-in?
From my long-forgotten days of programming javascript, one thing you want to look out for (which is difficult to spot without a profiler), is creating memory leaks. Memory leaks in Javascript can be a double-edged sword; you're both using more memory than you should, and the garbage collector has more pressure on it. Over time, this can bring an application to a crawl as the GC spends more and more time traversing leaked objects.
Good luck friend. It's dangerous to go alone, take this :sword:
magicmicah85
Without downloading the exe (work laptop right now, can try later), have you followed the optimization suggestions in KAPLAY's guides?
https://kaplayjs.com/docs/guides/optimization/
Assuming it's capable of running in your browser, I'd suggest using chrome's dev profiling tools to help with finding the optimization areas. Based on feedback from everyone else, sounds like something is not cleaning up as the game keeps running.
b1tshift
On an M2 Mac with 24GB the game went smooth for a few fights and then went down to around 10fps and got slower with every attack an enemy did in the fight. The longer I played the slower it got. CPU and memory usage was stable all the time.
doyougnu
Not a game dev. Besides profiling, I would create game scenarios that exercise certain parts of the game engine.
For example, I would create a game fight scenario where the player has infinite health and the enemy just attacks super fast at some settable rate. That way you could monitor whats happening in extreme abnormal conditions with the hypothesis that if the game works in extreme conditions then it will work in normal conditions.
Another example. If you have random encounters like in old school JRPGs then I would create a scenario where a fight happens per step of the player, the fight loads, then the enemy immediately dies, rinse wash and repeat. That should allow you to asses how the game performs after 100s of fights quickly.
The idea here is to create tests that improve your signal to noise ratio. So you create a scenario that will create a large signal so that then you can more easily diagnose the performance issues.
svnt
This is the future of troubleshooting: where did the LLM decide to introduce recursion based on calculation that draws on an otherwise unused global counter and a separate timer initiated at launch for absolutely no reason.
whizzter
Sounds like the culprit though, could be tons of small objects added for effects or something that still don't show up in memory usage but adds iteration time?
duttish
Do you have a profiler at hand?
If you have a friend who is encountering the performance problems enable profiling report export and ask them to send that over to you. Hopefully that'll show you what is taking so many cycles.
mvkel
> performance issues
What kind? It would be helpful to know what you're experiencing, attempts you've made to fix, etc.
Or is this a thinly veiled "I've been working on this for a while and it's taking longer than I thought and want some encouragement." Which is fine! It's a great thing to ask for.
calebjmatthews
Just downloaded and tried it on my M1 Mac and the performance was what I'd expect for a game like this, both in and out of battle. Totally smooth and ~15% of CPU usage in both cases. By the way, I love the pixel art, and the gameplay has potential, it's a style I've never personally played before but I could see it being compelling.
null
VegaKH
Here is my crappy, not finished game that maybe will run fine or maybe not. Could you please do some free testing for me, and optimally do a screen recording showing performance and send it to me along with your notes?
Here is the link to where you can download it, and also maybe, you know... PAY FOR IT? These broken unfinished games don't make themselves, you know.
petercooper
This is absolutely fine for someone to request on their personal blog to a group of followers who may well be interested in the game and support the author. People have used their blogs for this sort of thing for decades.
A bit offtopic, but if it would have been playable in the browser I would have tested it, but I don't want to download and install a (for me) random exe.
(and I don't see how performance could be an issue unless a major screw up, but like others have said, use a profiler. Sounds like memory leak from what others have said)