7:36 I can't express how much I appreciated that 1 minute Summary section, it helped me more than 3 hours of reading manual and forum posts
@PixelatedPope10 күн бұрын
Of all 3 of these videos, that's the only part I still share with people on the Discord server. Glad it helped you.
@PixelatedPope19 күн бұрын
Worth noting that draw_rectangle has been improved. It's not nearly as slow as it used to be (thought it still will have scaling issues in the gui event. It will always be a single pixel thick for an outlined rectangle)
@samsibbens816429 күн бұрын
The description for GameMaker Studio 2 is great and fixed the issues I was having, as of October 2024. Thank you!
@ExoudarАй бұрын
Excellent video, thank you. I have one question though, at the very start of the game the surface size takes 1 frame then changes. Is there a way to make it start with the wanted surface size? Rather than this awkard 1 frame window change?
@PixelatedPopeАй бұрын
Not that I know of, no. Many, many, many games (even games not made in GM) do this.
@ExoudarАй бұрын
@@PixelatedPope I assume that was not noticeable since all games start with a loading screen. Thank you
@PineconeSunsetАй бұрын
The audio and mic cutting in and out makes this hard to watch tbh. Good content no doubt but there's times when you talk but its muted too. Imo constant volume normal audio is way to go.
@PixelatedPopeАй бұрын
Yeah. Had my noise gate set too high, unfortunately. Something to fix for next time.
@PineconeSunsetАй бұрын
@@PixelatedPope Great content all round though in general <3
@DrBanananananananananananananaАй бұрын
More like BROtated rectangle collisions
@DrBananananananananananananana2 ай бұрын
Rip this dude was the best and now he lives no more
@PixelatedPope2 ай бұрын
Rip
@undefinedusername2 ай бұрын
This is a great and simple technique. I've used this, forgotten how to do it, and come back to watch the video again a few times. This can also be used for sound effects. For example, I have used it with a continuous laser beam that has an initialization sound that transitions into a continuous beam sound afterwards. Thanks for the video.
@vtoadgames3 ай бұрын
I took "Thou shalt read the manual and seek guidance within before asking others." to mean Google it/try to figure out for yourself, and only ask for help if you've got no where else to turn. As a novice, I haven't found the manual to be very helpful. For me, it's like trying to learn Russian by reading an English to Russian dictionary - you get definitions, but rarely any kind of useful context. I feel like it's written for intermediate programmers who are trying to understand the syntax of GML, and not absolute beginners trying to understand how to do something. I think before attempting GML, a better place to start would be a programming course. Although a bit dated, John Janetka's Game Programming Course (GPC) is the best I've found for absolute beginners like myself.
@uncannyvallerie3 ай бұрын
how do you function with big light on?
@imnotme26813 ай бұрын
this didn't work, it resized my screen but it didn't follow the character :(
@PixelatedPope3 ай бұрын
Watch again and follow along carefully. I promise it works
@imnotme26813 ай бұрын
@@PixelatedPope triple checked it all and even redid my whole code and it still doesn't work, here's my code, is thar anything wrong? //create view_width = 1280/6 view_height = 720/6 view_scale = 3 window_set_size(view_width*view_scale,view_height*view_scale ) alarm[0] = 1 surface_resize(application_surface,view_width*view_scale,view_height*view_scale ) //end step #macro view view_camera[0] camera_set_view_size(view, view_width,view_height) if (instance_exists(Obj_pcat)) { var _x = Obj_pcat.x - view_width/2 var _y = Obj_pcat.y - view_height/2 camera_set_view_pos (view, _x, _y) } // Alarm 0 window_center(); // Room Start view_enabled = true; view_visible[0] = true;
@sarger5713 ай бұрын
@@imnotme2681 have you placed an instance of this camera object in the room?
@captaingekapango7034 ай бұрын
I followed the tutorial perfectly and it works amazingly, but I have this one question, I would like it for the camera to be a bit more zoomed in and compromised, what do I have to change because I don't know what exactly to do.
@PixelatedPope4 ай бұрын
So when you divide 1920x1080 by a whole number, the higher that number, the more zoomed in you are going to be. The problem comes from when you want something between like 3 and 4. 4 is too zoomed in, 3 is too zoomed out. You could try like 3.5 or something, but this could introduce distortions. There are work arounds for that, but it gets complicated.
@captaingekapango7034 ай бұрын
@@PixelatedPope It actually worked out incredibly well, I got exactly what I wanted with virtually no issues. Thank you for the help, have a good one.
@ReachForTheBiscuit4 ай бұрын
This is probably a stupid question, but if I were to implement the same movement code you have in the state machine, but include top down movement (vSpeed movement), could it be modified in seamlessly? I was thinking of just adding what sprites would be set for the up and down sprite, but wasn’t sure where I should include it in the stateWalk? Would I just include it below the if (!right_key && !left_ke… Along with a !up_key && !down_key below the code before the break? And if that’s the solution, would I just include another draw event to include the up and down sprites?
@ReachForTheBiscuit4 ай бұрын
Or would it be easier to set all of that in a controls script with all the image sprites set to each direction, call that script in the create and step event of the player, but use it as a reference for what to replace/add for (!right_key.. etc ?
@PixelatedPope4 ай бұрын
I wouldn't recommend using this movement code for top down. You should check out my top down movement and collision system on Itch. It's free and it works similar to this (whole number only coordinates) and it works great with TrueState.
@silvastephen4 ай бұрын
@@PixelatedPope thank you!
@MayaClover4 ай бұрын
I’m new to coding and I’ve watched all your videos on aspect ratio and game resolution and I’m still stuck on getting rid of the black bars and fixing pixel scaling when adjusting the size. I’m using game maker on a MacBook is there anything else that you can share that could help me figure this out, thank you
@PixelatedPope4 ай бұрын
To be perfectly honest: the REAL message is don't worry about it. It's not worth the effort. Just let there be black bars in your 2D pixel art game. Just let there be a bit of distortion if it doesn't scale perfectly. Worst case scenario, you apply a bi-linear filter (games like Sonic Mania do this). ESPECIALLY if you are new to Gamemaker, it just. Isn't. Worth it.
@prodvichum4 ай бұрын
Hello I don't know if you still replying to this, but im having a problem, the truestate works perfect on my player, but when i want to start using it on an enemy, it says that stateSwitch is not defined, but i followed the same steps as with the player. Thank you for this amazing tool btw❤
@PixelatedPope4 ай бұрын
You should join the Gamemaker discord server. I'm often available there and can help you troubleshoot it live. discord.com/invite/gamemaker
@ty885 ай бұрын
this is like one of those tiktok videos that tease you for 20 minutes without ever getting to the actual substance.
@ty885 ай бұрын
those fingerless gloves are insane
@PixelatedPope5 ай бұрын
I've got a much better keyboard/mouse wrist rest / pad thing now. But those gloves were a quick solution
@ty885 ай бұрын
@@PixelatedPope haha they looked crazy - thx for the vids, been sifting for the good stuff
@AstriaTVTruthExposed5 ай бұрын
Im trying to download truestate but the itch page never opens tried on multiple devices
@PixelatedPope5 ай бұрын
Itch appears to be down at the moment. Try again in a bit
@AstriaTVTruthExposed5 ай бұрын
Just noticed that 🤦 went through troubleshooting my laptop resetting dns ect 😂 @@PixelatedPope
@jugibur21175 ай бұрын
Thanks, really great, I've learned a lot!
@MetalJoshi1565 ай бұрын
*ME LIKE A COMPLETE DUMBASS, MISSING THAT ONE SMALL WARNING IN THE BEGINNING* ("Don't use the room settings.") Thank you, thank you, THANK YOU. The scrolling is now completely smooth as butter, at all possible refresh rates without animations breaking. To anyone rolling their eyes at my mistake, yes I'm a complete idiot. But small oversights like my one could happen to *you* as well for another silly reason. Be VERY careful!
@charleslamb65006 ай бұрын
this is good stuff, saw this on Gamemaker Discord, or is amazing stuff
@americantoastman72966 ай бұрын
Ngl for a video called "as simple as possible" this is mindsplittingly complex. You keep using words that you have not explained or differentiated from another and it just ends up being just as confusing as everything else I've heard about views, cameras, etc. Interestingly enough I found your three-part series on aspect ratios and views much more comprehensive because I think you did a better job of explaining yourself. Anyway I've been using GMS2 for 3 years now and I still don't get half of the stuff you throw out there or even why you're doing it. I know you meant well, but this is just frustrating to be honest. Please please please explain the things you are going to talk about and use before you talk about and use them.
@PixelatedPope6 ай бұрын
K
@americantoastman72965 ай бұрын
@@PixelatedPope thanks for the insightful response man 🤞🥶
@PixelatedPope5 ай бұрын
@@americantoastman7296 Look, what is "simple" for some people is "complex" for others. I've been helping people with Gamemaker for a really long time, and for most people, explaining literally every single line is just too overwhelming. They want to know what they need to do to get the results they want. If they can follow along and it seems to work? Awesome. That's what they want. That's what "simple" means to them. It rarely involves them understanding what literally each line of code is doing. They can understand the technicalities later... for now, they just want something that works so they can move on and make their game. Is this video perfect? No, of course not. But you aren't going to be able to convince me that it would be "more simple as possible" if it was 3 times as long and broke down every single line of code in excruciating detail. There is a place for that video, absolutely, but that wasn't the intention here.
@americantoastman72964 ай бұрын
@@PixelatedPope hey thanks for the response, appreciate it. I might give this a rewatch some time in the future. It seems to help people and that's great. I just wanted to voice my personal frustrations as I was looking for a simple explanation of views, cams etc and this (for me) just wasn't it. Again, it felt like it assumed a lot of knowledge from the start that I was hoping to learn about in this video instead of being confronted with it outright. But hey, maybe that's a me thing. It seems to be helping out a lot of other people, so good work!
@PixelatedPope4 ай бұрын
@@americantoastman7296 Certainly! And you can always join the GM Discord Server and get way too much detail on any topic you are interested in any time. I'm there most weekdays while I'm working helping people and answering questions: discord.gg/gamemaker
@iamreiver6 ай бұрын
That's pretty cool :)
@CosmoDextro6 ай бұрын
Thank you so much, this was beyond helpful!
@Heesmaster6 ай бұрын
Thanks for showing me this video, very nice!
@joshuawilliambrodie7 ай бұрын
The link for the Palette Builder tool no longer appears to work including the link on the Game Maker Maketplace.
@PixelatedPope7 ай бұрын
You can grab it from Itch pixelatedpope.itch.io/retro-palette-swapper
@魏家乐-w1r7 ай бұрын
Very good.
@lloyd0117218 ай бұрын
this video is super helpful
@lloyd0117218 ай бұрын
how much of this would need to be changed for gms2?
@PixelatedPope8 ай бұрын
The basic concept is still pretty much the same, but we don't use Data Structures anymore. Everything is arrays and structs and JSON for saving and loading.
@slothstudiosfacundobenitez97498 ай бұрын
how do you move it though?
@PixelatedPope8 ай бұрын
My dude. This video is almost a decade old. You should be using the latest version of Game Maker (which is free) and follow a more recent tutorial. All this info is super out dated
@lloyd0117218 ай бұрын
so, if you should never make the game for 1280x 720, then would 640x360 be good? since 360x2 is 720 (switch) and x3 is 1080
@PixelatedPope8 ай бұрын
Yup, that's a great starting resolution. There are almost always going to be displays where it won't scale perfectly, but once you are scaling over 3x, you can apply a bi-linear shader to it and it will look awesome (Sonic Mania does this on the Switch)
@lloyd0117218 ай бұрын
im mostly concerned with making a game to play on my steamdeck, and i figure i may as well also try to make it look good for switch too @@PixelatedPope
@lloyd0117218 ай бұрын
would you please do a follow up to this video that also goes over having a rotating camera like final fantasy tactics's battles?@@PixelatedPope
@PixelatedPope8 ай бұрын
@@lloyd011721FFTactics is 3D. If you wanna learn how to do 3D in GameMaker, DragoniteSpam has like 70 videos on the topic.
@lloyd0117218 ай бұрын
alright thanks @@PixelatedPope
@massivewon8 ай бұрын
Hey PP, sorry to comment on an old vid, but if I'm not mistaken, I don't believe this is fail safe pixel perfect code as is. Using the ideal_height input of 240 pixels, nes resolution, on a quad HD 2560x1440 display, I get the resulting resolution: 426.67 x 240. Maybe I didn't follow the tutorial right, but I'm pretty sure I did.
@PixelatedPope8 ай бұрын
Nope, you are absolutely correct. Getting something truly "fail safe" is prohibitively difficult. I'm in the writing stages of a new tutorial that will cover exactly this. I had similar problems on my Surface Book (3000 x 2000 display)
@massivewon8 ай бұрын
@@PixelatedPope 10-4 ty, just was confirming. It is an excellent tutorial as usual though and a great primer. Looking forward to seeing the next vid. Also, I just believe the issue in my use case is that it's an aspect ratio mismatch. NES resolution 4:3 and Quad HD 16:9. So the solution would be to just use a 16:9 ratio similar in size to the nes. Correct me if I'm wrong though
@SvenUdoMetulski8 ай бұрын
where do you enter the size of the viewport? If I don't do this in the editor under viewport properties, then I get a black screen. is that right? because it's not mentioned in the video.
@PixelatedPope8 ай бұрын
View Port is a combination of your app surface size and your window size. Don't change any settings in the room editor. Make sure they are all DEFAULT
@SvenUdoMetulski8 ай бұрын
@@PixelatedPope User Thank you for your quick response! If I keep the default values there, then I have a black screen. I have no idea what it could be. But I definitely want to use your camera system. especially with regard to sub-pixel movement, which you mentioned in the forum, which works perfectly. I hope I can find the problem. edit: The camera properties from the editor overwrite the values that I set with camera_set_view_size in the end step menu. Viewports are disabled and not visible in the editor and it doesn't matter which viewport I choose. no idea what it is. if I use camera_create_view in the create event of the camera object, then it works. no idea why it is like that. anyway, thanks for your good work
@szi84658 ай бұрын
or... enable viewports, assign player object, set camera properties add end step event to ur player obj, use this code #region halfViewWitdh = camera_get_view_width(view_camera[0]) / 2; halfViewHeight = camera_get_view_height(view_camera[0]) / 2; camera_set_view_pos(view_camera[0], x - halfViewWitdh, y - halfViewHeight); #endregion boom saved, time and all this burden of coding, works like a charm, no 13+minute long video on such a simple thing
@AllyProductions9 ай бұрын
You have no idea how useful this video was to me on the game I'm currently working on. Thank you so much - I think I owe you a beer! Wait... can popes drink beer? 😂
@EROSNERdesign9 ай бұрын
How about "thou should use thy own art and not purchase others." Coders bitch that "don't use dnd" but they will easily purchase other people's art. Learn to illustrate..
@torbacz23359 ай бұрын
finnaly a video that explains everything perfectly
@shadow__dancer9 ай бұрын
this makes no sense. why did you choose 512 to begin with? thats not even a standard pixel or aspect ratio. why not just pick 1920-1080 and be done with it?
@PixelatedPope9 ай бұрын
512x448 is the resolution of some of the original Super Nintendo games (like Secret of Mana and Final Fantasy 6). But, I do just what you suggest in my Cameras as Simple as Possible video.
@jarirepo117210 ай бұрын
At the time when I start thinking of all of this stuff this video is a best thing I could ever find. Thank you, it would have taken me unthinkable amount of time to figure all this out on my own.
@jarirepo117210 ай бұрын
All right, basic setup seems to work, camera follows at the center of my player, all fine, except the sprite of the player moves in totally different speed, not staying in the position of the player. What's up with that? Actually sprite is already drawn in a different location when I start the game, weird. Position should be absolute I think, why is it offset by that much? If I take out the camera code everything works as it should, something makes my sprite drawn in wrong place. EDIT: I found it, I had draw_self() function at draw GUI... which apparently is wrong choice. :D
@fierorecensione582810 ай бұрын
Hello Pope thank you for this video, is there any chance that sequences make our life simpler instead doing the stuff in this video? Thank you!!!
@PixelatedPope10 ай бұрын
Maybe? I don't use sequences for their intended purpose, but they do work as an interesting visual editor. And working with GUI elements in sequences is reportedly a bit of a pain
@fierorecensione582810 ай бұрын
Ohh i see. Yesterday i tryed to set my gui at 3840x2160, i'm using 2 monitors, one Full HD and the other in 4K, how can you explain that if i run the game in the Full HD using that proportion of my gui works still great? The gui will scale lower resolution and will stretch bigger resolution for fit correctly everytime? Thank you for your answer i really appreciate that.@@PixelatedPope
@bludream926510 ай бұрын
OMG Exactly what I expected to make, thank you!!! You deserve my like and subscribe🥰
@ajinkyax10 ай бұрын
wow this works even in 2023 GM version. thanks
@joao_carloss271011 ай бұрын
entendi porra nenhuma
@_bubblezzzzzz_11 ай бұрын
Thank you for your amazing idea!
@SpaceJellyfishGuitarKing11 ай бұрын
The best part about this channel is the attitude towards game dev that allows it to continue and happen instead of getting caught up in making things perfect. It's so sad to see that this series stopped. Still full of valuable knowledge I bet.
@miss.antidote11 ай бұрын
Does it work for the newest version please?
@PixelatedPope11 ай бұрын
Last time I checked, yes
@Gerg0Vagyok Жыл бұрын
so, how to not have that speed effect, while the camera still being in the room
@natsukaze5799 Жыл бұрын
Very nice! <3
@natsukaze5799 Жыл бұрын
Great tutorial. Helped me a lot, even though my extreme ADHD crossed with your love of saving keystrokes gave me a headache. Those abbreviated variable names were brutal for me. :'D <3 But yeah, thanks, man! Helped a lot, once I sat down and forced my brain to parse your code! Edit: Aw, saw you aren't as active as you used to be with your tutorials. Still, thanks for what you've posted over the years (and earlier this year). Your tutorials were/are some of the best out there for GameMaker. You've saved me a few times, hahah! Hope you're doing well!
@itsybutsy Жыл бұрын
Hi, love the program, it's great. I've been using it to make fighting game palette swaps for a while now, but I'm making a pokemon game right now and am trying to implement shinies. I have every pokemon preset to an ID value, and each of their sprites are grouped together _(their IDs points to the image/frame that is theirs)._ Is there some way to do the same with this palette swapper? _(eg. pal_swap_set_image(palette sprite, palette IMAGE NUMBER, palette index, is surface))_
@PixelatedPope Жыл бұрын
Natively? No. But you could probably add this yourself. If you look at line 84 of scr_retro_pal_swapper you'll see that I get the texture and UV info and hard code image_index 0. You could make that an argument on the pal swap set function and you'd be good to go
@itsybutsy Жыл бұрын
@@PixelatedPope cool! Thanks for that, worked great.