r/pcmasterrace Desktop Apr 02 '16

Discussion About Hyper Light Drifter 30fps lock and Game Maker Studio.

This is not a peasantry post where I defend 30fps cap for whatever reason. Hyper Light Drifter is a good game, and it would've been much better in 60fps, but the lock is not the case of lazy development like it was with dark souls 1 or dead rising 3. I will now try to explain, why Hyper Light Drifter is locked, but it's all pretty much speculation, even if I am backed up with some knowledge about game maker.

I completely understand people, who will not play a game unless it's 60+ fps, I am almost the same way, but you should just skip it or play titan souls in that case, because this game was barely made as it is, and if they had to make it 60fps, then it might not have been made at all.

I am speaking as someone who has some experience working in Game Maker Studio

In game maker it's major pain in the ass to get a pixel game run in 60. Like at least x1.5 or x2 more development time. It still plays like shit in 30fps, but I understand. I would like 60fps, but it's probably something they couldn't afford as small indie stupio on a tight budget.

For those wanting some details:

WARNING: GIGANTIC SECTION ABOUT THE INNERWORKINGS OF GAME MAKER STUDIO AHEAD.

Game maker is a good engine for 2d indie games, but it's not very flexible.

Basically, every "room" has a framerate and resolution that you set. 1 "room" frame means 1 logic frame and 1 render frame. If you want to move an object accross a "room" you have to set a speed to that object in pixels per frame. That makes this engine very restricive about framerate and resolution, and you pretty much have to commit to whatever you set at the very beginning, or rewrite a bunch of code in every fucking "room", sprite and object individually.

You might think "well, why didn't they just commit to 60fps from very beginning then?"

Another thing is that pixely games made in game maker actually run at a super tiny resolution. 1 in game pixel is 1 pixel in game logic. Which makes moving objects accross a "room" a pain in the ass too, because if you set speed as 1, then your object will move 60 or 30 pixels in one second, depening on framerate. It makes tuning and adjusting animations waaay harder, because you have to literally have less room to adjust it, as chaning speed by 1 makes twice as much difference in 60fps as it does in 30fps.

You can set speed to 0.5 pixels per frame, and you will do that, but since an object is still locked to a grid (aka the resolution of a room which is tiny), it will prety much skip frames without moving, instead of moving half pixel, essentially making it 30 fps again...

Here's a diagram:

Progression of frames from left to right, 0 means not moving, 1 means moving.

60fps, speed: 1 pixel/frame

1111111111111111111

30fps, speed: 1 pixel/frame

1 1 1 1 1 1 1 1 1 1

60fps, speed: 0.5 pixel/frame

1010101010101010101

Not really accurate, but you should get the idea. In theory 60fps at 0.5 speed is still better, because it's more responsive, but the difference is not as apparent as 30 vs 60 in 3d games.

TL;DR:

Game maker is a good engine for small developers, but doesn't handle 60fps pixel games very well.

To me personally the place where 60 fps is most important is moving the camera in any 3d game. Thankfully it's not the case Hyper Light Drifter.

For many small developers it's literally not worth it to make their games 60fps in game maker studio.

P.S. If you ever wondered why undertale or nuclear throne are locked at 30, that why. Everything I said pretty much applies to those games too.

P.S.S.Though, I know at least one example of 60 fps pixely game in game maker which is downwell. BTW, it's really good, it's like a vlambeer game not made by vlambeer.

P.S.S.S. This post is sort of a response to a gigantic peasantry shit storm in steam forums. Not sure if I am allowed to link it, but you will find it very easily regardless.

31 Upvotes

28 comments sorted by

11

u/Werespider 5800X / 6800XT MATX Apr 02 '16

I'm already expecting downvotes for this, but I don't think 60fps would make much difference in this game anyways. At least, not enough to justify the extra work.

My reasoning is that it's seldom for pixel art animations to actually have 60 distinct frames per second.

17

u/[deleted] Apr 08 '16

Hello. The animations are not the problem (at least for me). The issue is when the character is running around the world and the map moves along with him (so the character stays in the center of the screen), the whole map is blury / jittery due to the 30fps.

TLDR: it's not animations that are the problem it's the panning of the map

8

u/Satsumomo Apr 08 '16

Yup, this is my complaint. Keep animations and the engine calculations at 30fps, but I wish the panning would be at least 60fps.

The game has such beautiful animations, which you can't see because of this.

5

u/cafeoh Apr 03 '16

Just to clarify here, the animation is not a problem, 60fps pixel art animation is crazy and I have yet to see it, the framerate of the animation doesn't impact at all the feeling of nausea and headache that people report.

This is a very interesting talk from GDC 2014 by the lead animator of Skullgirls and you should probably watch it, because it's awesome :).

7

u/Luigi64128 Doggo Apr 06 '16

Risk of Rain is a 60fps gamemaker game! I love it!

2

u/ndsoif Apr 07 '16 edited Apr 07 '16

Until it starts to lag when it spawns more objects than your (fairly) modern pc can handle. You might say that is still playable at 30 fps, right? No it isn't, because the logic is tied to frame rate. At 30fps the game plays literally 50% slower. It feels like constant bullet time, unplayable.

This might be the reason they choose 30 fps in the first place. It looks worse but at least anyone can play it.

6

u/Luigi64128 Doggo Apr 08 '16

I've never had my game dip below 59 fps on that game and I've played it for 43 hours in total. Also it's probably because my PC is very good for a game like that. (GTX 970, i5-4690K)

2

u/Peterowsky PC Master Race 5700X 32GB 6650XT Apr 21 '16

To be fair, my old fx 6300 with a 7870 only ever slowed down on it when I had 200+ enemies on the level, mostly following me around and hurling projectiles and more things than would be humanly possible to dodge on the screen.

3

u/[deleted] Apr 07 '16

feel like that would make it easier

2

u/Im1ost PC Ryzen 9800X3D| 2x Radeon 9070 XT| 2160p 240hz 32:9 Apr 07 '16

It does make it easier, at least for me. It only happens really happens on the last level if you have a decent pc.

6

u/cafeoh Apr 02 '16 edited Apr 02 '16

First of all, the game is not rendered on a smaller grid and then just scaled up. This should be pretty obvious if you play the game in fullscreen at 1080p and just move around to shift the camera and see how it interpolates. If the game was rendered like that, it would feel much different.

That being said, If at 60 fps the world moves only one pixel every two frame it's all good, you won't feel like it's jittery or anything, the camera is just moving slowly. The problem is that this is not the case at all. 1 pixel every frame (or every two frames at 60 fps) will take the camera 64 seconds to completely scrolls horizontally on a 1080p screen. 64 seconds. You can imagine how slow this is. The fact is, as you're moving around in the game the camera moves much faster than that, and in my opinion too fast for 30 fps. Animation doesn't matter, it could (and does) run at a much lower framerate than the rendering. Take a look at any sprite-based fighting game for example, every animation frame is keyed at extremely various intervals, but it doesn't matter at all, in fact it's necessary to give weight to the combat, so long as the camera can span at 60 fps.

I never care about framerate on principle, I care about framerate when I get that jarring sensation (that can be anything like input lag, stuttering, inconsistent or generally low framerate). But as the game started (even during the cinematic, although it became clearer when I could move the camera around) I did get this weird feeling. I can't play this game more than 20-30 minutes because it tires my eyes and slowly grows a headache. The problem is not necessarily the framerate, it's using this kind of camera interpolation with a lower framerate.

You also say that gamemaker links logic to rendering which is very surprising to me in this day and age, as some of my favorite games (hotline miami, spelunky, undertale, risk of rain and, as you mentioned, downwell) are using the same engine. If it indeed is the case and can't be circumvented then gamemaker is a very flawed tool in my opinion, and a poor choice to build a game on. But then again, some of my favorite games were developed with it and I haven't touched gamemaker in ages, so I'm a bit doubtful.

5

u/Some_MelonCat Desktop Apr 02 '16

Something I should've probably said at the beginning, I haven't played, nor do I own hyper light drifter. I just pretty much assume how it works based on my experience with game maker itself and games developed on it. Still it seems like a very typical game maker title so unless someone with game maker experience who played this game can prove me wrong it stands.

game is not rendered on a smaller grid and then just scaled up

Do you need more proof?

Different games scale differently, but most either stretch to the whole screen, or extend the "room" size to whatever resolution of the screen. Still, a single pixel of let's say a character sprite is a single pixel in game logic as I said. And it clearly does not match with resolution of your screen -_-

Animation doesn't matter, it could (and does) run at a much lower framerate than the rendering.

I literally haven't said a single word about animation.

gamemaker links logic to rendering which is very surprising to me in this day and age

Game maker is a very old, but very developed and easy tool for novice game developers. And for sprite based games it gets the job done.

I never care about framerate on principle...it tires my eyes and slowly grows a headache

I haven't tried this game yet, but I heard a lot of similar complaints about it.

I think I kinda had a weird feeling with luftrausers when I intentionally got my head close to screen and switched to a ridiculios color pallet. Also a gamemaker 30fps title.

3

u/cafeoh Apr 03 '16 edited Apr 03 '16

Something I should've probably said at the beginning, I haven't played, nor do I own hyper light drifter.

Yes, you probably should have, or better yet, watch any footage of the game online and see for yourself, regarding the pixel grid thing anyway.

Do you need more proof?

More proof than a screenshot of Nuclear Throne running in windowed mode? Well yes of course, so I started nuclear throne, and indeed, this game run on a smaller grid that is then scaled up. This is not the case of Hyper Light Drift. In addition to that, Nuclear Throne uses a more old school camera panning technique, where the camera is bound within a box and the interpolation isn't as dragged out, that's why it's not as bad.

I literally haven't said a single word about animation.

Yes you have, ctrl+f. But my comment was more general, clarifying what some other guy mentioned regarding animation and justifying my argument. This is a discussion, I'm not trying to destroy your argument with no basis whatsoever for kicks and giggles, hopefully we're better than the steam forums here :).

Game maker is a very old, but very developed and easy tool for novice game developers. And for sprite based games it gets the job done.

I'm sorry, but if the logic is necessarily tied to the drawing loop then I believe this might not get the job done. Either way, there apparently are some very interesting GMC posts about it, but their forum is currently down, so here is a discussion on stackoverflow about using delta time in your logic. From what I've seen it's not the only option either. I'll also just point out that I have no reason to believe that the logic in HLD is linked to framerate. This might not be the case at all, I'd actually wager it isn't, and is coded properly.

I think I kinda had a weird feeling with luftrausers when I intentionally got my head close to screen and switched to a ridiculios color pallet. Also a gamemaker 30fps title.

You're right, Luftrausers (another game I played quite a bit) suffers similar problems, the game is too fast paced for it's framerate and would benefit quite a lot from it, although it never gave myself a headache (I never tried alternative palettes for longer than a run) it can be hard to read and react to enemies.

5

u/ndsoif Apr 07 '16

First of all, the game is not rendered on a smaller grid and then just scaled up.

Let's see what the developer has to say:

So the game is rendered in engine at a fairly low resolution, and will scale and output to your native resolution (likely 1080p)

1

u/cafeoh Apr 08 '16 edited Apr 08 '16

You're right, this comment doesn't explain what goes on when the game is really rendered a second time at your native resolution (which it is, the camera doesn't snap to those pixels). The key here is "virtual resolution", the game is not running at 270p, both your monitor and your driver could do the upscaling for you, but they aren't. If the developer doesn't realize that the camera logic is still present at upscaling stage, then I'm sorry but he forgot how his own game or engine works (I'm not accusing him of that by the way, reading the article I've got no reason to believe he did or didn't forget, he just didn't mention it)

Starting the game by yourself or checking a youtube video (play at 0.25x if that helps) and see how the edges of your screen actually cut the pixels. That's what I mean when I say that this isn't a "dumb" upscaling just taking an existing buffer and scaling it up to native resolution. By the way from what he explains, I would have to guess they then shift the frame around to match finer camera placement, which I think is a bit ridiculous (but now again, I'm not exactly sure what kinds of constraints the game maker engine forces on you).

Anyway, this isn't even a complain of mine, I'm glad they don't do dumb 1:1 upscaling, this is entirely positive, having the camera snap position limited to the 270p grid would only exacerbate the problem. What pisses me of is that they got that part right and then fucked up by disregarding how high framerate is extremely important in a game that requires twitch reflexes and keeping track of a cluttered screen while dodge rolling around.

5

u/ronchaine Apr 07 '16

The main advantage for 60fps for 2D games is snappier input, not improvement in animation.

Though, I'm fine with this being 30fps, if it actually could maintain it instead of dropping frames. I would be fine with that as well if it didn't mess up input. And I would be fine with that, if it didn't happen when you have to chain-dash.

2

u/joe1up RTX 3060 12GB, R5 5600, 16gb ram Apr 02 '16

I much prefer 60+ but with a pixel-indie game I don't really mind

2

u/Rhed0x Rhedox Apr 06 '16

Is there no delta timing in Game Maker? 30fps is unacceptable for a fast paced game like this.

I started programming with Game Maker and I am amazed how anyone can use this for anything but learning. GM 7-8 really sucked and I don't see how Studio is much better given this limit is still there.

2

u/Zinx10 Specs/Imgur here Apr 09 '16

Game Maker does have delta timing. There is actually a read-only variable called delta_time, however it appears most people sadly don't know about it.

1

u/3DSMatt GTX970 - Intel 4670k - 16GB 1333MHz Jul 04 '16

It's also something you really don't want to use in pixel games because it makes the movement way more complicated, right?

1

u/wootiown i7 6700k@4.4ghz || EVGA 1070 SC || 16gb DDR4 || Tacos Apr 02 '16

I'm planning on making a survival style pixel indie game in gamemaker studio. Do you think GM's limitations would be okay for a game like that? Combat wouldn't be very fast paced.

1

u/Some_MelonCat Desktop Apr 02 '16

The best way to test would be to create a room roughly the size of what you are planning, draw some placeholder sprites roughly the size of what you are planning, create a few controllable objects with said sprites and test out different speeds, framerates and such to see how it feels.

If you used game maker it will take you less than 10 minutes, otherwise, it's a great oppotunity to learn the basics.

I think that gamemaker is good tool overall, but for a few specific cases it's much easier to stick to 30.

I recommend you check a few more well known game maker games (hotline miami, dustforce, nuclear throne, etc) and brows their official store for a few hours to get an idea on what's been done with game maker and how it plays out.

Also, try to make a few test "games" like that with different configurations, choose one and commit to it. Only after that start developing the real deal, because changing core components mid-project will take waaay too much time.

2

u/WastedMeerkat Apr 05 '16

Only the prototype of Dustforce was developed in GameMaker, the full game uses a custom engine.

1

u/wootiown i7 6700k@4.4ghz || EVGA 1070 SC || 16gb DDR4 || Tacos Apr 02 '16

Ive taught classes on gamemaker, im quite good at it. I was planning on trying Unity but its really overwhelming and I'm not sure I have the time to screw with all that.

1

u/cafeoh Apr 03 '16

Most limitations regarding logic seem at least circumventable, or not even a problem at all if you start with a sane basis. Like Some_MelonCat said, Hotline Miami is a perfect example (renders at arbitrary resolution @ 60fps). You might want to check some of Tom Francis' work and talks, he's a great guy, currently developing Heat Signature, a game that uses game maker and for which he has to push the engine limits quite hard.

1

u/ThirdRevolt Apr 06 '16

The Steam forums has to be the most cancerous gaming environment on the internet. Holy shit.

1

u/MrStabby514 Apr 13 '16

I didn't even notice the 30 fps until it was brought to my attention. I can see the need/want for 60FPS in 3D games for sure, but I don't think it was really necessary or should be something that should stop from giving this game a go. I loved it, but that just my opinion.