Concepts & Setup | Cutscenes [1]
Вставка
- Опубліковано 8 вер 2024
- This tutorial kicks off the start of a "Coding Cutscenes" mini-series. We begin by discussing the concepts and logic of how a cutscene system should work, and then jump into coding the backbone of our system, as well as some scripts.
Here I am in other places:
Twitter: / friendly_cosmo
Patreon: / friendlycosmonaut
Artwork by "Buch" on opengameart: opengameart.or...
-King & Hooded Dude from "A Platformer in the Forest"
-Tiles & Trees from "The Field of Floating Islands"
There is a mistake at 18:36 on line 4. The condition ">=" should be ">", as otherwise the last scene will not run. Thank you to Tristan Harris for pointing this out - I will be pointing this out in the next video!
Always here to give me algorythms types (which is the logic to program something on GMS2) for my project ^^
I love that you started off by explaining "the big picture" before getting into the details, it made it sooooo much easier to follow. Thank you!
This youtuber describes in pictures that are easy for beginners to understand. The explanation and process about coding are detailed. she has a warm mind for beginners like me. :)
Thank you, duck :)
@16:55 There is now a way around creating a long switch case for script ids + arguments stored in an array!
script_execute_ext(_array[0],_array,1);
It looks so much cleaner and is also a micro optimization according to my debugger's displayed fps. (I use script id arrays for batching draw commands before the draw step though, so for cutscenes it's just for cleanliness.)
This deserves to be pinned!
Love that you teach the thinking behind the code, instead of just showing us what code to write.
I love your tutorials they are the cleanest GMS2 tutorials available keep it up!
I've checked that video to find ideas how I could optimize my own cutscenes engine and it's fascinating, how similar it is... (however, I'm putting enums instead of scripts in array, that might be worth considering, as this way I could remove big "switch" which manages it...).
Very good tutorial.
Bravo as always! I always love the levels of organization you have put into your videos.
I do watch, and like many others work.. but watching someone just go at it with no goal in mind and no structure loses my attention.
I many times realize I've watched 15 minutes of "whoops". Roughly 30% of the video is spent trying to find the error they just made or jumping from subject to subject without finishing an idea or concept.
You have that magic tempo, perfect pauses when you have introduced a new concept, visual explanations to accompany the concept as you explain, and again such good structure.
In many cases I already know the concept in and out you are teaching but I will still not lose one moment of focus as you conduct such a wonderful symphony of ideas, concepts, and teaching prowess. It's such attention to detail and perfect deployment that makes me motivated to keep at it myself.
I conclude your well deserved ego stroke, keep up the production quality work!
You said everything! We can feel your experience into each of your videos. Your explanations are very clear, and you already have help me for many things in my game. When i follow your code, i'm sure that i'm gonna make a clear and professional code. I'm waiting for the next video, because i really need a cinematics system like this. I could finish the code my self because you explain all the theory in this video, but i'm pretty sure that you gonna give me a better and cleaner code. Keep like this, i'm sure you're helping a lot of beginner's, with very good advice (youre course are free and much better than paid course). Sorry for my english ahah! Keep going and thanks :)!
I love the way you make your tutorials! It feels like I'm in a classroom and gaining valuable knowledge. Please, please, continue to make more videos!
Just wanted to thank you for all your content. I started out with your tutorials when I first downloaded GMS2 a couple of years ago and then learned a bits here and there depending on what I needed. I came back to your videos when I was trying to implement dialogue and now cutscenes and it has taught me so much.
thank you so so much!! creating a game can seem very daunting but with nearly no experience coding whatsoever (just y'know, the very-well-known classic case of binge watching the Complete Platformer Tutorial by Shaun Spalding) but the tutorials you put up make it SUPER easy! I tried making a textbox system quite a while back but didn't manage, but with your tutorials I have working textboxes. And now, with your cutscenes tutorials, I'll be able to make cutscenes in no time!
Oh FC I just love how you have a Suggested Knowledge segment. It saves me so much time articulating what I want to happen in google or finding the right video reference.
I love your videos so much that I even watch the whole Unity ad with the purple plad shirt guy, lol.
Lol thank you!!
I am impressed for how flexible and customizable it is, good job!
Will share this and use it on the Future.
As always, thank you for detailed, newbie friendly tutorials.
I cannot imagine how much time and effort you put in this tutorial, its design and editing.
Eu só tenho a agradecer pelo seu canal, procurei por tempos alguém que explicasse todas as minhas duvidas sobre GameMaker, e cada vez que olho seu canal encontro tudo que preciso, você é incrível, sempre que eu criar um jogo e lançar, vai ter um pouco de você neles pois me ajudou e muito ! Muito obrigado sz
I am so excited for this! Cutscenes are one of the major things I've learned how to do, and finding a good tutorial series for them in GameMaker is a rarity. Even the demo you did in the first few minutes had me mind-blown.
Just the best GML tut-maker on UA-cam. I'm definitively going to support you on Patreon.
I was gonna make a comment but everyone else has already said it so well - thanks for this really great tutorial
I wrote a cutscene system with timeline. You store list of tasks in an array or similar structure and then you can create a timeline with those entries where each task in placed at a different time. If you already know how much time 1 task is going to take you can set the next task time at a proper time offset, otherwise for tasks which are dependent on user input you can pause the timeline.
Amazing ...... simple words........veryy clearrrr voice...thank you sooo much
thank you for the video, would love to create my own RPG, and with your videos I feel I am making progress to that goal.
I really love your videos and how you explain things. I did a similar thing in my game for cutscenes, but the "script_execute" (which I completely removed from my mind) implementation here gave me a good idea on how to optimize it. Thanks!
Even though I moved from GMS2 to C++ originally for game development first then systems development, your video still satisfies me.
For anyone else trying this tutorial in a newer version of GameMaker, make sure your functions are in the correct format, or else you'll get errors like craycray
My script isn't working :( scene++; is not recognized
wonderful!
Awesome tutorial, great content. Subscribing and looking forward to all you do!
love your tutorials, thanks a lot for it
Implementing this as we speak
Hi, Cosmonaut If you intend to publish some course on udemy, I'll buy it at first time.
Thank you!! :)
This is awesome, thanks a lot!
i didnt start making cutscenes yet, but this improve much of my knowledge.
Make this a Full series love it!
Cheers - I definitely want to make a couple more videos on cutscenes!
Everyone came out of the woods to make faces at each other :3 Also, you can make the timer one line "if(++timer>=argument0*roomspeed)
I love this channel.
In the newest gamemaker version the scripts must be write in a function?
This was great. You posted this at the perfect time. I started making cutscenes in my game but the way I went about it was awful haha.
TOP!
great video, I learned about script_execute, and a fantastic use for it, and also about solving the problem from a data abstraction of the cutscene process, nice! I have a quick question - why not pass the whole array as a parameter to script_execute? each script know what number of parameters it needs, and you don't need to keep changing the switch statement. Just a thought, great series - cheers!
I've copied the exact code yet scene++; is not recognized despite me changing the >= to > as said in the pinned comment. What should i do?
Yeah having this issue too
yeah me too!! 😭😭😭 so frustrating, can't even playtest my game because of it
@@jer2742 Have you found a solution ?
@@puostaei Have you found a solution ?
@@akioseiei6296 no, unfortunately ☹☹
will this work with the most recent version of gamemaker studio? following along the tutorial i got some errors here. i love this way of cutscenes n would love to master it if possible
i know im late but why not use timelines. i havn't used them yet but im just wondering
thank you for gamemaker video
I may do this instead of using sequences... my sequences keep trailing pixels and it's game breaking.. you made sequences before sequences were a think here. A true Cosmonaut.
I think your videos should be a standard that many tutorial content creators strive to achieve.
Hi FriendlyCosmonaut,
I implemented your cutscene system and think I found a mistake in your code. When you modified the cutscene_end_action script before the end of the video, the '>=' operator should be '>' instead, because otherwise it destroys the cutscene object before it can carry out the last instruction in the scene_info array.
Thanks for making these tutorials,
Tristan
Hey Tristan - you're right! I must not have realised as I ran the "test" in a different project which did not have this mistake in the script. I'll be sure to point this out in the next tutorial. Thanks for pointing this out!
Cool!
This is an amazing, well rounded tutorial and this is teaching the very fundementals of the subject. I've seen some other GMS teachers but believe me they do not feel that they have a well understanding of building a game or computer engineering in general.
You do tho. I feel like you might have worked on some professional job or something. Or you just have lots of experience.
Wow thank you, that's high praise indeed!
Hello FriendlyCosmonaut, now that I found your comment I shall ask for something;
is there a way I can contact you? didn't find useful information in your about page. Twitter nor youtube has a mailing system.
You can e-mail me at friendlycosmonaut@gmail.com :)
Late to the party but... whatever :D... Hi Cosmonaut! I'm thinking about coding a cutscene system for a while and i found your tutorial. it's gold! I have just one question: what do you think about using timelines instead of doing it from scratch? pro and cons?
Hello! :). I haven't ever used timelines myself beyond having a look at their capabilities, but I found that their usage was a bit limited for what I wanted to do. Generally speaking, the pro/con of using a built-in system (like the physics system or timelines etc) is going to be that - pro: it's been made for you and packed into handy, simplified functions, but con: you have to learn the quirks of the system, and at some point you may run into its limitations. For example, in timelines, the "events" are all triggered by a "moment", which is simply a specified time (a certain number of in-game "steps"). However, if you want your events to be triggered by something OTHER than time, then you would have to create your own system. Since I wanted the events of the cutscene to depend more on variables or player input, I decided to make my own system :)
FriendlyCosmonaut thank you very much!
wow
:o
so here is something else.
How do I make a slideshow like intro. Kinda like a introduction to the game. (Pokemon is a good example?)
Can you show me how to do the Emote_draw script? I tried it, but it seems not to work because it doesnt draw anything.
In GM1 I can't make an array of arrays like this array = [0,1], [0,1];
Do you know how this would work in GMS1?
can you show us the code for set_camera_mode and create_emote? would really appreciate it!
I know this video is a little old but I'm having trouble with an error crashing my game at startup. It crashes saying that timer is undefined or 'not set before reading'
Did you ever figure out the issue
Hi so i have gms1 and not 2 so the [[1,2],[1,2]]… doesn't work i did find a script that put everything in an array but now i get an error for the wait script it expects a number but it doesn't get a number at the script execute i think it's getting an array
i already fixed it i need to use the script for every one of them wich i didn't do
I'm having troubles too but didn't figure it out.
@@LifeAfterBreakfast
I figured it out after finding a script for this on a forum The script called array and this was in it
///@description array(arguments);
var arr;
for (var i=0;i
oh great! thanks!
@@LifeAfterBreakfast you're welcome
Does this work on game maker studio or is it only for gms2?
helpful 🥰🥰🥰
How do I translate this to GML Visual?
I was looking for the wildcraft cutscnene when you first play, not this..
What