If the assets file link doesn't seem to work, right click it and hit save as. Or use a non-Chrome browser. Chrome doesn't play nice with direct file links on YT for whatever reason.
for some reason when i run, i cant move it. i made sure the code was the same, and it should be working. maybe there was an update to game maker as this was made 2 years ago, but if you see this please help
@@GoingToAFuneral weird. i have no clue why this isnt working and i have gone through the code at least 1000 times already, and i cant find whats wrong.
This series is going to be absolutely astounding. So many GMS2 tutorials are either outdated, poor quality, or abandoned. This one is brand new and made by an amazing person! I have to admit that it will be a pain to wait for new episodes, but I'm willing to wait! Please don't drop the series, Shaun! You're doing the good work!
Just making a thing move on the screen seems almost anti-climactic to me after this huge long wait, but we have to start somewhere! So glad to finally have an episode out. Shout outs to all my Patreon supporters for getting us over the line from preproduction into production. Will be aiming to put new episodes out weekly in the new year. Have a great holiday season all!
Making this comment late October 2023 having just finished the full series. Cannot recommend enough. Absolutely fantastic tutorial that gave me a really great understanding of GMS, and one of the best you will find on youtube. Just out of date enough that you sometimes you have to do some extra work yourself which helps with the learning, but still new enough that everything is relevant.
As someone going in now, do you have any advice for what to look out for? i have so many tutorials to begin with that are already out of date with UE5 having so many new features, how far off the beaten path do you need to go and where does that usually happen? Functions for sure, anything else?
I've been trying to learn GMS2 for literal years at this point and yours is the first tutorial I've found in all that time which is clear, good quality, and actually explains what's going on and why. From the bottom of my heart, thank you
@@stanuhappying2478 Little late I know... but did you try removing the ";" at the end? I left ";" in the wrong spot, which had me scratching my head for some time. I did this: keyLeft = keyboard_check(vk_left); or keyboard_check(ord("A")); When I was supposed to do this: keyLeft = keyboard_check(vk_left) or keyboard_check(ord("A"));
Has anyone finished this tutorial recently? I’m hoping to do this next but I’m worried some things don’t work anymore. If there’s fixes for the issues that don’t involve re designing entire mechanics/ blocks of code I’d be happy
Here I am, back where it began. I just finished the 51st episode. What a journey. I came back to episode 1 to reference a couple things as I embark on my first self-directed project. Thanks again for all the help, Shaun.
Something that may not be obvious if you are new to programming: True is the same as the number 1 and false is the same as the number 0. inputMagnitude will result in either true or false but it is actually 1 or 0, so that is why we can multiply inputMagnitude by speedWalk. If you were wondering how it is possible to multiply a number by true or false.
noooooooooooo hes not watch out nnnnnnnnnnnnnnnnnnnnnnnnaaaaaaaaaaaaaahhhhhhhhhhhhhh owahhhhhhhhhhhahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhyhaahhhhhhhhhhhhhhhahhhhhhhhhhhhhhhaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhh NO NONON ON ONOEN OEN ON ONWHAT HOYUY YWHAT OUT NOOOOOO SERGWWNT WATCH OUT NAAAHAHH NOWOWOWOWOOA NONO_ NONON ON O NONA EON
Thank you for creating these tutorials. I know you say the progression is slow, but that's exactly what a first timer needs. Every video tutorial I've watched on Unity (by other RU-vidrs) was way too fast, and there were things they didn't mention that a first timer would miss.
I just got back into making games recently and I am absolutely thrilled to have found this series! After finishing Crystalis on NES I decided I want to make a game in this kind of style. Thank you for all your hard work
i've never seen a tutorial so clear and understandable! creating a game has crossed my mind so many times in past few months and i didn't know where to start i'm currently saving money for gamemaker studio! thank you so much for explaining the way it works, creating my dream game will be so much easier!
Do you know when you spend 3 days trying to find a rpg game creating tutorial? Yeah, I litteraly spend 3 days to find one and I actually found ONE in 1 day, but the results weren't the results I wanted... So I spend 2 more days and I found this one, where I just understood everything about the first video, I even added more stuff while I was exploring the functions of things and now--- now I'm gonna make my dream 2D game with this tutorial (playlist of videos about a single tutorial) now... I'M HAPPY! :) Thanks for your videos, they are very helpful, at least for me. :) Have a great life.
Very much looking forward to this series. Congrats on all the hard work of putting it all together! I’ll be buying the assets to follow along every time a new vid gets released! Cheers :)
I found you through the yoyo games channel. The tutorial there was so amazing that I had to come and check out the channel. With just this last week, I have learned more about coding than the few months I was working with Unity. I can confidently go into a new project and create a nice little game within just a few hours (2d platformer), ready to tackle some top down ARPG. And with the knowledge I already had, i was able to make a very minimal game like this with a lot of trial and error and understanding how the platforming side worked. Cant wait to expand my knowledge even more!
Decided to start right one. Never had the courage to finish a single game. I hope I'll get through this, doesn't seem too hard and I know I can do this. Thanks for the tutorial !!
Video might be old but im gonna comment anyways. I took a game maker summer class back in like 2012 lol...anyways recent videos of people making games has inspired me to revisit it. Your tutorials are great. I am super greatful for you leaving the assets folder. Much respect to you and your work.
I see you moved from hsp and vsp to hSpeed and vSpeed. Tips for newbies: you need to capitalize the S. Otherwise they are default variables and your object starts moving at the end of the frame automatically if they are anything but 0. That prevents complicated collision checks from working correctly. You may want to move in one direction before checking for the other direction. Default variables may get you stuck in corners because they see that both directions are clear of objects and then move you in both directions even though there was an object in the corner.
I had experience with Unity, and I'm migrating to GMS2. So I needed a complete project, and not that simple... so I could relearn everything in GMS2... This project it's PERFECT for this so far. So clear, and well explained. And also doesn't "hold your hand" too much, explaining the functions, and not just writing everything down.
Thank you for your tutorials Shaun. You are a superhero! Coming from part 31 I have decided to create a new game prototype with all kinds of features including the ones you are teaching. For the sake of learning I started again, this time using my own syntax, writing a lot of descriptions on each event and using basic assets created in just a few hours (stylized figures) so I can focus on the game Mechanics before digging into Art and Sound. Coming from the newer versions of GameMaker I have been able to wrap all Scripts inside a few Scripts and other funny stuff for crazy organised people like me. Cheers!
@@antigamer1013 Stick keys is like an accesibility feature for people with arthritis, who can't hold down multiple keys at the same time. Instead of holding down Ctrl+Alt+Del simultaneously, with stick keys enabled, you can trigger sticky keys, then individually press Ctrl, Alt, then Del consecutively and it will count as them being held down all at the same time
@@subliminalcastillo2126 Thanks for the info on that! I didn't know at all. If I type too much or at a bad angle my wrists will start to hurt and it makes it difficult for me to position my hands to hold down multiple keys at once. (It's literally happening right now... fml.) I'll definitely keep this in mind in the future.
Glad to see some form of camera management early on development, that caused me some headaches when I had more stuff in and many conditions for the camera to follow...
In case anyone wants to know hSpeed = dcos(inputDirection)*speedWalk*inputMagnitude; vSpeed = -dsin(inputDirection)*speedWalk*inputMagnitude; Should be the same as lengthdir
oh my god. I had just started working on a new RPG game, but it was being made in RPG Maker so i didn't have much hope for it. Out of nowhere, this arrives. Thank you Shaun.
Thanks man, for this one and all of your other videos. The way you explain your actions has been helping me to understand GML better. I'm always encouraged to experiment and edit my code and most importantly, I understand what I'm doing, as opposed to copy and paste nature of any other online tutorials. You're a great teacher !
yussss! Been waiting :). (wonder why i didnt get the notification, youtube?) You're a very talented man shaun, thank you! Cant wait for the rest of the series!
omg hell yeah I can't wait to dig into this after I finish the action platformer one!! Between those two I feel like I'll have the knowledge to figure out how to do pretty much anything
thanks so much shaun your tutorials are really good also with the other platformer you mentioned in the video whenever you type oWall instead you need to type all this is 2020 and the all trick works :D
WOW! I never thought you would do something so cool, I love this content that gives us knowledge that we didn't know, I can't help with a lot, but I'll subscribe and leave a like here.
PLEASE HELP! Everything works but my player sprite shakes when moving diagonally, if I use round like this... hSpeed = round(lengthdir_x(inputMagnitude * walkSpeed, inputDirection)) it causes straight movement to speed up and diagonal movement to slow right down.
@@djlawzon I did some things differently to Shaun, but basically I used round() or floor() on the camera movement and player movement. I'm so sorry I can't be more specific, but it was a while ago. If you persist with this series, Shaun talks through these functions, and I think rounds movement. You'll know what to do by then.
The benefit of putting everything in the step event versus using the built in keyboard events is that using lengthdir functions or alternate keys would be impossible or have glitches. You'd move faster diagonally and also pressing both an arrow key and the equivalent WASD key would make you move double as fast.
@@robo-dog6569 you sure? I've literally never seen it there on a keyboard ever until this video? unless that's a windows keyboard thing maybe (cause I usually use mac)?
Note - alt+enter is a Windows thing, not a Game Maker thing, it works for most games on Windows. (It can be useful if you're ever stuck in a fullscreen game that's stopped responding, or if you're playing something that's super old where fullscreen doesn't work properly or something.) It's probably more like unchecking the Allow Fullscreen Switching boxes disables the shortcut, instead of the contrapositive.
What's wrong with players shaking when they move diagonally? The smaller the player sprite (16x16) the more severe the screen shakes. If you do x=round(x), y=round(y) to the player, the screen will not tremble. However, the horizontal movement and diagonal movement distances will not be the same.
Hey shaun, thanks for the new walk through I always love your video's. I do have a question is there a reason you are setting your keys for movement in the step event so it re-fires every Step? It seems to me that this should have been done in the create step...
Awkward Monkey Games sorry for a late reply but I’m pretty sure it’s because as well as setting the keys, it’s also checking if it’s being pressed and he uses that for the movement which checks every step and not just when it’s created. I’m new to this so I might be wrong.
I saw you have done things A LOT differently than what *I* have, so since I don't have any other ideas on how to get diagonal movement correct, I must concede to your cleaner take on it, with putting those few lines in the STEP area.
There is a faster way to solve the diagonal movement: var diagonal = 1; if((hSpeed * vSpeed) != 0) { diagonal = sqrt(2)/2; } x += hSpeed * walking_speed * diagonal; y += vSpeed * walking_speed * diagonal;
Sqrt functions use fewer lines of code but are notoriously slow in finding your answer. They use a lot more calculations than you would think unless GML is somehow unique among languages in that. That said, you could instead define the value sqrt(2)/2 as a constant, e.g. 0.70710678118, and use that.
I'm a simple man, if I see an engine that is being used in the commercial market, and has success, allowing amazing looking games, I'm going to go that direction. I can't understand why I keep going back to trying Game Maker, since Godot is so popular now, but there are things about Godot that I can't follow, not to mention the particle system and other stuff is still improving. They say, Godot 4.0 will change everything, but I've been watching Godot for years, I just want to make games, GameMaker seems the way to do that.
If someone got stuck on line 14 and 15 just like me, I put it like this hSpeed = dcos (inputDirection) * walkSpeed * inputMagnitude; vSpeed = -dsin (inputDirection) * walkSpeed * inputMagnitude; and it was (but you have to change it in create to "walkSpeed" too
Hi shaun, ive done some of your other tutorials but this one looks really amazing so far, i want to do a game of this style and i understand most of what i see but before i get to deep i would like to add split screen to this having the second character i don't think will be to difficult the only issue im having is how to set up the split screen camera im not having a problem adding a second camera but getting them to not over lap and be a true split screen i cant seem to work out i have some ways of doing it but i was hoping to keep with you line of camera coding to the end so i didnt have any issues with the tutorial. Is there a quick way to adjust your camera code for this or would i have to do a completely diffrent coding for split screen. Thanks for any advice you can give love your tutorials they are amazing.
I had an issue where the player would just SHOOT off into one direction. I made some changes (Also my syntax is a bit different so if you copy my code you'll probably need to change it to fit your project). I also had it output the MoveX and MoveY (Which for this tutorial was hSpeed and vSpeed) in the Output so you can debug any weird movement issues. // Step Event of O_PlayerCharacter // Keybinds for Player Movement KeyLeft = keyboard_check(vk_left) || keyboard_check(ord("A")); KeyRight = keyboard_check(vk_right) || keyboard_check(ord("D")); KeyUp = keyboard_check(vk_up) || keyboard_check(ord("W")); KeyDown = keyboard_check(vk_down) || keyboard_check(ord("S")); // Keybinds for other actions KeyActivate = keyboard_check_pressed(vk_space); KeyMenu = keyboard_check_pressed(vk_escape); KeyAttack = keyboard_check_pressed(ord("F")); KeyItem = keyboard_check_pressed(ord("E")); // Fix diagonal movement InputDirection = point_direction(0, 0, KeyRight - KeyLeft, KeyDown - KeyUp); InputMagnitude = min(1, sqrt(power(KeyRight - KeyLeft, 2) + power(KeyDown - KeyUp, 2))); // Update the player's position MoveX = lengthdir_x(InputMagnitude * MoveSpeed, InputDirection); MoveY = lengthdir_y(InputMagnitude * MoveSpeed, InputDirection); x += MoveX; y += MoveY; // Debugging output show_debug_message("MoveX: " + string(MoveX) + ", MoveY: " + string(MoveY));
thanks for the ground work! I'm not gonna really make an rpg, but a survival top-down! Also, even though you fixed diagonal movement, I'm just gonna leave it in cause i want diagonal movement to be a way of speedrunning :)
I have done everything and when I press play it won’t run the game it keeps saying that the game failed. I’m on MacBook I’m not sure if that affects anything
I don't know if anyone pointed that out already, but: If you want to bind something to mouse buttons, just do: = mouse_check_button(); In type 1,2,3 (left,right,wheel)
Literally a hero. I'm still not sure why my guy was only moving left and right but this has fixed it. I kind of wish i knew what i did wrong though. Thanks mate!