#tfl@irc.freenode.net logs for 3 May 2009 (GMT)

Archive Today Yesterday Tomorrow
tfl homepage


[03:01:45] --> wizardrydragon has joined #tfl
[03:01:45] --- ChanServ gives voice to wizardrydragon
[03:01:49] <wizardrydragon> 'Lo
[03:02:05] --- Marzo_away is now known as Marzo
[03:02:09] <Marzo> Howdy
[03:02:36] <wizardrydragon> First off, I am not spam :o
[03:02:54] <Marzo> I properly informed Yahoo of that :-)
[03:03:11] <wizardrydragon> Secondly, I think yum went and stabbed the webserver
[03:03:57] <wizardrydragon> So it might be down a little longer than anticipated.
[03:04:22] <Marzo> k
[03:05:10] <wizardrydragon> Probably the first thing I'm going to do when it's back up is install MediaWiki, so we can use that for documentation.
[03:06:09] <wizardrydragon> There is actually a FOSS script that converts mediawiki wikis into printable documents, that was made for Wikipedia's "WikiBooks"
[03:06:38] <Marzo> I thought so
[03:06:56] <Marzo> We would just have to define which sections to be used for the "print" version
[03:07:09] <wizardrydragon> I could very likely jimmy that to use a template to wrap up the documentation into something all pretty for a printable version
[03:07:20] <wizardrydragon> I don't think it wouldn't be too hard, but I've been wrong before :-)
[03:07:25] <Marzo> :-)
[03:08:25] <wizardrydragon> I know it makes a PDF - so worse case scenario I dump the formatted text into adobe InDesign
[03:08:46] <wizardrydragon> I have an older version, but it works well enough
[03:09:53] <wizardrydragon> And I think I just winced. Watching a show with demonstrations on the effects of old mideval weapons ... and the halberd demonstration was ... graphic
[03:10:37] <Marzo> :-)
[03:11:02] <Marzo> One show I've seen that was very interesting was the "Weapons that made Britain" series
[03:11:16] <Marzo> The plate armour episode was... illuminating
[03:11:36] <wizardrydragon> What annoys me about some shows is they'll go on about penetration of plate armour, using just plate armour...
[03:12:03] <wizardrydragon> Your average knight also had chainmail under that, and probably padded leathers of some sort. It got pretty cumbersome, actually
[03:13:37] <Marzo> The padding is historically accurate, but the "mail" isn't -- mail is all but useless unless it can move about freely
[03:14:26] <Marzo> Being a flexible armor, a direct blow will transmit through the mail directly into the body -- you will be safe from the cut, but will likely break ribs or arm
[03:15:06] <wizardrydragon> Chainmail - and platemail to lesser degree - generally turns lacerations into blunt force trauma
[03:15:59] <wizardrydragon> Anywho, more on topic -
[03:16:04] <Marzo> Indeed
[03:16:20] <Marzo> (the reply should be in your mailboxes, by the way)
[03:16:26] <wizardrydragon> I read :-)
[03:17:41] <wizardrydragon> To address the conversations thing: the main thing I would have to figure out is "detecting" when others are around
[03:18:17] <wizardrydragon> In a way thats going to be efficient when run on multiple npcs, probably multiple times in any given moment
[03:19:01] <Marzo> The idea I had: use scripts to call the conversation function every so many ticks on the sppropriate NPC
[03:19:22] <wizardrydragon> -nod-
[03:19:24] <Marzo> That conversation function checks the nearby NPCs for proximity and determines who says what
[03:19:34] <Marzo> Based on flags and such
[03:19:37] <wizardrydragon> Well, I would break it down as thus:
[03:19:54] <wizardrydragon> A: For the NPC in question, detect if there is a NPC around to talk to
[03:20:24] <wizardrydragon> B: Determine if this is someone I want to talk to (farmers probably aren't going to be talking to rabbits, or cows, ... or headless ones.)
[03:20:59] <wizardrydragon> C: See if the NPC is in a schedule we want them to talk to others in. (Sleep easily comes to mind as a nono, but there might be some others we could consider)
[03:21:16] <wizardrydragon> D: Determine what they're going to talk about, a topic I suppose.
[03:21:30] <wizardrydragon> then finally, E: Have them do some challenge/response type conversations.
[03:21:40] * Marzo thinks of finally checking if usecode schedules work, and making them work if not
[03:21:41] <wizardrydragon> Probably the easiest way - just a matter of keeping it efficient.
[03:21:57] * wizardrydragon is not good at writing efficient usecode :P
[03:22:09] <Marzo> Having a 'chit-chat' schedule would be very useful :-)
[03:22:24] <wizardrydragon> Loiter seems to volunteer itself handily
[03:22:33] <Marzo> True
[03:23:01] <Marzo> Doing it as an usecode schedule would have the benefit of not having to override an existing schedule
[03:23:06] <wizardrydragon> You could have it somewhat schedule based to - for example "Tend Shop" might result in the NPC asing nearby NPCs to check out their clearly superior wares :P
[03:23:33] <Marzo> But yes, that thing you said would be interesting too
[03:23:42] <Marzo> Hm.
[03:24:03] <Marzo> Proximity event could be used to initialize these conversations
[03:25:51] <wizardrydragon> Hehe
[03:26:07] <Marzo> (who needs eggs?)
[03:26:28] <wizardrydragon> How hard is it to overwrite schedules, exactly?
[03:26:42] <Marzo> Impossible?
[03:26:44] <Marzo> :-p
[03:27:49] <wizardrydragon> :P
[03:28:24] <wizardrydragon> Well thats a clearly unacceptable answer :P
[03:30:18] <Marzo> It is reasonably easy to write a custom usecode schedule and use it (if the system is working as intended, that is...)
[03:30:32] <Marzo> It would not require overriding any existing schedules
[03:30:53] <Marzo> Overriding a schedule would require a new exe, as the behavior is hard-coded
[03:31:32] <wizardrydragon> So, what you're saying is it's in the game executable, and not the usecode?
[03:31:44] <wizardrydragon> That moderately sucks :P
[03:31:45] <Marzo> Yes
[03:31:54] <wizardrydragon> But now that I think about it, that sounds right
[03:32:06] <Marzo> (except for the proximity event and for usecode schedules, of course)
[03:33:27] <Marzo> There were concerns (but not actual tests) that having *all* schedules be usecode schedules could be somewhat of a resource hog
[03:34:47] <wizardrydragon> Memory is cheap, these days, though - out of related interest, do we have any idea the machine demographics of people running Exult?
[03:35:28] <Marzo> s/resource/CPU
[03:35:46] <Marzo> I don't think that there is any hard data
[03:35:59] <wizardrydragon> I mean, for e on my desktop ... well
[03:36:26] <wizardrydragon> If it can run Oblivion, in HD, on the highest settings ... Im not too worried about a few more processor cycles
[03:36:52] <wizardrydragon> But older computers could be a concern depending on how efficient the interpreter is in running the usecode.
[03:36:58] <Marzo> The problem would be those mobiles people keep porting to
[03:37:17] <wizardrydragon> That's true.
[03:37:38] <wizardrydragon> But, on the other hand, Exult was never designed to be ported to such a low memory environment to begin with.
[03:37:53] <wizardrydragon> I shudder to think of having to write our own equivalent of Voodoo.
[03:37:59] <Marzo> Especially with OpenGL enabled!
[03:38:01] <wizardrydragon> "Is that virtuous, Avatar?"
[03:38:17] <Marzo> Well, fortunatelly that won't be needed
[03:38:47] <Marzo> Compiling Exult to a 64-bit architecture allows the use of as much memory as available on the machine
[03:39:38] <Marzo> All 18,446,744,073,709,551,616 theoreticaly possible bytes
[03:39:59] <wizardrydragon> =D
[03:40:15] <Marzo> But on mobiles, having a better cache system would be good
[03:40:32] <wizardrydragon> Well, to be honest, the only way to really know the effect of converting to usecode schedules, would be to do so, and do some profiling tests.
[03:40:51] <Marzo> Particularly if its settings were adjustable, so that people can disable it on (say) a 4BG machine
[03:40:51] <Marzo> Aye
[03:41:07] <wizardrydragon> I do know for the "mod" side of the fence - and there seems to a growing number of them - it would definetely be a plus.
[03:41:19] <wizardrydragon> Especially if we could define our own.
[03:41:36] <wizardrydragon> It would probably be a boon to "new" games too, if ever someone wants to develop one.
[03:41:43] <Marzo> When the usecode schedule system was cooked up ("a couple years ago", I want to say) Jeff said he would do some tests; but I don't think he ever did
[03:41:47] <Marzo> Aye
[03:42:05] <Marzo> s/4BG/4GB
[03:42:19] <wizardrydragon> Knowing Jeff, he probably got halfway before someone got uppity about a bug, and got sidetracked fixing the bug :P
[03:42:27] <Marzo> :-p
[03:42:50] <wizardrydragon> Its a common story in Exult development, and Im sure Exults not the only FOSS project with that issue
[03:42:53] <Marzo> When I am done with the gump changes, I will check if the usecode schedule is working
[03:42:59] <Marzo> Probably
[03:43:00] <wizardrydragon> Alright =)
[03:43:16] <Marzo> (worked on more bugs than the gump system these past couple weeks)
[03:44:17] <wizardrydragon> I can do the actual conversation part of the NPC conversations quite easily - I was the one that contributed a lot to the UCC conversations as is, so that's easy as pie to me. The less familiar and thus more challenging thing would be detecting neary NPCs in an efficient manner.
[03:44:24] <Marzo> (the good part is that I managed to educate the folks to use the bug tracker system instead of saying them in the Phorum...)
[03:45:08] <wizardrydragon> And as an aside reply: a much better chunk caching system would be a boon both to Exult speed, and the folks who want to revive Exult3D
[03:45:21] <Marzo> Aye
[03:45:24] <wizardrydragon> IIRC, the "wall" that got hit originally was issues with Caching.
[03:45:39] <Marzo> But chunk caching is confusing as hell as is
[03:46:20] <Marzo> (I have a hard enough time following the logic using MSVC express as is...)
[03:46:37] <wizardrydragon> Yeah ... this is why in all of 5 years, its not really been touched.
[03:46:46] <Marzo> Half the time I can't even remember what function is supposed to do what in those parts of the code
[03:47:14] <wizardrydragon> To be honest, it probably needs entirely rewritten with a more efficient method, but those who know enough about it are busy, and those who are willing usually get daunted by the voodoo programming.
[03:48:05] <wizardrydragon> (Im mostly in the latter category myself, I want to, but I cant really make heads or tails of half of it)
[03:48:38] <Marzo> brb
[03:49:11] <wizardrydragon> Ok
[04:01:44] --- Marzo is now known as Marzo_away
[04:04:40] --- Marzo_away is now known as Marzo
[04:04:42] <Marzo> Back
[04:04:55] <wizardrydragon> Welcome back
[04:12:29] <wizardrydragon> So
[04:12:43] <Marzo> Taking a look at the cache code
[04:12:52] <wizardrydragon> The scripting part is easy, I just need to figure out how exactly I want the "fast track" intro to TFL to work
[04:12:52] <Marzo> (*chunk* cache code)
[04:12:54] <wizardrydragon> Hrm
[04:13:01] <wizardrydragon> Aye, I figured, given the previous discussion
[04:13:52] <Marzo> By the "fast track" intro I mean the quick-n-dirty explanation given to players that want to jump right to TFL?
[04:14:02] <wizardrydragon> Exactly.
[04:14:09] <wizardrydragon> Seems we have a lot of those :-)
[04:14:33] <Marzo> A few things I was thinking of
[04:14:52] <Marzo> (some of which apply to this as well)
[04:15:29] <Marzo> 1: use sprite effects to make an animated intro
[04:15:57] <Marzo> 2: add some play_video intrinsics that plays some videos (similar to SI intro)
[04:16:02] <Marzo> 3: text only
[04:16:22] <wizardrydragon> 2 would be the neatest, but only if you're volunteering to make the video :-)
[04:16:36] <Marzo> For the alphas and betas, I say stick to 3
[04:17:15] <Marzo> The videos would be a lot of work, and probably wouldn't have much better quality than using sprite effects/sfx
[04:17:39] <Marzo> (with good quality custom sprite effects for that intro, I mean)
[04:18:52] <Marzo> 1 would also match what we had discussed earlier (at least, what I thought about in an earlier discussion) about making a post-gypsy intro for BG
[04:19:56] <Marzo> (and for the record: I would leave 1 and 2 for the release if nothing else than to give something shiny for the release -- I probably would have them working long before, but disabled until the release)
[04:20:21] <wizardrydragon> Thats a possibility
[04:20:51] <wizardrydragon> The big thng is this: TFL is a big new world that offers a lot of things that normal Ultima didnt before, or if it doesnt now,it will
[04:21:04] <wizardrydragon> The karma reimplementation, economy, and eventually, guilds.
[04:21:12] <Marzo> Aye
[04:21:20] <wizardrydragon> So, the"shortcut" intro has a lot of information to disseminate
[04:21:41] <Marzo> (one could always explain it in the readme and add an "rtfm" line in TFL :-p)
[04:22:11] <Marzo> The shortcut intro also cannot be too long or it gets annoying
[04:22:42] <Marzo> (for example, I am always struggling *not* to disable the standard Iolo/Petre cutscene in BG...)
[04:23:32] <Marzo> The best option, at least for now: write it as a dialog that can be skipped
[04:24:09] <Marzo> The player can select among many possibilities and receive the information he wants before going to TFL
[04:25:25] * Marzo pokes wizardrydragon with the Death Scythe in an attempt to get a response
[04:25:48] <wizardrydragon> Sorry, Fallout 3 is shiny and distracting
[04:25:52] <Marzo> lol
[04:26:05] <wizardrydragon> Well
[04:26:15] <Marzo> Anyway, I love that "poke" message I setup :-p
[04:26:36] <wizardrydragon> The karma/gypsy bit is going to be unskippable, except by outright choosing your profesion
[04:26:47] <Marzo> Aye
[04:26:48] <wizardrydragon> or class, or whatever you want to call it
[04:27:03] <Marzo> We should select a term and stick to it, indeed
[04:27:10] <wizardrydragon> the actual information is probably going to be done in "Bioware" style
[04:27:23] <Marzo> (I don't know if the code in CVS is consistent in that regard)
[04:27:26] <wizardrydragon> Chunks of information they could skip over if they didnt want to listen
[04:27:47] <wizardrydragon> "I dont need to hear about avatarship, Im the avatar, okay? Good, Im glad we had this talk."
[04:28:25] <Marzo> ("What is a paladin?" :-p)
[04:28:51] * Marzo thinks of U9 for no reason
[04:29:43] <wizardrydragon> LOL
[04:39:18] <wizardrydragon> Hrm
[04:39:50] <Marzo> ?
[04:41:03] <wizardrydragon> Just thinking on things
[04:51:24] --- Marzo is now known as Marzo_away
[04:52:16] <wizardrydragon> Incidentally, I have a server tech poking at the server, hopefully it will get fixed expediently, but we'll see.
[04:52:22] --- Marzo_away is now known as Marzo
[04:52:26] <Marzo> k
[04:53:22] <wizardrydragon> I thought better of tooling with it myself, and from the timeframe it's been down and knowing how quick the server tech normally is, Im going to take a wild guss and say its probably a good thing I did
[05:03:39] --- Marzo is now known as Marzo_away
[05:29:34] --- Marzo_away is now known as Marzo
[05:29:38] <Marzo> I am off to bed
[05:29:46] <Marzo> Good night
[05:30:40] <-- Marzo has left IRC ("Marzo vanishes suddenly.")
[05:34:38] <-- wizardrydragon has left IRC ("Sleep time")
[18:57:26] <-- ChanServ has left IRC (shutting down)
[19:01:59] --> ChanServ has joined #tfl