IRCMeeting/20100201

Revision as of 22:34, 1 February 2010 by Clonk-Karl (talk | contribs) (Provide summary for today's meeting)

Summary

  • ck: Various mesh work (fix display bus, lighting, added animations for attached meshes)
  • Maikel: Finished Parkour goal, Team support needs testing
    • Is working on Melee and a common relaunch/scoreboard rule
    • Distinction goal/rule is weak, unification might make sense
  • Mimmo_O: Works on visually enhancing Parkour checkpoints
  • PeterW: Has some thoughts on general OC gameplay, will eventually be disucussed in forums
  • Zapper: Is going to reorganize the idea for his close combat system
    • Goal is to keep it as flexible as possible so weapons don't only differ in frequency or damage
  • Newton: Integrated Blog and Documentation into oc.org, will start on Gamepad controls next.
  • Nightly builds and development snapshots
    • Windows engine can be cross-compiled, interface to upload builds on openclonk.org required
    • See also in the forums. B_E to write a script for this(?)
  • It is unclear how C4IDs shall be accessed from script
    • Should avoid conflicts, not clash with other identifiers and not be too long to type
    • Peter to start a discussion/poll soon in the forums

Full Log

19:11:12-!- Guenther [~guenther@euirc-c8e98cb1.dip.t-dialin.net] has joined #openclonk-dev
19:11:13-!- mode/#openclonk-dev [+ao Guenther Guenther] by ChanServ
19:11:13<!ck> ok so let's get starting, shall we? Does anybody want to discuss something beyond the obligatory status updates?
19:11:14<!PeterW> Hm, do we have some sort of developer list somewhere?
19:11:20< loriel> Hi, Guenther :)
19:11:28<!Mimmo_O> we do
19:11:31<!Sven2> I'm here...gtg soon tho
19:12:06<!PeterW> Where? :)
19:12:17<!Maikel> no @ck do you lead it today?
19:12:17<!Guenther> hello.
19:12:25<!Mimmo_O> but i cant find it
19:12:43<!PeterW> Well, I could use the list from the forum.
19:13:11< Ape> PeterW: /names #openclonk-dev and look for !
19:13:25<!ck> (I might want to discuss potential nightly builds)
19:13:28<!ck> Maikel: No idea. Can do.
19:13:32<!PeterW> Well, feel free.
19:13:46<!PeterW> You are first on the alphabetical list :)
19:14:13<!Maikel> /nick A
19:14:16<!ck> Let's go reverse so that Sven2 gets his turn before he leaves ;)
19:14:19-!- Irssi: #openclonk-dev: Total of 28 nicks [3 ops, 0 halfops, 1 voices, 24 normal]
19:14:29<!ck> So Zapper is first
19:14:31<!PeterW> How much time do you have? @ Sven2
19:14:49<!Sven2> Don't know. Could leave any moment from now.
19:14:50<!Zapper> Oh
19:15:07<!Sven2> Anyway, I don't have much to tell. Fixed a few engine bugs, including the much/dreaded crash-at-game-end
19:15:12<!PeterW> I'd say Sven simple reports first and we continue with the list from there.
19:15:15<!Zapper> Okay. I didn't have much time last week. I have to change the weapon system around a bit and didnt really start there
19:15:30<!PeterW> Heh
19:15:46<!PeterW> <- moderator, by Maikel, so please do as I say ;)
19:16:01<!Sven2> Gone now, have fun!
19:16:02<!Zapper> I read the red highlighted line and started typing :<
19:16:22<!ck> ok. cya Sven
19:17:06<!PeterW> No questions to Sven? ;)
19:17:29<!PeterW> Then okay, let's continue with ck.
19:17:59<!ck> I did some more work on mesh rendering
19:18:12<!ck> as you probably noticed the ugly display bugs are gone :)
19:18:42<!ck> And I added the possibility to animate attached meshes, the bow is currently a nice example for that
19:19:11<!ck> Ah, and the lighting has been somewhat fixed
19:19:52<!PeterW> What's changed with the lighting?
19:20:12<!ck> The position of the light source
19:20:34<!ck> I think it was in positive X direction in front of the Clonk before, instead of "out of the screen"
19:21:17<!ck> And then I cross-compiled the Windows engine from Linux (this went surprisingly smoothly), which could be used for automatic nightly builds
19:21:27<!PeterW> Hm, the lighting now uses true dynamic lights? :)
19:21:35<!PeterW> Didn't notice that.
19:21:45<!ck> Yes, it did from the beginning
19:21:57<!ck> It's just that the light source is always at the same position relative to the object currently
19:22:36<!ck> I'm not sure whether it should stay like that... maybe worth another discussion ;)
19:22:55<!PeterW> Hm, how did matthes build the Windows engine anyway?
19:23:06<!ck> I think he used MSVC7
19:23:08<!PeterW> Did he have some kind of virtual machine setup...?
19:23:31<!PeterW> Yeah, but he somehow also did it in the server, or am I wrong?
19:24:09<!Guenther> No, he didn't
19:24:13<!PeterW> The compiler might even work with Wine...
19:24:13<!ck> Hm, not sure. We had cross-compiled 64 bit linux builds on zeri IIRC, but I am not sure wrt the windows ones
19:24:43<!PeterW> So I just missed him uploading the binaries by hand? @ Guenther
19:24:57<!Guenther> Probably.
19:25:06<!Guenther> He even mentioned the machine names in the SVN logs
19:25:59<!PeterW> Hm, okay. So no help there.
19:25:59<!Guenther> Only the Linux binaries were compiled on the Server, mostly because matthes didn't use a Linux desktop/laptop machine regularly
19:26:17<!PeterW> And cross-complied the Mac one?
19:26:18<!Guenther> Crosscompiling with mingw32 to windows isn't _that_ bad ;-)
19:26:35<!Guenther> No, he simply used a mac laptop for that, iirc
19:27:13<!PeterW> Ah well, 10 minutes are up.
19:27:34-!- Irssi: #openclonk-dev: Total of 28 nicks [3 ops, 0 halfops, 1 voices, 24 normal]
19:27:40<!PeterW> Next up: Günther :)
19:27:42<!Zapper> I could compile the mac version too if there is a need for that. But we have others with a mac as well, or nto?
19:27:43<!Mimmo_O> PeterW: you dont have to follow my pattern with the 10 minutes
19:27:49 * Guenther has nothing
19:28:08<!PeterW> I don't think it's neccessarily a bad rule to follow.
19:28:10-!- stevi is now known as stevi`off
19:28:18<!PeterW> Before we get too much into details.
19:28:32<!PeterW> Okay, Isilkor?
19:28:59<!Guenther> I spent my hacking time improving a Final Fantasy 8 wrapper which allows one to play that old game in a high resolution. Learnt more about D3D6 than I ever wanted to know.
19:29:01<!PeterW> Hm, he didn't report, so he might not be here?
19:29:26<!Maikel> Indeed, Idle: 2hrs 9mins 1sec
19:29:35<!PeterW> You mean like for an PS emulator?
19:29:43<!Guenther> No, the PC version.
19:30:06<!PeterW> If you learn some shaders along the way it might actually turn out to be of some use ;)
19:30:14<!PeterW> (okay, D3D6, I know, but still.)
19:30:41<!PeterW> I'm still convinced that we should try to solve the landscape zooming problem this way.
19:31:03<!PeterW> Okay, moving the the next developer: Maikel
19:31:05<!Guenther> Nope, D3D6 was way before shaders. Sad, too, because I'd have liked to use shaders to replace the color key transparency. And emulating D3D6 on top of newer D3D is way too much work.
19:31:24<!Guenther> Yeah, improving the landscape shader would be very worthwhile
19:32:08<!PeterW> Maikel, you there? :)
19:32:14<!Maikel> I finished the Parkour goal apart from some minor stuff, Team support might still be a little buggy since that's hard to test, if anyone has some feedback on that pls tell me
19:32:15<!Maikel> yes
19:32:19<!PeterW> Ah, okay
19:32:29<!PeterW> IRC needs typing notifications, sorry.
19:33:00<!Maikel> Furthermore I started on MicroMelee-based rule, which allows for relaunches and a scoreboard, etc.
19:33:56<!Maikel> So that basically any scenario for out first release can be without scenario scripts, do we even want this?
19:34:03<!Maikel> out=our
19:34:47<!PeterW> You mean, you configure everything by placing objects?
19:35:11<!Maikel> Just a rule and some scenario callbacks
19:35:13<!ck> Might be good to have relaunches/scoreboard at a common place as they are used in many scenarios
19:35:29<!PeterW> Scenario callbacks need scripts, don't they?
19:35:56<!Maikel> It is in the rule, you just specify the number of relaunches with func Relaunches {return 3;} in the scenario
19:36:19<!Maikel> Scoreboard is also done inside that rule.
19:36:45<!PeterW> That's been considered good style for quite some time, hasn't it?
19:36:47<!Zapper> Would be good to combine different rules that use the scoreboard
19:37:08<!Zapper> So the rules must not use fixed columns
19:37:09<!ck> hm, that's a goal, not a rule, isn't it? :o
19:37:30<!Maikel> Melee is the goal
19:37:54<!Maikel> It is a bit odd if you would have a second goal that just allows relaunches
19:38:02<!Guenther> The relationship between rules and goals is kind of awkward
19:38:19<!ck> ah, OK
19:38:21< Ape> We could call all of the rules
19:38:30<!PeterW> Isn't a goal just a rule that might end the round...?
19:38:35<!ck> Well, I do think there is a clear distinction...
19:38:54<!Maikel> Zapper, you mean that different rules have different scoreboard columns?
19:38:58<!Guenther> And then there are rules which also do that.
19:39:08<!Zapper> Maikel, if they are activated, yes
19:39:10<!Guenther> Kill-the-captain etc.
19:39:10<!Maikel> Like one for deaths one for relaunches, one for score
19:39:27<!ck> Kill-the-captain does not end the round, it eliminates one player
19:39:32<!Zapper> Well, one rule that shows kills/deaths in the scoreboard would care for that
19:39:41<!ck> So maybe Goals are win conditions and (some) rules are lose conditions
19:39:50<!Zapper> but the rules would have to say "i need a free column!!" and some global function would have to care for that
19:39:50<!PeterW> ... which might make the Melee goal (!) end the round.
19:39:52<!Guenther> Which ends the round for the player, and also defines the goal for the other players
19:40:18<!Maikel> That brings me to another point, I'd like to pass the killer to RelaunchPlayer
19:40:24<!PeterW> But yeah, it might be confusing to put it that way :)
19:40:28<!Guenther> So there's a technical difference, but it's hair-splitting and confusing for the player
19:41:31<!PeterW> Hm, concerning the columns:
19:41:40<!Guenther> And having "left one alive wins" + "who loses the captain loses" instead of "you have to kill the other player's captains" is unnecessarily complicated
19:41:55<!PeterW> Isn't there already some kind of system where you use IDs as column identifiers?
19:42:01<!Maikel> Yes there is
19:42:31<!PeterW> It's a pity Sven isn't here, I never really understood how it was supposed to be used :)
19:42:48<!PeterW> Especially when a rule needs, say, more than one column
19:42:52-!- ModernClonker [~mx@euirc-872761ac.dip0.t-ipconnect.de] has quit [Client exited]
19:43:24<!PeterW> Plus there is little standardization concerning rows, as far as I know?
19:43:25<!Maikel> I don't get the point either, And how would the colums be sorted? Rules are called kind of at random
19:43:37-!- ModernClonker [~mx@euirc-872761ac.dip0.t-ipconnect.de] has joined #openclonk-dev
19:43:47<!Maikel> So that kills appear sometimes before relaunches and sometimes behind
19:44:56<!PeterW> Well, maybe we might need some kind of new system for that.
19:45:01<!ck> Guess that's hard to solve in general if the rules don't know each other at all
19:45:31<!PeterW> As long as rows are always something like players and teams?
19:46:05<!PeterW> I don't think it's /that/ hard to come up with something that works for most goals or rules.
19:46:12<!Maikel> Well I keep it one object for now, we might differentiate later if scoreboards allow it.
19:46:39<!PeterW> Okay, 10 minutes are up then.
19:46:46<!Maikel> And also for the first release, one kind of melee suffices.
19:47:02<!Maikel> k next
19:47:04<!PeterW> Yep. I'd also really like to hear what Sven has to say.
19:47:11<!PeterW> Next is Mimmo_O
19:47:22<!Mimmo_O> ja, hai
19:47:34<!Mimmo_O> so
19:47:40<!Mimmo_O> i did nothing special
19:47:57<!Mimmo_O> i wrote a blog entry, for the 30.01.2010 release
19:48:06<!Mimmo_O> if someone reads the blog but dont have a look to the forums
19:48:37<!Mimmo_O> in addition, im just upgrading the checkpoints from maikel (graphical)
19:49:22<!Mimmo_O> so nithing special
19:49:41<!PeterW> Can we really call that "release"? ;) @ build
19:49:53<!Mimmo_O> oh, and i found an assertion error
19:50:07<!Maikel> No we shouldn't call that releases, Imo
19:50:10<!ck> Maybe you should say that you are on it in the forums so that Work is not duplicated.
19:50:14<!Mimmo_O> it occurs, when you use foo+=x; instead of foo=foo+x;
19:50:15<!ck> What defines a release? :P
19:50:20< Ape> PeterW: It might not be an official release, but still a release
19:50:27<!Maikel> Something stable
19:50:30<!Mimmo_O> ( i think that this causes it)
19:51:58<!PeterW> Well, at least something we actively "release"?
19:52:16<!Mimmo_O> i showed the blog to two people i know...!
19:52:18<!PeterW> In contrast to, say, one developer uploading a binary of some arbitrary revision somewhere.
19:52:22<!Mimmo_O> one even downloaded it!1
19:52:35<!ck> ok so it's a release once we declare it as such :)
19:52:42<!Mimmo_O> okay
19:52:52<!Mimmo_O> will we have periodic releases?
19:52:52<!PeterW> Yeah, you could say that. Mimmo_O didn't use the term in the blog posting.
19:53:01<!PeterW> But I was briefly confused :)
19:53:13<!ck> Mimmo_O: Let's discuss that after the status updates
19:53:32<!Mimmo_O> ok
19:53:38<!PeterW> We will be done shortly anyway.
19:53:47-!- stevi`off is now known as stevi
19:54:02<!PeterW> As I was lazy again and haven't done anything.
19:54:28-!- Irssi: #openclonk-dev: Total of 28 nicks [3 ops, 0 halfops, 1 voices, 24 normal]
19:54:37<!PeterW> Besides some theoretical thoughts on how OC should /not/ work that might culminate in some forum postings eventually.
19:55:03<!PeterW> So if I'm not mistaken, the last available person on the list is Zapper.
19:55:04-!- Mortimer [~Mortimer@euirc-e18df716.extern.uni-duisburg-essen.de] has joined #openclonk-dev
19:55:20<!Zapper> Okay, I already said what I did, let me strg+f for it :)
19:55:35<!ck> you mean that in a "political" way? How development is structured in the long term, how "open" we actually are etc.?
19:55:35<!Zapper> [19:15:52] <Zapper> Okay. I didn't have much time last week. I have to change the weapon system around a bit and didnt really start there
19:55:40<!Zapper> So I have still stuff to do
19:55:47<!Zapper> And nothing interesting happened last week
19:56:29<!ck> as a result of the discussion with newton?
19:56:37<!PeterW> (No, I have no hope to reach consensus on that one anyway. I meant gameplay-wise :) )
19:57:08<!Maikel> How would you like to see it in a "political" way?
19:57:18-!- ShadoOw [~ShadoOw@euirc-bdf8d76a.dip.t-dialin.net] has joined #openclonk-dev
19:57:41<!PeterW> Let's not go into that right now. It's Zapper's report time right now :)
19:57:44<!Zapper> ck, yes, basically
19:57:49<!Sven2> PeterW: Scoreboard roaws are player info IDs or Team IDs
19:57:56<!Zapper> I will change the weapon "system" to be more open
19:58:10<!Sven2> Scoreboard coloumns are IDs converted to int (ScoreboardCol was a CastInt), which now no longer works
19:58:25<!Sven2> You usually used the ID of the rule, so you wouldnt have conflicts
19:58:28-!- Matthi [~a@clonk-center.de] has quit [Connection reset by peer]
19:58:32<!Zapper> Just deliver a set of functions that the weapons have a common feeling for the player and leave the rest to the weapons
19:58:36<!Sven2> (Leaving for movies again)
19:58:44<!Zapper> so that the weapons are not just different names with different strengths
19:59:47<!PeterW> Yeah mean the whole blunt/slice/stab thing we discussed last time?
20:00:14<!Zapper> The damage types are something different
20:00:27<!Zapper> The behavior and effects of the weapons can be completely different
20:00:39<!Zapper> And an example newton mentioned the mario-hammer and some kind of baseball bat
20:00:39< ShadoOw> ack.
20:00:40< ShadoOw> btw.
20:00:45<!PeterW> ... while still having a commong feeling? ;)
20:00:51<!Zapper> Sure!
20:01:18<!Zapper> That will mostly be about the way the use of weapons affect the movement
20:01:20<!PeterW> Which, I guess, means how you control it?
20:01:40<!Zapper> Partly :)
20:01:47<!PeterW> What's the other part?
20:02:08<!Zapper> The behavior of the change of velocity when you hit and enemy (at both you and your enemy)
20:02:12<!Zapper> for example
20:02:16<!Zapper> And an easier interface
20:03:32<!PeterW> The bow has blowback now? ;)
20:03:48<!ck> oh, it has? I didn't notice :o
20:04:13<!PeterW> Don't know, I'm just thinking about what "change of velocity" means in this case.
20:04:37<!PeterW> For larger weapons than the bow it might actually make sense.
20:04:41<!Zapper> Not the bow. Rather the sword
20:04:50<!Zapper> It's still a melee combat system
20:05:11<!PeterW> Hm, this is so you can't stand still and keep hacking?
20:05:22-!- Newton [~Miranda@euirc-a8df1436.adsl.alicedsl.de] has joined #openclonk-dev
20:05:25-!- mode/#openclonk-dev [+ao Newton Newton] by ChanServ
20:05:36<!ck> It's basically a change of the opponents velocity I guess?
20:05:44<!Newton> hi
20:05:44<!ck> hi Newton 
20:05:45<!PeterW> Ah, a second late visitor.
20:06:10<!PeterW> Zapper's currently reporting about weapons.
20:06:23<!Newton> PeterW but I announced that I won't be there for the meeting :P
20:06:25<!Mimmo_O> Newton!
20:06:26<!Newton> ok
20:06:41<!Zapper> <PeterW> Hm, this is so you can't stand still and keep hacking? <- for example
20:06:55<!ck> Newton: Will you still join us now, though? :)
20:07:05<!Zapper> But as I said I have to change things there. And I don't know yet how it will work out actually :)
20:07:48<!Newton> ck: yes
20:08:01<!PeterW> Well, okay. 10 minutes kind of up.
20:08:22<!PeterW> If there's nothing else, it's a chance for the late visitors. First Mortimer, as he came first.
20:08:52<!PeterW> Or isn't he a developer?
20:09:21<!ck> If he has something interesting to contribute I don't mind whether he is developer or not
20:09:26<!Newton> no, but if he has something to say...
20:09:29<!Maikel> He should become one, foot -> ass.
20:09:47<!PeterW> Well, he hasn't said anything yet.
20:10:02<!ck> (same for others here of course)
20:10:03-!- Irssi: #openclonk-dev: Total of 30 nicks [4 ops, 0 halfops, 1 voices, 25 normal]
20:10:03<!PeterW> Well
20:10:40<!PeterW> Yeah, of course, but I know him as developer of C4DT and just realized it doesn't mean he actively participates in OC :)
20:11:06<!PeterW> Well, okay, then let's continue with Newton.
20:11:50<!Guenther> Hm, I just noticed that we now effectively have two string interning facilities in the engine: C4String and C4ID. Both work totally different internally, but do essentially the same thing...
20:11:56<!Newton> hmm, I already said everything here: http://forum.openclonk.org/topic_show.pl?pid=5730#pid5730
20:12:15<!Guenther> Wasn't Mortimer the one doing feature development for the Mac port lately? ;-)
20:12:58<!PeterW> Well, aynthing special you would like to discuss here? @ Newton
20:13:39<!Newton> no, the thing about periodic releases already started in the forum
20:13:43<!Newton> I mean the discussion
20:13:54<!PeterW> We already had some minor point previously that we might not want to call single binaries "releases"
20:13:59<!Newton> the stuff with the gamepads I'll discuss with Sven2
20:14:10<!Newton> well, builds then
20:14:22<!Guenther> C4String uses pointers, C4ID uses numbered handles. C4String uses a hash table, C4ID std::map. C4String has refcounting, C4ID hasn't.
20:14:30<!Guenther> [x] snapshots
20:14:47<!Zapper> snapshot builds!
20:14:50<!Newton> I don't know the correct term so I leave it to you
20:14:56<!PeterW> Imo that's more appropriate a term when we, say, agree on some revision or branch - so we can really say that we released it as a team.
20:15:01<!Mimmo_O> i think ill make some screenshot and write a blog entry tothem soon
20:15:14<!ck> Actually both "nightly builds" and "development snapshots" are familiar to me
20:15:20<!PeterW> Let's push that back to the discussion phase @ Guenther
20:15:23<!Zapper> "release" is more "hey we have something interesting to show to you" or "everything works now!!"
20:16:22<!PeterW> Real snapshots might have to include more than a binary.
20:16:38<!Newton> to not include the other stuff is not planned?
20:16:39<!ck> OK, that's one of the points I wanted opinions about
20:16:51<!PeterW> Actually, we don't have a proper concept on how binary distributions might look like, do we?
20:16:54<!ck> Do we want to release only binaries or something which fully works out-of-the-box?
20:17:01<!ck> -release+snapshot .
20:17:11<!Zapper> Both
20:17:17<!Zapper> builds on a regular basis
20:17:19<!Newton> [x] fully works out of the box. I mean this is the whole point about having these
20:17:26<!Zapper> and out-of-the-box every few weeks or so
20:17:29<!PeterW> Might become a lot of date very quickly.
20:17:32<!ck> (that is, the binary, the DLLs, and planet/ basically I think)
20:17:33<!PeterW> *data
20:17:33<!Zapper> (builds for the obejct scripters)
20:17:39<!Zapper> and the ootb thing for the players
20:17:44<!ck> Newton: I tend to agree
20:17:56<!Zapper> But the scripters need something regularly
20:17:57<!Newton> all together it is about 13 MB currently
20:18:25<!ck> We don't need to archive every day's snapshot of course
20:18:44<!Newton> there is no need in archiving anything, I think
20:18:56<!PeterW> Well, CR was about 100 MB, if I remember correctly. But well, we don't have those problems yet, yes :)
20:18:58<!Newton> why would people not want to have the newest snapshot?
20:19:11<!Zapper> even IF they want. They can get the repository and use that
20:19:13<!PeterW> Do check when a certain bug was introduced?
20:19:25<!Zapper> Someone who checks for bugs can compile the engine himself
20:19:33<!ck> because it has a serious bug? Because the other with whom I want to play over network has an older version
20:19:41<!Guenther> not necessarily.
20:19:53< Ape> Well I could host a mirror / archive unofficially
20:19:59<!PeterW> Or to side-step a critical bug in a current release.
20:20:00<!ck> PeterW: That can be done with hg I think
20:20:09<!ck> Yeah that's more what I had in mind
20:20:18<!Guenther> When we get to some stability, and start regressing, it can be helpful to know when we regressed, even if only down to a certain snapshot date
20:20:25<!Newton> I see these nightly builds more as some simplification for _content_ developers, not engine developers. Those don't primarily want to hunt for bugs. They want to develop content.
20:20:42<!PeterW> Plus from the developer's perspective - it's /very/ useful to have complete releases from past dates.
20:21:09<!Guenther> Content developers are the ones noticing a lot of the engine bugs...
20:21:17<!PeterW> It's not that trivial to do the hg update / clean / compile / pack routine x times just to pinpoint a moment in time.
20:21:33<!ck> ok but what's different between checking out the corresponding version from which the snapshot was built and the snapshot itself?
20:21:54<!Newton> true...@noticing engine bugs
20:22:03-!- ModernClonker [~mx@euirc-872761ac.dip0.t-ipconnect.de] has quit [Ping timeout]
20:22:04<!PeterW> Another use could be playing old records, last but not least.
20:22:19<!ck> Newton: How much space do we have available on openclonk.org btw?
20:22:29<!Guenther> Doesn't hg have a bisect function by now? Writing a script which automates the clean/compile/run cycle isn't that difficult
20:22:41<!ck> Yes, there is hg bisect
20:22:55<!Guenther> More annoying are those times where the engine doesn't build for your particular combination of OS and options
20:23:31<!ck> which raises the question what do we do if the nightly build fails? Upload a build log instead?
20:23:31<!Newton> I think 1GB
20:23:40<!Newton> we are currently using 200MB or something
20:23:47<!Guenther> Anyway, we could simply store snapshots until we run out of space
20:24:41<!Guenther> and then somebody could archive them on their desktop or something, and help a fellow developer out if he needs one
20:25:08<!Zapper> the engine is not very big. So if only the engine is archived the most annoying part of spotting bugs is done
20:25:17<!Zapper> updating planet doesnt take a lot of time
20:25:41<!Zapper> So we wouldn't have to store the whole snapshot but only the binaries
20:25:51-!- ModernClonker [~mx@euirc-872761ac.dip0.t-ipconnect.de] has joined #openclonk-dev
20:25:57<!Zapper> (if the reason for storing it is spotting bugs easier)
20:26:03<!Guenther> And with the hg id stored, you can even be sure that you get the exact same binary data (ok, except for win32text or such...)
20:26:24<!PeterW> ... which would suggest having both nightly builds (engine) and snapshots - the latter using something like a weekly turnus.
20:26:46<!PeterW> But well
20:27:07<!PeterW> Do we even have someone that feels responsible / motivated to make snapshots work?
20:27:24<!ck> Yes, I'll get on it.
20:28:05<!PeterW> Great.
20:28:22<!ck> Judging from B_E's post in the forums he might be interested in doing the the scripting on oc.org, but I can also do that if necessary
20:29:37<!ck> Newton: Are you the only one who can upload to openclonk.org currently?
20:29:57<!Newton> Clonkonaut has access too
20:30:21<!ck> OK
20:31:09<!Newton> ah, by the way
20:31:13<!Newton> documentation
20:31:27<!Newton> Günther, can you give me some advice?
20:31:46<!Newton> regarding the stuff that I posted in Klatch?
20:32:03<!Guenther> documentation is good, if it does not take too much time away from other stuff.
20:32:04<!Guenther> ;-)
20:33:25<!Mimmo_O> brb getting some food
20:34:04<!Newton> erm
20:34:15<!ck> oh, one more thing: Automatically built Windows engines are enough for now, right?
20:34:23<!Guenther> uh, an s/\.php/\.html/g doesn't work?
20:34:25<!Newton> I mean this: http://forum.openclonk.org/topic_show.pl?tid=343
20:34:42<!PeterW> What do you mean by "automatically"? @ ck
20:34:43<!Newton> ck: ack
20:34:53<!ck> PeterW: the snapshot ones
20:35:13<!PeterW> I'd be great to have some, if that's what you mean
20:35:35<!PeterW> I don't think I will stop compiling them myself, though.
20:35:41<!Newton> Günther: I have no clue bout perl. And of regex neither :/
20:35:52<!ck> I mean: Is it enough if we provide them for Windows (as a start) or do we also want Linux/MacOSX?
20:35:58-!- Icewing [~Icewing@euirc-9359146c.pool.mediaWays.net] has joined #openclonk-dev
20:36:11<!ck> Newton: Hey, I posted the complete command line to do that substitution :)
20:36:14<!PeterW> Oh, sorry.
20:36:33<!PeterW> Well, I guess we'll see if there are complains.
20:36:36<!Guenther> Well, but you _can_ do search&replace. I'd have to read the code more thoroughly for a more helpful answer.
20:36:51<!Newton> hrmyes
20:36:53<!Newton> i could
20:37:11<!Newton> but I'd need to do that every time I recompile the docs
20:37:29<!Guenther> oh, er, wait. do you want to replace .html with .php?
20:37:32<!ck> Hm, it should be easy to add it to the Makefile, no?
20:37:43<!Guenther> I meant in the perl file, obviously
20:38:08<!Newton> ck: well, erm I don't know so much about makefiles either... ;-)
20:38:19<!Newton> yes@Günther
20:38:43<!Guenther> yeah, there's the webnotes option for that.
20:39:02<!ck> Newton: Well, then write a script which contains a single line "make && substitute html by php" and run this instead of make :)
20:39:07< Mortimer> yay, i missed the conversation \o/
20:39:38<!Guenther> Newton: how do you build the docs at the moment?
20:39:44<!Newton> make
20:41:13<!Guenther> I'll come back to you.
20:41:55<!PeterW> Mortimer: Anything to report?
20:42:13-!- Gurkenglas [~Gurkengla@euirc-956afde3.pools.arcor-ip.net] has joined #openclonk-dev
20:42:16-!- Irssi: #openclonk-dev: Total of 32 nicks [4 ops, 0 halfops, 1 voices, 27 normal]
20:42:46< Mortimer> well, i wrote some eclipse support for the debug branch
20:43:08< Mortimer> and that might be useful for developing/debugging future scripts
20:43:13< Mortimer> ..or not
20:43:21<!PeterW> Oh yeah, plus some patches for the debug branch, if I remember correctly?
20:43:40< Mortimer> I merged it with the default branch
20:43:42<!ck> hm what is actually missing from the debug branch which prevents it from being merged btw?
20:44:11< Mortimer> dunno... I could be pulled perhaps?
20:44:13<!PeterW> Well, the finished debug functionality, actually. Though Mortimer might fix that one ;)
20:44:15< Mortimer> it
20:44:36<!ck> Mortimer: So there is nothing missing, everything works?
20:44:40< Mortimer> I ised STL :p
20:44:43< Mortimer> as I understood, big no no
20:44:50<!PeterW> In my branch, yes :P
20:45:03<!ck> ok so let's merge it then it's no longer in your branch :P
20:45:10<!PeterW> :'(
20:45:34<!PeterW> I do still think it makes sense style-wise to keep STL usage down.
20:45:41-!- Matthi [~a@clonk-center.de] has joined #openclonk-dev
20:45:46< loriel> Huh.
20:45:57< Mortimer> okay.. then someone fix it :p
20:46:03<!Newton> Clonk does not use STL? Since when?
20:46:17<!ck> It does in the meanwhile, at certain places
20:46:38<!Guenther> Clonk has always used the STL. Always.
20:46:38<!ck> Though I do think most classes don't use STL stuff in their public interface
20:46:39<!Newton> why would someone not want to use STL?
20:47:02<!PeterW> Well, I think it's good if you need some quick don't-care-type container
20:47:03< Mortimer> be right back..
20:47:10-!- Mortimer [~Mortimer@euirc-e18df716.extern.uni-duisburg-essen.de] has quit [Quit: Arr]
20:47:10< loriel> Generic code tends to lead to large binaries, I guess
20:47:31< loriel> Some implementations have unintuitive performance penalties and/or make debugging harder
20:47:40<!Guenther> Newton: Okay, so it's not simply a bug of some sort, but a real missing feature we fixed for clonk.de by having the files end with .html even though they're php inside.
20:47:40<!Newton> and faster, more bug- and obstacle free programming
20:47:41< loriel> Guy at EA wrote a paper about it
20:47:43-!- Mortimer_ [~chatzilla@euirc-552d386a.extern.uni-duisburg-essen.de] has joined #openclonk-dev
20:47:55<!Guenther> Do we want to keep the chm?
20:48:04<!Newton> thats the question
20:48:10<!PeterW> But once you have the container at more central places - like say, the central object list - I feel that the abstraction doesn't really do much good.
20:48:19<!Newton> how would offline-docs look like without a CHM?
20:48:35<!PeterW> Plus the Clonk source doesn't use it very often, and I'm always striving to keep the style somewhat pure :)
20:48:46<!ck> Newton: HTML
20:48:58< ModernClonker> Like an folder with an index.html and an subfolder with a lot of HTML-Files
20:49:04<!Newton> you are a library-racist then, arent you Peter!!
20:49:16< loriel> phew
20:49:19<!PeterW> Actually, quite the opposite.
20:49:24<!Newton> only pure, arian libraries!
20:49:32<!Newton> :P
20:49:39<!PeterW> I'm just arguing we should not forget pure C++ has its upsides, too.
20:49:48<!ck> Basically most distributed offline documentation I know is in plain HTML format
20:49:56< loriel> The standard library is part of pure C++ :/
20:50:05<!PeterW> And, say, just replace all data structures by STL equivalents without thinking twice.
20:50:19< loriel> I would not make an argument in favour of actively replacing your data structures with standar-- yeah, not that
20:50:34< loriel> but I think it is not a question of style to use standard library functionality that fits what you are trying to do
20:50:37< loriel> instead of reimplementing it
20:50:48<!ck> yeah, it's about newly written code. I'm happy if I don't need to think about container details if I want to do mesh animation ;)
20:51:33<!PeterW> Well, I'm just kind of prejudiced against STL because I felt I always ended up reimplementing stuff anyway - just in some alien STL dialect instead of C++
20:51:37<!Newton> to be cautious about abstraction applies for all libraries, not only STL
20:52:38< loriel> PeterW: For someone with less than years of familiarity with the clonk code, it does look some alien dialect of C++ too exactly because it does not use the standard libraries :)
20:53:58<!PeterW> Well, I do consider linked lists to be an universally known subject, obviously ;)
20:54:06<!Newton> btw, is boost now part of the c++ standard?
20:54:25< Mortimer_> http://bitbucket.org/mortimer/openclonk/changesets/ <- debug branch ... did a lot of merges lately >_>
20:54:25< loriel> No, but they took some inspiration
20:54:33< loriel> for things like the multithreading interface, smartpointers
20:55:26<!PeterW> Btw: Does Mortimer have repository access?
20:55:30<!Newton> no
20:55:31< Mortimer_> nope
20:55:36<!PeterW> Why not?
20:55:52<!Newton> because he didnt ask Isilkor or Günther to get one yet, I guess ^^
20:56:18<!PeterW> Whoa btw @ merges
20:56:34< Mortimer_> >_> wanted to see the new stuff without leaving the branch..
20:56:35<!PeterW> Well, the he should do that :)
20:56:55< Mortimer_> Guenther: may I have access :o ?
20:57:17< Mortimer_> I promise to spam everything with merge pyramids and other weird commits..
20:57:36<!PeterW> You might want to do some rebasing before commiting those patches.
20:57:53<!Zapper> btw
20:58:11<!Zapper> why does OC use a registry path inside RedWolf Design?
20:58:13< Mortimer_> i'll do that.. when i get home
20:58:26<!ck> While we are it: We might also want to grant Maikel access
20:58:28<!Guenther> Mortimer_: I guess? Iirc, I was in favor before, but others weren't, so if that's changed, great. I'll need your public ssh key.
20:58:51<!Guenther> Zapper: Because nobody thought of changing that yet.
20:59:25-!- Balu [~Balu@euirc-ba3f1be6.pools.arcor-ip.net] has joined #openclonk-dev
21:00:32<!Newton> Maikel has no access?
21:00:41<!Maikel> no
21:00:45<!Newton> oh
21:01:03<!Newton> thats why you never pushed your patch in the bugtracker
21:01:38<!PeterW> Hu? Why are there changesets by Maikel then?
21:01:45<!Maikel> And because I am too stupid to write my own stdadapter
21:02:06<!ck> PeterW: I committed some of his patches
21:02:16<!ck> or rather, pushed ;)
21:02:52<!PeterW> Well, we wanted to be rather liberal with giving people access, if I remember correctly?
21:03:06<!Maikel> As long as the others aren't getting annoyed by pushing 1/2 changesets a week, there is no problem for me
21:03:49<!PeterW> If I'm not mistaken, it should be impossible to really break anything permanently.
21:04:38<!PeterW> Or am I wrong? o_O
21:04:46<!PeterW> > You should have some compelling arguments why you can't just use bitbucket though.
21:05:15<!PeterW> I don't know whether that's a wrong impression, but I don't think using multiple repositories really works that well.
21:05:15< Ape> PeterW: Even if somebody could destroy the repository, you could always replace it with your local one
21:05:19<!Newton> Isilkor wrote that after Clonkonaut pushed some shit that didnt work
21:05:21<!Maikel> because the repos is larger than 150Mb in a few months, hopefully
21:05:27<!PeterW> It makes rebasing awfully complicated, doesn't it?
21:05:35<!Newton> and when Carli wanted access to dunno... implement shaders
21:06:08<!ck> PeterW: I know we had that discussion already, but I still favor merging where it makes sense ;)
21:06:34< Mortimer_> too stupid to obtain my public key from bitbucket.. so i'll provide it when i get home >_>
21:06:45<!PeterW> http://bitbucket.org/mortimer/openclonk/changesets/ <- And that doesn't make you change your opinion?
21:07:12<!PeterW> I don't think we just want to pull that.
21:07:43<!Newton> why not?
21:07:56<!ck> well, I can still rebase locally and push that to hg.oc.org
21:08:09<!PeterW> Because we would import 8 new development branches this way?
21:08:32<!ck> would we?
21:08:58<!PeterW> Well, not actually branches. Development lines (?)
21:08:58< Ape> Cherry picking good commits from bitbucket is a good way to do it
21:09:05<!ck> If they aren't named and they are merged already then we don't even create a new head in our repository?
21:09:25<!ck> But the development lines are "finished" already when they are merged
21:09:26<!Newton> Mimmo: oh, you wrote in the blog
21:09:27-!- alexX_ [~alexX@euirc-2e53fbd4.dip.t-dialin.net] has joined #openclonk-dev
21:09:34<!ck> So I don't see a problem
21:09:38<!Newton> now I really need to check out if highreslandscape is enabled by default
21:09:38<!PeterW> But they will show up in the history.
21:09:45<!Newton> because it does not work for most people
21:09:55<!ck> Yes, but that's completely OK from my pov
21:10:12<!ck> Because this is how the commits actually have been recorded
21:10:21-!- alexX__ [~alexX@euirc-f3ede793.dip.t-dialin.net] has quit [Ping timeout]
21:10:25<!Guenther> I have far more problems with a message like "...."
21:10:43<!PeterW> It's complexity overhead. I don't want to scroll past pages of commits reading "merge"
21:10:45<!Guenther> We should try to prevent that sort of stuff ending up on openclonk.org.
21:11:05<!Newton> TortoiseHG has the option to hide all "merge"-commits
21:11:06<!PeterW> And then wonder which one of the dozens of development lines actually means what.
21:11:24<!PeterW> Yeah, which then makes the second issue worse.
21:11:33<!ck> We could tell people to use more meaningful commit messages then "Merge"
21:11:45<!Newton> hehe
21:11:51<!PeterW> How is that supposed to make things easier? :)
21:12:02<!PeterW> Then you have even more useless information.
21:12:02<!Newton> "why did somebody commit just when I wanted to push!!! ARGH"
21:12:14<!Newton> "merging mesh with default... AGAIN!!!"
21:12:26<!ck> Newton: Now in that case even I'd go with rebase
21:12:28<!ck> (And I normally do)
21:12:31< Mortimer_> i once did that!1
21:12:31<!Newton> "WTF, well here it goes - mergyly dumdidum"
21:12:38<!PeterW> I don't care about merges or how a patch was developed.
21:12:52<!PeterW> I want to know how the patches appeared on the repository.
21:12:58<!ck> It makes it easier to see "which one of the dozens of development lines actually means what."
21:13:03<!ck> I do.
21:13:25<!PeterW> Why? :P
21:13:52<!ck> Because it preserves information like the conditions under which a patch has been developed
21:14:25<!PeterW> Which is very seldom the condition under which the patch is actually approved for release.
21:14:52<!Mimmo_O> Newton: yes i did
21:15:02<!Newton> good
21:15:25<!PeterW> Because while development is a pretty messy task of try-and-error and local developer management, taking it over into the repository is a far more structured process
21:15:44-!- clonkine [~clonkine@euirc-e80d0587.dynamic.qsc.de] has quit [Quit: ]
21:16:16-!- Mortimer_ [~chatzilla@euirc-552d386a.extern.uni-duisburg-essen.de] has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6/20100115144158]]
21:16:38<!PeterW> But we're getting to far into the discussion again.
21:17:08<!PeterW> Guenther wanted to discuss something about strings and C4IDs, if I remember correctly?
21:17:26<!ck> Yeah, but that's not the point IMO@the conditions differ at merge time, since one can merge the other way if one needs to have the same
21:17:45<!ck> I agree on that discussion being somewhat pointless though ;)
21:17:52<!Guenther> Na, I just wanted to accuse Isilkor of NIH and let it be ;-)
21:18:10<!PeterW> So that's done then? ;)
21:18:45<!PeterW> Isilkor seems to be passive anyway.
21:19:07<!PeterW> Anything else that needs discussion?
21:19:16<!Guenther> A better discussion might be the question of how-to-prevent-C4IDs and other identifiers from clashing
21:20:02<!Maikel> We decided to use a namespace Core_
21:20:09<!Guenther> So if we change CLNK to "Clonk" or some such, you suddenly can't have a variable named Clonk anymore, if I read the Code correctly
21:20:15<!Guenther> Ah, good.
21:20:38<!PeterW> Core_ is the namespace for Objects.c4d?
21:21:10<!Guenther> OC_ might have been a little bit shorter, but well.
21:21:25<!Newton> Peter: oh, its still the meeting? ^^
21:21:38< loriel> I was opposed to OC_ because it hardcodes the project name :>
21:21:46<!Maikel> Some people were against OC because of branding
21:21:56<!PeterW> As long as people are discussing - I guess so? :) @ Newton
21:22:06<!Maikel> Regarding IDs we should get rid off the old ones asap
21:22:34<!Newton> but I want Library_ for libraries
21:22:36<!ck> any volunteer for that? :)
21:22:43<!ck> Newton: Didn't we say Core_Library_ even?
21:22:45<!PeterW> Also if we do something like Knights.c4d in future, would we want to call it OC_Knights_?
21:22:54<!Newton> ur :(@Core_libary
21:23:00<!ck> I'd say just Knights_
21:23:11<!Newton> why do we need Namespaces again?
21:23:26<!PeterW> We should call it Core.c4d then, btw.
21:23:42<!ck> Hm, I'm not opposed to that@renaming to Core.c4d
21:24:27<!Newton> I want to note that with OC there will probably just one official main pack
21:24:28<!ck> Newton: But especially for libraries long IDs are not too annoying are they?
21:24:38<!ck> They only need to be given once for a script when including them
21:24:49<!Newton> as classical knight elements and I am sure fantasy elements will go into the main pack
21:25:08<!PeterW> Another thing to think about: calling it "Core" makes it sound like it's really needed for running the game.
21:25:22<!PeterW> Like, say, System.c4g scripts.
21:25:38<!ck> Std anyone? ;)
21:25:41< loriel> We could call it Std_
21:25:42< loriel> hey!
21:25:42< Matthi> st...
21:25:45<!Newton> ck: thats true. But what is the chance of having two Libraries of the same name
21:25:46< Matthi> ok
21:26:23<!Newton> or two Horses
21:26:26<!Newton> two Clonks
21:26:42<!ck> I don't think it's a question of likelihood but rather one of consistency.
21:26:45<!Newton> or is the namespacing about more than just possible name collisions?
21:26:46<!Sven2> *jumps in* I'd like to have it as short as possible
21:27:05<!ck> Plus likelihood 0 is better than likelihood 0+epsilon :)
21:27:18< loriel> Std_, Vanilla_, Default_, Basic_, ... hm :
21:27:19< loriel> :)
21:27:21<!Newton> I mean, it would be pretty neat to just be able to write Bow->GetWidth() ... whatever
21:27:24<!PeterW> Btw, we didn't agree on something like "#use Core"?
21:27:36<!Sven2> Yes, I agree on that @neat
21:27:37<!Newton> whats that
21:27:51< loriel> Like using namespace?
21:27:55<!PeterW> Yes
21:28:07<!Newton> we could also say: he, the core/std pack does not use any namespaces but all others have to!!!
21:28:08<!PeterW> So you can use, say, "Clonk" and it resolves to "Core_Clonk"
21:28:30<!PeterW> Then we don't need to worry about long names anymore.
21:28:47< loriel> Newton: imho, that is mean. :)
21:28:54<!Newton> btw is it _ now? I'd like : or :: better
21:29:04<!PeterW> (It's preferable to doing abbreviations like "Std", imo)
21:29:15< loriel> Newton: I think everything should be in some namespace and then the user can decide what thigns to bring into the global scope, if we end up having #use
21:29:16<!Guenther> The train about branding has left the station a long time ago with all the C4* stuff...
21:29:39<!Newton> [ ] C4
21:29:42<!Newton> [ ] Std
21:29:45<!Newton> [ ] Core
21:29:46< loriel> Newton: I was in favour of _ because it would parse as a regular identifier right now, I did not think people would take the C++ namespace analogy that far
21:29:53<!Newton> [ ] nix
21:30:01< loriel> I would be all for :: if there is an equivalent of using namespace
21:30:09<!PeterW> [ ] #use?
21:30:23<!Newton> that would be an addition, no?@peter
21:30:45<!PeterW> Well, it would influence my vote.
21:31:10<!Guenther> Well, if C4Script had proper scoping, we might get away with not using name-prefixes
21:31:11<!ck> I think we'll end up with #use in one form or the other
21:31:12<!Sven2> He, C4 would be cool
21:31:12<!Sven2> C4Clonk!
21:31:13<!PeterW> I'm slightly against "::" because it's two characters... ;)
21:31:29< loriel> But if you use :, the ? : operator will be harder to parse!
21:31:47<!ck> What about .?
21:31:54<!Sven2> On that topic...what happened to the idea of replacing "->" with "."?
21:31:54<!Newton> there is no ? : operator, loriel
21:32:04<!PeterW> Don't we want to use that in place of "->"? @ ck
21:32:06< loriel> Newton: Well, there is no :: operator right now either
21:32:12< Matthi> [x] Core
21:32:12< Matthi> [x] #use
21:32:12< Matthi> [x] ::
21:32:23<!Sven2> I'm with Matthi here
21:32:26<!Newton> ack
21:32:31<!PeterW> ack. But "_".
21:32:47< loriel> How about \?
21:32:49<!ck> PeterW: Well, I prefer ->
21:33:01<!Guenther> #use just makes the problem come again.
21:33:09<!Newton> Sven: The discussion is versandet because it didnt look like someone was ready to implement that
21:33:13-!- Ape [~ape@88.193.0.euirc-fdc0a58a] has quit [Client exited]
21:33:26<!Sven2> Implement what? -> to .?
21:33:31<!Newton> yes
21:33:34-!- ModernClonker [~mx@euirc-872761ac.dip0.t-ipconnect.de] has quit [Client exited]
21:33:35< loriel> Guenther: But then you can still take #use out of your script and give all the namespaces explicitly
21:33:36<!Sven2> That's one character to change in source?
21:33:47<!Guenther> Because just about everything in the main pack would use it, and you'd have to search the entire main pack to make sure there's no collision before using a new name
21:33:47<!ck> And hundreds in scripts :)
21:34:06<!Sven2> Search&Replace should be pretty safe here
21:34:12< Matthi> ck: well, find&replace should do the trick here
21:34:18<!ck> Dunno. I still prefer -> over .
21:34:22<!PeterW> When doing what? @ Guenther
21:34:38<!ck> Guenther: The parser can emit an error if there is a collision
21:34:44<!ck> +only
21:35:07< loriel> Guenther: I am not sure I can follow. Are you saying the main pack is too big?
21:35:23<!Guenther> When introducing a "Foo" object, you'd have to make sure there's no local variable named foo in the entire pack.
21:36:04< loriel> Well, then tell people writing main pack code not to use #use
21:36:04< loriel> :/
21:36:13<!Sven2> Local variables are supposed to be lower case?
21:36:16-!- ModernClonker [~mx@euirc-872761ac.dip0.t-ipconnect.de] has joined #openclonk-dev
21:36:29<!Guenther> are they?
21:36:43<!Sven2> It's what most people do
21:36:51<!Sven2> And some use hungarian, which would also not conflict
21:37:02<!Sven2> I'd be more worried about function names
21:37:16<!Guenther> yeah.
21:38:33<!PeterW> Hm, having some sort of trailing character of IDs is out, I guess?
21:38:37<!Newton> bot i want to name my special clonk iClonkIndex !!!
21:38:38<!PeterW> *for
21:38:45<!Newton> or "i"
21:38:46<!Sven2> Clonk$?
21:39:15<!PeterW> More like $Clonk - the upside would be that synthax highlighting can pick it up.
21:41:13<!PeterW> Ruby has ":bla" for something similar... :)
21:41:55<!Sven2> I wouldn't mind that
21:42:21<!Maikel> Can we even use :?
21:42:27<!PeterW> .oO( ":Core:Clonk"? )
21:42:43<!PeterW> Might get confusing with Namespaces, though.
21:42:53<!Maikel> I'd prefer C_
21:43:20<!PeterW> For marking IDs?
21:43:22< ModernClonker> Why C_?
21:43:27<!Maikel> So everybody can fill in his favorite word, either Clonk or Core.
21:43:44<!Guenther> We need a method to decide such matter-of-taste questions...
21:43:48<!PeterW> And what about stuff that isn't neither Clonk nor Core? ;)
21:43:55<!Guenther> Simple forum poll?
21:44:08<!PeterW> Which matter of taste currently?
21:44:09<!Maikel> Yes but we have like unlimited options
21:44:33< loriel> \Core\Clonk
21:44:34<!Guenther> How to distinguish C4Ids from other global constants.
21:45:08<!Guenther> The possibilities are endless, as we're seeing, and it doesn't matter much which we pick
21:45:20<!Newton> well
21:45:26<!Newton> as Sven2: coding guidelines
21:45:33<!PeterW> Well, I guess we have a consensus in that we need /some/ kind of fixed prefix?
21:45:42<!Maikel> yes
21:45:47<!Newton> Isilkor said, if I declare a variable named Core_Clonk, it hides the definition
21:45:59<!Newton> but this won't happen too often
21:46:10<!Newton> very seldom, actually - especially with namespaces
21:46:12<!Guenther> As long as we pick one. Hm, ideally one that can be changed by search&replace if we decide to get rid of it
21:46:17<!ck> What kind of fixed prefix? A namespace kind, or a special character like $ or :?
21:46:31<!PeterW> Then making it "Core" or "C" doesn't make much sense, imo. "ID_" would be the logical choice if we want a word.
21:46:38< loriel> Or even a namespace separated from the actual name by a special character...!
21:47:00<!PeterW> A Prefix that dsitinguishes it from method names.
21:47:12<!PeterW> *distinguishes
21:47:19<!ck> What's the problem with methods overriding the ID locally in that script?
21:47:19<!Newton> err, I don't see the necessity to have a fixed prefix for IDs
21:47:38<!ck> The script won't use that ID if it introduces a method with the same name
21:48:16<!Guenther> hm, the only character on a german keyboard which is reachable by one keystroke, somewhat available, doesn't have a dead key problem, and is ASCII, is #
21:48:36<!PeterW> I don't think it's very good design if you have to look at the whole script to decide what kind of identifier you're looking at
21:48:42<!Guenther> ck: But an include might.
21:48:56<!PeterW> In case of global functions, that might be quite a lot.
21:49:36<!Guenther> And yeah, being able to distinguish IDs from variables without having the whole global and local variable list in your head is a feature
21:49:43<!PeterW> So shall we make a poll out of "do we even want a fixed prefix?"? :)
21:49:44<!Newton> global functions dont hide ids
21:50:03<!Newton> GetHiRank()->GetWidth();
21:50:14<!PeterW> But local ones do? What about appends and includes? I don't think we want to put too much thought into that.
21:50:14<!Newton> GetHiRank->GetWidth(); <- this one is an id
21:50:22<!ck> I'm not sure how it currently works, but it would need to only override it for that script, not for its includes
21:50:35<!Newton> I don't undestand your point
21:50:40<!Guenther> PeterW: We could include it in the poll. Perhaps even as "I don't want a prefix" and "I can live without one"
21:51:24<!PeterW> A minor gripe with "#" would be that we already use it for our directives.
21:51:25<!Guenther> Which identifier hide which other is not really well defined. It might even depend on which part of the engine you're looking at.
21:52:05<!PeterW> That's exactly what I'm trying to sidestep - let's have a prefix and be done with it.
21:52:17<!ck> yeah, I see, it's probably possible to get it correct, but too much effort to do so :)
21:52:25<!ck> @go without prefix
21:52:29<!Newton> statics hide ids
21:52:32<!Newton> locals hide statics
21:52:39<!Newton> vars hide locals
21:52:44<!Guenther> Aren't ids statics now?
21:52:46<!Newton> @clear defined
21:52:52<!Guenther> So it depends on the loading order...
21:53:09<!Newton> so it is wrong what i said?
21:53:57<!Guenther> Well, no. The parser has gotten an identifier, and tries to make sense of it. depending on where it is, it checks various sources, and picks one, and maybe issues an error if it also finds another
21:54:25<!Guenther> It should be mostly consistent, but it's a mess
21:55:26<!Guenther> And if I've read the source correctly, a C4ID is more or less a "static const" now
21:55:41<!Newton> I see
21:55:57<!PeterW> Btw - don't static consts also use upper case names?
21:56:00<!Newton> actually to define a static with the same name as a C4ID might have some interesting side-effects
21:56:10<!Newton> yes
21:56:10<!Guenther> and multiple static const overwrite each other, but in which order depends on engine internals
21:56:24<!Newton> but they have all this BIG_LETTER_Bullshit in front
21:56:47<!Newton> or rather *Stuff
21:57:44<!PeterW> Well, this is all a matter of taste by now - but I /do/ think we should use a prefix instead of relying on a shaky pile of naming conventions and overload rules.
21:57:49<!Guenther> So until someone goes and fixes this stuff - I started, but didn't finish - we should imho go with the argument "it's good to see at first glance whether you have an id" and pretend that's the real reason ;-)
21:59:11<!PeterW> So, who does the poll? ;)
22:01:32<!Guenther> We might want to gather options in a topic first
22:02:31<!PeterW> Well, then let's do that instead.
22:03:05<!PeterW> Do we have anything else to discuss?
22:04:56<!Maikel> Maybe we can also get some clear conventions on iPlr and plr, pObj and obj, that's also done very differently in the current code.
22:06:05<!ck> 21:36:13 <!Sven2> Local variables are supposed to be lower case?
22:06:10<!ck> So iPlr and pObj are out :P
22:06:22<!Newton> they start with lower case
22:06:23<!Maikel> Then we have a great documentation :D
22:06:29<!PeterW> Only applies to the first character, silly ;)
22:06:35<!ck> oh :(
22:06:54<!Newton> PeterW: we talked a lot about interna
22:07:03<!Newton> I'd like to see more progress on the content
22:07:23<!Newton> perhaps talk about some ideas for weapons, tools & stuff?
22:07:24<!PeterW> Well, it would be great if we could solve the CamelCase versus the bottom_liners, but I don't think we'll manage that.
22:07:30<!Newton> - and post that
22:07:50<!PeterW> +war
22:08:12<!Maikel> Well, I tried to implement a rope+hook that can be shot with the bow.
22:08:34<!Newton> :o
22:08:42< Matthi> PeterW: I don't think it's worth discussing much more
22:09:00< loriel> Maybe we can compromise on camelCase
22:09:14<!ck> loriel: yeah, let's introduce a third style :D
22:09:16<!Newton> I also want to discuss that Matthi does nothing
22:09:33< Matthi> The time spent on forum topics, polls and whatnot would be spent better on implementing whatever comes to your mind :/
22:09:34<!Newton> that might be dromedarCase
22:09:51< loriel> (I always thought it was camelCase versus PascalCase)
22:09:57< Matthi> I just don't think it's THAT big a deal.
22:10:17<!Newton> and I want to discuss that Matthi shouldnt do advice here and in the forum but spent his time better on implementing stuff
22:10:45<!Newton> but the camel has two höckers
22:10:54<!PeterW> (I think that too, I might have failed to express a slightly sarcastic tone. :) )
22:11:24< Matthi> Newton: Right now, my main occupation is trying not to fail an exam for I would have to add a year if do. Ask me about actually coding or doing stuff in about a week again
22:11:44<!Maikel> [x] Newton implements everything, the rest goes to bed now.
22:11:54<!Newton> Lets discuss how much Matthi fails his exams
22:12:17<!ck> Lets discuss about how much Newton drank already this night
22:12:52<!Newton> no seriously, I think it is very important to open up and public-ize OC through all platforms we can teh best we can
22:13:01-!- ShadoOw [~ShadoOw@euirc-bdf8d76a.dip.t-dialin.net] has quit [Ping timeout]
22:13:11<!Maikel> Yes we can?
22:13:32<!Newton> because motivation (and time) of single people runs out - as productive as they may be
22:13:52<!Newton> but if we turn more towards community buildings, the long term gain for the project will be greater
22:14:01<!Newton> because the project is not so much bound to certain people anymore
22:14:12<!Maikel> But you really need content to show
22:14:33< Matthi> And we're going to need a bigger chatroom on mondays, then.
22:14:34<!Newton> and where are the people who are good with C4Script?
22:14:42<!Newton> (not counting us)
22:15:02<!Maikel> Everybody interested in OC development is in the CCF?
22:15:05< Matthi> I guess there are busy coding C4Script for a game that actually WORKS? :/
22:15:32<!Newton> well, I think OC reached a state where content developers can begin to err.. dwell
22:15:38< Matthi> Yes
22:15:52<!Newton> so it works out of a C4Scripter POV
22:15:55< Matthi> And throw around their code when the forum poll has decided the camel-case-war?
22:16:22<!Newton> ?
22:16:36< Matthi> Seriously, I won't be doing a greal deal of script-work unless the engine-side of scripting is near "done"
22:16:58<!Newton> tell me, what is missing engine side`
22:17:08< Matthi> Well, let's say, consistency?
22:17:20<!Newton> meaning?
22:18:06< Matthi> There are still open topics, like if we use "." or "->", Camel-Case Namespaces, how propertyLists/Setter-Getter are managed...
22:19:14<!Newton> the first is not of any importance
22:19:24< Matthi> And as long there are these big discussions about C4Script every monday, dreadging to change or (re-)implement stuff, I don't really want to get started
22:19:44<!Newton> if this patch comes, the one that does this patch will replace all -> with .
22:19:55<!Newton> and so with all other C4Script changes
22:20:07<!Newton> nobody may commit a patch that breaks the game
22:20:07< Matthi> Haha
22:20:28< Matthi> Well, that's not a good idea
22:20:37< Matthi> You'd just burden the engine coders even more
22:21:05<!Newton> aha, is that so
22:21:18<!Newton> well but this is how we do it with our repository
22:21:34<!ck> I think Newton is right here. We should not commit any patches obviously and intentionally breaking stuff.
22:21:45< Matthi> Of course
22:21:51<!ck> At least not if it has not been discussed before
22:21:52< Matthi> that's not what I'm getting at
22:22:26<!Newton> and this out of an obvious reason
22:22:30<!Newton> you are right, we need content
22:22:55<!Newton> but content can only be developed if the content developers know that they dont have to write everything new all the time
22:22:57< Matthi> I'm saying: Creating script content NOW is a burden for everybody, while creating script content when Engine-C4Script is _done_ isn't and might even be easier for the scripters.
22:24:26<!Newton> you are assuming that there is some mysterious "engine developer" regularly contributing in the shadows, following his schedule until he is done, at one fixed date. And until then, C4Script may not be called "done" and shouldn't be used
22:24:53< Matthi> I don't think he is THAT mysterious
22:24:55<!Newton> this is what many people think that are outside the project
22:25:20< Matthi> So where am I wrong with that assumtion?
22:25:55<!Newton> brb
22:26:04<!ck> I'd say there is no fixed date at which C4Script is "done".
22:26:14<!ck> There will always be discussions about what can be changed or improved
22:26:24< Matthi> okay, agreed.
22:27:04< Matthi> But implementing stuff considered important like this namespace-discussion above is something I wouldn't call "change or improve"
22:27:11< Matthi> but "laying out the basics"
22:27:37<!Newton> the basics are layed out
22:28:10<!Newton> the namespace discussion is not a big one either
22:28:40<!Newton> cmon, change the id of all objects? Thats not really a long task either
22:28:53<!Newton> search&replace
22:29:15< Matthi> search&replace on Ids?
22:29:19<!Newton> yes
22:29:50<!Newton> long ideas are implemented already by the way. Because the stuff about namespaces is not solved yet, I just name my Objects anything
22:29:59<!Newton> QWER
22:30:11< Matthi> Phew
22:30:34<!Newton> no actually i still use 4-character IDs with "logic" names
22:31:55< Matthi> Well, I don't know - I still fear that some futur changes might not be just a "find&replace" but something more grave, as the project is still considerably young.
22:32:28<!Guenther> Yeah, the only big task C4Script-wise still left is savegame support, and reimplementing local named variables with properties. Both shouldn't affect the API much if at all.
22:32:40<!Guenther> We already did the big breaking changes.
22:32:46<!ck> Matthi: Then the one making the change in the engine is responsible for making sure your scripts still work
22:32:59-!- B_E is now known as b_e
22:33:34<!Guenther> I mean, we do feature additions to C4Script because we like to implement our own programming language.
22:33:56<!Guenther> If we didn't, we'd just use Lua or something.
22:34:45<!Guenther> So if the burden of changes becomes greater, new features might not get implemented. CR did fine with the existing features, so that's not a grave risk.
22:35:06<!Guenther> On the other hand, not having content and losing the interest of other developers is a grave risk.
22:39:02-!- Mortimer [~Mortimer@euirc-d8bc059f.dip.t-dialin.net] has joined #openclonk-dev
22:41:28< Matthi> Yes, agreed.
22:42:45<!Newton> and for me, it is important now to mobilize (and coordinate) as many ppl for that as possible to get out of this
22:44:32<!Newton> while I could also get on to this, I can only create a limited amount of stuff and these script tasks (making tools, weapons etc) are not too challenging (if the weapon/spell itself is not too complicated)
22:44:40-!- Icewing [~Icewing@euirc-9359146c.pool.mediaWays.net] has quit [Client exited]
22:45:42<!Newton> (plus I have more fundamental stuff to do that wouldn't count as "content" - e.g. next gamepad controls)
22:50:56<!ck> Would be good to have a list of very clear and discrete tasks
22:51:04<!ck> But of course it's already a lot of work to compile such a list