Quest Implementation

Поделиться
HTML-код
  • Опубликовано: 13 апр 2025

Комментарии • 71

  • @DBROstalos
    @DBROstalos Год назад +98

    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.

    • @JamesLee-mp8hk
      @JamesLee-mp8hk Год назад

      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 .

    • @stevedowning3892
      @stevedowning3892 Год назад +2

      Me too, although I speak as a rank n00b who only downloaded Godot this week

    • @DBROstalos
      @DBROstalos Год назад

      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

    • @Deadener
      @Deadener Год назад +2

      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."

    • @sp33kz
      @sp33kz Год назад +2

      Abso-fuckin-lutely. I love that you get the technical side of things as well as the broader, more people-oriented side.

  • @TheForbiddenLOL
    @TheForbiddenLOL Год назад +24

    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?".

  • @Developesque
    @Developesque Год назад +9

    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.

    • @CainOnGames
      @CainOnGames  Год назад +9

      I think that banter is what I miss the most as I start the retirement process. So I'll keep talking for a while. :)

  • @echoness_
    @echoness_ Год назад +15

    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.

  • @daytonode
    @daytonode Год назад +2

    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.

  • @nicatquliyev3467
    @nicatquliyev3467 23 дня назад

    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.

  • @efai
    @efai 4 месяца назад +1

    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 : )

  • @bushwhackedonvhs
    @bushwhackedonvhs Год назад +1

    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.

  • @theangel666100
    @theangel666100 Год назад +1

    This is a great video. Thanks Tim. Its almost like having a senior dev to ask questions to.

  • @developerdeveloper67
    @developerdeveloper67 Год назад +23

    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?

    • @EyefyourGf
      @EyefyourGf Год назад +1

      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.

    • @jextra1313
      @jextra1313 Год назад +1

      I wonder if Tim liked or disliked the higher-level nature of C#, due to his familiarity with C/C++.

    • @theultimateevil3430
      @theultimateevil3430 Год назад

      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.

    • @human-ft3wk
      @human-ft3wk Год назад +3

      @@EyefyourGfhe didn't imply C or C++ was used in unity, he mentioned all 3 languages

  • @Ambanoid
    @Ambanoid Год назад +1

    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.

  • @rd-um4sp
    @rd-um4sp Месяц назад

    these are a treasure trove of information! Thank you

  • @spitemonster
    @spitemonster Год назад +2

    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.

  • @Anubis1101
    @Anubis1101 Год назад +7

    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.

  • @TheDevisaur
    @TheDevisaur Год назад +1

    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.

  • @LilArquebus
    @LilArquebus Год назад

    Thanks for all the videos lately! Been a very pleasant surprise.

  • @abmarnie9
    @abmarnie9 Год назад

    I love how specific this video is. I am doing a quest system in my game soon

  • @cjgj
    @cjgj Год назад +2

    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!

  • @mudmew4231
    @mudmew4231 Год назад +10

    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!

  • @YellowCable
    @YellowCable Год назад

    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.

  • @kyoujinko
    @kyoujinko Год назад +3

    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

    • @colin-campbell
      @colin-campbell Год назад

      +1 to this question

    • @jextra1313
      @jextra1313 Год назад

      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.

  • @LddStyx
    @LddStyx Год назад

    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.

  • @blackdragon5274
    @blackdragon5274 Год назад +2

    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!

  • @S....
    @S.... Год назад

    More videos like that , please.

  • @TommyHanusa
    @TommyHanusa Год назад

    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.

  • @H0VA
    @H0VA Год назад +1

    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?

  • @Rentash
    @Rentash Год назад +1

    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!

    • @Rentash
      @Rentash Год назад +1

      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
      @AB-sw4kb Год назад +1

      @@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...?

    • @Rentash
      @Rentash Год назад

      @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.

    • @Rentash
      @Rentash Год назад

      @AB-sw4kb 2D of course for sake of simplicity.

    • @theangel666100
      @theangel666100 Год назад +1

      ​@@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

  • @an_imminence
    @an_imminence Год назад +4

    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 ;)

    • @_KondoIsami_
      @_KondoIsami_ Год назад

      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.

  • @shrek1onDVD
    @shrek1onDVD Год назад +5

    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

    • @zhulikkulik
      @zhulikkulik Год назад +1

      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.

    • @arcan762
      @arcan762 Год назад +1

      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.

  • @13skiba
    @13skiba Год назад

    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.

  • @wyattderp9719
    @wyattderp9719 Год назад

    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?

  • @MFKitten
    @MFKitten Год назад

    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!

  • @Draekdude
    @Draekdude Год назад

    I love these videos! Is there a Tim discord or patreon?

  • @Lbf5677
    @Lbf5677 Год назад

    how did you implement conversations in fallout in code?

  • @YarGolubev
    @YarGolubev 3 месяца назад

    This is a rather difficult question - 10 minutes of lecture is clearly not enough
    Here's an infographic:
    Slides and pictures with examples

  • @lovzi9865
    @lovzi9865 Год назад

    Tim, why do you want the mentioned state into your game?

    • @CainOnGames
      @CainOnGames  Год назад +1

      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?”.

    • @lovzi9865
      @lovzi9865 Год назад +1

      @@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.

  • @LandBark
    @LandBark Год назад

    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 👍

  • @MaskedImposter
    @MaskedImposter Год назад

    Everyone loves singletons :D

  • @LadislausMarguspa
    @LadislausMarguspa Год назад

    nice

  • @WesBelden
    @WesBelden Год назад

    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?

  • @FluffySylveonBoi
    @FluffySylveonBoi Год назад +1

    RUclips unsubscribed me again, so I had to hit it again. I hate when they do it :/

    • @jextra1313
      @jextra1313 Год назад

      Their state machine is broken, which is pretty relevant to the current video

  • @nurgle-j5n
    @nurgle-j5n Год назад

    all i know is you better not deadname any questgivers. better be on your best behavior

    • @jextra1313
      @jextra1313 Год назад +3

      even if you disagree with the concept of deadnaming, this joke is lame.

    • @nurgle-j5n
      @nurgle-j5n Год назад

      ​@@jextra1313 it's not a joke. bigot

    • @nurgle-j5n
      @nurgle-j5n Год назад

      @@jextra1313he already did it once you nazi

    • @theangel666100
      @theangel666100 Год назад +2

      Don't be weird