I guess I do tend to use systems in unexpected ways, and I get some satisfaction
when this reveals a flaw. For example, I remember having fun while visiting my
sister and playing with a `shoot-em-up' game that my nephew showed me.
Since I'm kind of a pacifist, I tried shooting bullets at the wall, instead of
trying to kill the hidden attackers. Sure enough, I could spell my name on that
wall, by making bullet holes in an appropriate pattern. But later when I came back
to that same position, after wandering around further in the game, my name was gone!
I think that was a bug in the software.
I love this. Especially the fact that he wrote was probably doing the only thing he wanted to do in the game, and was foiled by the fact that the game programmers didn't dedicate extra memory to saving environmental damage throughout a level.
I doubt it was a bug. The developers will have set either a time limit on each decal or will have a maximum number of decals that can exist in any level.
It's definitely designed that way (in Halo 1 on my Mac, you could watch while shooting at something, and see the old damage go away in real time after a couple magazines of ammo were expended).
Modern games on modern systems are getting better, but there's always a limit as to how much data will fit into RAM during a given scenario/level while still keeping everything else running smoothly.
I was really disappointed with something like this in a game I was playing last week. In The Unfinished Swan, after you get a certain number of bonus points, you unlock a power that lets time freeze for the objects you throw in game so you can have tons of objects queued up to go all over the place when you unfreeze.
What I was trying to do was use the frozen in space objects to sort of paint in mid-air the area I was in. Unfortunately after about a 100 or so, the game removed the oldest dropped object with each new one placed.
It depends on your definition of "bug." If you mean a feature that causes an unintended result, then this probably doesn't qualify. But if you mean a feature that causes an incorrect result, then you could make an argument that this qualifies, although it seems abundantly obvious to me that this is a purposeful compromise to deal with technical limitations.
Do you prefer freedom or order? Do you prefer one way to do a single thing, or a thousand ways to reach the same goal?
(a) Freedom AND order. (b) I guess I prefer maybe three ways, having different characteristics, together with the knowledge of how to convert each of them into the other two.
I'm (slowly) moving through ACP at this time. Definitely not night-stand reading! The clarity of his thought is impressive and shines through on the pages of his books; reading and doing the exercises in his books has made a noticeable impact on my own thinking, not just in my Mathematics or programming!
7 Volumes though! I've got the boxed four set, at the rate with which I'm progressing I'm sure he'll have the other three finished, lol.
I got an impression that it is more encyclopedic work, rather than textbook suitable for cover-to-cover reading. For latter case, Skiena or even CLRS would be more appropriate. Well, unless you're interested specifically in representing algorithms in pseudo assembly language.
Have you read them? Because so far it has only been encyclopedic (to me) because of the vast amount of material he covers, and the depth with which he covers it.
Aside from that, his writing style is actually conversational and clear to follow; he includes numerous exercises and strongly recommends the reader to do them. He also clearly marks which exercises are appropriate for more Mathematically enclined readers vs. Programmers wanting to level up.
Don't get me wrong, it's thick material, but his exposition of it is clearly well thought out and there's an easy-to-follow path between the topics and ideas he covers. Unlike most encyclopedias which are generally a repository of knowledge with loose links between topics and concepts.
I've skimmed it. I might have read it if not that pseudo asm - I was more genuinely interested in algorithms, rather than how they fit in pseudo registers and etc...
It is not an encyclopedia per se, and yes, it has substantial narrative, but it is as other sources mention - e.g. in CLRS it is explicitly referenced as "encyclopedic work".
Funny how extraordinary people often seem to have extraordinary hobbies:
The irony is that computer science nearly lost Knuth to its ranks because of his love of music (his house is built around a two-storey pipe organ that he designed himself) and says he intends to return to it once he has completed the expected seven volumes of ‘The Art of Computer Science’.
I'm reminded of Knuth's six character critique of C++...
a < b > c;
(from Dr. Dobbs, many years ago)
Can you determine the function of that statement without knowing the types of the variables? No? That's because there's a parse problem in C++. If they had only used, say, [< and >] rather than < and > for template declaration, it could have parsed cleanly. Overloading operators for unrelated functionality is a dangerous and usually unnecessary practice.
There's a fantastic video autobiography of Donald Knuth [1] that includes a good transcript for people like me who would rather read. This has been discussed [2] on HN previously and would be one of the links I wouldn't mind seeing again. In searching for previous discussions I found a 73 page transcript of an interview of Knuth by Edward Feigenbaum of Stanford that will likely eat up part of my afternoon.
I think existing incentives are working fine, except of
course that I wish more people would discover the
advantages of literate programming.
The problem, is, in my opinion is that programmer believes in the beauty of code itself, and literate didn't allow to write beautiful code easily.
It helps to write beautiful documentation.
Maybe a tool allowing literate and inverse literate programming to propagate modifications in code or in documentation on both directions may allow a better adoption?
I bet the game he is talking about is Duke Nukem 3D and he is wrong. Saving the bullet holes only long enough for them to be enjoyable but not long enough to run out of memory was completely awesome touch.
24 comments
[ 2.5 ms ] story [ 91.9 ms ] threadModern games on modern systems are getting better, but there's always a limit as to how much data will fit into RAM during a given scenario/level while still keeping everything else running smoothly.
What I was trying to do was use the frozen in space objects to sort of paint in mid-air the area I was in. Unfortunately after about a 100 or so, the game removed the oldest dropped object with each new one placed.
(a) Freedom AND order. (b) I guess I prefer maybe three ways, having different characteristics, together with the knowledge of how to convert each of them into the other two.
7 Volumes though! I've got the boxed four set, at the rate with which I'm progressing I'm sure he'll have the other three finished, lol.
Aside from that, his writing style is actually conversational and clear to follow; he includes numerous exercises and strongly recommends the reader to do them. He also clearly marks which exercises are appropriate for more Mathematically enclined readers vs. Programmers wanting to level up.
Don't get me wrong, it's thick material, but his exposition of it is clearly well thought out and there's an easy-to-follow path between the topics and ideas he covers. Unlike most encyclopedias which are generally a repository of knowledge with loose links between topics and concepts.
It is not an encyclopedia per se, and yes, it has substantial narrative, but it is as other sources mention - e.g. in CLRS it is explicitly referenced as "encyclopedic work".
TAOCP:Computer Science::Gray's Anatomy:Medicine
The irony is that computer science nearly lost Knuth to its ranks because of his love of music (his house is built around a two-storey pipe organ that he designed himself) and says he intends to return to it once he has completed the expected seven volumes of ‘The Art of Computer Science’.
a < b > c;
(from Dr. Dobbs, many years ago)
Can you determine the function of that statement without knowing the types of the variables? No? That's because there's a parse problem in C++. If they had only used, say, [< and >] rather than < and > for template declaration, it could have parsed cleanly. Overloading operators for unrelated functionality is a dangerous and usually unnecessary practice.
[1] http://www.webofstories.com/play/donald.knuth/1 [2] https://news.ycombinator.com/item?id=3389980 [3] http://archive.computerhistory.org/resources/text/Oral_Histo...
They weren't saved long enough to be enjoyable to Don.