• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

I want to create a Turn Based RPG game in Gamemaker 2

Hello!

I'm kind of new on this programming stuff. I started with GameMaker Studio 1, I did learn a lot of stuff but I got stuck because of my lack of knowledge in GML, so I gave up there. Some time later, I got kinda hyped up with GameMaker Studio 2 and this time, I had learnt much more than before, you know... watching tutorials on youtube and reading forums, lol, but once again, I found myself on the same situation... I got stuck... and that's really frustrating... Especially, when you want to develop a lot of the ideas you have in mind.

Well, this time, I really don't want to stay like this, so I'd like to know... Where can I learn how to make a complete game? I don't want to make a super complicated game, I just want to know and understand how to make the following on my own:

- Movement
- Collision
- Depth
- Dialogue
- Cutscenes
- Some sort of battle system
- Menus, etc

All this for some sort of Turn Based RPG I'd like to create.

Ok, I know it sounds like I'm asking a lot, but I'm willing to pay for a course this time.

I really want to understand programming to a certain degree because when I follow different tutorials, I see a lot of different ways to make a game but since these are different, I can't use certain functions or code in my project. Like, for example, i was doing a cool tutorial on how to make movement for the player and manage its sprites but then I find another tutorial about making cutscenes but I can't use it at all since my code is slightly different.

So... yeah, lol, I want to understand the logic of this program this time. Please, help šŸ™
 
Last edited:

samspade

Member
Well, shameless plug, if programming itself is what you're after, here is my tutorial series on the fundamentals of GML:

I also think the resources on this page are pretty good:

But none of those really deal with the specific things you referenced. They are all more general, learn-to-code type of stuff (though I think that may be what you're looking for and in general is probably a better way to go about it most of the time). It is hard to give a specific recommendation for what you listed as those are very dependent on a lot of undefined assumptions. What type of movement? Top down, platformer, endless runner? What type of collision? Mask based, distance based, tile based? What type of dialogue? JRPG, undertale, mario? And so on for all of those.

I think the person who deals with most of those issues is FriendlyCosmonaut: https://www.youtube.com/c/FriendlyCosmonaut/playlists.

Also, there are a lot of free and reasonable priced resources for many of them on the marketplace: https://marketplace.yoyogames.com/
If you're getting them from the marketplace though, you'll want to understand the basics of coding first because for things like that, they're never going to be plug and play, you're always going to have to get into the code and modify it on some level to make it what you want.
 

woods

Member
getting stuck is half the fun.. even for someone who is a brick of a learner like me ;o)

best piece of advice i can give is plug away at it..
dont give up, its ok to take a break and work on another piece... but dont give up.


also start small.. very small.
make a handful of demos and concept stuffs to learn the basic functions of things.
cruz the threads here on things that you are trying to / might try later ...osmosis this stuff in.

i dinked around for almost 18 months before i started my first game.. and i STILL come to the forums for help with bits and pieces.

when asking for help here, first -do your homework, and show what you have tried and failed with. that will often times give people more insights on what exactly you are trying to do. also will show them that you are trying... vs asking for a code monkey to hammer out your code for you ;o)
finally.. if you want to try something that you dont know exactly how/what to do... poke the manual.. if that doesnt help much(i need it translated alot) look it up on youtube or google.. if still not sure.. pop in here.

this is a helpful friendly bunch here... welcome aboard ;o)
 

Pixel-Team

Master of Pixel-Fu
Check out Slyddar's Udemy course. It's 10 bucks and you build a complete platformer with combat, enemy ai, parallax scrolling, and UI. It's so worth it. It's called How to Make Tile Based Games in Gamemaker Studio 2 by Peter Morgan. Here's a little secret about Udemy. Create a login. Browse to the course you want. If it says it's 100 bucks, just hang back, and put it on your wish list. You'll get en email in a day or so saying the course you wanted is on sale. Now you get it for 10 bucks.
 
Well, shameless plug, if programming itself is what you're after, here is my tutorial series on the fundamentals of GML:

I also think the resources on this page are pretty good:

But none of those really deal with the specific things you referenced. They are all more general, learn-to-code type of stuff (though I think that may be what you're looking for and in general is probably a better way to go about it most of the time). It is hard to give a specific recommendation for what you listed as those are very dependent on a lot of undefined assumptions. What type of movement? Top down, platformer, endless runner? What type of collision? Mask based, distance based, tile based? What type of dialogue? JRPG, undertale, mario? And so on for all of those.

I think the person who deals with most of those issues is FriendlyCosmonaut: https://www.youtube.com/c/FriendlyCosmonaut/playlists.

Also, there are a lot of free and reasonable priced resources for many of them on the marketplace: https://marketplace.yoyogames.com/
If you're getting them from the marketplace though, you'll want to understand the basics of coding first because for things like that, they're never going to be plug and play, you're always going to have to get into the code and modify it on some level to make it what you want.
Thanks for the reply, I'll definitely watch your videos about programming, I really want to understand all of this to be able to make a game.

Well, the game I want to do is some sort of Turn based RPG (you know, a character moving around, talking with NPCs, doing quests, following a story, dialogues, cutscenes, etc). The movement for the player I want to use is very simple, use the keyboard (left, right, up and down), use sprites for the animations movements.

About the collision, I believe I made a mask collision.

Oh and the dialogue, I have learnt how to make portraits, a text box, the text itself, etc... Well... kinda... This part is a bit complicated for me.

Right now, I'm struggling with making cutscenes because I have no idea on how to make them, lol.

Also, yes, FriendlyCosmonaut's tutorials are great, but I got stuck with her cutscene videos...

I need to learn more about GML, so I can do some things on my own. I just don't find many tutorials about programming...
 
Last edited:
getting stuck is half the fun.. even for someone who is a brick of a learner like me ;o)

best piece of advice i can give is plug away at it..
dont give up, its ok to take a break and work on another piece... but dont give up.


also start small.. very small.
make a handful of demos and concept stuffs to learn the basic functions of things.
cruz the threads here on things that you are trying to / might try later ...osmosis this stuff in.

i dinked around for almost 18 months before i started my first game.. and i STILL come to the forums for help with bits and pieces.

when asking for help here, first -do your homework, and show what you have tried and failed with. that will often times give people more insights on what exactly you are trying to do. also will show them that you are trying... vs asking for a code monkey to hammer out your code for you ;o)
finally.. if you want to try something that you dont know exactly how/what to do... poke the manual.. if that doesnt help much(i need it translated alot) look it up on youtube or google.. if still not sure.. pop in here.

this is a helpful friendly bunch here... welcome aboard ;o)
Thank you and yes, I try to start with a small project but I want to move on to something a bit more challenging.

I'd like to have a Gamemaker teacher, lol.
 
Check out Slyddar's Udemy course. It's 10 bucks and you build a complete platformer with combat, enemy ai, parallax scrolling, and UI. It's so worth it. It's called How to Make Tile Based Games in Gamemaker Studio 2 by Peter Morgan. Here's a little secret about Udemy. Create a login. Browse to the course you want. If it says it's 100 bucks, just hang back, and put it on your wish list. You'll get en email in a day or so saying the course you wanted is on sale. Now you get it for 10 bucks.
Thanks for this info. That course sounds very good, the use of parallax scrolling and ai is something I am indeed looking for.

Although, the type of game I want to make is a Turn Based RPG.
 

TailBit

Member
Anything turn based is pretty much a state machine, that should give you something to search for.

With cutscenes you could just disable player control and activate a timeline that gives back control at the end of it .. if you want to have a skip cutscene button then just have it clear any of the dummy objects that you would place and move around under the cutscene, and put player at the position you wanted him to be at the end of it (and ofc give the controls back)
 
Anything turn based is pretty much a state machine, that should give you something to search for.

With cutscenes you could just disable player control and activate a timeline that gives back control at the end of it .. if you want to have a skip cutscene button then just have it clear any of the dummy objects that you would place and move around under the cutscene, and put player at the position you wanted him to be at the end of it (and ofc give the controls back)
I don't know much about state machines, I've heard of them but I haven't used them. Basically... I'm really bad at programming and I really want to learn more this time.

I'm considering paying for a course.
 

rIKmAN

Member
I don't know much about state machines, I've heard of them but I haven't used them. Basically... I'm really bad at programming and I really want to learn more this time.

I'm considering paying for a course.
Shaun Spalding has an Action RPG tutorial series on his Youtube channel, which even if not exactly what you want would definitely have some of the elements you'd want in your own game so would be worth a look.
 
M

mizugori

Guest
I highly recommend you check out FriendlyCosmonaut and/or Shaun Spaulding. They make excellent GMS 2 tutorials, and they are on YouTube freely available. (And they are better than many courses I have bought, to learn Unity stuff on Udemy, Coursera, etc. over the years...!)

*From now on FC = Friendly Cosmo, and SS = Shaun S*

Based on what you have said, I think FC is a better starting point for you. She has multiple tutorials online that go through literally every step to make entire basic games, and explains it in great detail along the way. Look up her
"Space Rocks" one to start, then check out her "Farming RPG" series.

Now, SS does the same thing, and his videos are great, but in my humble opinion he has a tendency that many advanced programmers have - he can't help making the code more advanced than it perhaps needs to be, for something that is ostensibly targeted at beginners. This is tough for a beginner or a weak coder (speaking from personal experience.) Look at the Action RPG series he did for example - it is fantastic - but a few hours in you are still just basically tinkering with perfecting the movement controls system.

With the FC tutorials I have worked through so far, in contrast, she whips up what you need to make the player move around and then she MOVES ON. I personally feel like at this stage in my development as a game designer/creator, what I need is to get a basic understanding of all the core things I need to do (Animate sprites, move the player around, display menus, save and load, etc) - NOT spend long hours on each of those subjects, learning how to do it perfectly at a very advanced level, for the first time.

I switched from Unity to GMS 2 because Unity was far too advanced for me to master at my current skill level. Following the SS tutorials, I was quickly feeling like I was back in Unity. He does demonstrate a ton of cool stuff that I plan to come back to later, after I am far more advanced and comfortable with GMS 2.

Just my $0.02...
 

Yal

šŸ§ *penguin noises*
GMC Elder
I concur with the "state machines are perfect for this" sentiment, 50% of my PokƩmon engine's codebase is the battle control event's step event which is just a gargantuan switch statement handling every step of the battle core loop. Once you've got a solid state machine in place for the main loop, you just need to tie menus and effects to that state machine so that it won't transition to the next core-loop step before all menus and effects are gone. In my case, I just have any state that triggers effects/menus (e.g., "go through the list of attacks everybody chose for this turn") transition over to a state that explicitly wait until those objects are all gone before proceeding.
 
I highly recommend you check out FriendlyCosmonaut and/or Shaun Spaulding. They make excellent GMS 2 tutorials, and they are on YouTube freely available. (And they are better than many courses I have bought, to learn Unity stuff on Udemy, Coursera, etc. over the years...!)

*From now on FC = Friendly Cosmo, and SS = Shaun S*

Based on what you have said, I think FC is a better starting point for you. She has multiple tutorials online that go through literally every step to make entire basic games, and explains it in great detail along the way. Look up her
"Space Rocks" one to start, then check out her "Farming RPG" series.

Now, SS does the same thing, and his videos are great, but in my humble opinion he has a tendency that many advanced programmers have - he can't help making the code more advanced than it perhaps needs to be, for something that is ostensibly targeted at beginners. This is tough for a beginner or a weak coder (speaking from personal experience.) Look at the Action RPG series he did for example - it is fantastic - but a few hours in you are still just basically tinkering with perfecting the movement controls system.

With the FC tutorials I have worked through so far, in contrast, she whips up what you need to make the player move around and then she MOVES ON. I personally feel like at this stage in my development as a game designer/creator, what I need is to get a basic understanding of all the core things I need to do (Animate sprites, move the player around, display menus, save and load, etc) - NOT spend long hours on each of those subjects, learning how to do it perfectly at a very advanced level, for the first time.

I switched from Unity to GMS 2 because Unity was far too advanced for me to master at my current skill level. Following the SS tutorials, I was quickly feeling like I was back in Unity. He does demonstrate a ton of cool stuff that I plan to come back to later, after I am far more advanced and comfortable with GMS 2.

Just my $0.02...
Oh yeah, I've watched Shaun Spalding videos, he's really good at GameMaker but like you said, he tends to complicate it more than usual.
On the other hand, I love FriendlyCosmonaut's videos, she is really good at explaining. In fact, I've watched almost all her videos about GameMaker... Although, I got stuck with the Cutscenes tutorials (for example: move the character during a cutscene while animating its sprites) ):
 
I concur with the "state machines are perfect for this" sentiment, 50% of my PokƩmon engine's codebase is the battle control event's step event which is just a gargantuan switch statement handling every step of the battle core loop. Once you've got a solid state machine in place for the main loop, you just need to tie menus and effects to that state machine so that it won't transition to the next core-loop step before all menus and effects are gone. In my case, I just have any state that triggers effects/menus (e.g., "go through the list of attacks everybody chose for this turn") transition over to a state that explicitly wait until those objects are all gone before proceeding.
I think I will need to learn about state machines but I don't know how to start, I sometimes don't even know how to tie scripts or pieces of code to objects or other things ):
 

FrostyCat

Redemption Seeker
A lot of novices have this same issue. They watch a tutorial for a specific design item (e.g. "how to make an RPG"), and instead of learning the underlying logic and adapting it, they expect to patchquilt them together. That never works, and it runs counter to the approach I recommend with tutorials.

Don't even try to make a full game for now. Go back to the FC tutorials you watched, and this time pay attention to the following items:
  • How she decides what objects and other resources to use
  • Where she sets up her variables and other data
  • What control structures (e.g. if, for, while, etc.) she uses and for what general purpose
  • How she chooses which event to use and what kinds of code go in each (especially Create, Step, Draw, Draw GUI, Destroy, Cleanup)
These are the kinds of patterns and skills you'll use over and over again. In contrast, tutorials are seldom applicable more than once in their unaltered form.

This means learning the most basic elements of GML and how to plan their behaviours. This means looking into the details and past the glitz. This means transitioning to a programmer mindset (e.g. "how arrays and loops interact in an inventory UI") and away from a designer mindset (e.g. "how to build an inventory").

If you can't explain why she does the things she showed you, you have not learned from the tutorial, you have only seen and copied it.
 

NightFrost

Member
I think one thing to do when following tutorials is to use as much time as it takes to fully, completely understand what the code does and why it was written that way. Otherwise you have code that is full if black boxes; if something breaks, you don't know why; if you need for it to work slightly differently, you don't know what to change.
 
A lot of novices have this same issue. They watch a tutorial for a specific design item (e.g. "how to make an RPG"), and instead of learning the underlying logic and adapting it, they expect to patchquilt them together. That never works, and it runs counter to the approach I recommend with tutorials.

Don't even try to make a full game for now. Go back to the FC tutorials you watched, and this time pay attention to the following items:
  • How she decides what objects and other resources to use
  • Where she sets up her variables and other data
  • What control structures (e.g. if, for, while, etc.) she uses and for what general purpose
  • How she chooses which event to use and what kinds of code go in each (especially Create, Step, Draw, Draw GUI, Destroy, Cleanup)
These are the kinds of patterns and skills you'll use over and over again. In contrast, tutorials are seldom applicable more than once in their unaltered form.

This means learning the most basic elements of GML and how to plan their behaviours. This means looking into the details and past the glitz. This means transitioning to a programmer mindset (e.g. "how arrays and loops interact in an inventory UI") and away from a designer mindset (e.g. "how to build an inventory").

If you can't explain why she does the things she showed you, you have not learned from the tutorial, you have only seen and copied it.
Yes, I agree with you. I really want to understand the logic behind programming in Gamemaker so I can be more flexible with coding.

Although, I really know how some things work, I gotta say that I struggle with the rest.

Perhaps, I'm just too bad at programming, lol, but I really want to learn this time.

If you know about a video on how to understand the logic of GML, I'd really appreciate it.
 

rIKmAN

Member
Yes, I agree with you. I really want to understand the logic behind programming in Gamemaker so I can be more flexible with coding.

Although, I really know how some things work, I gotta say that I struggle with the rest.

Perhaps, I'm just too bad at programming, lol, but I really want to learn this time.
Nobody is born knowing how to code, we've all spent time learning and improving our understanding of the concepts and logic etc behind how code works - it just takes time and some dedication and there is no shortcut.
If you know about a video on how to understand the logic of GML, I'd really appreciate it.
Take a look at the post @samspade made above with the link to his fundamentals tutorials, but be aware that the general logic of programming and things such as loops, branching, arrays, scoping etc are global concepts that apply to all languages and they aren't GML specific. There may be a few differences in syntax between languages but the the concepts are the same across the board.
 

Rob

Member
I think you should become more accustomed to GML before you make a turn based RPG but if you want to see a complete turn-based RPG series:


There are a lot of things I'd like to change in it now, things I would code better etc but it all works and I'm sure newbies will learn some things as they go that they didn't know before.

It has:
Movement for Player / NPC's and tile-based collisions
Turn-Based Combat for multiple heroes/monsters
Innkeeper
Shop
Transitions from village to world or stair to stair etc
Quests (repeatable and ones that advance the story line)
Day/Night Cycle (Both visual and the option to have NPC's appear/disappear based on time of day)
Vehicles
Save Slot system that displays Hero name, level and gold on each slot
Name editor for hero and party members
Probably some other things that you'd expect from a JRPG but that I've forgotten about.

The main mistake I made with the series is adding extra features that were requesting during the creation of it. The way I save/load stuff could also be done in better ways.
 
Last edited:
I think you should become more accustomed to GML before you make a turn based RPG but if you want to see a complete turn-based RPG series:


There are a lot of things I'd like to change in it now, things I would code better etc but it all works and I'm sure newbies will learn some things as they go that they didn't know before.

It has:
Movement for Player / NPC's and tile-based collisions
Turn-Based Combat for multiple heroes/monsters
Innkeeper
Shop
Transitions from village to world or stair to stair etc
Quests (repeatable and ones that advance the story line)
Day/Night Cycle (Both visual and the option to have NPC's appear/disappear based on time of day)
Vehicles
Save Slot system that displays Hero name, level and gold on each slot
Name editor for hero and party members
Probably some other things that you'd expect from a JRPG but that I've forgotten about.

The main mistake I made with the series is adding extra features that were requesting during the creation of it. The way I save/load stuff could also be done in better ways.
Thanks, I'l watch your videos indeed, this time I really want to learn more instead of just following tutorials because sometimes, I can get stuck when I want to implement new codes or scripts in my project.

Yes, I really need to learn a lot of GML. I think if I get to understand it, I'll be able to code freely.
 
I just want to thank everybody for their replies, I am taking everything into consideration. If you know more ways on how I can start coding and learning GML, please let me know. It's really useful for me.
 
  • Like
Reactions: Rob

Bearman_18

Fruit Stand Deadbeat
Definitely have an extremely solid grasp on the fundamentals of state machines, arrays, macros, and data structures. Turn based combat is more difficult to build than regular combat, because you have to build an entire system to make events happen in the right order. There's a lot of data management involved. I've been using GM for two years, and I still have difficulty with it.

That said, if you get a good understanding of the fundamentals, and plan out your systems thoroughly, you should be able to do it just fine. Here's some advice:

Try to make as few objects as possible. Don't make a new object for every type of character, make one object containing all the necessary code for a character, then have a variable that says what type of character it is. Then, use that variable to determine what kind of unique stuff it can do and what it's stats are.

Don't be afraid to scrap stuff. I once rewrote a combat engine three times before I was happy with.

Don't burn yourself out making art as you go. Try to make as much of the game as you can with placeholder squares.

Between macros and instance variables, you almost never need global variables.

Lastly, you wrote a list of what you want to learn. It just so happens that you wrote the list in the perfect order. Learn everything starting with the top of the list, and work your way down. (Except menus. Learn those as early as possible. XD)

Good luck!
 

Yal

šŸ§ *penguin noises*
GMC Elder
Perhaps, I'm just too bad at programming
Well, obviously, since you're still a Lv.1 programmer. You gotta go out there and squash some bugs to start levelling up :p
But on a serious note, I think the focus on talent in the US schools is just harmful - you aren't born with a static skillset, and it's perfectly possible to get competent at something you lack talent in, it's just harder. Cementing the misconception that people either are born with or without an ability to do things is going to make both sides stop trying to improve: the ones thinking they're naturally born with talent don't realize they need to keep honing their skills, the ones thinking they're born without it thinks the battle was lost from the start and will stop trying.

Yes, I really need to learn a lot of GML.
You're making it sound like you need to know all of the codebase to be able to do anything, but you actually only need to get good at the core functionality: loops, data types, control structures and branching, dealing with behavior in different objects. 99% of the functions work the same way: they perform some side-effect like drawing to the screen or compute some data. Once you've seen one of them, you've seen them all; it's just about knowing how to browse the manual so you can figure out what functions exist for the task you're trying to do next.


Turn based combat is more difficult to build than regular combat, because you have to build an entire system to make events happen in the right order.
"Regular combat"? Yahtzee made a better rant than me about how meaningless that description is, so I'm just gonna use that:
(rant is at 7:38 if the timestamp doesn't work for you)

From my experiences making a Tactics game, even if there's a lot of upfront cost building all of the RPG systems, you regain it very quickly because of how easy it is to add content later: just draw up a region in the level editor, plop down a bunch of monsters and tell the game what level they're at and what equipment they're wearing, and then you're done. Tactics makes this even easier since the same enemies can give you a different experience if the battle field is different, but you've probably noticed how a lot of JRPGs stretch out their content over hundreds of hours thanks to high random encounter rates.
 

Bearman_18

Fruit Stand Deadbeat
@Yal I suppose when I said "regular combat" what I should have said was "realtime combat". XD

What you say is true though. The benefit of a robust turn-based system is in how modular it is. Adding a new enemy is just an adjustment of stats and equipment, rather than a whole new set of rules and attacks. That said, you can do the same thing with realtime combat, but it just won't be as interesting if every enemy is almost the same concept.
 
Top