code logs -> 2010 -> Sat, 16 Oct 2010< code.20101015.log - code.20101017.log >
--- Log opened Sat Oct 16 00:00:22 2010
00:00 * Derakon aughs at http://paste.ubuntu.com/514173/
00:01
<@Derakon>
Why do people write code like this? :(
00:01
< Rhamphoryncus>
So that someone can call it as mview(300)... not saying that's a good idea though
00:02
<@Derakon>
Being able to support variably-shaped function arguments is not generally something I would consider worthwhile.
00:02
<@Derakon>
Er, variably-dimensioned.
00:02
< Rhamphoryncus>
I believe I've done similar things.. but as part of __init__ overloading. Handling a str argument would have been done at the same time
00:03
<@Derakon>
Oh, there are occasional uses for it.
00:03
<@Derakon>
But this is not one I would consider worthwhile.
00:03
< Rhamphoryncus>
Hrm I might be thinking of my FixedPoint class. That could take a numerator and denominator argument. I'd probably use two arguments for that though..
00:03
<@Derakon>
Especially since the class being instantiated here is a singleton.
00:03
< McMartin>
16:01 <@Derakon> Why do people write code like this? :(
00:03 * Rhamphoryncus nods
00:03 * Derakon goes ahead and strips out some arguments that are never passed.
00:04
< McMartin>
This is standard practice and Actually Not Bullshit in a wide variety of languages, including but not limited to C++ and Java
00:05
<@Derakon>
I still say it's unwarranted here.
00:05 You're now known as TheWatcher[zZzZ]
00:06
< McMartin>
Absolutely.
00:06
< McMartin>
(And it wouldn't be mview(int) vs mview(std::pair<int, int>) anyway, it'd be mview(int) vs mview(int, int)
00:07
< Rhamphoryncus>
McMartin: that's just it, having an optional second argument would be much better here
00:07
< Rhamphoryncus>
A little more effort to code though
00:08
<@Derakon>
Nahh.
00:08
<@Derakon>
def mview(first, second = None):
00:08
<@Derakon>
arg = first
00:08
<@Derakon>
if second is not None:
00:08
<@Derakon>
arg = (first, second)
00:08
<@Derakon>
Though that does make for ugliness when you have more arguments for the function.
00:09
< Tarinaky>
That trick certainly doesn't work for C++ though >.>
00:09
< Rhamphoryncus>
That sort of code bothers me. It's "unpythonic". I don't see an alternative though
00:09
<@Derakon>
I imagine you could pull something off with void pointers, Tarinaky~
00:09
<@Derakon>
(But it'd be ugly)
00:10
< Rhamphoryncus>
Derakon: eww :P
00:10
< Tarinaky>
Derakon: True, or where you've got a case where there's a clear 'none' value from the setup.
00:10
< Tarinaky>
Like '-1' for an argument that should always be non-negative.
00:10
< Rhamphoryncus>
C++ lets you overload class methods. You don't need tricks like that
00:11
<@Derakon>
Yeah, there are times I wish I could overload Python functions, but the duck-typing makes that infeasible in most potential applications.
00:11
<@Derakon>
Ehh.
00:11
< Tarinaky>
Rhamphoryncus: Oh yes, but reducing the amount of typing you do is always good >.>
00:11
< McMartin>
Rhamphoryncus: Right, that's what I'm saying they're trying to simulate.
00:11 * Derakon thwaps Tarinak.y
00:11
<@Derakon>
s/.y/y./
00:11
< McMartin>
This is because they got the golden hammer issue, but their hammer was actually something like a specific width of shoelace.
00:11
< Rhamphoryncus>
Derakon: yeah. The ABC stuff is shifting it a bit though
00:12
<@Derakon>
ABC stuff?
00:12
< Tarinaky>
Bad code is bad code; but as long as you actually get something out of it it's excuseable.
00:12
< Rhamphoryncus>
abstract base classes
00:12
<@Derakon>
...sounds like interfaces to me~
00:12
< McMartin>
ABCs are allowed to have basic implementations for things too.
00:12
< Rhamphoryncus>
Depending on your definition of interfaces, yes
00:12
< McMartin>
That's the distinction I usually draw.
00:12
< McMartin>
In an "interface" class everything is pure virtual
00:13
<@Derakon>
Ah, so a Python ABC would define fundamental characteristics and leave others up to non-virtual child classes.
00:14
< McMartin>
Yeah, or give default implementations of things in terms of the stuff the child givse.
00:14
< Rhamphoryncus>
The big advantage of an ABC in python is you can register a class after the fact. This lets you define your own ABC and add existing types (like int) to it
00:14
< McMartin>
Like, your generic list ABC can implement a length() that just goes from start() and sees how many times it can call next()
00:14
< McMartin>
For a linked list, that's fine, but you can optimize on array lists.
00:14 * Derakon nods.
00:17
< Rhamphoryncus>
I always have trouble thinking up concrete examples use ABCs/interfaces though
00:17 * Derakon determines that the function that started this whole thing is not, in fact, needed.
00:17
<@Derakon>
Since after stripping away all the optional-and-never-used arguments in its definition (the pasted version was already truncated), it did three things, which its caller could easily do itself.
00:18
< Rhamphoryncus>
Take str vs unicode for instance. It's easy to categorize them together but to actually *use* them together.. no, that's not what the ABC defines. It's a cart before the horse thing
00:18
< Rhamphoryncus>
Same with int/float/Decimal. Even int/long are incompatible. The *only* sane thing to do is to coerce them to the type you wanted in the first place
00:19
< Rhamphoryncus>
Well, in really old python int/long were incompatible. These days they're essentially the same type in two pieces
00:21 shade_of_cpux is now known as cpux
00:22 * Derakon accidentally drags a URL onto iTunes, which assumes it is a podcast.
00:22
<@Derakon>
In fact it is part of Google Maps.
00:22
<@Derakon>
But nice try, iTunes.
00:24 Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has quit [[NS] Quit: Leaving]
01:24 Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has quit [Connection closed]
01:29 Attilla [Some.Dude@Nightstar-e10e3e74.threembb.co.uk] has joined #code
01:29 mode/#code [+o Attilla] by Reiver
02:09 Attilla [Some.Dude@Nightstar-e10e3e74.threembb.co.uk] has quit [[NS] Quit: ]
02:28 SmithKurosaki [Smith@Nightstar-8ff23d84.dsl.teksavvy.com] has quit [Operation timed out]
02:48 SmithKurosaki [Smith@Nightstar-8ff23d84.dsl.teksavvy.com] has joined #code
02:55 cpux is now known as shade_of_cpux
02:57 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
03:04 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
04:10 shade_of_cpux is now known as cpux
05:16 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
05:22 * Vornicus returns home.
05:23
<@Vornicus>
No Kaura. The revision to fix his Python core bug is in.
05:27
< kwsn>
welcome home^_^
05:27 * Vornicus gives kwsn a cheese.
05:27 * kwsn noms
05:30 kaura [kaura@Nightstar-fd82400d.snfc21.sbcglobal.net] has joined #code
05:30
< kaura>
Vorn!
05:31
<@Vornicus>
Your Python core bug has been fixed.
05:31
< kaura>
The language bug?
05:31
<@Vornicus>
Yeah.
05:32
< kaura>
Cool.
05:37
<@Vornicus>
Thought you'd like to know. Anyway, have you made progress on the interpreter thing at all?
05:38
< kaura>
Unfortunately not. Haven't had time this week, due to the new job.
05:40
<@Vornicus>
I did not know about New Job
05:41
< kaura>
Ah? Thought I mentioned it. But, yes! New job! ...so tired. Has me on my feet all day.
05:42
<@Vornicus>
gnark
05:42
<@Vornicus>
But, yay money!
05:43
< celticminstrel>
What bug was that?
05:44
< kaura>
can't def top(), as it's used in the C preprocessor.
05:44
< celticminstrel>
Ah.
05:44
<@Vornicus>
Well, you can
05:45
<@Vornicus>
But the thing is, it has "special behavior", which does some really crazy things.
05:45
<@Vornicus>
def top(a): pass;; def b(): global a
05:45
<@ToxicFrog>
And the problem is not in the C preprocessor, but rather that the Python compiler uses that as the name for "top level code in the compilation unit"
05:45
<@Vornicus>
Would fail with "a is both a parameter and a global in top"
05:49 cpux is now known as shade_of_cpux
06:03 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
06:42 Derakon[AFK] is now known as Derakon
06:58 shade_of_cpux is now known as cpux
06:59 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
07:00 kwsn is now known as kwsn\t-2
07:03 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
07:03 mode/#code [+o Vornicus] by Reiver
07:03 Derakon is now known as Derakon[AFK]
07:17 kwsn\t-2 [kwsn@Nightstar-5a8951e9.res.rr.com] has quit [[NS] Quit: BEEP BEEP IMMA JEEP]
07:38 You're now known as TheWatcher
07:57 Vornicus is now known as Vornicus-Latens
08:07 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
08:23 cpux is now known as shade_of_cpux
08:26 kaura [kaura@Nightstar-fd82400d.snfc21.sbcglobal.net] has quit [[NS] Quit: HydraIRC -> http://www.hydrairc.com <- IRC with a difference]
08:54 You're now known as TheWatcher[afk]
10:00 Attilla [Some.Dude@Nightstar-dc808282.threembb.co.uk] has joined #code
10:00 mode/#code [+o Attilla] by Reiver
10:17 SmithKurosaki [Smith@Nightstar-8ff23d84.dsl.teksavvy.com] has quit [Ping timeout: 121 seconds]
10:19 Rhamphoryncus [rhamph@Nightstar-473f8685.abhsia.telus.net] has quit [Client exited]
11:02 Attilla_ [Some.Dude@Nightstar-741cb75e.threembb.co.uk] has joined #code
11:04 Attilla [Some.Dude@Nightstar-dc808282.threembb.co.uk] has quit [Ping timeout: 121 seconds]
11:11 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code
12:27 Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has joined #code
13:02
< Tarinaky>
Good morning Gentlemen.
13:06
<@jerith>
It is indeed.
13:18
< Tarinaky>
Any Saturday morning is a good morning.
13:19
< Tarinaky>
In python, is there a function equivilent to 'exit(int) from c/c++?
13:19
<@jerith>
sys.exit()
13:19
< Tarinaky>
For example if I detect an unrecoverable error and just want to clean up and die...
13:19
< Tarinaky>
Ahah, thanks.
13:20
<@jerith>
(Don't ever do this from a library, though. But you already know this.)
13:22
< Tarinaky>
the documentation for pygame.font says I should check it's initialised successfully before proceeding and I don't really want to think about what to do if it doesn't work first time.
13:25
<@jerith>
We just call pygame.font.init() and assume it succeeds.
13:26
< Tarinaky>
Yeah. Seemed a bit contradictory that init() didn't return a success/fail when it says it needs to be tested :/
13:26
< Tarinaky>
But I wasn't sure if that was just my coding style.
14:24
< Tarinaky>
The way python makes all of the functions virtual is kinda annoying sometimes.
14:24
< Tarinaky>
Although that's mostly because I'm used to the way constructors work in C++.
14:25 Attilla_ [Some.Dude@Nightstar-741cb75e.threembb.co.uk] has quit [[NS] Quit: ]
14:36
<@jerith>
Why would you ever not want virtual functions?
14:38
< Tarinaky>
Constructors.
14:39
< Tarinaky>
Like I said, I'm used to the way constructors work in C++.
14:39
< Tarinaky>
Each class that it inherits from has its constructor called in turn.
14:40
<@ToxicFrog>
I considered doing that for my current object system.
14:40
< Tarinaky>
So you only have to worry about how it differs from the base class - not initialise -everything-.
14:40
<@ToxicFrog>
Then I realized that some stuff needs to call the superclass constructor before constructing, and some needs to call it after.
14:40
<@ToxicFrog>
Er? You don't initialize everything, you initialize stuff specific to the subclass and at some point call the appropriate superclass constructor.
14:41 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed]
14:41
< Tarinaky>
How do you do that in python? I thought the new __init__ would mask the base class' one?
14:43
<@ToxicFrog>
super(type, self).__init__()
14:43
<@ToxicFrog>
eg, class A(object):
14:43
<@ToxicFrog>
def __init__(self):
14:44
<@ToxicFrog>
super(A, self).__init__()
14:44
<@ToxicFrog>
...other ctor stuff here..
14:44
<@jerith>
Tarinaky: I quite often subclass things to change how they get constructed.
14:44
< Tarinaky>
ToxicFrog: Thanks! That'll save me a lot of pain and unreadible code I'm sure.
14:44
< Tarinaky>
*unreadable
14:45
<@jerith>
So: def __init__(self, foo, bar): super(MyClass, self).__init__(foo*2, bar+1)
15:16 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
15:22
< Tarinaky>
Hmm :/
15:23
< Tarinaky>
AttributeError: 'super' object has no attribute 'on_init'
15:23
< Tarinaky>
Does super not work for 'normal' functions?
15:23
< Tarinaky>
*methods even
15:24
<@ToxicFrog>
No idea
15:24
<@jerith>
super() basically looks up the next thing in the method resolution order.
15:24
<@ToxicFrog>
Are you using 2.x or 3.x?
15:25
< Tarinaky>
2.x
15:26
< Tarinaky>
Ah. I think I might have spotted what it doesn't like.
15:27
< Tarinaky>
Nope. :/
15:27
<@jerith>
Pastebin?
15:27
< Tarinaky>
class engine(demo_engine.engine):
15:27
< Tarinaky>
def on_init(self,Label="widget2.py",Size=(640,640)):
15:27
< Tarinaky>
super(demo_engine.engine,self).on_init(Label,Size)
15:28
<@jerith>
Ah.
15:28
<@jerith>
The first parameter to super() is *this* class.
15:28
<@jerith>
So you want super(engine, self).on_init(...)
15:29
< Tarinaky>
But then how does it know which class to delegate to?
15:29
<@ToxicFrog>
...it delegates to the superclass
15:30
<@jerith>
http://fuhm.net/super-harmful/ -- That's a pretty good explanation.
15:30
< Tarinaky>
I thought the whole point of super was to avoid Fun when using multiple inheritance.
15:30
< Tarinaky>
So I don't quite understand how it knows which class I mean :/
15:30
< Tarinaky>
Without being told explicitly.
15:30
<@jerith>
Tarinaky: It finds the next method in the method resolution order, which is well-defined.
15:32
<@jerith>
So if you inherit from A and B, super().__init__() will call A.__init__(), and its super().__init__() will call B.__init__().
15:33
<@ToxicFrog>
o.O
15:33
<@jerith>
(I forget which order the stuff happens in, because I almost never use multiple inheritance.)
15:35
< Tarinaky>
It's fair to say everyone almost never uses MI. It's still important though >.>
15:37
<@jerith>
I usually calls my superclass methods directly, unless I'm using someone else's classes and they use super().
15:38
< Tarinaky>
Yeah. I can see why >.<
15:39
<@jerith>
Which you can do with SuperClass.__init__(self, foo, bar)
15:39
< Tarinaky>
Yup.
15:39
<@jerith>
(Note that it isn't a bound method at that point, so you need to explicitly pass self into it.)
15:40
< Tarinaky>
But I Knew That Already :p
15:51
< Tarinaky>
So. GUI widgets in SDL - am I better off pulling something off the shelf or doing it myself?
15:55
< Tarinaky>
Baring in mind I don't have a shelf in mind :/
15:58
<@ToxicFrog>
Doing it yourself will give you a vast appreciation for existing GUI libraries.
15:58
<@ToxicFrog>
Which is to say, off the shelf, jesus
15:58
<@ToxicFrog>
If at all possible - last I checked all GUI libraries for SDL were either too simple to be useful or too complicated to be convenient
15:59
<@ToxicFrog>
Which is why I'm using GTK for this game.
16:03
< Tarinaky>
Lol, that bad.
16:06
<@ToxicFrog>
I completely rewrote the UI and rendering stack for this program because I couldn't face rolling my own UI library anymore.
16:09
< Tarinaky>
?
16:09
< Tarinaky>
Oh wait.
16:09
< Tarinaky>
Sorry. I had trouble parsing that sentence.
16:09 * Tarinaky understands now.
16:11 * Tarinaky is still deciding whether to have another crack at trying to build a simple roguelike, except in pygame or to try and do a tbs :/
16:13
<@ToxicFrog>
Rrrgh, I'm right on the cusp of having something usable!
16:17
< celticminstrel>
I'd say it depends what kind of GUI widgets you want,
16:17
< celticminstrel>
Buttons would be pretty simple, but a text edit field... not so much.
16:18
< Tarinaky>
The only place I could conceivably see a text-edit field being used is for entering a character name.
16:19
< Tarinaky>
And it'd only need to be very simple for that.
16:28 kwsn [kwsn@4CA975.91A3EF.86948D.DEDAA8] has joined #code
16:30
<@ToxicFrog>
I need a full on windowing system, so.
16:30
< Tarinaky>
What game are you making anyway?
16:30
<@ToxicFrog>
Felt. A networked card and board game engine.
16:30
< Tarinaky>
Ahah.
16:31
<@ToxicFrog>
The primary use case is networked games of Arkham Horror, Descent: Journeys in the Dark, and Twilight Imperium.
16:32
< celticminstrel>
A one-line text-edit box probably wouldn't be that hard provided you use a monospaced (probably bitmap?) font. Still, it's be harder than a button, I think.
16:33
< Tarinaky>
ToxicFrog: Jesus Christ! That;s very ambitious of you.
16:34 shade_of_cpux is now known as cpux
16:35 kwsn| [kwsn@Nightstar-5a8951e9.res.rr.com] has joined #code
16:37 kwsn [kwsn@4CA975.91A3EF.86948D.DEDAA8] has quit [Ping timeout: 121 seconds]
16:37 kwsn| is now known as kwsn
16:37
<@ToxicFrog>
Tarinaky: fortunately, my sister's boyfriend has already scanned all of the Descent stuff.
16:38
<@ToxicFrog>
The hard part is the networking.
16:38
<@ToxicFrog>
That's almost done, though! I hope to have something testable by the end of the weekend.
16:38
< Tarinaky>
ToxicFrog: Isn't Descent the smallest of the three games?
16:39
<@ToxicFrog>
Not with all the expansions!
16:39
<@ToxicFrog>
And I think Twilight Imperium actually has less stuff than Descent or AH, it's just a much longer and more complex game.
16:43 Zed [Zed@Nightstar-556ea8b5.or.comcast.net] has joined #code
16:43
< Tarinaky>
True.
16:44
<@ToxicFrog>
Anyways. I actually had a working singleplayer prototype less than a month after starting the project, with full Descent support.
16:44
<@ToxicFrog>
The reason it's not done yet is twofold:
16:44
<@ToxicFrog>
- development slowed way down once classes resumed
16:45
<@ToxicFrog>
- I have thus far completed redesigned and rewritten: the UI, the object model (twice), the serialization library, the gamestate semantics, and the synchronization methodology.
16:46 * Tarinaky shrugs.
16:46
< Tarinaky>
I'm sure you made more, faster, progress than I ever have.
16:47
<@ToxicFrog>
Perhaps. All I'm really saying here is that Descent support is the easy part.
16:48
< Tarinaky>
I thought I said that?
16:50
<@ToxicFrog>
s/Descent/game in general/, sorry
16:50
<@ToxicFrog>
I mean, support for Descent or Twilight Imperium or AH or whatever is easier than the program itself
16:53
< Tarinaky>
Hunh. That's odd. mplayer -dumpaudio isn't working when I expected it to.
16:54 Derakon[AFK] is now known as Derakon
17:09
< Zed>
Descent support?
17:09
< Zed>
we talking about the old game?
17:09
<@ToxicFrog>
The board game.
17:09
<@ToxicFrog>
Descent: Journeys in the Dark.
17:09
<@Derakon>
TF is making a networked game table.
17:09
< Zed>
Ah, gotcha.
17:09
< Zed>
That's cool.
17:10
<@ToxicFrog>
The D2X-XL project already has upgraded engines for the FPS well in hand~
17:10
< Zed>
I keep meaning to write a system by which I can network a card table with arbitrary rules
17:11
<@ToxicFrog>
That's basically what this is.
17:11
<@Derakon>
Speaking of networked games, it occurs to me that Taboo is an almost ideal game to be played over voice chat.
17:12
< Zed>
The number of times I've ended up having to code a game to update the same thing on both side and add rulechecking...
17:12
<@ToxicFrog>
It doesn't, in and of itself, enforce any rules; it behaves like an actual table, with the game played by people moving stuff around.
17:12
< Zed>
Derakon: Almost, sure. :)
17:12
<@ToxicFrog>
(although if you're writing a game module, you can always add your own rule checking)
17:12
< Zed>
Toxic: Nod. that's good, too.
17:12
< Zed>
I just meant I wanted to be able to define piles etc.
17:13
<@ToxicFrog>
Oh, yeah, it has stuff like that
17:13
<@ToxicFrog>
Kind of necessary
17:13
< Zed>
discard here, play area is so many cards, stacks, this one autodiscards if you put something on it new, etc.
17:13
<@ToxicFrog>
The basic types it ships with are Token, Deck, Die, Pile, and Spinner.
17:13
< Zed>
Otherwise it starts to look like you're trying to play Cribbage with Bumptop
17:13
<@ToxicFrog>
And Field (basically an independent window which can have things played in it)
17:14
<@ToxicFrog>
Visibility is per-Field, so with, say, poker, there's one field for the deck (visible to: no-one) and one for each hand (visible to: the owner) and if it's hold'em, one for the table (visible to: everyone)
17:14
<@Derakon>
TF: what, no pop-o-matic~?
17:15
< Zed>
...in a computer sense? A die IS a popomatic.
17:15
< Zed>
honestly, though, someone needs to write a good die simulator.
17:15
<@Derakon>
...a good die simulator is not hard.
17:16
<@Derakon>
Unless you want to have realistic rolling physics or something.
17:16
< Zed>
like, fuck RNG as the number determiner. Take a RNG and then put it into a physics module.
17:16
<@ToxicFrog>
The Descent module defines some new types, like Monster (a token that, when moused over, pops up some stats)
17:16
< Zed>
That's what I mean. :)
17:16
< Zed>
either RNG based or mousing
17:16
< Zed>
I want a computer dice simulation. :P
17:16
<@ToxicFrog>
And the core networking/synchronization stuff should be adaptable to other games, even.
17:16
<@ToxicFrog>
Provided you don't need realtime performance~
17:17
< Zed>
Sure - but who plays games in realtime?
17:17 * Vornicus-Latens gives Zed the game "spoons"
17:18
< Zed>
egyptian ratscrew, or speed.
17:18
< Zed>
:)
17:19
<@ToxicFrog>
Heh
17:19
< Zed>
But realtime performance honestly should be feasible if we conceive it from the start for this
17:19
< Zed>
allowing you to play games like Falling
17:19
<@ToxicFrog>
What I mean is, this engine could easily be adapted to stuff that isn't board/card games
17:19 * Zed shrugs
17:19
<@ToxicFrog>
But probably not raquetball or an FPS
17:19
< Zed>
I just want to make a system that can handle a deck of cards and a table. :P
17:20
< Zed>
I want to be able to define rules etc.
17:21
< Tarinaky>
Zed: I don't quite see what you'd get from simulating a die with a PRNG that you wouldn't get from just using a PRNG?
17:21
< Zed>
Tarinaky: what do you do for a living?
17:21
< Zed>
just curious. :)
17:21
< Tarinaky>
Zed: Nothing. I'm unemployed.
17:22
< Zed>
Just curious if you were or weren't an engineer
17:22
<@Derakon>
As soon as you start moving the rules into the computer, you get hellaciously more complicated.
17:22
< Tarinaky>
I'm assuming we're discussing this in the context of playing games.
17:22
<@Derakon>
Humans make excellent rules engines. Leverage them!
17:22 * Zed grins
17:22
< Tarinaky>
Zed: I did 2 years of Physics.
17:22
< Tarinaky>
Zed: Does that count?
17:22
< Zed>
Oh, I didn't mean from the technical side
17:23
< Zed>
I meant the "want to make something so it can be needlessly complicated" side
17:23
< Zed>
:) Answer? You get nothing.
17:23
< Tarinaky>
Ahh.
17:23
< Zed>
Except the possibility of rendering a die. :P
17:23
< Tarinaky>
I was going to point out that dice are less fair than a PRNG because they tend to tumble a constant number of times when rolled by an individual.
17:23
< Zed>
maybe the ability to add a table crack to get the die stuck in? Idunno.
17:24
< Tarinaky>
Hence why Casinos have rules on how one is to roll a die.
17:24
<@ToxicFrog>
Zed: well, you could always grab Felt and add your own rule enforcement :P
17:24
< Tarinaky>
And that cheap dice are oblate rather than regular etc... etc...
17:25
< gnolam>
Speaking of dice and PRNGs: http://gamesbyemail.com/News/DiceOMatic
17:26
<@Derakon>
I remember that.
17:26
< gnolam>
Yup. I've posted it here before. :)
17:27
< gnolam>
And I'm still impressed.
17:27
< Zed>
...somewhere, someone REALLY believed pushing a button and having your computer pretend to roll a die TOTALLY ruined Moraff's World.
17:27
< Zed>
I have to e-mail that guy sometime
17:28
< Zed>
thank him for reinventing a bunch of perfectly good genres into really terrible shareware games
17:28
< Tarinaky>
Who's Moraff?
17:28
< Zed>
Oh. Uh...
17:29
< Zed>
There were a bunch of DOS shareware games by him back in the early 90s
17:29
< Zed>
They were pretty much all bad.
17:29
< Zed>
Dungeon games, platformers, marble simulations
17:29
< Zed>
all of them shoddy
17:29
< Zed>
better than some of MY attempts
17:29
< Zed>
but still bad
17:30
< Zed>
also, his use of the borland BGI libraries for everything made everything he wrote have stupidly high system requirements
17:31
< Tarinaky>
I need to make some dinner, quickly.
17:31
< Tarinaky>
Later.
17:32
< Zed>
see ya. :)
17:32
< Tarinaky>
Microwave engaged.
17:33
< Tarinaky>
Oh. Apparently Mandlebroit is dead btw.
17:33
< Tarinaky>
Wikipedia finally got updated with the news so it must be true.
17:36
< Tarinaky>
*Mandlebrot
17:40 Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
17:58
< gnolam>
*Mandelbrot
18:09 Derakon is now known as Derakon[AFK]
18:13
< celticminstrel>
I seem to remember a few games that were good amongst the Moraff games.
18:44 Rhamphoryncus [rhamph@Nightstar-473f8685.abhsia.telus.net] has joined #code
19:03 SmithKurosaki [Smith@Nightstar-8ff23d84.dsl.teksavvy.com] has joined #code
19:19
< Zed>
Minstrel: which? :)
19:21
< celticminstrel>
I think they were Escapade and an arkanoid clone? I don't quite remember.
19:27 Derakon[AFK] is now known as Derakon
19:37 SmithKurosaki [Smith@Nightstar-8ff23d84.dsl.teksavvy.com] has quit [Ping timeout: 121 seconds]
19:37 SmithKurosaki [Smith@Nightstar-8ff23d84.dsl.teksavvy.com] has joined #code
21:24 You're now known as TheWatcher
22:08 cpux [chatzilla@Nightstar-c978de34.dyn.optonline.net] has quit [Connection closed]
22:17 cpux [chatzilla@Nightstar-c978de34.dyn.optonline.net] has joined #code
22:39 Rhamphoryncus [rhamph@Nightstar-473f8685.abhsia.telus.net] has quit [Client exited]
22:53 Vornicus-Latens is now known as Vornicus
23:59 kwsn is now known as kwsn-ON-WISCONSIN
--- Log closed Sun Oct 17 00:00:23 2010
code logs -> 2010 -> Sat, 16 Oct 2010< code.20101015.log - code.20101017.log >