[01:26:31] iceeey has quit: Remote closed the connection
[02:32:09] iceeey has joined #peragro-dev
[02:32:09] ChanServ sets mode: +o iceeey
[03:57:37] iceeey has quit: "Leaving"
[07:08:42] sueastside has joined #peragro-dev
[07:08:43] ChanServ sets mode: +o sueastside
[07:30:51] thebolt2 has joined #peragro-dev
[08:31:06] ChanServ sets mode: +o thebolt
[12:08:03] caedes has joined #peragro-dev
[12:08:04] ChanServ sets mode: +v caedes
[12:34:47] <CyaNox> sueastside, thebolt, caedes, Lightwave: What do you guys think about this while ryzom thing? I prefere a short and to the point answer so I can see what our team wants.
[12:35:46] <caedes> what while ryzom thing?
[12:37:20] <thebolt> s/while/whole?
[12:50:46] <CyaNox> yeah s/while/whole/
[12:54:08] <thebolt> well, first of all i don't know, what kind of relation does this daraknor dude have to ryzom? to me it seems he is a loose nut who tries to gather people behind his pet project
[13:05:32] <thebolt> and, as you might hear from my tone i am not that entusiastic :P
[13:09:14] <CyaNox> I already gathered that from your previous statement ... :p
[13:09:18] <CyaNox> whata bout the rest?
[13:14:00] * CyaNox pokes sueastside and caedes
[13:16:48] <CyaNox> and my opinion is that although an interresting idea to make a mog base engine it is not our goal for PT. Some things are however similar in both PT and the engine that might come out of the ryzom thing.
[13:17:18] <CyaNox> So I'm happy if they use our code as a base as long as they do not expect anything from us.
[13:17:35] <CyaNox> We are working on PT and they are doing something else.
[15:47:12] Lightwave has quit: Connection timed out
[16:21:14] thebolt2 has joined #peragro-dev
[16:21:24] thebolt has quit: Nick collision from services.
[16:21:34] ChanServ sets mode: +o thebolt
[16:33:23] Lightwave has joined #Peragro-Dev
[16:33:23] ChanServ sets mode: +v Lightwave
[18:35:09] PK has joined #peragro-dev
[18:35:09] ChanServ sets mode: +o PK
[18:49:07] caedes_ has joined #peragro-dev
[18:49:07] ChanServ sets mode: +v caedes_
[18:52:19] caedes has quit: Read error: 104 (Connection reset by peer)
[18:52:28] <sueastside> Same opinion, mmorpg framework sounds great, although all their needs that'll like to see implemented(which differ from our own) isnt our job.
[18:59:51] <sueastside> However changes that allow their needs should be our job, nice and generic :)
[19:09:26] caedes_ has quit: Read error: 110 (Connection timed out)
[19:10:03] caedes_ has joined #peragro-dev
[19:10:03] ChanServ sets mode: +v caedes_
[19:24:17] <PK> who all got an email from buildaworld?
[19:24:53] <sueastside> not me
[19:25:16] <thebolt> not me
[19:26:46] <PK> It's rather short... just Hey, I'm working on these Projects, join if you like :) and there they blame _us_ to recrute from them :-P
[19:27:07] <PK> btw, http://www.buildaworld.net/page/wiki/ProjectRoadmap <-- did anyone tell them they loadtest a prototype? :-)
[19:30:12] <thebolt> i tried :P
[19:31:02] <PK> "Plane Shift and Perago Tempus are both derivatives from Crystal Space." <-- w00t \o/ :-P
[19:31:04] <sueastside> they do what now?
[19:31:26] <thebolt> eh
[19:31:34] <thebolt> good work :P
[19:31:50] <PK> I guess I'll write a long email to the them... saying like "well, it's a prototype... but if you test it anyway, I'm curious how bad it worked" :)
[19:45:26] <sueastside> CyaNox: 18!
[20:19:55] theboltEatingStu changed nick to: thebolt
[20:48:52] iceeey has joined #peragro-dev
[20:48:52] ChanServ sets mode: +o iceeey
[20:49:15] <thebolt> hi iceeey
[20:49:18] <sueastside> hi iceeey
[20:49:24] <iceeey> hi
[21:30:07] <CyaNox> sueastside: patience
[21:30:19] <sueastside> NO!
[21:35:29] <CyaNox> hah well then I'll just torture you with the fact that I've already seen it ... just as ep13 of sg1
[21:36:31] <sueastside> 13? you bastard! im only at 11 :s
[21:37:06] * sueastside refreshes his ftp map infinitly till something appears...
[21:38:56] <CyaNox> moahahahaha
[21:40:50] <CyaNox> sueastside: your no t refreshing ... :p
[21:45:27] <sueastside> CyaNox: left something for you too
[21:46:09] caedes_ has quit: "nightmare reset by peer"
[21:46:25] caedes has joined #peragro-dev
[21:46:25] ChanServ sets mode: +v caedes
[21:55:33] <CyaNox> sueastside: ok you have 5 minutes to leech them .. :p
[21:57:48] <sueastside> CyaNox: my mom doesnt check my history, i dont have to worry about such names :P
[21:59:21] caedes has quit: "nightmare reset by peer"
[22:29:46] <thebolt> hm, some more research on python and threads..
[22:30:01] <iceeey> yeah?
[22:30:03] <thebolt> python itself isn't thread-safe
[22:30:08] <thebolt> so it use a global lock
[22:30:18] <thebolt> which is aquired (and waited for) every 100 instructions or so
[22:30:35] <thebolt> so even if you have four cores and four threads running python it won't be faster than a single one :/
[22:31:18] <thebolt> so, running multiple threads with python gains.. 0
[22:31:25] <iceeey> hmm that sucks
[22:31:39] <iceeey> is that true of stackless too?
[22:31:59] <iceeey> I'm sure it's something they've at least thought of changing
[22:35:14] <thebolt> as far as i can interpret the code, yes
[22:39:05] <thebolt> wonder if there is any irc channel with people who use stackless ;)
[22:39:25] <thebolt> hm #stackless on this network :)
[22:39:28] <iceeey> hehe
[22:39:46] <iceeey> can't you release the thread lock from a c++ extension call?
[22:44:53] <thebolt> http://www.stackless.com/Members/rmtew/code/PyCon2006-StacklessEvePresentation.zip/download
[22:44:56] <thebolt> hm, not sure
[22:45:17] <iceeey> i think you can
[22:47:12] <iceeey> hm maybe not
[22:47:24] <iceeey> a hackish way would be to run two processes and talk over a socket
[22:47:28] <thebolt> seems eve is running it single threaded
[22:47:36] <thebolt> yea, or make the server actually be zoneable
[22:47:43] <thebolt> so you run N servers on M nodes
[22:47:43] <iceeey> yeah, that's probably a good idea
[22:48:00] <thebolt> then you can run multiple zone servers on sinlge server nodes
[22:48:11] <iceeey> yes
[22:48:14] <thebolt> while each zone server is single threaded
[22:48:15] * PK suggests a SUN system with zones :-P
[22:48:40] <iceeey> and then you have a main server that handles the global stuff
[22:51:06] <PK> yea, either that or write an own python interpreter :)
[22:51:39] <thebolt> hm, seems they are also using a threaded pool of (python) threads as workers
[22:51:46] <thebolt> but the tasklet stuff is only running in single thread
[22:51:56] <thebolt> http://svn.python.org/view/stackless/sandbox/libraries/uthread-ccp/uthread.py?rev=52329&view=auto thats a lib released by the eve guys (girls)
[22:54:13] <iceeey> so they increased the instruction count until global lock in hopes that all proper code would have yielded before it hit the lock or so?
[22:54:23] <thebolt> ?
[22:54:46] <iceeey> Use only the provided 'uthread.sleep()' and
[22:54:46] <iceeey> 'uthread.benice()' functions to yield and never
[22:54:46] <iceeey> 'stackless.schedule()'. The reason for this is that each
[22:54:46] <iceeey> tasklet scheduled is expected to be removed from the scheduler
[22:54:46] <iceeey> when it either yields or exits. This way the watchdog can be
[22:54:46] <iceeey> relied upon to exit pretty much immediately, and will only
[22:54:47] <iceeey> hit the instruction count timeout when a runaway tasklet
[22:54:49] <iceeey> does not yield because of bad programming.
[22:54:51] <iceeey> sorry
[22:56:16] <thebolt> well, that is because they have their own routines for waiting/scheduling etc
[22:56:31] <thebolt> which also allows them to check if threads (python threads) or tasklets deadlock etc
[22:56:43] <iceeey> ah
[22:56:53] <iceeey> not related to the other lock
[22:57:31] <thebolt> and they also provide a sleep(time) version
[22:57:39] <iceeey> yeah i see
[23:01:32] <thebolt> http://www.stackless.com/pipermail/stackless/2006-August/001918.html small usage example
[23:04:51] <thebolt> however, that would bring us even more into python-land ;)
[23:05:08] <iceeey> hehe
[23:08:50] <iceeey> maybe we should talk a bit about the editor?
[23:08:57] <iceeey> considering we already started a bit in #peragro
[23:10:00] <thebolt> well, sure
[23:11:25] <iceeey> so it can edit over the network
[23:12:42] <iceeey> it edits entities, so you get a property editor
[23:12:56] <PK> thebolt: I just read the mail about the conference and the financial sponsor stuff... do you happen to know how much money is required/expected?
[23:13:20] <iceeey> there can be specific editors for entity types like NPC dialogues, that have a data component
[23:13:49] <iceeey> that's assuming that NPC dialogues should even be part of entities
[23:14:14] <thebolt> PK: no :)
[23:15:56] <iceeey> perhaps all the game's rules, conversations, quests, races, etc should be separate
[23:16:02] <PK> I guess it would be best to have a will defined editor API... say a network protocol. So we can have different apps as editors. Maybe some more command line based for batch operations and stuff. Or for developing and testing. And then a fancy, userfriendly Editor for the 3rd party users.
[23:16:21] <iceeey> PK, yeah, it will definitely part of the network api
[23:17:10] <PK> I would like to put as much game data as possible into... well, the database so we can edit it all with the editor and have no hardcoded settings or stuff like PS has.
[23:17:21] <thebolt> iceeey: btw, about the Eve stuff.. seems they basically do what uthread.py does but in c++ ;)
[23:17:40] <thebolt> i definitly think that rules etc should tie into the entity system
[23:17:41] <PK> I think you could have your content projects in files locally and then load it in the editor and publish it on the server.
[23:18:16] <thebolt> however, we might need one more type of data except entities and properties which would be "entitydata" (that is entity/behaviour specific) and "heavier" than a simple property
[23:18:31] <iceeey> yep
[23:18:33] <thebolt> so for example a quest is an entity, it have an entity data that is the whole quest script
[23:20:21] <iceeey> what do you mean by script?
[23:21:17] <thebolt> well, "definition" then.. (quite possibly a tasklet script ;)
[23:22:37] <iceeey> so it is like plain-text data?
[23:23:20] <PK> thebolt: btw, speaking about editor and stuff... you were all quiet yesterday when I brought up the topic of graphical modeling such things... might I ask about your opinion concering that topic?
[23:23:22] <thebolt> possibly, but possibly something else (a decision tree definition for example.. or a DAG defining an NPC conversation)
[23:23:37] <thebolt> PK: well, what about it?
[23:24:42] <PK> what do you think about the idea of graphical modeling... not only dialogs but maybe also quests, behaviours, npc AI, whatever we might see useful? where do you see the advantages or disadvantages?
[23:25:16] <thebolt> well, of course there are both advantages and disadvantages with everything ;)
[23:25:35] <thebolt> i think that the data representation should be such that it can be "hand-crafted"
[23:25:51] <thebolt> (not neccesarily go hand crafted -> graphical editor though)
[23:26:01] <thebolt> but in some subsections it might make much sense to have it graphically
[23:26:28] <thebolt> brb
[23:28:12] <PK> I was also thinking that the problem with CEL's XML behaviour is the unfamiliar syntax for most of us (I guess) but with a graphical editor you could create such behaviour files more easily and you could then look at the automatically generated xml files.
[23:28:37] <iceeey> the parts of the entity system in order from least often modified, to most frequently changed: components, behaviors, (quest, conversation, rules) data, entity templates, entity instances
[23:28:50] <iceeey> at least that's the way i see things working
[23:29:10] <PK> no need to learn a strange xml behaviour scripting language... you would only need to understand it... if at all.
[23:30:06] <PK> couldn't entity templates be simplified as data too? I guess you could create such in the editor too?
[23:31:08] <PK> say I would like to create my flying combat door entity template... because I need a lot of there doors for... eh well, my flying, living house or so :)
[23:32:13] <iceeey> well entity templates are a way to make entity instances
[23:33:25] <iceeey> they are made up of components, behaviors, and data... so i think because of this, they need to be separate
[23:34:01] <PK> I was thinking I could make a quest, and at the end of that quest I want a lot new entity being instanced. Say a cursed treasure. So I want each gold coin to be a hostile npc that attacks the player (just as an example... )
[23:34:36] <sueastside> night
[23:34:40] <PK> night sueastside
[23:35:21] sueastside has quit: "If I don't survive, tell my wife Hello"
[23:35:38] <iceeey> so in your quest you add a reward: make 100 instances of the FightingGoldCoin entity template
[23:35:57] <PK> yep
[23:36:09] <PK> and that template I define in the editor too
[23:36:42] <iceeey> well yes
[23:37:09] thebolt2 has joined #peragro-dev
[23:37:11] <PK> so the template really just consist out of data (actually a lot of all the other data)
[23:37:15] <PK> wb thebolt2
[23:37:27] <thebolt2> sorry for that..
[23:37:29] <thebolt2> last i saw was
[23:37:31] <iceeey> a lot of things is really just data :)
[23:37:31] <PK> np
[23:37:34] <thebolt2> ·23:30· @ PK - say I would like to create my flying combat door entity template... because I need a lot of there doors for... eh well, my flying, living house or so :)
[23:37:38] <thebolt2> ·23:31· @ thebolt - CELs XML behaviour is a half-bad idea with a terrible implementation
[23:37:44] ChanServ sets mode: +o thebolt
[23:37:58] <thebolt> iceeey: until it is interpreted either by behaviour or by a component
[23:38:44] <iceeey> well pk is saying he wants entity templates themselves to be stored as data
[23:39:10] <PK> well, it really is just a list of what you need? like a recepie? no?
[23:39:19] <iceeey> (whatever that means.. we barely talked about this "data" thing anyway :)
[23:39:50] <thebolt> PK: well, storing it as text/binary blob requires you to parse it.. parsing is no good :)
[23:39:57] <thebolt> if you can avoid it :)
[23:41:07] <PK> so you suggest what? hardcode as c++?
[23:41:08] <iceeey> except it makes it difficult to "hand-edit"
[23:41:20] <iceeey> if you don't store it like that
[23:41:21] <thebolt> PK: no
[23:41:31] <PK> hardcode as python?
[23:41:40] <thebolt> well, if you call that hardcode ;)
[23:41:43] <PK> so... and the python runtime does what with python files exactly?
[23:41:51] <PK> it doesn't... parse them, right?
[23:42:15] <thebolt> okay, let me change that "parsing is no good" to "doing parsing yourself is no good if you can avoid it" ;)
[23:42:25] <PK> :-P
[23:42:40] <thebolt> python would also let you cache already parsed code etc ;)
[23:42:58] <iceeey> hm, not bad
[23:43:39] <PK> and cached code isn't being stored in a file and ... eh, parsed?
[23:43:51] <PK> otherwise I was about to say... let's convert all data files to c++ files so we can 'execute' the data rather than read it :-P
[23:44:04] <thebolt> well, now you are just stupid:P
[23:44:42] <thebolt> the difference in both complexity for us and runtime taken to execute pre-parsed python code (ie byte-code) is way less than parsing a text format and then "executing" the actions it gives
[23:45:19] <thebolt> and doing it as c++ code requires a compilation step + linking + loading (and is hard on reloading)
[23:46:08] <iceeey> can python serialize its own code?
[23:46:28] <PK> the part with the ':-P' was meant a as a joke... just to point it out... it seems not always obvious when I mean something as a joke to others... although I always flag such with a ":-P" :)
[23:46:38] <thebolt> iceeey: yes
[23:46:47] <thebolt> iceeey: compiled code is a PyObject which can be pickled
[23:46:59] <iceeey> how pretty does it look?
[23:47:08] <iceeey> say if you want to edit some part manually
[23:47:17] <thebolt> after it is compiled you cannot edit it
[23:47:20] <thebolt> before you can :)
[23:47:32] <iceeey> yes, but I'm assuming compilation is transparent
[23:48:02] <iceeey> and i mean, before runtime
[23:48:53] <iceeey> or well, is it even necessary for hand-tweaks to templates?
[23:49:26] <iceeey> with them being in python you could pretty much do anything, but we only want to allow certain things
[23:51:44] <PK> one question is also, what can you access and what not? have you access to all c++ functions, classes, memory? or do you need to use an exported API?
[23:52:10] <thebolt> in python you never have access to stuff not explicitly exported to it
[23:52:12] <iceeey> PK, for behaviors, exported api, e.g. operations on components
[23:53:43] <PK> so you cannot do "pretty much do anything"... if you can in fact do pritty much nothing if you don't have the required access to the needed functions.
[23:54:28] <PK> so for example, if I don't have access to the entity's positions, I cannot check the distances between them.
[23:54:45] <iceeey> that's not what i meant.. more like execute code rather than 'declare' an entity template
[23:55:31] <iceeey> PK, all of that will be provided through components
[23:56:31] <thebolt> PK: what i mean is that you don't _directly_ have access to stuff that isn't exported to python (and you thereby gets access to)
[23:56:32] <PK> although the declaration might be cleaner for the templates imho, or do templates require flowcontrol?
[23:56:44] <PK> thebolt: yes, I got that... :)
[23:56:59] <thebolt> so you cannot write directly into the memory of the property class, but you can call functions on it ;)
[23:57:32] <PK> thebolt: I was meant to say that if you think that you won't need something at c++ compile time, then even the nicest of your python can't help you if you didn't export the required functions for that.
[23:57:51] <thebolt> of course
[23:58:19] <iceeey> PK, good question
[23:58:36] <iceeey> it was my opinion that templates shouldn't have flow control
[23:58:49] <iceeey> can you think of a case for it?
[23:58:52] <thebolt> i think the main advantage with using python (classes) for entity (template) definitions was that. .1. they already implement inheritance
[23:59:19] <thebolt> 2. you get automatic creation of parameter objects, component objects etc
[23:59:35] <thebolt> 3. you directly get an object to which the behaviour is attached
[23:59:43] <PK> iceeey: maybe if you want some 'evil nemessis' template that automatically greates a worthy, evil oposite of a player?