Back in the days of GameMaker 7 and 8, I remember stumbling onto your games on yoyogames sandbox. At the time I was blown away by the quality of 3d you're doing on an engine that's not innately meant for 3d. I occasionally come back to your channel just so that I can get my mind blown over and over again. You're somehow able to produce better visuals within GameMaker than most people (Including myself) can produce within Unity. Always good to see you upload!
Those were the good old times! Thanks for checking out my projects back then. I gotta say, Game Maker has changed a lot (for the better) with newer versions. Thanks for checking out my channel every now and then, that's very nice to hear. :)
SInce learning GML I couldn't understand why earlier versions were able to code with D3D and not studio 2.0. I have a basic knowledge of shaders and this opened up a whole new perspective in using them. Happy to see the translation you supplied here with great detail in using veC with the camera. So many videos I run into always saying "if you wnat 3d use a different engine". Thank you for this enlightning video. Please update us on your learning path as you go I would be very greatful.
I am glad to hear it. I hope you found it somewhat useful. I will always try to encourage people to give making a 3D game in Game Maker a shot. No matter how difficult or inconvenient it is :)
@@GamingEngineer I want to make a game that should be very easy for you. I just want to make a 3D scenario with horizontal scrolling. I need 3D constructions in a manga style. I don't know how to do it yet.
Top video can’t wait to see more!!! ❤ If is possible i would like to see a sort of top down view in a 3D world with 2D sprites with a fixed camera on the player and the sprites facing the camera, like The Cult Of The Lamb ❤
ik ben al sinds 2009 heel irritant 3D games aan het maken met game maker en het is echt heel nice om te zien dat er meer mensen zijn die dat ook doen hahaha, love de videos!!
Haha, gaaf man! Ik ben het er zeker mee eens dat het vet irritant kan zijn. Ik doe het nu ook ongeveer zo lang, maar er zijn zeker verbeteringen in gekomen. Bedankt voor het kijken! Leuk je hier zo in de reacties tegen te komen! EN: Haha, awesome man! I definitely agree that it can be pretty annoying at times. I've been doing since around the same time, but it has definitely seen many improvements. Thanks for watching! Nice seeing you here in the comments!
THANK YOU SO MUCH! I watched your video and it got me started with setting up the basic 3D world. I had lots of trial and error with the Blender plug-in but eventually I figured it out, as well as with the shader (yours didn't work for me for some reason) so I followed a tutorial elsewhere and now I have basically a simple 3D engine, honestly couldn't have done it without this video so thank you
Yeah I get that! About 95% of this stuff is possible with GMS 1.4. Only the structs I think are not possible, for which I can think of several workarounds. Definitely keep using GMS 1.4 if you're more comfortable!
Most of the material for 3D GMS stuff here on youtube are unnecesarily long, boring and painful. This video however is short, straight to the point, entertaining and probably the most educative one I've watched so far over the years. Well done and thank you!
Although unecessary and more complicated, for the clamp that happens at 4:10 I usually like to change the cameras up vector to the x and y the camera was already pointing and a z of 0, it feels cleaner in game to me
Amazing, and the timing to (with the whole Unity Debacle haha) I'm thinking of starting a third person 3d game on GM, but then, I start to think on everything about optimization on a 3º person game, things like culling, levels of detail by distance, terrain culling/detail ,all that good thing you know haha, but great video bother.
Thanks! Yeah talk about timing! I've been working on this video for a few months so that surprisingly didn't even cross my mind. If you truly want to make a third person game in Game Maker I'd say go for it! I've learned a lot since my last third person shooter tutorials so I wouldn't really recommend watching those. But I'd say it's definitely possible, including the things you mentioned.
Hehe trust me, it took a LOT of trial and error to finally get those stupid normal maps working. Maybe I'm just too stubborn and want to figure it all out by myself. Shadowmapping is definitely next on the list as well as SSAO. I'm also looking into raytracing/raymarching and more advanced/accurate PBR materials.
Yeah it's great to see you passing your wisdom on for others to learn.. I never really done much 3D on GMS, but I will be doing some with this great tutorial.. Which is well explained and detailed enough for almost anyone to work through..(great job) Keep up the amazing content you do! And always look forward to seeing your next piece of work...
Hey Coxy! Thanks once again for watching. Game Maker's 3D is a bit of a niche to be fair. Feel free to download the example and take a look at the code for yourself.
Hey, I think I've got a grasp on the basics, but when I export to VB in Blender the window looks a little different from how you have it and I don't see the same settings. Did you use a particular version of the add-on for this video?
im so confused, at 9:06 you tell us to use the open_vertex_buffer function while you had never told us how to code in that function, its also not a base function, did i miss something?
That's strange, I thought I mentioned that in the video. It must have slipped my mind. open_vertex_buffer or OpenVertexBuffer is an external function developed by dreamer13sq/Sandman13sq. You can find it here: github.com/Sandman13sq/DmrVBM-blender-to-gms2
Halfway thru video, note that the reason 3d stuff gets flipped in gm is because youre using the camera system. they auto apply a Y flip matrix onto the end of the projection mat i think. Cuz yknow, GM is normally a 2d engine, which is +y down this doesnt occur if you roll your own camera system and directly set matrix_view & matrix_projection in like. draw begin/end, or with layer begin/end scripts its Annoying :[
It's still magic for me, but now everything is definitely more clear, thank you! Just a note: with Mac environment something doesn't work correctly out-of-the-box and need some rework
7:15 - 8:01 Unfortunately I can't do this step. I installed the file into Blender, but it's not showing in my addons. I'm using the same Blender as you, and downloaded the same files as told. but, Blender is not accepting them. they are just not showing at all.
Hey, sorry about the late reply. More people have had this issue and there are many ways for this to go wrong. Did you install the ZIP file or its contents into the addons folder? Blender can only find addons that are zipped.
@@GamingEngineer Yep. That's what I did. nothing happened. I made sure the file was still zipped. I even took it directly from my Downloads. still nothing happened.
@@GamingEngineer im having the same issue i have tried serval times with the intended method (zipped) and also manually deleting and replacing the file into the addon directory (unzipped) on multiple versions of blender. the addon system in blender is so jank i~i
Great stuff here! Thank you for this tutorial. Maybe you can show how you build a level with different interactive objects in the scene, it would be great to see ;)
7:25 - I've tried with various versions of Blender, and the DmrVBM exporter, and am following the installation process correctly. The addon still won't show up in Blender's addon list, even though it is in Blender's addon directory folder. I've tried automatically and manually installing as both .zip and extracted file. No idea what's wrong here, but would love to see if you can offer a fix. Regardless, this tutorial, and your skills are phenomenal, keep up the fantastic work!
Hey, that is very strange. I've heard about this issue before. Have you tried it with Blender 2.8+ as well? I think that's the required version for the plugin to work and show up in the Scenes tab. Does the plugin not show up at all in the Addons tab? Thanks for the kind words! If you need some more help, feel free to reach out! :)
@@GamingEngineer Omg never mind, I'm an absolute numpty. I was importing the whole download file, not the actual zip of the addon itself. Defs works with Blender 2.8 at the very least. Thanks for the reply!
Hey, i have a problem with exporting VB in blender. All my VB files are empty (0 ko) when created, I don't know why, I think I'm doing everything like the video, selecting the mesh, setting the parameters, ... Do you have an idea?
Hey, that is indeed very strange. Select the mesh you want to export -> go to the Scenes tab -> click on Export as VB -> select all vertex attributes and save as a file in your datafiles. That is really it. Maybe it deselects the mesh you are exporting for some reason before then?
Anyone is having trouble exporting from blender with the latest DmrVBM export version? For some reason it doesnt draw the model texture, it works with the previous DmrVBM version tho so i might be a bug. Also excelent tutorial, thanks for sharing your knowledge!
I am too. For some reason the model is loaded as a mess of colorful triangles, instead of the solid color/texture. Not sure whats happening but it's frustrating
Hello! thank you so much for this valuable information. Can you help me a little bit on how to (or where to look at that information) add colour to the light shader? I want to be able to create coloured lights, not just white, although this specific shader script doesn't process but white light. I very much appreciate your kind help :)
Hey! There is a function called OpenVertexBuffer or open_vertex_buffer inside the project which you can download for free in the description! Alternatively, the OpenVertexBuffer function does not come with Game Maker by default. You can install the function from the developer's Github repository: github.com/Sandman13sq/DmrVBM-blender-to-gms2 Just download the ZIP file and extract the scripts into your project. That will give you access to both the importer and the exporter!
It looks like it, but I'm sure there are many GM devs out there who figured it out way before me. Take a look at the BlueBurn engine for example which has basically everything you need in one impressive package.
So I finally got around to dipping my toes into 3d for GMS 2, or I guess it's just called GameMaker now. Does GameMaker have an easier way to detect 3d collision compared to GMS1.4? I still use Slayer's upgrade scripts for collision but was hoping there was different way of doing it.
so um, i'm quite new with game maker and i followed your instructions. But around 12:06 , instead of those upside down flags inside the room, i got a sun-like object which is probably all the vertex buffers combined to one, and i'm not even inside a room. Did i import the sprites and textures or even script incorrectly or something?
Okay, i tried adding vertex_format_add_color before vertex_format_add_custom and it kinda works...except the fact that the textures themselves aren't getting loaded into the vertex buffers(?) so all i can see is them with neon-like coloring instead of textures. Does anyone know what's the problem?
Hey there, sorry about the late reply. I'm stuck at work :) If your vertex buffers look all messed up, this will have something to do with your vertex format. If you export your mesh in Blender using a specific vertex format, you *must* use the *exact* same vertex format in Game Maker. So for example, if you export your mesh using position 3D, normals, texture uvs and color information, the order matters just as much in Game Maker. Does the same thing happen in the example project? You can download it for free in the description if you want to take a look!
@@GamingEngineer Ah yes, turns out i mixed the order of vertex_format_add_color with vertex_format_add_texcoord 😅. Thank you for the reminding me to check the actual example project!
For now you need to manually use the add_light function to place and move lights. You can also adjust the structs in code afterwards. I'm currently working on a more robust framework that would make that a lot easier.
I'm only good with gm 8.1, this tutorial is really good. But the lights are only rendered at the start of the room, what if i want to have a dynamic light like a fire? Do I need to make the lights have an id and have an update array script or something?
Thanks! I'm glad you liked the tutorial. You can update the position of each light using a simple for loop where you update the x, y and z position. In Game Maker you could do something like this: var desired_light = 2; for(var i = 0; i < array_length(light_positions); i++) { if(i == desired_light) { light_positions[i] = x; light_positions[i + 1] = y; light_positions[i + 2] = z; break; } } This will update the third light source's position to the player's position. You don't have to add or delete items from the array in order to update the positions. If this isn't helpful I'll try to make a little example project.
Best of luck! If you can't get it to work, feel free to reply to this comment again and I'll send you an example project. Things have changed a lot with Studio 2, but you can get used to it very quickly. As for the Blender export addon, simply select the model you want to export, go to the "Scene" tab on the right and click "Export VB". For starters you can leave the settings as is. In Game Maker you can import the OpenVertexBuffer script by sandman13sq and use that to load the model into Game Maker. Again, if it doesn't work, feel free to send me another message!
@@GamingEngineer I Figured out the blender issue. Do you plan to make more tutorials for gms2? or are your old gms tutorials relatively similar in style and still compatible?
Hey, not everything will work unfortunately. Game Maker 8 does not support shaders out of the box. Neither does it have structs and it doesn’t support vertex buffers iirc. But it is possible to load and draw .obj files in combination with GM’s built-in lighting functions and maybe a graphics DLL from a third party!
I followed your tutorial to a tea but for the camera section my camera won’t look up or down and only lets me spin around while facing down towards the floor, any fixes or advice?
Ah that’s very strange and is not supposed to happen. I was told that newer versions of Game Maker work differently with multiple displays, something that wasn’t an issue in the past. Does your cursor stick to the bottom of the screen as well?
Really depends on how far you want to take it. Doom 1 & 2? Very doable. Quake? Somewhat harder. Halo CE? Pretty difficult. Anything is possible with Game Maker but its strengths are totally 2D-oriented in my opinion. In short, it would be difficult but a very fun challenge!
@@GamingEngineer Alright understand. I new to game dev and I have game maker studio 2 and unreal. I guess my goal for the boomer shooter idea is levels design close to builds blood/duke3d or dusk and the field of view and first person model placement like half life. Models would be ps1 or n64 style. I was wondering how much of a headache would it and the performance. Controls would basically 90’s fps movement and mouse aim, on the fence with aim down sights and probably would have a kick mechanic. On levels was thinking classic boomer or a hub world like wraith aeon of ruin lol
Very strange. Is your player/camera object present in the room? Are there any objects to look at in the room? Do you have culling enabled? These are a few things that could cause nothing to show up. Maybe try downloading the example in the description and see if you get a blank screen there. If none of that works, feel free to send me your project and I'll take a look. My e-mail address is on my channel overview.
As long as it's disabled your geometry won't be culled/optimized. Meaning that this likely isn't the cause of your issue. You can enable culling in Game Maker using gpu_set_cullmode(CULL_MODE) and then replace CULL_MODE with one of three constants: cull_none, cull_counterclockwise or cull_clockwise. Culling ensures that only one side of each triangle is drawn instead of both sides, resulting in much better performance.
It was designed around GMS2’s workflow but it can be converted to 1.4 and 8.1’s flow as well. Only the structs need to be changed for it to work in all versions.
Hi again dude! I had other problem. In blender when i export the model to vgm, it appears with an error that says "missing paths" in the operator presets. Other problem that i have is that the 'vgm' format give me an error when i export it. I followed a lot of tutorials, but this is the best that i found so i really will greet if you can help me :( Sorry for the issues.
Hey! You should try exporting the model as a .vb instead of a .vbm model. A VBM is a different type of vertex buffer which is also used with skeletal animations, which I don't cover in this video. The VB format should be easy to import!
Haha, I don't think Game Maker should be used for any "serious" 3D game but considering the whole Unity debacle, I understand switching engines would be the next logical step.
Hi! I am keep getting same error, I have tried fixing it but no result. Can you help me out with it? 😅 vertex_submit: Illegal vertex buffer specified. at gml_Object_objPlayer_Draw_0 (line 23) - vertex_submit(current_buffer.vertex_buffer, pr_trianglelist, current_buffer.albedo);
Hey! Ah I know this issue. It happens from time to time and I still don't really understand why. What worked for me was duplicating the object in Blender and then export the new one as a vertex buffer. If that doesn't work, simply add a plane anywhere in your scene and select both the model you want to export and the plane. If you export them both at the same time, it works! No idea why this is the case, but hopefully it works for you too!