tag:blogger.com,1999:blog-348348889650646951.post3947320760556433633..comments2024-01-04T05:15:33.233+00:00Comments on XAGE - Cross-Platform Adventure Game Engine: A Short HistoryClarvalonhttp://www.blogger.com/profile/08868169810712321832noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-348348889650646951.post-67195603655020765832009-11-09T08:26:57.964+00:002009-11-09T08:26:57.964+00:00@Uhfgood: XAGE will always be free to play around...@Uhfgood: XAGE will always be free to play around with. I won't be recommending anyone buy a license (when the time comes) until they've already finished or are closed to finishing a game they want to distribute commercially. Good luck with the new site.<br /><br />@Anonymous: The parent object (i.e. the script runner) for a conversation is always the player character. A 'conversation' in XAGE is where the GUI presents the player with a number of dialogue options. This only ever happens when the player is actively involved, and as such there's no such thing as a conversation between two NPCs. It's simple enough to have two NPCs talking back and forth within a single linear script, and any object can be the parent to that script.Clarvalonhttps://www.blogger.com/profile/08868169810712321832noreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-51814474969713639612009-11-09T07:01:13.391+00:002009-11-09T07:01:13.391+00:00Keep up the good work, I will probably want to use...Keep up the good work, I will probably want to use XAGE in the future. (Most likely when you start charging for it and I no longer have the money to pay for it)<br /><br />Keith<br /><br />btw in case you didn't know Uhfgood's Game Reviews is now Indie Flux at http://indieflux.comKeith Weatherby IIhttp://indieflux.comnoreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-46598277513933678622009-11-08T23:15:52.767+00:002009-11-08T23:15:52.767+00:00What about a dialog between A: the hero and some N...What about a dialog between A: the hero and some NPC and B: between a NPC and another NPC. Whose the "parent" of the dialog-script in these cases?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-47520335874608467072009-11-07T16:36:32.008+00:002009-11-07T16:36:32.008+00:00No problem. I'm happy to answer questions, as...No problem. I'm happy to answer questions, as it gives me ideas about what I need to cover for the documentation.Clarvalonhttps://www.blogger.com/profile/08868169810712321832noreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-87268120879877383532009-11-07T16:04:32.575+00:002009-11-07T16:04:32.575+00:00Ah, thanks! That's just what I wanted to know!...Ah, thanks! That's just what I wanted to know!<br /><br />Sorry to bother you with all these questions :PAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-62822869085282771032009-11-07T09:52:54.841+00:002009-11-07T09:52:54.841+00:00Thanks Ben. DN: I'll get that number down eve...Thanks Ben. DN: I'll get that number down eventually!<br /><br />@Anonymous: Each cloud objects runs its own script to move it. XAGE pretends to be multithreaded (it isn't really, but close enough) in that the general update thread iterates through each object and determines whether that object has a script running, and whether that script needs to advance to the next action.<br /><br />As these scripts only reference one specific object, they do not interfere with each other. That's why the player character is able to walk around and do his own thing without the clouds affecting him. I should probably explain this in a diagram when it comes to writing the documentation.<br /><br />As for walking, yes, this is hardcoded as a few C# methods. Room traversal is, algorithmically, one of the most complext things in XAGE but once broken down into smaller problems is actually quite straightforward.<br /><br />On a simple level, first the start and end point have to be determined (player's current position and destination). From this you can work out the vector, and from that you have the player's direction (XAGE currently only supports four directions as most adventure games only use four, but will eventually support diagonals too). You can then determine whether the end point is more than a stepsize away from the start point - if so, move the player a step towards the end point and update the walking animation.<br /><br />On a more advanced level, you need to factor in things like scaling and pathfinding. XAGE uses a series of geometric walkboxes, and when one is created or edited XAGE Editor generates a new WalkBox Matrix. The matrix contains information on the most optimal way of getting from any walkbox to any other (generated using the A* algorithm). <br /><br />The engine itself uses this matrix in order to determine which boxes the player's start and end point are in, and therefore can figure out which waypoints to use along the way (if any).Clarvalonhttps://www.blogger.com/profile/08868169810712321832noreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-71577114173229846632009-11-06T08:28:16.631+00:002009-11-06T08:28:16.631+00:00Just look at that counter! (9779).
To quote the b...Just look at that counter! (9779). <br />To quote the book.."Two to the power of nine thousand seven hundred and seventy six and falling.."Dualnameshttps://www.blogger.com/profile/06550063249147544687noreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-9310545860183345242009-11-06T05:35:09.102+00:002009-11-06T05:35:09.102+00:00It's great to see how far you've come in 1...It's great to see how far you've come in 18 months.<br /><br />I look forward to see what the next 18 months holds!Ben304https://www.blogger.com/profile/09140754043724405446noreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-28892091252236452009-11-05T22:30:36.382+00:002009-11-05T22:30:36.382+00:00Thanks for your fast response! :)
Yes that was an...Thanks for your fast response! :)<br /><br />Yes that was an interesting post... but I still don't get how the clouds movement doesn't halt the players walking or.. one cloud halting the others clouds movement.<br /><br />Also in hero.WalkTo(x, y); how do you determine weather or not you've reached the destination and what happens when you do? There has to be a method somewhere that takes care of which animation to use (depending on which direction the players moves in) etc. I'd love to know how that method looks like :)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-2890004210674185462009-11-05T19:11:38.086+00:002009-11-05T19:11:38.086+00:00The individual actions within the script are run s...The individual actions within the script are run sequentially. Some Actions are instant (adding inventory, changing an object's display name etc.) and others aren't (walk to, talk to, pause, run custom anim etc).<br /><br />Currently, the actions that aren't instant will halt the script until they are complete. In the future they will come with an optional flag (much like AGS's anim blocking technique) in order to say whether the script is halted or not. This will allow for two characters to be walking/talking at the same time within the same script.<br /><br />It's also possible for an object or character to initiate its own script in order to run their own set of actions independently (see the blog post about clouds - slightly outdated but still relevant). <br /><br />Hope this answers your question. I'm not sure what you mean about dialogue queues.Clarvalonhttps://www.blogger.com/profile/08868169810712321832noreply@blogger.comtag:blogger.com,1999:blog-348348889650646951.post-33770655008368221642009-11-05T18:48:49.099+00:002009-11-05T18:48:49.099+00:00Hi, I'd love to know some things..
Let's ...Hi, I'd love to know some things..<br /><br />Let's say that this is the script issued when a user clicks to pick something up:<br /><br />hero.WalkTo(x, y);<br />hero.Inventory.Add(someProp);<br />scene.Remove(someProp);<br /><br />How are all these events 'queued'? I mean WalkTo needs to be run until it's completed and THEN the prop gets added to the inventory.<br /><br />I'd also like to know how dialoges are queued etcAnonymousnoreply@blogger.com