--- Log opened Tue Oct 02 00:00:54 2012 |
00:32 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
00:34 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has joined #code |
00:34 | | mode/#code [+o PinkFreud] by ChanServ |
01:24 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving] |
01:33 | <&Derakon> | Man, the travails of publicizing your development efforts. |
01:33 | <&Derakon> | I keep getting utterly useless suggestions from one kid. He means well, he just...doesn't really have a clue what he's doing. |
01:34 | <&ToxicFrog> | sigh |
01:35 | <&Derakon> | (This is also the kid that wanted to use tabs instead of spaces...) |
02:28 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [G-Lined: Session limit exceeded] |
02:28 | < rms> | Oh noes! Someone argues for the saner of the two, clearly all his opinions are worthless! </flamebait> |
02:32 | < Rhamphoryncus> | Sure, I'm game |
02:32 | | Attilla [Obsolete@FBC920.173C5E.F86DF0.D9DC14] has quit [[NS] Quit: ] |
02:35 | < Rhamphoryncus> | In theory tabs are better. They allow editors to have a concept of code blocks independent of indentation. In practice no editor does that, instead the norm is for tabs to display as X spaces and the tab key producing equal results be it real tab characters or just X spaces. Given that they're equal anyway it's simpler to deprecate the tab character and use spaces for everything |
02:36 | < Reiv> | Rhamphoryncus: A particular shame in languages such as Python, where whitespace matters |
02:36 | < Reiv> | It would have been lovely to have rigged Tabs to be meaningful indicators of said whitespace. |
02:36 | < Rhamphoryncus> | Reiv: aye |
02:37 | < Rhamphoryncus> | but IMO you don't get any benefit until editors start doing *indented* word-wrap, so you don't need to manually break/wrap/indent long lines |
02:38 | < Rhamphoryncus> | And a mildly clever editor could do that with spaces still |
02:38 | | Vash [Vash@Nightstar-3ba4108e.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
02:39 | < Rhamphoryncus> | Or having tabs in the middle of a line magically group with other nearby tabs and indent to a common level |
02:40 | < rms> | It'd be nice if more editors supported elastic tabs |
02:40 | < Rhamphoryncus> | meaning if you had "foo() # Call foo so bar works", it'd shift the # as much as is needed |
02:41 | < Rhamphoryncus> | Not heard that term before |
02:58 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
02:58 | | mode/#code [+o himi] by ChanServ |
03:09 | < rms> | http://nickgravgaard.com/elastictabstops/ |
03:12 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
03:26 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
03:26 | | mode/#code [+o himi] by ChanServ |
03:42 | | Vash [Vash@Nightstar-3ba4108e.wlfrct.sbcglobal.net] has joined #code |
03:42 | | mode/#code [+o Vash] by ChanServ |
04:23 | | * Derakon looks up. "Whoops." |
04:23 | <&Derakon> | More generally, he was complaining about the fact that the style guide I wrote said "use spaces, not tabs" and the entire codebase thus far had used spaces. |
04:24 | <&Derakon> | Except for the code he'd written, which I had to go back in and fix for consistency's sake. |
04:31 | | * Vornicus kind of wishes he could set text editors to have fractional tab width. |
04:44 | < Rhamphoryncus> | I need to figure out how to make hg have a whitespace sanity check hook |
04:46 | <&Derakon> | Get it to invoke pep8? |
04:47 | < Rhamphoryncus> | writing C++, not python :/ |
04:47 | < Rhamphoryncus> | But my actual rules will be no tabs anywhere and no trailing whitespace |
04:47 | <&Derakon> | What's bad about trailing whitespace? I mean, it's functionally useless, but is it harmful? |
04:49 | < Rhamphoryncus> | It's unclean (which irks me) and results in commit noise when it's accidentally removed/added |
04:49 | <&Derakon> | Ah. |
04:56 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
04:57 | <&ToxicFrog> | Rhamphoryncus: egrep -q ' |\s+$' will EXIT_SUCCESS if the file contains any tabs or trailing whitespace, and EXIT_FAILURE otherwise. |
04:57 | <&ToxicFrog> | That space after the ' is a tab character, incidentally, not a space character. |
04:58 | < Rhamphoryncus> | .. hah, which may be impossible to get through the same check ^_^ |
04:58 | <&McMartin> | Yeah, you want to filefilter this |
04:58 | <&McMartin> | You also want that so that, say, PNG headers will pass through =P |
04:58 | < Rhamphoryncus> | heh |
04:59 | <&ToxicFrog> | Yeah, I'm assuming you wrap this in a shell script that also does file type checking etc |
05:09 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
05:09 | | mode/#code [+o himi] by ChanServ |
05:18 | < Rhamphoryncus> | Oh. Well then. I'm currently using tabs exclusively >.> |
05:23 | < Rhamphoryncus> | This should be sufficient for now, as trailing whitespace is common while mixing tabs/spaces is not: |
05:23 | < Rhamphoryncus> | [hooks] |
05:23 | < Rhamphoryncus> | pretxncommit.whitespace = hg export tip | (! egrep -Iq '\s+$') |
05:27 | | Rhamphoryncus [rhamph@Nightstar-cc6253d6.abhsia.telus.net] has quit [Client exited] |
05:31 | | ErikMesoy|sleep is now known as ErikMesoy |
05:36 | | Emu [Emu@Nightstar-b920a19c.cust.comxnet.dk] has joined #code |
06:14 | | You're now known as TheWatcher |
06:38 | | Derakon is now known as Derakon[AFK] |
07:00 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Client closed the connection] |
07:10 | | You're now known as TheWatcher[afk] |
07:23 | | gnolam_ [lenin@Nightstar-ccbf4b44.cust.bredbandsbolaget.se] has joined #code |
07:23 | | Netsplit *.net <-> *.split quits: @Vash, Tarinaky, gnolam, franny, @Tamber, @Kindamoody|afk, @himi, AnnoDomini, rms, EvilDarkLord, (+3 more, use /NETSPLIT to show all of them) |
07:23 | | FurryHelix [tamber@furryhelix.co.uk] has joined #code |
07:25 | | FurryHelix is now known as Tamber |
07:25 | | mode/#code [+o Tamber] by ChanServ |
07:25 | | franny [fran@Nightstar-e67f9d08.com] has joined #code |
07:25 | | rms [rstamer@Nightstar-e681a855.org] has joined #code |
07:25 | | Reiver [quassel@Nightstar-3762b576.co.uk] has joined #code |
07:27 | | EvilDarkLord [jjlehto3@Nightstar-a5db08cc.org.aalto.fi] has joined #code |
07:27 | | AnnoDomini [abudhabi@Nightstar-bce82ff6.adsl.inetia.pl] has joined #code |
07:28 | | froztbyte [froztbyte@Nightstar-dc394964.za.net] has joined #code |
07:28 | | Tarinaky [tarinaky@Nightstar-dd7e4a05.net] has joined #code |
07:33 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
07:40 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
07:40 | | mode/#code [+o himi] by ChanServ |
07:46 | | Kindamoody|afk [Kindamoody@Nightstar-5b3db968.telia.com] has joined #code |
07:51 | | Emu [Emu@Nightstar-b920a19c.cust.comxnet.dk] has quit [Connection closed] |
07:53 | | Emu [Emu@Nightstar-b920a19c.cust.comxnet.dk] has joined #code |
08:15 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
08:28 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
08:28 | | mode/#code [+o himi] by ChanServ |
08:33 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
08:45 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
08:45 | | mode/#code [+o himi] by ChanServ |
09:12 | | You're now known as TheWatcher |
09:33 | | Emu [Emu@Nightstar-b920a19c.cust.comxnet.dk] has quit [Connection closed] |
09:55 | | Attilla [Obsolete@Nightstar-03feb95a.as43234.net] has joined #code |
10:06 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
11:12 | | Attilla_ [Obsolete@Nightstar-0f05a4e9.as43234.net] has joined #code |
11:13 | | Emu [Emu@7D8456.A943BA.FB3BDD.418FAB] has joined #code |
11:14 | | Attilla [Obsolete@Nightstar-03feb95a.as43234.net] has quit [Ping timeout: 121 seconds] |
11:23 | < Tarinaky> | Okay. Something is confusing me. |
11:23 | < Tarinaky> | (Math tiem!) |
11:24 | < Tarinaky> | Fourier Series, in order to represent a function that is neither odd, or even, you need a sum of even and odd, ie both sine and cosine... |
11:24 | < Tarinaky> | What about f(x) = 0 over (-pi,0) and f(x) = 1 over (0,pi) ? |
11:25 | < Tarinaky> | This is neither odd nor even, so I'd expect a_n and b_n to both be nonzero. |
11:25 | < Tarinaky> | But my a_n is coming out 0. |
11:29 | < Tarinaky> | I think I'm doing something wrong here. |
11:48 | | Attilla_ is now known as Attilla |
12:59 | | gnolam_ is now known as gnolam |
13:03 | < gnolam> | ... the hell? |
13:03 | < gnolam> | WTF do people build enclosures out of - lead? |
13:05 | < gnolam> | Even our flimsy plastic test enclosure weighs in at 247 g. |
13:37 | | Emu [Emu@7D8456.A943BA.FB3BDD.418FAB] has quit [Client closed the connection] |
13:53 | < rms> | Gotta keep that HDD radiation away from your privates |
14:48 | | You're now known as TheWatcher[afk] |
--- Log closed Tue Oct 02 14:49:01 2012 |
--- Log opened Tue Oct 02 14:49:13 2012 |
14:49 | | TheWatcher [chris@Nightstar-3762b576.co.uk] has joined #code |
14:49 | | Irssi: #code: Total of 27 nicks [4 ops, 0 halfops, 0 voices, 23 normal] |
14:49 | | mode/#code [+o TheWatcher] by ChanServ |
14:49 | | You're now known as TheWatcher[afk] |
14:49 | | Irssi: Join to #code was synced in 41 secs |
15:07 | | Syloq_Home [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
15:17 | | mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ |
16:01 | | Rhamphoryncus [rhamph@Nightstar-cc6253d6.abhsia.telus.net] has joined #code |
16:02 | <~Vornicus> | Tarinaky: it is not necessarily true that any /particular/ pair of sine-cosine terms of the same period are non-zero |
16:04 | < Tarinaky> | Vornicus: Yes, but my a_n is 0 for all n. |
16:04 | < Tarinaky> | And it isn't an odd function. |
16:04 | <~Vornicus> | Then something might be going wrong. |
16:06 | < Tarinaky> | No kidding. |
16:06 | | * iospace eyes this issue |
16:06 | < iospace> | don't you love when you find what /isn't/ the problem but you can't find what is? |
16:06 | < Tarinaky> | Okay so... |
16:07 | < Tarinaky> | a_0 = 1/pi integral[f(x),dx,(-pi,pi) = 1/pi integral[f(x),dx,(-pi,0)] + 1/pi integral[f(x),dx,(0,pi)] -- yes? |
16:07 | <~Vornicus> | Tarinaky: actually |
16:08 | <~Vornicus> | there is a bit you missed here, there's a constant term that isn't paired |
16:08 | < Tarinaky> | a_0? |
16:08 | <~Vornicus> | And if that constant term is nonzero, the function can "look" odd by the paired terms but it clearly isn't |
16:08 | < Tarinaky> | Ah. |
16:09 | < Tarinaky> | So if I have nonzero a_0, and some b_ns... then I can have zero a_ns and still have a neither function? |
16:09 | <~Vornicus> | For such functions, you're what I'd call nearly-odd: f(-x) = -f(x) + k |
16:12 | | You're now known as TheWatcher |
16:14 | <~Vornicus> | there is after all a reason that constant term is a_0 and not b_0 or just k: it acts like an a in that it describes an even term. |
16:17 | < Tarinaky> | I need to head off to lectures. |
16:21 | < iospace> | ok, as much as i dislike apple, i will say thunderbolt is a much more elegent design than the first revision of the external cabling for PCIe |
16:25 | < iospace> | though thunderbolt appears to be PCIe x2, the external specs for PCIe that I'm looking at go up to x16 |
16:31 | < iospace> | take that back |
16:31 | < iospace> | TB goes up to 4x |
16:34 | < iospace> | yeah, much more elegant than the 4x spec they had back in 07 from PCI-SIG |
17:11 | | ErikMesoy is now known as Harrower |
17:17 | | EvilDarkLord is now known as Maze |
18:07 | | Harrower [Erik@Nightstar-bd2f5f93.80-203-16.nextgentel.com] has left #code [] |
18:47 | <&McMartin> | Oh hey |
18:47 | <&McMartin> | Kind of preliminary, but |
18:48 | <&McMartin> | The guy who largely unfucked Pascal and Java by designing Turbo Pascal and C# has turned his eyes to JavaScript |
18:49 | <&McMartin> | http://typescriptlang.org/ |
19:07 | < iospace> | ... unfucked java by designing C#? |
19:07 | < iospace> | ... unfucked java by designing C#? |
19:25 | <&McMartin> | Yes. |
19:26 | <&McMartin> | C# as a language is basically "Java with the hilariously shitty parts designed out" |
19:26 | <&McMartin> | In practice, they're close enough that any decision of which language to use is dictate by software ecosystem. |
19:26 | <&McMartin> | But IDisposable having syntactic support *alone* would be enough to give C# the nod. |
19:27 | <&McMartin> | Oh, and the ability to have unsigned 8-bit primitive values, right~ |
19:27 | < iospace> | C# is Java with hilariously shitty additions :P |
19:27 | | * iospace shrugs |
19:27 | <&McMartin> | Yeah, uh |
19:27 | <&McMartin> | I'm going to guess that you don't need precise destructors |
19:27 | < iospace> | not relaly |
19:27 | < iospace> | *really |
19:27 | <&McMartin> | Yeah, so |
19:27 | < iospace> | plus, i work on the code that you'll never think about ^_^ |
19:27 | <&McMartin> | When you start doing things like opening network database connections |
19:28 | <&McMartin> | Java starts being worse wrt to resource leaks than fucking C++, and the way of making the compiler do it for you involves one level of indentation for every variable you declare |
19:28 | <&McMartin> | This Is A Language Flaw |
19:28 | | Rhamphoryncus [rhamph@Nightstar-cc6253d6.abhsia.telus.net] has quit [Ping timeout: 121 seconds] |
19:29 | | Rhamphoryncus [rhamph@Nightstar-cc6253d6.abhsia.telus.net] has joined #code |
19:29 | <&McMartin> | Also, Java's byte type is signed and there is no way to treat it as unsigned without bitmasking arithmetic, which makes processing packed binary data vastly more obnoxious than it has any right whatsoever to be. |
19:29 | | * iospace shrugs |
19:29 | < iospace> | i mostly use C here so |
19:30 | <&McMartin> | OK, the idiom that Java breaks drastically doesn't even exist in C |
19:30 | <&McMartin> | C++ has a parallel one that applies, more or less, only to it |
19:30 | < Rhamphoryncus> | C# may have its elements of stupid, but it's still much more practical than java |
19:30 | <&McMartin> | (RAII) |
19:30 | < Rhamphoryncus> | ugh RAII |
19:30 | <&McMartin> | RAII is a way of hacking method pairing into a language that doesn't have it but does have precise destructors |
19:31 | <&McMartin> | Precise destructors are kind of unfortunate for other reasons, but if you have them, at least you can get method pairing. |
19:31 | <&McMartin> | C#'s approach is The Right Way To Do It, though, yes~ |
19:31 | < Rhamphoryncus> | For allocating memory it's fine. You want that constrained but not to any specific amount |
19:32 | < Rhamphoryncus> | For allocating a tightly limited resource, in my case a SDL context.. ugh. I really want a better option for that (in C++) |
19:32 | <&McMartin> | SDL contexts get tricky |
19:32 | <&McMartin> | The "classical" examples here are files and network connections |
19:32 | < Rhamphoryncus> | Python's with-statement is ideal for that IMO |
19:32 | <&McMartin> | "If you open one and then throw an exception, clean it up on the way out" |
19:32 | <&McMartin> | Yeah, C#'s IDisposable interface is equivalent to that |
19:32 | <&McMartin> | That's The Solution. |
19:33 | < Rhamphoryncus> | I don't suppose you know a way to bludgeon that into C++? |
19:33 | | * iospace wonders why McMartin is capitolizing every word |
19:33 | < Rhamphoryncus> | Every Word Is Sacred. Every Word Is Special! |
19:33 | <&McMartin> | For the specific case of graphics contexts in C++, a boost::shared_ptr to your RAII-y class might give it enough freedom to let you do custom factories and break stack discipline while still maintaining it as a managed resource. |
19:34 | <&McMartin> | No, only capitalized words are Special |
19:34 | < iospace> | Rhamphoryncus: and it's driving me insane |
19:35 | <&McMartin> | Rhamphoryncus: That said, I would, I think, want separate things for SDL: The System and SDL: Graphics Context |
19:35 | <&McMartin> | (Here capitalized because they are classes, go away) |
19:35 | < Rhamphoryncus> | I don't need that freedom. I want the opposite. I allocate one instance on the stack, it never moves. |
19:35 | <&McMartin> | Oh |
19:35 | <&McMartin> | Put it in main()~ |
19:35 | < Rhamphoryncus> | it is |
19:35 | <&McMartin> | Er, I seem to have missed what the problem is here |
19:36 | < Rhamphoryncus> | But it currently looks like this: SDLContext sdlctx; |
19:36 | < Rhamphoryncus> | There's no clue that it's allocating something, and something major at that |
19:36 | <&McMartin> | Oh, I see |
19:36 | <&McMartin> | Ahahahaha |
19:36 | <&McMartin> | Well |
19:37 | <&McMartin> | You can be evil |
19:37 | < Rhamphoryncus> | I could make it use a lambda. Ugly. |
19:37 | <&McMartin> | You could *name the class a verb* |
19:37 | <&McMartin> | CreateSDLContext mainscreen(); |
19:37 | < Rhamphoryncus> | oh, that'd help |
19:38 | <&McMartin> | (I've seen 'GuardedBy' as a class name for pairing lock/unlock on a mutex to do critical sections) |
19:39 | < Rhamphoryncus> | Hrm. CreateSDLContext([] (SDLContext &sdlctx) { |
19:39 | < Rhamphoryncus> | ... |
19:39 | < Rhamphoryncus> | }); |
19:39 | <&McMartin> | Hm. Are you trying to abstract over graphics engines here? |
19:40 | < Rhamphoryncus> | nope. Just to isolate SDL |
19:41 | < Rhamphoryncus> | sdlcontext.h (yes, it's just a header for now) is 71 lines |
19:41 | <&McMartin> | I don't think I'd actually use lambdas for this, then |
19:41 | <&McMartin> | You've got your isolation layer interface, more or less |
19:42 | <&McMartin> | You could pass a pointer or to your CreateSDLContext object and then have the main code use that |
19:43 | <&McMartin> | Sadly, the only parallel to this I can come up with right now is java.awt.Component.paint(Graphics g) |
19:43 | <&McMartin> | Where java.awt.Graphics has the methods like drawLine and drawImage |
19:44 | < Rhamphoryncus> | Which'd be similar to having a basic SDLContext object with explicit .init()/.deinit() methods.. |
19:44 | <&McMartin> | Right |
19:44 | < Rhamphoryncus> | With the magical implied exception handling .deinit() |
19:44 | <&McMartin> | Yup |
19:45 | <&McMartin> | Now you're exactly equivalent to the classic CriticalSection class |
19:45 | <&McMartin> | Built out of a mutex, does lock in constructor and unlock in destructor, but the real work is all done in Mutex |
19:46 | < Rhamphoryncus> | I don't like that. Sure, there's cases where explicit is more useful (allowing odd interleaving of multiple such sections), but this only needs basic behaviour |
19:47 | <&McMartin> | OK, change that to the conditional tense above then |
19:48 | <&McMartin> | "If you did that (the basic SDLContext with explicit) then you'd be exactly equivalent to..." |
19:49 | < Rhamphoryncus> | I don't see a reason to declare the SDLContext explicitly |
19:49 | <&McMartin> | Yeah, I tend to agree |
19:50 | <&McMartin> | Though the fact that constructors can't be virtual is an annoyance to me |
19:50 | <&McMartin> | In the most general case of this |
19:50 | < Rhamphoryncus> | I find the C++ lambda a bit ugly. That's the only bit that annoys me |
19:50 | <&McMartin> | I'm not totally clear on what you even need the lambda for |
19:51 | <&McMartin> | (In that the stuff I'm imagining here doesn't use lambdas, or, indeed, virtual functions at all) |
19:51 | < Rhamphoryncus> | to have the same code order as python's with-statement. Top to bottom, not jumping around |
19:52 | < Rhamphoryncus> | Which does mean that most of main() will be further indented |
19:52 | <&McMartin> | Well, yeah, but eh |
19:52 | <&McMartin> | OK, this is a matter of taste, but I think you're going slightly to far in importing an alien idiom here~ |
19:52 | <&McMartin> | *too far |
19:52 | <&McMartin> | But it looks sound |
19:53 | < Rhamphoryncus> | I don't see it as alien. I see it as the Right Way to do it, limited by the tools available. (actually, I think python would be better if it passed in a function too.) |
19:54 | <&McMartin> | Mmm |
19:54 | <&McMartin> | I suppose part of the issue here is that you're viewing it as special case of method pairing and I'm viewing the problem of "manage SDL resources" as a dependency-injection problem instead. |
19:55 | < Rhamphoryncus> | Maybe |
19:56 | < Rhamphoryncus> | yeah, dependency injection would take place by making the CreateSDLContext function a pointer |
19:56 | <&McMartin> | This is more or less what UQM ended up doing (without the C++ or automatic management parts -_-) to support its twin backends |
19:56 | <&McMartin> | Framebuffer vs. OpenGL |
19:56 | <&McMartin> | Both still are SDL-based but they have to do wildly different things |
19:58 | | * Rhamphoryncus nods |
20:18 | < gnolam> | http://www.cs.cmu.edu/~wklieber/python-tail-recursion.jpg |
20:23 | < Rhamphoryncus> | cute |
20:34 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has joined #code |
20:45 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has quit [Ping timeout: 121 seconds] |
20:46 | < froztbyte> | haha |
20:53 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
20:53 | | mode/#code [+ao Derakon Derakon] by ChanServ |
20:54 | | * Derakon eyes the Angband dev forum. |
20:54 | <&Derakon> | Recently in Pyrel I made a stats-management system, to track all the numerical attributes of an entity. |
20:54 | <&Derakon> | So you can say e.g. "my base STR is 10, I get +2 from race and +1 from class, I'm wearing a ring that gives +3, so my total is 16". |
20:55 | <&Derakon> | This includes other non-core-stat stats, though, like stealth, perception, magic device skill, etc. |
20:55 | <&Derakon> | Two of these skills are Finesse and Prowess, representing roughly your ability to hit what you aim at, and to deliver power behind that blow. |
20:56 | <&Derakon> | These stats are tracked separately for melee vs. missile combat -- different items provide bonuses to the stats, etc. |
20:56 | <&Derakon> | So I just went ahead and named them "meleeProwess", "meleeFinesse", "missileProwess", and "missileFinesse" to distinguish them. |
20:56 | <&Derakon> | This is bugging some of the other devs, but for hard-to-articulate reasons. |
20:57 | <&Derakon> | Thoughts? |
20:57 | <~Vornicus> | welll |
20:57 | <&Derakon> | Keep in mind that missile and melee combat do not use exactly the same calculations. |
20:58 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has joined #code |
21:00 | <~Vornicus> | Okay, in 4e D&D you get melee weapons, light thrown weapons/bows, and heavy thrown weapons. Melee and heavy thrown weapons use str for both prowess and finesse, and light thrown weapons and bows use dex for both prowess and finesse. |
21:01 | <&Derakon> | We can safely assume that the derivation of these stat values is sane. |
21:01 | <&Derakon> | It's mostly a question of how they should be stored and referred to in the stats "database". |
21:03 | <~Vornicus> | So there are situations (in 4e at least, and 3e as well though I haven't described that today) where your missile prowess is not appropriate for missile weapons. |
21:03 | <&Derakon> | Mm, throwing weapons are not a big thing in Angband currently, but we can assume a separate throwingFinesse and throwingProwess if we need to. |
21:04 | <&Derakon> | The suggestion I received was to make the stats DB a hierarchical structure so you'd have "melee" stats, "missile" stats, "throwing" stats, etc, each with their own "finesse" and "prowess" entries. |
21:04 | <&Derakon> | The main issue I have with that being that there's sort of an implicit assumption that nothing outside of a given level in the hierarchy depends on anything inside. |
21:05 | <&Derakon> | E.g. if you wanted to provide an AC bonus for having a high melee finesse, representing your ability to parry attacks. |
21:05 | <&Derakon> | Nothing enforces you from not creating dependencies like that, but I like it better when the structure of the data matches how it's used. |
21:11 | < RichyB> | I'm quite fond of how Dredmor does stats personally. |
21:11 | < RichyB> | You have primary stats - Burliness, Caddishness and so on. |
21:12 | < RichyB> | Those determine secondary stats, like Critical Chance, Block Chance, Hitpoints, Enemy-Dodge-Reduction |
21:13 | <&Derakon> | Yeah, I've played Dredmor. |
21:13 | < RichyB> | Enchanted equipment, character skills, and (de)buffs directly modify either of your primary or secondary stats. |
21:13 | <&Derakon> | Pyrel will be using a more flexible system since its engine needs to be adaptible. |
21:13 | < RichyB> | It's pleasingly simple - you can fit most enough the whole game in your head. |
21:13 | <&Derakon> | Every stat is built up out of a tiered set of modifiers. |
21:13 | <&Derakon> | You have inherent, permanent, and temporary modifiers. |
21:14 | <&Derakon> | These are additive, multiplicative, or invoking arbitrary functions. |
21:14 | <&Derakon> | The "arbitrary function" bit is only allowed to refer to stats of a strictly lesser tier, to avoid permanent loops. |
21:14 | < RichyB> | Oh-kay. |
21:14 | < RichyB> | So Dredmor's system is trivially representable in yours. |
21:14 | <&Derakon> | Yes. |
21:15 | < RichyB> | You'd represent Dredmor with 2 layers and a load of equipment+buff modifiers. |
21:15 | <&Derakon> | Pretty much, yeah. |
21:15 | < RichyB> | Or would you put equipment/skills/buffs on a layer underneath Caddishness/Burliness/Sagacity/etc? |
21:16 | <&Derakon> | ...hm, actually, yeah, Dredmor wouldn't really work under this system. |
21:17 | <&Derakon> | Since the entire point of primary-stat buffs is to affect your secondary stats. |
21:17 | <&Derakon> | (Counting HP as a secondary stat) |
21:17 | < RichyB> | {HP,MP}{max,regen period} are all secondary stats in Dredmor. |
21:17 | <&Derakon> | So what that means is that everything that affects the primary stats has to be on lower tiers than anything that affects secondary stats. |
21:18 | < RichyB> | I thought that in your system, it's fine for a layer object to affect a layer 2 object? |
21:18 | < RichyB> | It's just never fine for layer 2 to affect layer 2 or lower. |
21:18 | <&Derakon> | The tiers are "inherent to the entity", "indefinite-duration effect on the entity", and "limited-duration effect on the entity". |
21:18 | <&Derakon> | Roughly corresponding to what the creature is, what equipment it's wearing, and what buffs it has active. |
21:19 | <&Derakon> | Certainly I could change what the tiers are, though. |
21:19 | <&Derakon> | If I was willing to split that into "CORE inherent/permanent/temporary" and "DERIVED inherent/permanent/temporary" (thus, six tiers), then I could represent Dredmor. |
21:21 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has quit [Client closed the connection] |
21:21 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has joined #code |
21:26 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
21:26 | | Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
21:27 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
21:27 | | Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
21:47 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has quit [Ping timeout: 121 seconds] |
21:48 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has joined #code |
21:50 | | Maze is now known as EvilDarkLord |
21:52 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has quit [Ping timeout: 121 seconds] |
21:53 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has joined #code |
21:54 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving] |
22:03 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [[NS] Quit: Lost terminal] |
22:15 | < AnnoDomini> | It's kinda weird to be doing graphics in a piece of software 10 years old. Because I could never find anything better than Macromedia Flash 5. |
22:17 | <&McMartin> | Heh |
22:17 | <&McMartin> | This is one reason people kept Amiga emulators around |
22:18 | | * AnnoDomini runs it in VirtualBox because Linux. |
22:18 | < Reiv> | AnnoDomini: I assume Flash 6 went and made things Bad And Wrong? |
22:20 | < AnnoDomini> | I seem to recall it doing that. It added a nice thing (skewing) but fucked up the interface somehow. |
22:29 | < AnnoDomini> | Flash 5 is like an advanced Paint for vector graphics. It can sorta do raster too, if you really need to. And animations, but that's not what I normally use it for. :V |
22:30 | | * McMartin pokes |
22:30 | <&McMartin> | Oh hey, I do still have my old lightwave objects. |
22:32 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
22:32 | | mode/#code [+ao Derakon Derakon] by ChanServ |
22:32 | <&Derakon> | Sorry, I dropped off there. Anything interesting happen? |
22:32 | <&McMartin> | Just some reminiscing about Flash 5 |
22:33 | <&Derakon> | Okeyden. |
23:02 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has quit [Ping timeout: 121 seconds] |
23:07 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has joined #code |
23:49 | | Emu [Emu@7D8456.A943BA.FB3BDD.D37BA4] has quit [Connection closed] |
--- Log closed Wed Oct 03 00:00:12 2012 |