jorgenoro Posted December 15, 2015 Share Posted December 15, 2015 Hello, I was wondering...I never got deep into developing a full featured game, just some small experiments.I was thinking how different dialogues types could be implemented, but I have some ideas which I consider poor.One of them, consists in showing information in the screen in specific locations in the world. To achieve this, one could create rectangles (regions in the world) and check the overlaping of, for example, the player.When the player overlaps, gets the rect id, and searches a vector, array, hash... for the corresponding information. Do any of you know awesome ideas and would like to share? I'm pretty curious to know how other people do it. Regards! Quote Link to comment Share on other sites More sharing options...
mattstyles Posted December 16, 2015 Share Posted December 16, 2015 Yeah, creating regions and having one-time messages flash up is a perfectly good solution. Your message code checks game state (in this case, location, but it could be quest status, player status yada yada yada) and displays an appropriate message, or does nothing. This is great for messages but less so for actual dialogue. I think most dialogue systems revolve around creating a tree of dialogue options as implementing actual free-flowing conversation-style dialogue is very tricky. The problem with implementing as a tree is that oftentimes choices will lead to the same place so you create non-tree like structures, this isnt rare in programming and many solutions exist, but it can make things tricky. Easiest is to simply replicate 'same' nodes in the tree, sure, you can do clever things to share memory and such, but unless your dialogue tree is large its rarely necessary. An additional complexity is measuring state during the dialogue. For example, certain choices may change certain state variables which can lead to differences further down the dialogue tree. This can be tricky to implement and very error prone, plus, finding bugs in this case can be a nightmare. Generally you'll want some sort of visual representation of your dialogue tree, a collection of collapsible nodes would do but you need some way to visualise 'linked' leaf nodes. Your UI, or tooling, then creates the actual dialogue tree. Creating it by hand for any non-trivial dialogue is hard as its near impossible use cognitive engineering to hold the state in your head, you need to see it and the links. Finally, if you're employing stuff like state variables and implementing a complex dialogue tree you need to test it. Automation should be fairly easy but it'll need old-fashioned human power too which is a pain as its very time consuming. Look into tree-like structures in programming, they probably dont relate to dialogue trees specifically but they will be your best friend in creating interesting dialogues for your games. Quote Link to comment Share on other sites More sharing options...
b10b Posted December 16, 2015 Share Posted December 16, 2015 I often use the proximity approach for location contextual Information - e.g. environment background sounds, hints, conversations.Assuming Information is contextual to a Map location (x,y) then we sort the list of all Information based on distance to Player (using non-rooted Pythagoras), and limit the list to show the top 5, etc.Dampening parameters can be added to make specific Information a higher priority for a specific Player, or specific game states.Further optimization can be added if the list of all Information is extensive. Quote Link to comment Share on other sites More sharing options...
jorgenoro Posted December 26, 2015 Author Share Posted December 26, 2015 Thanks for all the responses.Right now, I'm using the regions system, and for the purpose its doing just fine!I'll give a try in a tree like system in my next project, and tell something about the implementation. Thanks again! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.