GameMaker How to / Best way to

JeanSwamp

Member
Hi!

I'm new to GMS, actually my first day doing research and learning and I ran into some doubts I'd like to know before I tackle stuff in the future. Hopefully some of you can drop me some insight

1. What would be the best way to tackle a sidescroller in GMS2? One room for each actual game room/layout where you collide with an invisible objects to port you to the next room? One giant room with some kind of camera transition metroid-like to make it feel you actually joined a new room?

2. Is it better use objects with invisible sprites for solids/jumpthrough/climb/ramps or handle it with a tilemap with semi-transparent invisible tiles with different colors, and each specific tile has a different behaviour with the player. I don't know if I make any sense

3. Knowing I want to have a long range shoot and a melee attack, maybe two, plus all the player animations, considering is my very first day, do you recommend me jumping into learning a state machine before learning other basics for a platformer or wait?

Thank you all
 
M

maratae

Guest
Hi!

I'm new to GMS, actually my first day doing research and learning and I ran into some doubts I'd like to know before I tackle stuff in the future. Hopefully some of you can drop me some insight

1. What would be the best way to tackle a sidescroller in GMS2? One room for each actual game room/layout where you collide with an invisible objects to port you to the next room? One giant room with some kind of camera transition metroid-like to make it feel you actually joined a new room?

2. Is it better use objects with invisible sprites for solids/jumpthrough/climb/ramps or handle it with a tilemap with semi-transparent invisible tiles with different colors, and each specific tile has a different behaviour with the player. I don't know if I make any sense

3. Knowing I want to have a long range shoot and a melee attack, maybe two, plus all the player animations, considering is my very first day, do you recommend me jumping into learning a state machine before learning other basics for a platformer or wait?

Thank you all
1. Multiple rooms, because performance.
2. It depends on how complex is the suff you need / want. There's people doing either of those.
3. Depends on where you're at, at the moment, and your experience with programming. Just learn it all however feels confortable.
 
S

Sake_v2

Guest
Hi!

I'm new to GMS, actually my first day doing research and learning and I ran into some doubts I'd like to know before I tackle stuff in the future. Hopefully some of you can drop me some insight

1. What would be the best way to tackle a sidescroller in GMS2? One room for each actual game room/layout where you collide with an invisible objects to port you to the next room? One giant room with some kind of camera transition metroid-like to make it feel you actually joined a new room?

2. Is it better use objects with invisible sprites for solids/jumpthrough/climb/ramps or handle it with a tilemap with semi-transparent invisible tiles with different colors, and each specific tile has a different behaviour with the player. I don't know if I make any sense

3. Knowing I want to have a long range shoot and a melee attack, maybe two, plus all the player animations, considering is my very first day, do you recommend me jumping into learning a state machine before learning other basics for a platformer or wait?

Thank you all
1. Different rooms. Having one room too huge can impact performance, making it so that maybe you will have to implement a instance deactivation/activation system of some sort with objects too far away.

2. I'm not sure I understood that question. ...Objects with invisible sprites, I guess? That's what I would do anyway.

3. I guess that depends on if you have any experience with programming. You said you're new to GMS, well if you have no experience to almost no experience with programming at all I would say to just create a "learning project" and test things out. Get more experience first. But definitely use it eventually.
 

JeanSwamp

Member
1. Multiple rooms, because performance.
2. It depends on how complex is the suff you need / want. There's people doing either of those.
3. Depends on where you're at, at the moment, and your experience with programming. Just learn it all however feels confortable.
1. Is it hard to develop a camera room system in order to achieve the feeling of joining a new room?
2. Not so complex, I guess just the basics for a platformer, solid, jumpthrough, a ladder climb, maybe some rope mechanic, climb on ledges.. Do you think is easier to manage it with objects or a tilemap?
3. It is my first day, I did Part 1 and 2 from Shaun's platformer tutorial and understood it quite well for my first time I even made a change not to repeat the same check. I have 0 knowledge of programming, all I did in the past was some months in C2 which is an event system.
 

JeanSwamp

Member
1. Different rooms. Having one room too huge can impact performance, making it so that maybe you will have to implement a instance deactivation/activation system of some sort with objects too far away.

2. I'm not sure I understood that question. ...Objects with invisible sprites, I guess? That's what I would do anyway.

3. I guess that depends on if you have any experience with programming. You said you're new to GMS, well if you have no experience to almost no experience with programming at all I would say to just create a "learning project" and test things out. Get more experience first. But definitely use it eventually.
1. I see this is a common idea. Thanks!
2. Maybe I explained myself pretty bad. I've seen people using objects and people using a tilemap and each color tile acts as an object, I guess is just a way to draw it into your room faster? Probably doesn't make much difference, and most people seem to use solid objects with invisible sprites.
3. My current idea for learning is complete the Shauns platformer tutorial in my own project with a placeholder art, then add more stuff into that project from different tutorias and create some sort of a super platformer engine from stuff learnt from different tutorials. Maybe sounds weird but it makes sense to me.
 
S

Sake_v2

Guest
1. I see this is a common idea. Thanks!
2. Maybe I explained myself pretty bad. I've seen people using objects and people using a tilemap and each color tile acts as an object, I guess is just a way to draw it into your room faster? Probably doesn't make much difference, and most people seem to use solid objects with invisible sprites.
3. My current idea for learning is complete the Shauns platformer tutorial in my own project with a placeholder art, then add more stuff into that project from different tutorias and create some sort of a super platformer engine from stuff learnt from different tutorials. Maybe sounds weird but it makes sense to me.
I'm not too familiar with the tile thing, but tiles are used because they're not as "heavy" as an object, yes. But it's not that big of a difference (unless you're talking about hundreds of objects), I would say for solids, just use objects.

And that makes perfect sense. When starting out I literally had a project called "learning project" where I just started adding stuff. Making a flashlight/battery system, opening drawers, inventory, etc. Its probably not gonna turn out in any amazing game to put out to the public, but it's very good to try to learn as much as you can. I would recommend, at some point though, starting to try to implement systems all by yourself. From that point on you will need tutorials less and less. Good luck.

EDIT:
And its not hard to do the camera thing. Depends a lot on what type of effect you're trying to achieve, but I would say generally it's not hard.
 
M

maratae

Guest
1. Is it hard to develop a camera room system in order to achieve the feeling of joining a new room?
2. Not so complex, I guess just the basics for a platformer, solid, jumpthrough, a ladder climb, maybe some rope mechanic, climb on ledges.. Do you think is easier to manage it with objects or a tilemap?
3. It is my first day, I did Part 1 and 2 from Shaun's platformer tutorial and understood it quite well for my first time I even made a change not to repeat the same check. I have 0 knowledge of programming, all I did in the past was some months in C2 which is an event system.
1. Depends on the kind of camera. I find coding cameras quite enjoyable.
2. Go with objects, maybe.
3. Shaun's stuff is great, but beware of his jump-through platforms' logic. Might get problematic down the road.
Just do a bunch of tutorials until you feel good with the program and the language. Go steady, don't skip steps. Have patience.
Good luck!
 

TheouAegis

Member
2. You can use normal tiles; you don't need a graphical tile layer and a collision tile layer. You basically decide which tiles are "solid", which are "semi-solid", and which ones are non-interactive, then when you collide with a tile, you check which category it falls under based on its index in the tile set. But there's no rule that says you need to use only objects or only tiles. Tiles are best used for terrain that doesn't move. Objects are best used for terrain that does move. On the other hand, a lot of people are more comfortable handling sloped terrain with objects rather than tiles due to objects allowing precise collisions.

Things like ladders and passable stairs are a trickier matter. You can use just tiles for ladders, since the general idea is "when the player pushes up, check if there is a ladder at either arm then start climbing until there is ground at his feet." This makes it easy to pull off ladders and ropes that you can grab in mid-air.

For passable stairs, I personally use a landing object which tells the player where stairs start (the "end" of a stair is when the player's feet land on ground). Press up, look for any landing objects that are set as belonging to stairs that go up, check if it's close enough to the player to interact with, move the player toward it if he is close enough, then start climbing up the stairs. Going down stairs is essentially the same principle.
 
Top