GameMaker Studio 2: Isometric Game Tutorial

  Рет қаралды 111,576

Sara Spalding

Sara Spalding

Күн бұрын

▶ Part 2: • GameMaker Studio 2: Is...
▶ Support my work: / shaunjs
▶ Source code: shaunjs.itch.i...
And that's me out for Christmas. Have a good end-of-winter-thing everyone!

Пікірлер: 133
@SaraSpalding
@SaraSpalding 5 жыл бұрын
This is the tutorial I was referring to that initially taught me the maths of isometric grids clintbellanger.net/articles/isometric_math/ If you're feeling brave you can even use this to do the next part of the tutorial without me!
@migueldirnt8
@migueldirnt8 5 жыл бұрын
Is it possible to do this in gamemaker 1?
@SaraSpalding
@SaraSpalding 5 жыл бұрын
yep
@migueldirnt8
@migueldirnt8 5 жыл бұрын
@@SaraSpalding I' ll try it, thanks
@mithrandrilltharkun1970
@mithrandrilltharkun1970 5 жыл бұрын
I have gaps between top and bottom of isometric tiles. Any clue as to why?
@TheXsias
@TheXsias 3 жыл бұрын
Hello everybody ! For everyone who try this tutorial with GMS2 version 2.3.2.560, i've discovered a bug : If you modify your layer "Map" in the room editor, changing some tiles, it will not change your map when you F5 (run your game). The solution to this is to clic on the little "eye" at the right of your layer "Map" (in the room editor) after your tile edition to set the layer invisible then clic again to set it visible. Somehow, i've the sensation that GMS2 keep some sort of cache or maybe Shaun's code have some news sides effects with newest version of GMS2. I don't know why. Have a nice day ! (And thank you very much Shaun for yours tutorials !)
@zach284
@zach284 2 жыл бұрын
For those getting the undefined value error from the TileToScreenY script, you have to list the code as a function with the following code function TileToScreenY(argument0, argument1) { var _tX = argument0; var _tY = argument1; return ((_tX + _tY) * (TILE_H * 0.5)) + (SCREEN_H * 0.25); } The same has to be done for the TileToScreenX script. Hope this helps you guys. Good tutorial overall
@abramperkins3414
@abramperkins3414 2 жыл бұрын
or you can do function TileToScreen(_tY, _tX){ return ((_tX + _tY) * (TILE_H *0.5)) +(SCREEN_H *.025) } using the arguments is now redundant as those are arguments now.
@coldsaviour1770
@coldsaviour1770 2 жыл бұрын
thanks man
@tokensgaming
@tokensgaming Жыл бұрын
Life Savior!
@jeanleebermudezalbert4054
@jeanleebermudezalbert4054 5 жыл бұрын
19:42 RIP 0 button.
@DonGeritch
@DonGeritch 5 жыл бұрын
awesone, this is what I was looking for! thank you! what I personaly would like to see next is how to make correct movement speed for characters in isometric perspective. I had trouble with it in my little prototype of a Diablo-type game. What I tried to do is to use a formula for finding a radius of an ellipse, in the dirrection from center to the mouse arrow. The character position would be a center for this ellipse and radius would modify characters speed. I expected he would move at normal speed value horisontaly, at a half speed verticaly, and whatever value inbetween in any angle. It almost worked, but as i changed direction character would jitter and pick any speed between 0.5 and 1. I think it's because I'm using the step event incorrectly by placing the whole formula in it and instead I should break it up somehow, but I couldn't figure it out yet.. I'm using GMS1 btw
@darkdraconium
@darkdraconium 5 жыл бұрын
This is easily the best Christmas present! Thanks for working so hard to get it out before the holiday!
@woojinjang8077
@woojinjang8077 5 жыл бұрын
When I tried this it said that it was trying to index a variable that was not an array. "trying to index a variable which is not an array at gml_Object_oRender_Draw_0 (line 12) - tileIndex = tileData[TILE.SPRITE];"
@lizardrain
@lizardrain 5 жыл бұрын
I had the same issue, turns out I had written MAP_W twice when I needed to also write MAP_H. If that's not it, then it's some other very minor typo in the for loop, maybe tX and tY are written in the wrong places.
@koalakoala2344
@koalakoala2344 5 жыл бұрын
I have the same problem and I'm pretty sure there's no typo in it :/
@orb505
@orb505 4 жыл бұрын
Is a foreach not a thing in Game Maker? So: foreach(Tile currentTile in Map) { \\ Do Stuff }; Just interested as I'm coming from a business app developer using C# and finding game dev in general seems to be a world apart in terms of coding structure
@benas7284
@benas7284 5 жыл бұрын
Please make part 2 player and camera
@Evanski
@Evanski 5 жыл бұрын
game maker i like
@SaraSpalding
@SaraSpalding 5 жыл бұрын
got good news for you about this channel, friend!
@HammaLlama
@HammaLlama Жыл бұрын
This tutorial gave me a HUGE leap forward into Gamemaker! Thank you. Even as a programmer and infrequent Unity hobbiest, I found Gamemaker to be confusing at first, but this tutorial taught me a lot more than just creating a isometric game board by watching you navigate the IDE. I've been wanting to create an isometric click to move RPG for a while, and movement is always my downfall. Is there a tutorial for that? I've looked through your videos, but none seem specific enough for iso grid-based movement. Even a point in the right direction would be great. Thanks again. Great tutorial.
@doomtucan5093
@doomtucan5093 5 жыл бұрын
so instead of individually painting the tiles in the room how do you make it so it paints the terrain randomly so if you have many different ground tiles and water tiles?
@RaineZahra
@RaineZahra 7 ай бұрын
Okay, I'm lost ... how do you create multiple isometric tile layers and stack them on top of each other in a loop? Or perhaps the better question to ask would be how do i create multiple ds maps / ds grids and stack them on top of each other in a loop? I'm struggling with getting more than 1 set of tile data to draw at a time.
@devvydog2478
@devvydog2478 4 жыл бұрын
7:20 "anyhay"
@jinsanhon
@jinsanhon 5 жыл бұрын
Where is an article that you referenced to see what is exactly going on at the script TiletoScreen X & Y? I would love to see how the maths work out.
@SaraSpalding
@SaraSpalding 5 жыл бұрын
clintbellanger.net/articles/isometric_math/ Here it is!
@MiniMeGaming
@MiniMeGaming 2 ай бұрын
so i just followed this to a t but i am using objects instead of drawing sprites and my objects are rendering In front of each other and not in the right order like it should be when rendering sprites. anyone know how to fix this?
@dead9373
@dead9373 5 жыл бұрын
Hi! I Know You Wont Probally See This But I Would Like If You Made A Level Selection Tutorial With Unlockable levels Via completing level 1 unlocks level 2 like that :)
@johndurish4092
@johndurish4092 4 жыл бұрын
Oh man the "big reveal'" at the 31:00 mark after all that build up. SOOOOOoooooo cool. Would I be able to fold this map building technique into the Action RPG you just started (late 2019-early 2020)?
@mfb605
@mfb605 5 жыл бұрын
MY HERO I've been hoping for an isometric tutorial for a while now!!
@forbiddenhands8474
@forbiddenhands8474 5 жыл бұрын
Nice tutorial! Would it be possible to draw the isometric tiles at an angle other than 45 degrees?
@ivargu
@ivargu 5 жыл бұрын
Really well crafted tutorials. Clear presentation and excellent coverage of materials.
@makbash1731
@makbash1731 4 жыл бұрын
What about the tiles, located on the same X and Y coordinates, but different Zs?
@brinklebros7136
@brinklebros7136 4 ай бұрын
This is amazing thank you so much!!
@iamrm1011
@iamrm1011 Жыл бұрын
Why low fps
@wolleyeinstein9682
@wolleyeinstein9682 5 жыл бұрын
Can you make a series we’re you make a complete game with isometric tiles
@goatmonkey2112
@goatmonkey2112 5 жыл бұрын
My cat is losing her mind when you move the mouse around as you're talking.
@mythology100
@mythology100 5 жыл бұрын
Another Shaun Spalding tutorial = another like. RECEIVE IT!!!
@GeneralJWS
@GeneralJWS 5 жыл бұрын
Shaun can you make video covering 2D Platformer Doors that lead to another room. Example: Player is in a town area and wants to enter the item shop there. When player leaves they spawn right outside the door. Thanks!
@Djchappy94
@Djchappy94 5 жыл бұрын
I believe heartbeast has a episode in his RPG Basics tutorial series that covers doors and how to get people to spawn in a specific location in the next room.
@FerdinandCoding
@FerdinandCoding 5 жыл бұрын
Every decision you have ever made in life has led you to read this comment
@dannyrhinehart6221
@dannyrhinehart6221 2 ай бұрын
Why are my tX and tY undefined???
@lilbigman5880
@lilbigman5880 4 жыл бұрын
For those who struggle with performance, using surfaces in the isometric renderer brought my fps from 128 to 6000.
@thefufuu3157
@thefufuu3157 3 жыл бұрын
can you explain how you modified the funtion ?
@lilbigman5880
@lilbigman5880 3 жыл бұрын
@@thefufuu3157 Draw the isometric world to a surface once, then only draw the surface afterwards unless the world changes.
@Kuzyn
@Kuzyn 4 ай бұрын
@@lilbigman5880 Do you have any tutorial explaining the surfaces? What they are, how to handle them?
@miltonwaddams4220
@miltonwaddams4220 Жыл бұрын
i keep getting a syntax error on the object create event
@alvideos2145
@alvideos2145 3 жыл бұрын
How do you do walls? ,_,
@douglasboldt8817
@douglasboldt8817 5 жыл бұрын
Shaun, I got the tiles to render in isometric view, but now my objects are hidden by it. I have tried to read up on depth but don't seem to get it? Under the instances I set the object depth to -100. hoping it would appear above tiles but no luck. Pretty basic I know, but where do I set object depth? It seems in this tutorial the tile depth is 0 and it varies by a few pixels because of the random function that you inserted. Thx.
@heftykat
@heftykat Жыл бұрын
I did this and everything works except outside the world extra sprites that are not in the MAP fill the rest of the room. Blinking around.
@balthasarrichters4389
@balthasarrichters4389 4 жыл бұрын
What's the difference between a "ds_grid" and a normal 2 d Array???
@thefufuu3157
@thefufuu3157 3 жыл бұрын
@Shaun Spalding ... hey mate how would you merge the rpg tile collision with the isometricifier :D ... basicly the idea would to be to write the "collision" layer into the oRender but you would need 2 oRender ( i guess ) or you would rewrite the collsiion script to colide with a part of the tileset that defines the green/ brown tiles :O
@SmarTV
@SmarTV 5 жыл бұрын
Mannnn :)
@spacecase7331
@spacecase7331 4 жыл бұрын
i tried rendering the room but i ended up with a row of brown tiles outside the room bounds that i hadn't created. when i exit the game, they flash the sprite of the other tiles before the game closes. any clue why? i followed all of the steps in this video exactly.
@КириллКирилл-я1щ
@КириллКирилл-я1щ 5 жыл бұрын
Good afternoon, this lesson is very good, but there is also an easier way, for this, create an object in which to indicate camera set Angel, in all objects specify Image angle with a negative value.
@Lexon2535
@Lexon2535 5 жыл бұрын
Would this work for Isometric Hexes? Or would things need to be changed?
@alvideos2145
@alvideos2145 3 жыл бұрын
I have a light code that uses tiles, how would i convert it to the isometric?
@Temzy
@Temzy 5 жыл бұрын
Hey Shaun big fan here, I was wondering if you could do slope support for your complete gms2 platformer tutorial, thanks!
@JohanKarlemo
@JohanKarlemo 5 жыл бұрын
he has actually done a slope tutorial
@bengelman2600
@bengelman2600 4 жыл бұрын
I use to do this in flash so I'm into how to do this here. I just flatted my radial in the Y by half. so 60 degrees down the camera. 1x2 pixel grid
@smashwarrior5796
@smashwarrior5796 5 жыл бұрын
How do you make the tab on the right that has the room and sprites reappear after you exit them?i did it on accident and I don’t know how to get them back.
@aronlehrmann3180
@aronlehrmann3180 5 жыл бұрын
How can I program that if my figure is no longer on an object, it will be destroyed?
@InsufferableCrap
@InsufferableCrap 5 жыл бұрын
Dude I can't tell you how long I've needed info like this. Thank you so much
@InsufferableCrap
@InsufferableCrap 5 жыл бұрын
As a side note, I'm hoping that before you release the next video to play around with this and see what I could do. Experimenting with this is gonna be wild
@Kol0salt
@Kol0salt 5 жыл бұрын
I’ve been pretty confused. What is the language he’s writing?, or do gms2 have it’s own coding language? Could anybody please tell me? Ty
@Kol0salt
@Kol0salt 5 жыл бұрын
Marq Thank you i’ve been pretty confused on what the Hell i was trying to learn :)
@imper818
@imper818 5 жыл бұрын
Hey one question how do you actualy type something in the console without the coloorfull boxes? Its completly destroing my brain
@crommit8222
@crommit8222 3 жыл бұрын
There are built in room_width and room_height variables that are dependent on the room the script they are in is run in.
@cyriusgd746
@cyriusgd746 5 жыл бұрын
I need help. It loads perfectly but there is a platform glitching out on the side. I dont know what to do
@GrahamErmter
@GrahamErmter 5 жыл бұрын
I bet vertex buffers would be great for this, probably a bit more of an advanced tutorial though!
@sylorrin7298
@sylorrin7298 4 жыл бұрын
Hey, Shaun. Thx for this good tutorial. Wanna know if this can be applied to a turn-based strategy game that would require grid picking. Trying to make a strategy game with grid map but want to make it isometric. not sure if I can still pick those nodes correctly after I using this isometric trick
@InsufferableCrap
@InsufferableCrap 5 жыл бұрын
Hey Shaun. I know you're probably waiting until the next video to answer this question. But I was really trying to figure it all out by making it so you could add walls to collide with. I tried adding a third index for the tileset to be used as a wall but I needed it to create an instance. How do I prevent it from constantly creating a million instances. I'm not sure how to stop the looping.
@InsufferableCrap
@InsufferableCrap 5 жыл бұрын
Oh my god I'm so dumb. I was still using local variables which kept the loop going infinitely. I basically made it so that if (tx = MAP_W) && (ty = MAP_Y) it would stop the loop so that it would only go through the grid once to create the objects so it would be able to stop. Quite fun the figure out the puzzle though!
@1HardCoreGaming1
@1HardCoreGaming1 5 жыл бұрын
How do you make collisions work on this? Like maybe a building with walls that you walk into? Do you have to use objects instead?
@koalakoala2344
@koalakoala2344 5 жыл бұрын
Screate another two scripts to convert the coordinates back. Then you're able to switch between the cartesian system (which the engine uses) and the isometric system (which is used by the game). That's how I dot it. So for collisions, simply convert all the coordinates to cartesian and you'll have your collision checking. The only problm might be the performance when you're using a lot of objects, but there are ways to improve the framerate.
@Gill2cyclpos
@Gill2cyclpos 5 жыл бұрын
in game maker studio 2 is there a way to add a instance, such as time into a "00:00:00" to send a message or display it in some way?
@Jorvanius
@Jorvanius 5 жыл бұрын
Another nice one. Thanks, mate (Merry christmas, Shaun)
@mithrandrilltharkun1970
@mithrandrilltharkun1970 5 жыл бұрын
How do I fix gaps between top and bottom of tiles?
@JJzerro
@JJzerro 2 жыл бұрын
Thank you for this tutorial!
@paperbag3897
@paperbag3897 3 жыл бұрын
Never Mind
@janmiro5047
@janmiro5047 3 жыл бұрын
how to get the assets?
@Zyrex216
@Zyrex216 5 жыл бұрын
👋 Hi
@angelovelos6329
@angelovelos6329 5 жыл бұрын
I need help with drawing and moving the player in the world
@JshPerky
@JshPerky 4 жыл бұрын
I've followed the tutorial exactly, however every tile on a subsequent row is one z level down, so the topmost tile is the highest and the lowest is the lowest z. Does anyone know what might be happening?
@SaraSpalding
@SaraSpalding 4 жыл бұрын
If you've followed the tutorial exactly you will have the exact same results! It's been a while since I made this so without going back to check it's hard to say exactly where you have made a mistake but it sounds like you're drawing in the wrong order or something. Check your loop setups.
@palomovalencia9589
@palomovalencia9589 4 жыл бұрын
I'm not sure if we were having the same problem, but mine were not lined up properly. it was a probelm with the tileheight in the Macro itself, try lowering it and find which one makes it fit proper
@MilkshakeDev
@MilkshakeDev 5 жыл бұрын
Super helpful!!! thats for the tutorial Shaun :)
@Zekronz
@Zekronz 5 жыл бұрын
Forgot to destroy grid :P
@kincaidnichols2517
@kincaidnichols2517 4 жыл бұрын
Ok I don't get what i'm doing wrong. I copied (literally) everything exactly as you have it (expect I used room instead of screen) and nothing renders. Like, at all. I don't get any errors thrown so i'm not even sure what it's doing to not render anything.
@thefufuu3157
@thefufuu3157 3 жыл бұрын
drop the oRender into the room ?
@a8627667
@a8627667 2 жыл бұрын
​@@thefufuu3157 nah the 2d map would load if oRender isn't in the room. Draw sprite only works in the draw event so I bet that's the issue
@Kuzyn
@Kuzyn 4 ай бұрын
@@a8627667 So what is the idea to solve that problem? Seems to be no sense to draw it in Draw Gui. edit: turned out that everything is okay but you need to make sure your viewport is enabled and then draw event works.
@DanielRead89
@DanielRead89 3 жыл бұрын
This was a great tutorial thanks man!
@beronk6672
@beronk6672 5 жыл бұрын
i want to make a game like rome ad92
@nathan08085
@nathan08085 5 жыл бұрын
I was looking forward to this Thanks :)
@beronk6672
@beronk6672 5 жыл бұрын
great work thanks
@erikan9758
@erikan9758 5 жыл бұрын
Thanks a lot for this! 😊
@lizardrain
@lizardrain 5 жыл бұрын
I don't understand the purpose of enums. Aren't they exactly the same as macros? Why use enums at all?
@Cl0udWolf
@Cl0udWolf 5 жыл бұрын
Ludorverr enums are lists. Macros are values. You can do a lot more with a list than a macro, just like you can do more with an array than an integer.
@Cl0udWolf
@Cl0udWolf 5 жыл бұрын
Ludorverr also a general good way to group types of values
@grapeshott
@grapeshott 5 жыл бұрын
watch 'State Machines' tutorial
@darwindavidduartezambrano1596
@darwindavidduartezambrano1596 5 жыл бұрын
O.o Great
@grapeshott
@grapeshott 5 жыл бұрын
plz, before writing any script, plz explain broadly the fundamentals behind the technique. e.g. You could have told us what you were going to do with the tile
@GameBroJimmy
@GameBroJimmy 5 жыл бұрын
PLS O PLS make this a online multiplayer, im begging you, would love to play this with a friend
@andresfelipegiraldoandrade3842
@andresfelipegiraldoandrade3842 5 жыл бұрын
that is like a 3D Game 0.0 I buy Game Maker and i want to learn :'3
@hhcdghjjgsdrt235
@hhcdghjjgsdrt235 4 жыл бұрын
Mr Spalding you should really work on 2.5D development to make Game maker survive. 3D is not necessary.
@ronjonjonron3371
@ronjonjonron3371 3 жыл бұрын
hey mate cool stuff, but id really appreciate if if you could completely customize and write out new code for me that applies to my exact specific situation (massively multiplayer procedurally generated rpg) thaaaanks
@ftrgstudio2254
@ftrgstudio2254 5 жыл бұрын
hey i was wondering if there is a way to make segmented enemies like the wigglers from Mario bros. because i cant find any tutorials.
@heytyshawn
@heytyshawn 5 жыл бұрын
gonna attempt to convert this to love2d :) not a fan of game maker or really any premade engine
@DrJurdenPeterbergsteinlerwitz
@DrJurdenPeterbergsteinlerwitz 5 жыл бұрын
Googles love2d -> 'Free 2D Game Engine'... What am I not understanding?
@heytyshawn
@heytyshawn 5 жыл бұрын
@@DrJurdenPeterbergsteinlerwitz On the website, love2d is considered a framework. It uses the Lua scripting language.
@DrJurdenPeterbergsteinlerwitz
@DrJurdenPeterbergsteinlerwitz 5 жыл бұрын
@@heytyshawn What makes it more preferable than, let's say GMS?
@heytyshawn
@heytyshawn 5 жыл бұрын
@@DrJurdenPeterbergsteinlerwitz Sorry for the late reply. I prefer using frameworks over engines because I feel like most engines are too restricted and hide too much stuff. Also, gms uses it's own programming language which is also a downside. It requires me to learn a new language to use the engine (which I can't use anywhere outside it) when I can use c++, lua, c#, java, or any other language I'm familiar with and a framework or library.
@DrJurdenPeterbergsteinlerwitz
@DrJurdenPeterbergsteinlerwitz 5 жыл бұрын
@@heytyshawn Ah that makes sense. Thanks for answering. I was just confused by how they advertised themselves as both but I see the difference is slim in certain cases.
@kennethmkline23
@kennethmkline23 5 жыл бұрын
LOL, why is there an "impeach Trump" add prior to this vid?
@easytooner55
@easytooner55 5 жыл бұрын
HELLO EVERYONE IN THIS TUTORIAL I WILL show you how to donate to me in order to watch
@virdeshmukh
@virdeshmukh 5 жыл бұрын
game maker i don't like
@SaraSpalding
@SaraSpalding 5 жыл бұрын
got bad news for you about this channel, friend!
@virdeshmukh
@virdeshmukh 5 жыл бұрын
@@SaraSpalding it is nice to make games but not nice to publish games
@mix-ousoy3485
@mix-ousoy3485 5 жыл бұрын
lol
@aky8793
@aky8793 5 жыл бұрын
@@SaiyanKirby Undertale is one i think
@DrJurdenPeterbergsteinlerwitz
@DrJurdenPeterbergsteinlerwitz 5 жыл бұрын
@@aky8793 Just search 'Games made with Game Maker' on Youdupe
@dreemychara3526
@dreemychara3526 3 жыл бұрын
Hey I have a problem, I don't know where I made the mistake but my tiles are infinite and keep on going even when i set only one
@epicfarts6622
@epicfarts6622 5 жыл бұрын
I followed this exactly and it didn't work
GameMaker Studio 2: Isometric Game Tutorial (Part 2)
22:47
Sara Spalding
Рет қаралды 25 М.
Beginner GameDev Mistakes - Ep 1
6:40
Sara Spalding
Рет қаралды 164 М.
规则,在门里生存,出来~死亡
00:33
落魄的王子
Рет қаралды 25 МЛН
Новый уровень твоей сосиски
00:33
Кушать Хочу
Рет қаралды 5 МЛН
How Strong is Tin Foil? 💪
00:26
Preston
Рет қаралды 135 МЛН
The 100 Games That Taught Me Game Design
2:13:14
Game Maker's Toolkit
Рет қаралды 1,4 МЛН
Pixel Art Class - Isometric Tile Basics!
25:55
AdamCYounis
Рет қаралды 357 М.
Why Isometric? | Art, Code and Matrix Maths | A Devlog
13:33
Wintermute Digital
Рет қаралды 207 М.
The 15 Commandments of Game Maker
16:32
PixelatedPope
Рет қаралды 124 М.
GameMaker Is Now FREE!  ...ish.
8:30
Gamefromscratch
Рет қаралды 46 М.
GameMaker Update 2024
9:33
GameMaker
Рет қаралды 22 М.
Why Solo Developers Should Use Unreal
9:51
Thomas Brush
Рет қаралды 387 М.
Beginner's Guide to GameMaker
33:01
Sara Spalding
Рет қаралды 599 М.
How Isometric Coordinates Work in 2D games
5:23
Jordan West
Рет қаралды 806 М.
Every Game Engine Explained In 9 Minutes (Part 1)
9:10
Stopshut
Рет қаралды 391 М.
规则,在门里生存,出来~死亡
00:33
落魄的王子
Рет қаралды 25 МЛН