For me, as an indie developer working on my own game, your channel has already given me many times more than people speaking at conferences or training courses. A real diamond.
What kind of game are you working on? Is it an RPG? Could you tell me about it? If you'd rather not no worries but I love RPGs particularly indie RPGs .
yes it is a turned-based RPG insipred by KOTOR2 in terms of story and setting but with Megami Tensei/Persona combat, so it's a mix between EU and Asian gamedesign sort of @@JamesLee-mp8hk
Tim has been a bad influence on me. I just want to make reasonably scoped games that I can ship within a few months, and as I watch these videos, I can feel a devil lean over me and whisper in my ear: "You could make an RPG."
As simple as this is to program, I really appreciate hearing someone from the industry talk about the structure of a system like this. I'm always thinking to myself while coding these systems "Is this really the way it's *meant* to be done?".
Thanks for talking about all of these things. I work in the early and late hours and all weekend on my indie games, by myself, so I don't get to hear the daily banter that aids in skill development.
Thank you, as a programmer I really apprecite the insight of how to consider project structure. The architecture is not only about the games functionality but also helping the development team boost their efficiency.
These technical videos are a god send. Topics that you'd think aren't even niche get so little coverage on the internet because game developers think they're so standard.
Thank you, i've been researching about quest systems and in this talk I've got the idea and implemented my first basic system which has multiple objectives.
I never found a good source of information on how to implement quests, so I designed my own style.. I'm glad it's very similar to this battle tested one : )
When you said "You can't go from mentioned to unknown" regarding quests I immediately had an idea for a game mechanic where drugs or an illness or injury cause you to forget various quests and pieces of information at random and you have to go about some process to get rid of the effect.
Tim, can you compare C, C++, C#, talk about your experiences making games with these languages, early on in your own engines and later on on Unity (Pillars) and also tell us what did you enjoy more doing?
I'm not Tim, but here's my unwelcome subjective experience: C is garbage, C++ is ultimate garbage (though you can't do graphics/engine programming in anything else but; the alternatives has only started to appear lately with Rust and Zig), C# is nice for gameplay programming (can't program engines with it because of garbage collector) and is usually a go-to choice as a scripting language in a game engine. You can make tools for your game engine with whatever, Python is widely used (but it's subjectively horrible, pick C# instead). Tools for Unity is made with C# plugins, the gameplay code is C# as well. C# performance should be enough. There's no much support for native languages (C++ etc.) for gameplay programming in game engines in general, aside from UE (but it's cursed). Historically, some engines went with their own custom languages for scripting (UnrealScript, etc.). The language for a programmer doesn't matter as much as the tooling around it, basically, you pick the right tool for the job and go with it.
For our rpg game we went with node based approach: the nodes, once reached by a "signal", fire their script and advance or hold the signal and wait for events. There's almost no predefined node structure and our scripters had to figure out a good way to sctructure quests themselves. Very flexible and universal. I think CDPR uses/used something similar. The states that Tim talks about are even more universal, but in our system they aren't mandatory - a quest is a set of scripted nodes that might not even be visible to the player.
Thank you for making this Tim. I see I'm not the only developer in the comments, shouldn't be surprised about that! Just wanted to chime in and say more technical videos like this, theory and design rather than the nitty gritty, from someone like yourself is tremendously invaluable. Can only ask for more! EDIT: I suppose since you mentioned you like more specific questions, a video on the topic of software design and delegating that design to a dev team would be great, not to mention more systems based discussions! I'd also love to know more about what your specific day-to-day role and job was like as a director or lead programmer.
I hope you do more programming videos, I definitely need them. It's hard to find good learning material for game programming. Most programming videos/channels are leaning more towards the FAANG industries (which often approach things differently than game development), and most game dev videos are for generic development in specific engines like Unity. A RUclipsr called The Cherno has been immensely helpful, but I'd love more of your insight into it, and even some hard examples if you're willing.
Really helpful video for understanding a basic approach to quests. One point you bring up is that you would leave certain aspects up to scripting. How is scripting vs coding defined? In traditional coding spaces, at least so far I've found, it's basically all grouped into one bucket with out differentiation.
Hey Tim, I'm curious if you'd be interested in talking about your experiences with people who got into the games industry later in their careers. Things like whether they're generally successful or not, how common it is, what kinds of things outsiders take awhile to grasp, etc. I've worked as a programmer at non-gaming companies for awhile now, and I've often thought about what it would be like to get into the games industry, but I have no idea how that might actually go. Thanks for the videos!
Hey Tim, I remember you talking about how your super luck character from GURPs made you want to put luck into Fallout. Is there anything else in your CRPGS that was heavily influenced by your experience in tabletop games? This also goes for narratives that got told at the table then put into your games. Thanks!
I always would have wanted as a player to have the ability to return to the quest giver and renounce/unaccept a quest, especially for certain kinds of quests, make it disappear from the "todo", but having this explicit exchange with the NPC, and possibly negotiate for the quest to be delayed.
That's really interesting, please more coding answers would be appreciated. In particular save states, I presume that it is saved to a database, but how does it know where you were, who was standing there, etc etc
I'd guess that any object that has to be saved has a method that triggers on the save event, which sends relevant values to a function that recieves all values and creates/updates the save file. If I'm way off, it would be really interesting to find out how Tim does it.
Hey Tim, I'm curious as to what kind of involvement you had in New Vegas, I know you only went to obsidian a year after it came out, but did any old friends ask you your thoughts during development like with Fallout 2, or did any of your old ideas get reused? If nothing, or if it wouldn't make the video too long, what did you think of where New Vegas took the world of Fallout? Love the videos!
Are additional variables on more advanced quests just additional instances of the quest class? It seems like the pattern would be to use a quest class instance to hold variables of the quest class type to build up more complicated quests. For an advanced quest "To make an apple pie" it might reference 5 other quest variables ("invent universe", "apple", "spice", "crust", and "getting baked") that need to be completed for the advanced quests completion. And any call to update the quest state on a quest variable would make a call to check the state on the advanced quest to see if it should advance or expose additional quests (so you only mention "getting baked" after you have all the ingredients). Quest variables could also then be updating other quest variables to build them into a chain (once the "invent universe" quest variable is completed then the "apple","spice", and "crust" quests get accepted). Have you tried this or in your experience does a different structure work better? *and of course you can botch the "spice" quest by getting Old Bay instead of Cinnamon.
Tim great work as always. I always wondered in regards to world and story building did you come up with villains like Frank Horrigan and others in the first 2 fallout games. It really has left a lasting impression on me because of how well done they were. And what would you say makes for a good antagonist or villain in the context of the story?
Hey Tim, I know this may be a broad request but. For someone who doesn't have the time or money for college but is very passionate and has a lot of ideas in regards to Game Design and Setting, Where do you recommend someone start? I don't know the first thing about making a game but really really would love to get started in some capacity! Thanks in advance, and Thanks even more for these videos!
I just realized I didn't word this the best, for clarification I mean what exactly would be the basic skills required to begin working on games and where/how do you recommend someone begin honing said skills? (I know you've done a video on getting a job in the games industry in the past and I wanted to add that this question is more for those who would like to get started on a passion project and don't have the skills to do so)
@AB-sw4kb Well, like I said in my comment I know nothing about making a game, and by that I should elaborate and say I know nothing about coding except maybe the commands I've used in DosBox. Anyways while I have plenty of ideas, I'd say the most achievable out of the bunch is this idea I have for a roguelike JRPG. I know JRPG's are generally very long and therefore development can be rough so I figured a roguelike would alleviate those symptoms. Basically a game revolving around the Battle Mechanics of JRPGs that tries to add depth to equipment, skills and classes (in this case "backgrounds) with the gimmick of you killing god (classic JRPG trope) but! Your character to score the final blow becomes god in your next playthrough, and perhaps additional mechanics supporting this like picking a piece of equipment from each character from your party (outside of the one who "becomes god") and naming said equipment for it to become legendary loot next time around etc.
@@RentashI'd suggest doing some basic C# beginers tutorials, then getting into unity. You're going to need to understand concepts like object oriented programming
The complicated part about quests is not the system programming, it's the "writing the quests well" part. The Witcher 3 devs talked about how many different things can intervene, affect or reorder quests. - Oh, you've been to the cave and befriended the ghost already? Then we don't need any help anymore! (achieved before mentioned, but unknown to the questgiver) - You found the traitor someone sent you to find, but what to do with him now? (can be completed three different ways, which might be referred to later) - Oh, the questgiver dies after you got rid of the monster successfully? Who will pay you now? But that's for the designers to worry about ;)
That's definitively not just for the designers to worry about, for something like you described to be even possible you have create a very good system that will take all of that into account. In fact on release the Witcher 3 had a bug where a few quests you completed could be marked as failed, and the game still has a few issues with the quest system.
Hey Tim, do you know why games stopped putting in cheat codes? Even back in day, going from San Andreas to GTA 4 so many cheats were removed and like the coolest ones too. Even tho it's not a cheat, did the hot coffee incident have anything to do with it? edit: thinking on it, i wouldnt be surprised if the rise of achievements had something to do with cheats going away
I think it is because cheats aren't really intended for players. It's a testing functionality so you can just instantly get access to something instead of looking for it or completing quests etc. Engines now have better ways to test things so maybe there's no need for it. Also it's kinda weird to leave something like that in a game.
I think part of it was because games companies often did deals with gaming magazine publishers (back when those were still popular), where you could only get the cheats in the relevant magazines, but obviously now nobody cares about those as you can just look them up online.
I just eant to suggest that you really should make the original game idea for your Fallout engine, where you go back in time and kill the monkey that disrupts human evolution and go back to the future that is now controlled by dinosaurs etc etc. That sounds like a game everyone would love nowadays. It has some Tim Schafer vibes!
This allows the quest giver to know they offered the quest already, so narrative designers can write lines like “Have you reconsidered taking on those bandits?”.
@@CainOnGames thanks Tim. Makes sense to store that info for the immersiveness. And thanks for all your videos. You are an inspiration for a software engineer who wants to create its first RPG.
About quests Tim Cain (guy who is talking in the video), how do you feel about the idea that quests can have limited time to start/begin? Like for example quest to kill a bunch of monsters, instead you do plot dungeon and after finishing it you learn that either quest-giver hired someone else, did it themselves or monsters moved on and the orphan crushing machine got wrecked (that would be a twist, monsters were actually doing good while you did evil). That would require another flag, to make sure you get "Slowpoke" achievement. (I do realize it's a bit advanced flag of botching it, given a limited time to do a quest) Another great video 👍
That was fun, thanks for your breakdown and to the viewer who asked the question. I'm curious on how you typically approach dialogue trees and their content updating based on quest state and other factors. Do you condider the scripts and quest entirely separate systems (scripts just calling quest methods), or do you ever have a quest variable reference a script to run? If there are different dialogue options based on dialogue choices previously selected by the player, quest related actions with multiple outcomes etc. do you prefer that all be tracked separately in script variables, or provide a means of setting those variables in the quest?
For me, as an indie developer working on my own game, your channel has already given me many times more than people speaking at conferences or training courses. A real diamond.
What kind of game are you working on? Is it an RPG? Could you tell me about it? If you'd rather not no worries but I love RPGs particularly indie RPGs .
Me too, although I speak as a rank n00b who only downloaded Godot this week
yes it is a turned-based RPG insipred by KOTOR2 in terms of story and setting but with Megami Tensei/Persona combat, so it's a mix between EU and Asian gamedesign sort of @@JamesLee-mp8hk
Tim has been a bad influence on me. I just want to make reasonably scoped games that I can ship within a few months, and as I watch these videos, I can feel a devil lean over me and whisper in my ear:
"You could make an RPG."
Abso-fuckin-lutely. I love that you get the technical side of things as well as the broader, more people-oriented side.
As simple as this is to program, I really appreciate hearing someone from the industry talk about the structure of a system like this. I'm always thinking to myself while coding these systems "Is this really the way it's *meant* to be done?".
Thanks for talking about all of these things. I work in the early and late hours and all weekend on my indie games, by myself, so I don't get to hear the daily banter that aids in skill development.
I think that banter is what I miss the most as I start the retirement process. So I'll keep talking for a while. :)
Thank you, as a programmer I really apprecite the insight of how to consider project structure. The architecture is not only about the games functionality but also helping the development team boost their efficiency.
These technical videos are a god send. Topics that you'd think aren't even niche get so little coverage on the internet because game developers think they're so standard.
Thank you, i've been researching about quest systems and in this talk I've got the idea and implemented my first basic system which has multiple objectives.
I never found a good source of information on how to implement quests, so I designed my own style.. I'm glad it's very similar to this battle tested one : )
When you said "You can't go from mentioned to unknown" regarding quests I immediately had an idea for a game mechanic where drugs or an illness or injury cause you to forget various quests and pieces of information at random and you have to go about some process to get rid of the effect.
This is a great video. Thanks Tim. Its almost like having a senior dev to ask questions to.
Tim, can you compare C, C++, C#, talk about your experiences making games with these languages, early on in your own engines and later on on Unity (Pillars) and also tell us what did you enjoy more doing?
C or C++ is not used in unity only C#,and i say that because you clearly said early on in your engines and now in unity.
I wonder if Tim liked or disliked the higher-level nature of C#, due to his familiarity with C/C++.
I'm not Tim, but here's my unwelcome subjective experience: C is garbage, C++ is ultimate garbage (though you can't do graphics/engine programming in anything else but; the alternatives has only started to appear lately with Rust and Zig), C# is nice for gameplay programming (can't program engines with it because of garbage collector) and is usually a go-to choice as a scripting language in a game engine.
You can make tools for your game engine with whatever, Python is widely used (but it's subjectively horrible, pick C# instead). Tools for Unity is made with C# plugins, the gameplay code is C# as well. C# performance should be enough. There's no much support for native languages (C++ etc.) for gameplay programming in game engines in general, aside from UE (but it's cursed). Historically, some engines went with their own custom languages for scripting (UnrealScript, etc.). The language for a programmer doesn't matter as much as the tooling around it, basically, you pick the right tool for the job and go with it.
@@EyefyourGfhe didn't imply C or C++ was used in unity, he mentioned all 3 languages
For our rpg game we went with node based approach: the nodes, once reached by a "signal", fire their script and advance or hold the signal and wait for events. There's almost no predefined node structure and our scripters had to figure out a good way to sctructure quests themselves.
Very flexible and universal.
I think CDPR uses/used something similar.
The states that Tim talks about are even more universal, but in our system they aren't mandatory - a quest is a set of scripted nodes that might not even be visible to the player.
these are a treasure trove of information! Thank you
Thank you for making this Tim. I see I'm not the only developer in the comments, shouldn't be surprised about that! Just wanted to chime in and say more technical videos like this, theory and design rather than the nitty gritty, from someone like yourself is tremendously invaluable. Can only ask for more! EDIT: I suppose since you mentioned you like more specific questions, a video on the topic of software design and delegating that design to a dev team would be great, not to mention more systems based discussions! I'd also love to know more about what your specific day-to-day role and job was like as a director or lead programmer.
I hope you do more programming videos, I definitely need them. It's hard to find good learning material for game programming.
Most programming videos/channels are leaning more towards the FAANG industries (which often approach things differently than game development), and most game dev videos are for generic development in specific engines like Unity.
A RUclipsr called The Cherno has been immensely helpful, but I'd love more of your insight into it, and even some hard examples if you're willing.
Really helpful video for understanding a basic approach to quests. One point you bring up is that you would leave certain aspects up to scripting. How is scripting vs coding defined? In traditional coding spaces, at least so far I've found, it's basically all grouped into one bucket with out differentiation.
Thanks for all the videos lately! Been a very pleasant surprise.
I love how specific this video is. I am doing a quest system in my game soon
Hey Tim, I'm curious if you'd be interested in talking about your experiences with people who got into the games industry later in their careers. Things like whether they're generally successful or not, how common it is, what kinds of things outsiders take awhile to grasp, etc. I've worked as a programmer at non-gaming companies for awhile now, and I've often thought about what it would be like to get into the games industry, but I have no idea how that might actually go.
Thanks for the videos!
Hey Tim, I remember you talking about how your super luck character from GURPs made you want to put luck into Fallout. Is there anything else in your CRPGS that was heavily influenced by your experience in tabletop games? This also goes for narratives that got told at the table then put into your games. Thanks!
I always would have wanted as a player to have the ability to return to the quest giver and renounce/unaccept a quest, especially for certain kinds of quests, make it disappear from the "todo", but having this explicit exchange with the NPC, and possibly negotiate for the quest to be delayed.
That's really interesting, please more coding answers would be appreciated. In particular save states, I presume that it is saved to a database, but how does it know where you were, who was standing there, etc etc
+1 to this question
I'd guess that any object that has to be saved has a method that triggers on the save event, which sends relevant values to a function that recieves all values and creates/updates the save file. If I'm way off, it would be really interesting to find out how Tim does it.
You could do a tree structure where the objectives are sub-quests so that the root is completed once all of its branches are compleated.
Hey Tim, I'm curious as to what kind of involvement you had in New Vegas, I know you only went to obsidian a year after it came out, but did any old friends ask you your thoughts during development like with Fallout 2, or did any of your old ideas get reused?
If nothing, or if it wouldn't make the video too long, what did you think of where New Vegas took the world of Fallout?
Love the videos!
More videos like that , please.
Are additional variables on more advanced quests just additional instances of the quest class? It seems like the pattern would be to use a quest class instance to hold variables of the quest class type to build up more complicated quests. For an advanced quest "To make an apple pie" it might reference 5 other quest variables ("invent universe", "apple", "spice", "crust", and "getting baked") that need to be completed for the advanced quests completion. And any call to update the quest state on a quest variable would make a call to check the state on the advanced quest to see if it should advance or expose additional quests (so you only mention "getting baked" after you have all the ingredients). Quest variables could also then be updating other quest variables to build them into a chain (once the "invent universe" quest variable is completed then the "apple","spice", and "crust" quests get accepted). Have you tried this or in your experience does a different structure work better?
*and of course you can botch the "spice" quest by getting Old Bay instead of Cinnamon.
Tim great work as always. I always wondered in regards to world and story building did you come up with villains like Frank Horrigan and others in the first 2 fallout games. It really has left a lasting impression on me because of how well done they were. And what would you say makes for a good antagonist or villain in the context of the story?
Hey Tim, I know this may be a broad request but. For someone who doesn't have the time or money for college but is very passionate and has a lot of ideas in regards to Game Design and Setting, Where do you recommend someone start? I don't know the first thing about making a game but really really would love to get started in some capacity! Thanks in advance, and Thanks even more for these videos!
I just realized I didn't word this the best, for clarification I mean what exactly would be the basic skills required to begin working on games and where/how do you recommend someone begin honing said skills? (I know you've done a video on getting a job in the games industry in the past and I wanted to add that this question is more for those who would like to get started on a passion project and don't have the skills to do so)
@@Rentash I think it can depend on what sort of game this is. Is this like an action-adventure RPG, racing game, JRPG, puzzle game...?
@AB-sw4kb Well, like I said in my comment I know nothing about making a game, and by that I should elaborate and say I know nothing about coding except maybe the commands I've used in DosBox. Anyways while I have plenty of ideas, I'd say the most achievable out of the bunch is this idea I have for a roguelike JRPG. I know JRPG's are generally very long and therefore development can be rough so I figured a roguelike would alleviate those symptoms. Basically a game revolving around the Battle Mechanics of JRPGs that tries to add depth to equipment, skills and classes (in this case "backgrounds) with the gimmick of you killing god (classic JRPG trope) but! Your character to score the final blow becomes god in your next playthrough, and perhaps additional mechanics supporting this like picking a piece of equipment from each character from your party (outside of the one who "becomes god") and naming said equipment for it to become legendary loot next time around etc.
@AB-sw4kb 2D of course for sake of simplicity.
@@RentashI'd suggest doing some basic C# beginers tutorials, then getting into unity. You're going to need to understand concepts like object oriented programming
The complicated part about quests is not the system programming, it's the "writing the quests well" part. The Witcher 3 devs talked about how many different things can intervene, affect or reorder quests.
- Oh, you've been to the cave and befriended the ghost already? Then we don't need any help anymore! (achieved before mentioned, but unknown to the questgiver)
- You found the traitor someone sent you to find, but what to do with him now? (can be completed three different ways, which might be referred to later)
- Oh, the questgiver dies after you got rid of the monster successfully? Who will pay you now?
But that's for the designers to worry about ;)
That's definitively not just for the designers to worry about, for something like you described to be even possible you have create a very good system that will take all of that into account.
In fact on release the Witcher 3 had a bug where a few quests you completed could be marked as failed, and the game still has a few issues with the quest system.
Hey Tim, do you know why games stopped putting in cheat codes? Even back in day, going from San Andreas to GTA 4 so many cheats were removed and like the coolest ones too. Even tho it's not a cheat, did the hot coffee incident have anything to do with it?
edit: thinking on it, i wouldnt be surprised if the rise of achievements had something to do with cheats going away
I think it is because cheats aren't really intended for players. It's a testing functionality so you can just instantly get access to something instead of looking for it or completing quests etc.
Engines now have better ways to test things so maybe there's no need for it. Also it's kinda weird to leave something like that in a game.
I think part of it was because games companies often did deals with gaming magazine publishers (back when those were still popular), where you could only get the cheats in the relevant magazines, but obviously now nobody cares about those as you can just look them up online.
Hiya Tim. A big fan of your work. I would like to know your opinions on current rpg games and a particular little game called Atom RPG.
How hard is it to add dynamic quests and quests with consequences into a game and why do so many developers fall into the fetch quest trap?
I just eant to suggest that you really should make the original game idea for your Fallout engine, where you go back in time and kill the monkey that disrupts human evolution and go back to the future that is now controlled by dinosaurs etc etc.
That sounds like a game everyone would love nowadays. It has some Tim Schafer vibes!
I love these videos! Is there a Tim discord or patreon?
how did you implement conversations in fallout in code?
This is a rather difficult question - 10 minutes of lecture is clearly not enough
Here's an infographic:
Slides and pictures with examples
Tim, why do you want the mentioned state into your game?
This allows the quest giver to know they offered the quest already, so narrative designers can write lines like “Have you reconsidered taking on those bandits?”.
@@CainOnGames thanks Tim. Makes sense to store that info for the immersiveness. And thanks for all your videos. You are an inspiration for a software engineer who wants to create its first RPG.
About quests Tim Cain (guy who is talking in the video), how do you feel about the idea that quests can have limited time to start/begin? Like for example quest to kill a bunch of monsters, instead you do plot dungeon and after finishing it you learn that either quest-giver hired someone else, did it themselves or monsters moved on and the orphan crushing machine got wrecked (that would be a twist, monsters were actually doing good while you did evil). That would require another flag, to make sure you get "Slowpoke" achievement.
(I do realize it's a bit advanced flag of botching it, given a limited time to do a quest)
Another great video 👍
Everyone loves singletons :D
nice
That was fun, thanks for your breakdown and to the viewer who asked the question.
I'm curious on how you typically approach dialogue trees and their content updating based on quest state and other factors. Do you condider the scripts and quest entirely separate systems (scripts just calling quest methods), or do you ever have a quest variable reference a script to run?
If there are different dialogue options based on dialogue choices previously selected by the player, quest related actions with multiple outcomes etc. do you prefer that all be tracked separately in script variables, or provide a means of setting those variables in the quest?
RUclips unsubscribed me again, so I had to hit it again. I hate when they do it :/
Their state machine is broken, which is pretty relevant to the current video
all i know is you better not deadname any questgivers. better be on your best behavior
even if you disagree with the concept of deadnaming, this joke is lame.
@@jextra1313 it's not a joke. bigot
@@jextra1313he already did it once you nazi
Don't be weird