Slashdot Mirror


First Person Shooter - Under 100KBs of Code

Cariad Ilmara writes "For those of you old-timers who spent days & nights trying to get your code fit into 64Kb, here's the first beta of .the .produkkt's next FPS: .kkrieger. Moderately beautiful, what's impressive is it can fit inside the UT2004 readme. The demo is 96Kb zipped. All textures are procedural and generated at startup. Screenshots available here, here, here, here, and here. You still need a relatively recent computer (~1.4Ghz, 512MB RAM) and a DirectX8 GPU (Windows required)."

177 of 741 comments (clear)

  1. wow by Anonymous Coward · · Score: 3, Insightful

    amazing

    1. Re:Wow by rmsousa · · Score: 2, Informative

      Doom won't fit in a floppy disk. I believe the shareware version takes two or three disks...

      Wolfenstein, maybe

    2. Re:Wow by Knight+Thrasher · · Score: 2, Informative

      Yeah, I guess a couple of floppies would be Doom. Wolfenstein is what I was thinking of, there we go. Sorry, my memory on the games I played when I was 6 is bad. ^_^

    3. Re:Wow by Welsh+Dwarf · · Score: 2, Informative

      5, first encounters (elite 3) was 3. I got both at the same time, and thought they were huge :)

      --
      Ask 8 slackers a question, get 10 awnsers (a citation, but I can't remember from who)
    4. Re:wow by Chilliwilli · · Score: 4, Interesting

      No so much a compression algorithm as a way of procedurally generating textures. Theoretically using this technique a games company could ship a game and the user could decide at the other end what size and detail they want their textures to be. This would have benefits as the textures would be scalable to suit users hardware and only one set would need be distributed in a small vector/algorithm/macro form. If more game distribution was moved to online electronic form then this would certainly be something worthy of consideration by the developers.

      --
      Cure cancer.. and stuff! www.team45.info
    5. Re:wow by Chilliwilli · · Score: 4, Insightful

      That is not the result of the procedures being stored procedurally but merely due to having a highly (size) optimised engine. If you look at the quality of the textures you will see that that aren't subpar.. the delights of procedurally stored textures as opposed to bitmap textures include smaller file sizes and when careful written, full scalability. It has parallels with vector graphics icon sets versus bitmap icon sets.

      --
      Cure cancer.. and stuff! www.team45.info
    6. Re:wow by Pxtl · · Score: 2, Interesting

      Amen. Those shots just startled me. When I read the description, I was expecting something like Cube (wouter.fov120.com/cube). Cube was super-high efficiency - small engine, simple mapping system, simple networking. Cube used jpegs for textures - fsck quality, I like small games. It was a good idea. But this game is gorgeous. It shows how much graphical power DX comes with out-of-the-box.

    7. Re:wow by LoRdTAW · · Score: 2, Interesting

      "Theoretically using this technique a games company could ship a game and the user could decide at the other end what size and detail they want their textures to be."

      This definatly would be an excellect idea. Think about it when you buy the game you could specify low rez 128x128 textures for a low end machine or 512x512 high rez or even bigger for cutting edge systems. and maybe throw a few variables in there to make shure the textures come out a little different for each person so the game is never the same on any two machines. And of course the first time the textures are generated they are written to disk as a cache so a user doesent have to wait hours to generate hundreds of textures or have gigabytes of ram. Could also apply this system to vary skin textures on models so all the in game characters never look the same. You could also generate more then one wood texture in a scene so the wooden floor in an old mansion will look totally different throughout the entire mansion and not just a repeat of the same texture over and over. would require allot of power but pc evolve so fast that in a few years we might be downloading games under 10 megs in size that generate all terrain, models and textures on the fly so the game never looks the same but always plays the same (maybe that can be dynamic too!).

  2. 2K raytracer by ggambett · · Score: 5, Interesting

    Not as impressive, but there's a software raytracer with shadows and recursive reflection which generates .PBM images - in 2K of C source, with no libraries required.

    http://www.mrio-software.com/2k_raytracer.php

    1. Re:2K raytracer by Prothonotar · · Score: 2, Interesting

      It compiled to 10310 bytes on my system. Dynamic library dependancies were as follows: libstdc++.so.5, libm.so.6, libgcc_s.so.1, /lib/libgcc_s.so.1, libc.so.6, /lib/ld-linux.so.2

      --
      "Every man is a mob, a chain gang of idiots." - Jonathan Nolan, Memento Mori
    2. Re:2K raytracer by Abcd1234 · · Score: 2, Informative

      Not to belittle the man's efforts, but a raytracer is *incredibly* simple, algorithmically... hell, I could (and did) write a basic one that renders the classic reflective sphere on a checkerboard (with shadows) in an afternoon. Sure, making it small requires a few tricks, but, honestly, I've seen much more impressive things.

    3. Re:2K raytracer by Kombat · · Score: 5, Insightful

      Have you actually read the source code to that thing? I downloaded it out of curiousity, here's a tidbit of the main() function:


      int main (void) {
      char b[99];
      int W=GN,H=GN,i,n;
      nl=GN;ns=GN;
      _f x,y;
      F(nl) RP(LI)
      F(ns) {RP(SI.c) SI.r=GN; RP(SI.l) SI.f=GN;}
      char* s = new char[(n=W*H*3)];
      memset(s,0,n);
      PT p={0,0,CZ},q={0,0,0},c; ...


      Skipped the class on "meaningful variable names," did we?

      While a 2K raytracer is marginally impressive, a 5K raytracer with readable source code would be far MORE impressive, IMHO.

      --
      Like woodworking? Build your own picture frames.
    4. Re:2K raytracer by alexandre · · Score: 2, Funny

      Here you go, a raytracer in postscript: (These people really scare me :-)

      %!IOPSC-1993 %%Creator: HAYAKAWA Takashi<xxxxxxxx@xx.xxxxxx.xx.xx> /C/neg/d/mul/R/rlineto/E/exp/H{{cvx def}repeat}def/T/dup/g/gt/r/roll/J/ifelse 8
      H/A/copy(z&v4QX&93r9AxYQOZomQalxS2w!!O&vMYa43d6 r93 rMYvx2dca!D&cjSnjSnjjS3o!v&6A
      X&55SAxM1CD7AjYxTTd 62rmxCnTdSST0g&12wECST!&!J0g&D1 !&xM0!J0g!l&544dC2Ac96ra!m&3A
      F&&vGoGSnCT0g&wDmlv GoS8wpn6wpS2wTCpS1Sd7ov7Uk7o4Qk dw!&Mvlx1S7oZES3w!J!J!Q&7185d
      Z&lx1CS9d9nE4!k&X&M Y7!&1!J!x&jdnjdS3odS!N&mmx1C2wE c!G&150Nx4!n&2o!j&43r!U&0777d
      ]&2AY2A776ddT4oS3oS nMVC00VV0RRR45E42063rNz&v7UX&UO zF!F!J![&44ETCnVn!a&1CDN!Y&0M
      V1c&j2AYdjmMdjjd!o& 1r!M){( )T 0 4 3 r put T(/)g{T(9)g{cvn}{cvi}J}{($)g{[}{]}J}J
      cvx}forall/ moveto/p/floor/w/div/S/add 29 H[{[{]setgray fill}for Y}for showpage

    5. Re:2K raytracer by hode · · Score: 2, Funny

      If all code was written this way, even microsoft would not be so protective of their source.

    6. Re:2K raytracer by Lehk228 · · Score: 2, Informative

      funny thing is that without any knowledge of raytracing I was able to chop it down to 1,855 bytes, some of the variables that are #defined are only used once, (they are defining numbers to var names, good practice while coding, but bad if only used once or twice and you are going for small source, I also removed all the line breaks since the compiler only cares about ; except for preprocessor instructions.

      --
      Snowden and Manning are heroes.
    7. Re:2K raytracer by HoppQ · · Score: 3, Interesting

      begin-base64 644 raytracer.ps
      JSFJT1BTQy0xOTkzICUlQ3JlYXRvcjogSEFZ QUtBV0EgVGFrYX NoaTx4eHh4
      eHh4eEB4eC54eHh4eHgueHgueHg+IAovQy9uZW cvZC9tdWwvUi 9ybGluZXRv
      L0UvZXhwL0h7e2N2eCBkZWZ9cmVwZWF0fWRlZi 9UL2R1cC9nL2 d0L3Ivcm9s
      bC9KL2lmZWxzZSA4CkgvQS9jb3B5KHomdjRRWC Y5M3I5QXhZUU 9ab21RYWx4
      UzJ3ISFPJnZNWWE0M2Q2cjkzck1ZdngyZGNhIU QmY2pTbmpTbm pqUzNvIXYm
      NkEKWCY1NVNBeE0xQ0Q3QWpZeFRUZDYycm14Q2 5UZFNTVDBnJj Eyd0VDU1Qh
      JiFKMGcmRDEhJnhNMCFKMGchbCY1NDRkQzJBYz k2cmEhbSYzQQ pGJiZ2R29H
      U25DVDBnJndEbWx2R29TOHdwbjZ3cFMyd1RDcF MxU2Q3b3Y3VW s3bzRRa2R3
      ISZNdmx4MVM3b1pFUzN3IUohSiFRJjcxODVkCl ombHgxQ1M5ZD luRTQhayZY
      Jk1ZNyEmMSFKIXgmamRuamRTM29kUyFOJm1teD FDMndFYyFHJj E1ME54NCFu
      JjJvIWomNDNyIVUmMDc3N2QKXSYyQVkyQTc3Nm RkVDRvUzNvU2 5NVkMwMFZW
      MFJSUjQ1RTQyMDYzck56JnY3VVgmVU96RiFGIU ohWyY0NEVUQ2 5WbiFhJjFD
      RE4hWSYwTQpWMWMmajJBWWRqbU1kampkIW8mMX IhTSl7KCApVC AwIDQgMyBy
      IHB1dCBUKC8pZ3tUKDkpZ3tjdm59e2N2aX1KfX soJClne1t9e1 19Sn1KCmN2
      eH1mb3JhbGwvbW92ZXRvL3AvZmxvb3Ivdy9kaX YvUy9hZGQgMj kgSFt7W3td
      c2V0Z3JheSBmaWxsfWZvciBZfWZvciBzaG93cG FnZQo=
      ====

      That's the same thing corrected (the original was mangled by slashcode) and base64-encoded, which doesn't care about extra spaces inserted by slashcode. Decode with uudecode(1) or something else.

      --
      My sig will be released in 2015 third quarter. Rating pending.
  3. Sure would be nice by Heem · · Score: 3, Insightful

    Sure would be nice if programmers around the world would at least follow this guys lead a little bit. I'm so sick of bloated software. For example - CD Writing software for windows. Does anyone need or even want all the dang crap that comes in those?

    --
    Don't Tread on Me
    1. Re:Sure would be nice by petard · · Score: 2

      Heh. It's unlikely that anyone needs all "the dang crap" that comes with [fill in the blank] program for Windows. It is very likely, however, that some subset of the software company's paying customers wants each one of the features that you consider bloat. Removing the bloat would be turning down money on the part of the program's authors. Presumably, it would entail turning down more money than they're driving away by producing software that you consider "bloated". Especially since most people just buy the bloated software while complaining about bloat, whereas people won't buy software that doesn't do what they want at all. (e.g. If someone wants a CD burning package that includes a label editor, they won't buy one that doesn't. If someone wants just a CD burning package they're unlikely to refuse the "best" one just because it also includes a label editor they don't want.)

      --
      .sig: file not found
    2. Re:Sure would be nice by noselasd · · Score: 4, Insightful

      No.
      It pretty much depends on what the code does as well. If you have a
      really cool way of computing the normals of thousands of polygons in 10
      lines of code, that might be _alot_ slower than a great algorithm doing it in 100 lines.
      By your argument, the code in the story should run 100'ds of times faster than any of the recent commercial FPS games..

    3. Re:Sure would be nice by Quarters · · Score: 2, Informative

      In a word, "no". If I write a small tight efficient graphical effect routine (e.g. a glow effect) that runs on the CPU it is still going to be slower than a glow pixel shader that runs on the GPU. The GPU code doesn't even need to be as small and efficient in order to run faster. The GPU is a better solution to use in that instance. High performance games rely on proper use of machine resources; graphic effects and polygon T&L on the GPU, sound processing on the DSP on the sound card, etc.... Those decisions are equally, if not more, important than a highly optimized routine to accomplish something.

    4. Re:Sure would be nice by Kenja · · Score: 2, Insightful
      "For example - CD Writing software for windows. Does anyone need or even want all the dang crap that comes in those?"

      Lets see, Golden Hawks CDR software comes in at 688k. Cant realy see them getting much smaller then that. Then again, if you can't handel a 688k program, what are the odds you have a use for a CDR drive?

      --

      "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    5. Re:Sure would be nice by stratjakt · · Score: 2, Insightful

      No, this isn't true. Often optimizing for speed is at odds with optimizing for size. They're (with exceptions) mutually exclusive. Pick one of the two, not both.

      Statically linked binaries are a tad faster than dynamic ones.

      Pixel shader effects are SLOW. Look at Halo PC as an example, and all of the bitching from gamers about "how shitty they ported it". The GPU has to do maybe 200 times the work per pixel.

      Using static arrays, prerendered graphics (whats faster, raytracing the pieces for your chess game on the fly, or using some premade bitmaps) speeds things up.

      How about an example from something I wrote, back in the day of 486s that didnt necessarily have a FPU..

      It was a 3D app for a class project, a goldfish swimming around in a tank. I wanted his fins and tail to 'ripple' in sort of an undulating way. I figured the best way to do it would be to offset some of the vertexes, following a sine wave over time.

      So, first I wrote something like this:

      for (each fin)
      for (each vertex)
      yoffset = yoffset + sin(t + (180 * VertexNumber));

      That approach worked, sort of, the fins moved like I wanted them too. The binary was tiny, since the sin function lives elsewhere. But it was slow as hell, especially on machines with no FPU.

      What I went with was a lookup table, like this:

      Create an array of 1080 entries (so I could follow sin's to a quarter degree)

      Fill the array with values of the sin function

      Replace calls to sin() with a simple array lookup.

      It was orders of magnitude faster. Of course, the running size was larger with a big array of floats. Startup time still bothered me, so I eventually put the entire array of values into a header, which made the code much larger.

      You would call it bloat if all you looked at was code size, but I got an A because mine was the only fish with wiggly fins who rendered (in software mesa on el cheapo lab machines circa 1996) in realtime with 8 independent lights rotating around him (also thanks to my sin lookup table). He did backflips too.

      --
      I don't need no instructions to know how to rock!!!!
    6. Re:Sure would be nice by tricops · · Score: 2, Informative

      Someone else mentioned goldenhawks, but another nice (and even smaller if you ignore the help file) cd burner is burnatonce. Nice, relatively simple, and small.

      --
      (\(\
      (^v^)
      (")")
      This is the cute vorpal bunny virus, copy to your sig or runaway, runaway in fear!
    7. Re:Sure would be nice by timeOday · · Score: 4, Insightful
      If it's a commercial game, it's going to ship on a CD-ROM, or more and more on DVD-ROM these days (like UT2k4).
      Or maybe it will download to a cellphone, or in a Flash game on the web.
    8. Re:Sure would be nice by bluesnowmonkey · · Score: 5, Insightful

      You should be more respectful. Making demoes or (MY GOD) a playable game of such incredible quality in so little code would require an intimate, masterful understanding of almost every aspect of computer science. These guys are VIRTUOSOS. I don't think they're trying to make a commercial game, anyway, so quit comparing it to that. They're trying to shame the rest of for our pathetic coding skills, and let me be the first to say, "Mission accomplished."

    9. Re:Sure would be nice by russellh · · Score: 2, Informative

      Frankly, who cares?

      Hey, we care! After all, the blurb did, in fact, say For those of you old-timers who spent days & nights trying to get your code fit into 64Kb. That must not apply to you.

      --
      must... stay... awake...
    10. Re:Sure would be nice by tprime · · Score: 3, Insightful

      More than anything this game serves to prove a point with the illegible vars and "cheating" by using directx. Games don't HAVE to be huge to be good. The games I have played recently come on 2 cds and often take up over 1.3GB for the installation.

      Will all games be this size? Do the games need to fit on a floppy? No, but a happy medium would be nice. It just seems odd that Microsoft bloated their OS with all this stuff that no one seems to fully utilize and developers, because they don't use the OS to its potential, bloat their software further.

      Maybe I am easily amused, but either way what these guys did was impressive

      --
      http://www.tomandemily.com
    11. Re:Sure would be nice by Minna+Kirai · · Score: 2, Insightful

      Actually, do I want to wait 20 minutes for the game to compute all textures at startup? Nope, I'd rather have static data ready to go.

      Wrong. Computing a texture from a few input params can often be faster than loading it from disk. (The disk-based texture is probably in a compressed format, PNG prehaps, so it'll also take computation to load, beyond the actual IO delay)

      Many recent FPS games have horrendously slow load times (50 sec even on a powerful PC) due mainly to all the high-res textures. This is especially bad if you're loading straight from optical disc (as with a Playstation2)

    12. Re:Sure would be nice by Cannelbrae · · Score: 2, Insightful

      Right! The linux code should be just as simple to follow as your average bash script.

      After all, most code out there is properly engineered, with all of the planning done up front, with requirements defined at the beginning of the project and remaining the same through the end.

      It isn't like games get tweaked or redesigned daily, as people on the team realize what is fun and what isn't. ;)

    13. Re:Sure would be nice by rossjudson · · Score: 2, Insightful

      In the more distant future, bitmap textures are probably going to become somewhat obselete. The shader languages supported by high-end cards can do a ton of procedural texture generation during rendering, which is a much better place to do it. I expect that someday we'll see shader libraries, just like we see in the static rendering world, that can produce most of the textures needed.

      Of course, textures themselves are a poor substitute for dynamically generated geometry, in most cases. If you're looking at a brick wall, there's the texture of the actual bricks (each physical brick), and that's best handled with procedural textures. Then there's the interlocking nature of the bricks themselves, with the mortar, which is optimally handled by dynamic geometry generation or depth maps.

      Smooth interpolation between bitmap -> procedural -> geometry texturing is where we'll end up eventually. Shader languages are the way to go.

    14. Re:Sure would be nice by Knos · · Score: 4, Insightful

      Domain specifications, requirements and design methodologies are not computer science, but software engineering. Which is separate from the real science in computer science, which is what I would shorthand as the Art of Algorithms.

      --
      . . . . . . . .. . . . . . . .
      may u!sh 2 sm!le at dz!z bad nn.!m!tat!ion
    15. Re:Sure would be nice by myrdred · · Score: 2, Insightful

      Or maybe it will download to a cellphone, or in a Flash game on the web.

      A cellphone with a CPU of ~1.4Ghz, 512MB RAM and a DirectX8 GPU?

  4. Windows only? by elid · · Score: 5, Funny

    A produkt made by .the .produkkt won't run in KDE!?

    1. Re:Windows only? by G-funk · · Score: 2, Informative

      Not to mention the other requirements:

      A 1.5GHz Pentium3/Athlon or faster.
      - 512MB of RAM (or more)
      - A Geforce4Ti (or higher) or ATI Radeon8500 (or higher) graphics card
      supporting pixel shaders 1.3, preferably with 128MB or more of VRAM.
      - Some kind of sound hardware
      - DirectX 9.0b

      And I can assure you, a GF4Ti does _not_ cut it unless you call 2-5fps acceptable. *sigh*

      --
      Send lawyers, guns, and money!
  5. Torrent file by Anonymous Coward · · Score: 5, Funny

    I was about to make a torrent for the game, but then i realized the torrent would probably be bigger than the file itself ;)

    1. Re:Torrent file by prat393 · · Score: 2, Funny

      It's an obvious ploy to keep their server load down - the next step is trying to make it small enough that it can fit in an IP header.

    2. Re:Torrent file by beegle · · Score: 2, Funny

      Someone had to do it. Get your .torrent here

      --
      --
    3. Re:Torrent file by beegle · · Score: 2, Informative

      For the record, the torrent that I created was a whopping 188 bytes. Which is to say that the http overhead is probably larger than the file size. Hell, the TCP overhead is close.

      --
      --
  6. Wow by Knight+Thrasher · · Score: 2, Insightful

    Suddenly, I'm taken back to the days of Doom, where I can fit a FPS onto a floppy disk. Sweet.

  7. 96k by bubkus_jones · · Score: 5, Funny

    And it's still too much for my computer.

  8. Re:awesome... now only if they'd do this for linux by dustmote · · Score: 3, Interesting

    awesome... now only if they'd do this for linux

    I would think that it might be kind of difficult to move this code across platforms if it's optimized that much, wouldn't it? ------didn't RTFA

    --


    -1, "1337" speak
  9. 64 Kb by Distan · · Score: 2, Funny

    Old timer? 64 Kb?

    For my first paid programming gig, I had to stay within 8 Kb. You young whippersnappers with 64 Kb had it easy!

    1. Re:64 Kb by grub · · Score: 3, Interesting


      Back in school we had a 6502 development kit. We had to flip a 8 switches (bits, this had a staggering 256 bytes of memory) to set the address and another 8 for the data then hit a button to load the data into RAM. Once it was all done we set the address toggles to the start point of the program and hit an execute button. The output was 2x 7 segment LEDs..

      I seriously almost bought one for home to tinker with but it was a few hundred dollars and I was a starving student..

      --
      Trolling is a art,
    2. Re:64 Kb by shystershep · · Score: 5, Funny

      Oh, you had two rocks, did you? I only had one, and had to bang it against my head. And I liked it!

      Wait a minute . . . what were we talking about?

      --
      The bigotry of the nonbeliever is for me nearly as funny as the bigotry of the believer. - Albert Einstein
    3. Re:64 Kb by Morthaur · · Score: 5, Funny

      Right. I had to get up in the morning at ten o'clock at night half an hour before I went to bed, drink a cup of sulphuric acid, work twenty-nine hours a day sorting punch cards for an S/360, and pay IBM for permission to come to work, and when I got home, my mum and dad would kill me and dance about on my grave singing Hallelujah.

      And you try and tell the young people of today that
      ..... they won't believe you.

      --

      +++++++
      "Look, dear, it's a crazy hairy scary man!"
    4. Re:64 Kb by PorscheDriver · · Score: 2, Funny
      Bytes! When I were a lad, me and my 23 brothers and sisters had ter share 3 bits between the lot of us.

      But we were 'appy!

      --
      "This is your life, and it's ending one second at a time."
    5. Re:64 Kb by dhuff · · Score: 2, Funny

      Bits ?! You youngsters and your 1's and 0's. Back in my day we just had 0's, and we liked it that way...

  10. No Directx 8.1? by RichM · · Score: 5, Interesting

    For those of you who don't have a GPU with pixelshaders, you can try the original which started the whole thing, the 64kb fr-08: http://www.theproduct.de/

  11. Re:awesome... now only if they'd do this for linux by SamiousHaze · · Score: 5, Funny

    awesome... now only if they'd do this for linux Hell, It wouldn't be all that much code to port.

  12. Amazing Screenshots by william_lorenz · · Score: 2, Interesting

    These screenshots are amazing. Does anyone know more about the fact that "textures are procedural" and how they're able to use this method to compact things down into such a little distribution?

    1. Re:Amazing Screenshots by eddy · · Score: 5, Informative

      Google 'Perlin Noise'. Read 'Procedural' as 'described mathematically'.

      --
      Belief is the currency of delusion.
    2. Re:Amazing Screenshots by pe1rxq · · Score: 2, Informative

      Simple, instead of an image you simply include a piece of code that generates it think of it like those small programs that create enormous fractal images.

      Jeroen

      --
      Secure messaging: http://quickmsg.vreeken.net/
    3. Re:Amazing Screenshots by 3Suns · · Score: 2, Interesting

      I believe it's a trick borrowed from the demo scene. In extremely size-critical styles of demo, such as 64k intro, coders create textures, models, and even music at runtime, rather than storing these as bitmaps, vector lists, or midi/mp3. Usually they are created with some fractal-type function.

      I assume the models, levels, and sounds for this game are pregenerated and stored in some efficient format. Textures are pretty easy to generate with a fractal.

      What impresses me most about those screenshots are the really cool lighting effects. It appears they have implemented realtime shadows, luminance maps, and other really difficult techniques.

      --

      -3Suns

      ~~~~
      The Revolution will be Slashdotted
    4. Re:Amazing Screenshots by Funk_dat69 · · Score: 4, Informative

      Um, I'm hoping you're not suggesting procedural textures originated in the demo scene.

      Ever heard of Ken Perlin?

      Programmer who actually won an Academy Award for basically inventing this?

      Anyone?

      --
      FUNK!
    5. Re:Amazing Screenshots by AnwerB · · Score: 2, Interesting

      There's a nice 23-page pdf of an (iterative fractal) procedural textures examples at:

      http://www.uno.edu/~SAGES/presentations/Riddleof th eSphinx.PDF (warning: huge 1.9MB pdf file).

      There's also an example in the file of fractal compression of topographic maps. Something like this could be used to provide any level of datail to a surface, as long as you knew the statistics of the texture, and defined some 'binding points'. So you just need to fill in the rough details of the mountain, not the actual matrix defining it:

      E.g. 1000m high at [55,-92], 0m at [444,17], 0m at [-90,200], Hausdorff dimension 2.3 (Alps), or 2.15 (Rockies).

      The file also list some example uses for the fractal texturing methods, such as background noise generation for missile tracking, stock market fluctuation simulations, expected word frequency in written text, lung destruction patterns from smoking, percolation, etc.

    6. Re:Amazing Screenshots by HokieJP · · Score: 2, Funny

      Ok, if we're giving out props, I think big ups need to be given to my boys Gaston Julia, Benoit Mandelbrot, Georg Cantor, and Aleksandr Lyapunov. Lately Stephen Wolfram has been doing similar work.

      Seriously, this concept did not originate in CS.

  13. There's a book by Guy-Lecky-Thompson... by tcopeland · · Score: 5, Interesting

    ...Infinite Game Universe: Mathematical Techniques that talks a lot about how to have a varied game universe while keeping size requirements under control.

    One of the techniques he discusses is using a psuedorandom number generator to create game objects and attributes and such, and shipping the game with a couple of pregenerated seeds to start up the generators. He uses the game Elite a lot in his examples, and anyone who's played that game knows what a good job they did in that regard.

    It's an interesting approach, especially when contrasted with WAD files.

    1. Re:There's a book by Guy-Lecky-Thompson... by permaculture · · Score: 2, Informative
      I googled for 'elite trading game' and found it. Get it free here.

      There's a newsgroup too: alt.fan.elite. I can't find who wrote the game, though.

      --
      Environmentalism is the new Victorianism. Everyone ties on a green corset and pretends we're virtuous.
    2. Re:There's a book by Guy-Lecky-Thompson... by GigsVT · · Score: 2, Interesting

      Nethack et al do the same thing. It's cool that they are random from game to game, but once generated, they are persistant.

      Back in the day, Telengard for the commodore did this too, except it made the levels very huge, and the same from game to game, so that the level was always the same for everyone, but it was never stored anywhere, it was only generated from the "seed", which never changed.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    3. Re:There's a book by Guy-Lecky-Thompson... by cubic6 · · Score: 3, Interesting

      Another great game that used a lot of mathematical methods was Daggerfall. It had a world so big that it would take something like a week of real time for your character to walk across it (not using fast travel). All the wilderness parts were fractally generated, so everywhere looked unique without having to pregenerate the layout.

      --
      Karma: Contrapositive
  14. in that case by Anonymous Coward · · Score: 5, Insightful

    relying upon Mesa, the nv driver, and the linux kernel would be any better? It would still weigh in over a meg then.

    Do we only impress the critics when we write to bare metal?

    (of course not, because then you're criticized for having hardware lock-in. You just can't win)

    1. Re:in that case by Tarpan · · Score: 4, Funny

      I live by the theory that anyone who says "lol" is the real idiot, works so far.

    2. Re:in that case by misleb · · Score: 5, Funny

      Umm, it is a lot considering how little practical functionality exists in that 1.5GB C:\Windows directory.

      --
      "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
    3. Re:in that case by websaber · · Score: 5, Funny

      It's even sicker when you realize the screenshot takes up more room than the app (116kb)!!

      --
      "A good friend will bail you out of jail. A true friend will be sitting next to you saying, 'damn....that was fun!'"
    4. Re:in that case by Anonymous Coward · · Score: 3, Funny

      i go by the theory of anyone who quotes it, physically types it, or singles out those that do, is a complete fucking moron.

      works so far.

    5. Re:in that case by RevDobbs · · Score: 3, Insightful

      No, you impress the critics when you write a kick-ass FPS that I can play on my pile of 486s.

      I mean, it's cool and everything that the program is small... I'm not going to knock anyone for doing something simply "because they can". But what's the point of making a program that fits on a floppy when most modern computers meeting the requirments don't even ship with floppy drives anymore?

    6. Re:in that case by Polkyb · · Score: 4, Funny

      LOL!

      :-)

      --
      I've never shoed a horse, but I once told a donkey to piss off!
    7. Re:in that case by beeblebrox87 · · Score: 4, Funny

      Since nothing is certain or provable, i.e. there are no "laws", anything you do must rely on theories. By your logic, that makes _everyone_ a "complete fucking moron" which, in my experience, seems quite probable.

      (In theory, anyway).

    8. Re:in that case by Slime-dogg · · Score: 4, Funny

      The statement "Nothing is certain or provable" disproves itself. If, in fact, it is true, then it is a certainty in itself. If it's not, then it leaves the door open for certainty and provability.

      --
      You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
  15. Anyone remember omniscent? by teejie · · Score: 5, Informative

    Omniscent, is the first level of Descent (you remember, the first 360degrees shooter) in 4kb (4096 bytes) with music and textures. Non-playable, but still really cool. It was released in 1997.

    1. Re:Anyone remember omniscent? by blair1q · · Score: 3, Funny

      >Descent (you remember, the first 360degrees shooter)

      Actually, it was the first 4*PI steradian shooter.

  16. err, great. I think. by iainl · · Score: 2, Insightful

    So they've optimized it down so amazingly well the zip fits in 96kb, but the thing still needs half a Gb of memory to run? Interesting.

    Personally, I'd rather go for a 512Mb package that runs on a 96kb box, but I'm odd like that.

    --
    "I Know You Are But What Am I?"
  17. Great Compression by DrugCheese · · Score: 3, Interesting

    I remember a friend of mine showing me the winner of this compression contest, it was like an 24kb download and it was 12 minutes of good music and graphics scrolling around the screen. Blew my mind.

    Anyone know what I'm talking about? Cause I've searched and can't find it anymore.

    --
    *DrugCheese rants*
    1. Re:Great Compression by scovetta · · Score: 2, Funny

      I think I know the one you're talking about-- didn't some warez group put that in their distros along with the "This file came from XYZ BBS" .txt files?

      --
      Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. --Nietzsche
  18. Re:Amazing by Naffer · · Score: 3, Funny

    Hey guys, I don't get whats the big deal? I downloaded a ton of these 85 to 150KB ".exe" games off kazaa yesterday. They never seem to run though...

  19. Other 64Ko 3D demos by wolruf · · Score: 4, Informative

    here: http://sebaplus.free.fr/prog3d/demoscene.html
    Thi s one is especially impressive: http://sebaplus.free.fr/prog3d/fr08v101.exe

    --
    wolruf@gmail.com
  20. Re:awesome... now only if they'd do this for linux by kidgenius · · Score: 3, Insightful

    I know you are being funny, but this program seems fairly DirectX dependent. Maybe if it was OpenGL?

  21. Re:so, what does this really advance? by Stevyn · · Score: 4, Funny

    It's not the saved space that's the issue here, it's the efficiency of the code. If I made a 500 mb text editor (and called it ms word 2003) then that would be inefficient.

  22. Torrent anyone? by SealTit · · Score: 4, Funny

    Can someone post a link to a torrent?

    It's taking forever to download . . .

  23. Re:zipped doesn't count for size by br0ck · · Score: 5, Informative

    Informative?? It unzips to exactly 96k.

  24. size belies necessary hardware by Anonymous Coward · · Score: 2, Insightful

    This thing is a feat of programming, but its small size belies that fact that it requires a mammoth rig. Procedural textures? Great if you want to needlessly minimize your software so it will fit on exactly the kinds of devices that won't be able to run it.

  25. Re:System Requirements by cexshun · · Score: 2, Insightful

    It's simple why you need a semi-powerful machine to play this. It generates the textures at startup. I'm assuming it'd take a pretty powerful machine to generate textures like these screenshots, with such small code to work with in the first place.

    As a comparison. Think of SETI@HOME. A very very very small file. Yet, it can take 4 hours or more to process on what is considered a fast machine. Same dealio with this.

  26. the product: 64k by Anonymous Coward · · Score: 2, Informative

    http://theproduct.de/ was the first thing I thought of when reading this article. It was a demo in 64 that otherwise is as you described.

  27. the.produkkt. by faxe · · Score: 3, Informative

    these guys are actually a part of the demoscene. They have done quite a lot of spectacular demos and intros. They can be found here. This was a release from the 96k game competition of this years breakpoint demoparty held last weekend in Bingen, Germany.

    --
    fx! kicking and screaming
  28. It crashes by gonvaled · · Score: 3, Informative

    The instruction at "0x00000000" referenced memory at "0x00000000". The memory could not be "read".

    In Windows 2000 Profesional

  29. Not as impressive as you think... by __aazuyo6398 · · Score: 4, Informative

    Ok, I'm not saying this isn't impressive, but since it's using everything included in DX8.0, it's not really fair to say it's that small. I mean, look at it another way...If you built a mod for UT2K4 that was 150k would you be jumping up and down? No, because it requires > 1GB worth of stuff to be downloaded first. In the end though, that's still some pretty tight programming

  30. Proof that real programmers do still exists by Jason+Straight · · Score: 2, Interesting

    I thought we were all nearly extinct from the Visual Armageddon!

  31. 100KB, please by Repugnant_Shit · · Score: 4, Insightful

    This game is dynamically linked to DirectX, which is a large program library. 3D Winamp visualizations are also small, because they don't have much rendering code in them either, but they're also not optimized very well (like a *real* engine such as Quake 3 or UT2004). Just because *your* "hello, world" is statically linked to the C++ library and mine isn't, doesn't make mine better because it's smaller.

    And procedural textures? The demo scene guys have been doing this for ages.

    This has left me underwhelmed.

    1. Re:100KB, please by faxe · · Score: 5, Informative

      this guys ARE demo scene guys, also known as Farbrausch.

      --
      fx! kicking and screaming
    2. Re:100KB, please by Anonymous Coward · · Score: 2, Funny

      "[it] doesn't make mine better because it's smaller."

      I have a feeling yours is very small, sir.

  32. Re:Amazing by antime · · Score: 2, Interesting

    It's a demoscene product, made by the group farbrausch.

  33. Re:Libraries by Jad+LaFields · · Score: 5, Insightful

    True, but this still seems like something designers should try more often. In fact, this seems like a very good argument for DirectX -- since its pretty much required to play most modern Windows games, it is a Windows standard, and it comes with recent versions of the OS, you and I are most likely to already have it. This is in contrast to my admittedly minor attempts to get games going under Linux, as each game seems to use a different toolkit/library that needs to be dowloaded separately and which have names like dvsdl-1.62.78 (all right, I made that up). Don't want this to sound like anti-Linux flamebait, but there is something to be said for Microsoft's ability to force a single, simply-named and -numbered standard library.

    --
    [SIG] It's like putting a moose in the blender -- a recipe for disaster!
  34. Re:zipped doesn't count for size by Walkiry · · Score: 5, Funny

    They have obviously gained with the zipping:

    Packed: 97,256
    Unpacked: 97,280

    It's quite obvious the original assertion is misleading since it's zipped and it's smaller!

    --
    ---- Take the Space Quiz!
  35. Re:so, what does this really advance? by Anonymous Coward · · Score: 2, Insightful

    > so, what does this really advance?

    Their claim to m4d sk1llz? :)

    I remember a time when posters on slashdot enjoyed tech coolness for the sake of coolness. I'm probably growing old and grumpy, but lately too many /. posts reek of techno-ludditeness (-luddetery?) to me.

  36. Real-time generated textures by PingKing · · Score: 5, Interesting

    According to the readme, the texture-maps are generated in real-time:

    We do .not. have some kind of magical data compression machine that is able to squeeze hundreds of megabytes of mesh/texture and sound data into 96k. We merely store the individual steps employed by the artists to produce their textures and meshes, in a very compact way. This allows us to get .much. higher data density than is achievable with normal data compression techniques, at some expense in artistic freedom and loading times.

    The problem with this, of course, is that it requires major computational power, and you're limited with the type of textures you can produce. It's probably a case of this program specifying 'bumpy metallic texture' or 'smooth stone texture' on the fly.
    I remember the old flight-sim 'Strike Commander' would generate the game's maps during installation based on fractals. It used take AGES... this program generates many more megabytes of graphics on the fly... very impressive.

    --

    Patriotism - the last resort of scoundrels.
  37. Instant review by ites · · Score: 5, Funny

    1. Downloading... very fast, as you'd expect. 2. Installation... very simple, just unpacks to one readme file and one executable. 3. Documentation... brief, note that DirectX 9.0 is required (not 8.1 as mentioned in the story). 4. Running... brief: "Instruction at 0x000000000 referenced memory at 0x000000000". Conclusion: I can make the same functionality in an even smaller package.

    --
    Sig for sale or rent. One previous user. Inquire within.
    1. Re:Instant review by Eshock · · Score: 3, Informative

      I think they were referring to the fact that it requires a "directx 8 class" graphics card, ie one with a pixel shader.

    2. Re:Instant review by robson · · Score: 3, Funny

      Quite impressive although I am sure that DirectX is doing most of the work, all they've created is a texture generator (a good one, the textures are pretty good), a map generator (maps aren't that inspiring or involved at the moment, but there are nice touches) and then a few baddies and weapons and a way to walk around the map firing the weapons at the baddies (with nice graphical effects for some of the ammo).

      Yeah, but the baddies were just procedurally generated with the DirectEnemies module, and the whole thing uses the built-in functionality of DirectAI.

  38. Procedural textures by raygundan · · Score: 4, Informative

    I don't know what generation procedures they used, but "the textures are procedural" means that there are no graphics files in there, and that an algorithm creates the textures at runtime. As a simple example, you could write an algorithm that made a checkerboard image in only a few lines of code. That code takes up only a handful of bytes, whereas the texture graphic itself would take up hundreds of kilobytes, even compressed. You could also look at it as the difference between an equation, and a graph of the equation.

    I'm curious to know if the maps are procedural, too.

  39. Re:so, what does this really advance? by Mysticalfruit · · Score: 4, Funny

    Is that with or without the easter egg flight simulator?

    --
    Yes Francis, the world has gone crazy.
  40. Re:while I am impressed at the code size... by angusr · · Score: 2, Insightful
    It certainly does work on my system (XP Pro SP2(RC1),AMD Athlon64 3000+, NVidia 5200, 1GB memory) although the frame rates are less than impressive. So if it's faking it, it's not doing it by not working...

    (And yes, being a suspicious puppy, I did look at the network traffic while it was starting up just in case it was downloading on the fly...)

    But 64K? Pah! There were more fun games in 16K - I mean, who can forget 3D Monster Maze and JetPac?

  41. Re:so, what does this really advance? by kauttapiste · · Score: 3, Insightful

    HD space is cheap right? So if this advancement increases development time and cost, it is a tech achievement, but... i guess... whats the point?

    The point is not the size, features or technological advance at all. It's just sort of a proof-of-concept, if you like. It doesn't do rendering on it's own, nor does it have support for various graphic chips (all that is provided by DirectX), but it does have its own engine and all the model data and textures (mind you, it still includes all the textures although they are procedural, it just means that they are in forms of functions). And that is impressive.

    Can't try it myself yet, but I'm already amazed. Btw, to those who wonder where's the source etc, these things are usually not handed out. Demo/intro scene is more about competing with each other and the secret's of the trade are not given away!

    People pointing out DirectX dependency are missing the point.

  42. Re:Very Cool But..... by Glonoinha · · Score: 2, Informative

    The 64kb was actually a limitation of early compilers that needed to keep the entire address space of a program inside of 64k. It was called the small memory model, I believe, and all the code and pre-allocated memory for variables needed to sit inside that 64k (but dynamic allocated variables could reside on the heap in excess of that 64k.)

    --
    Glonoinha the MebiByte Slayer
  43. Re:awesome... now only if they'd do this for linux by S3D · · Score: 4, Informative

    Would be about the same if we are talking about graphics. There is no noticable difference in code size for DirectX and OpenGL with appropriate driver with all extensions. Both Nvidia and ATI are shipping OpenGL drivers with all extensions realized in hardware, giving OpenGL about the same functionality as Direct3D. But there is no sound in the OpenGL. Don't know what are standart sound library for Linux...

  44. Mirrors by dbloodnok · · Score: 5, Informative

    Trust slashdot to kill a website hosting a 96k file.

    try here and here or for a complete list here

    Farb-Rausch do some nice demos... worth checking out.

  45. Why are they all set in dark machine rooms? by Anonymous Coward · · Score: 5, Funny

    What the hell is it with the tradition of dark foreboding metal enhanced settings?

    I want a FPS game set in a sunlit mountain meadow with birds & butterflies flitting about.

    So I can see the blood....

    TDz.

    1. Re:Why are they all set in dark machine rooms? by aliens · · Score: 4, Informative

      The answer to that would be FarCry.

      It'll make your box beg for mercy though.

      --
      -- taking over the world, we are.
    2. Re:Why are they all set in dark machine rooms? by Diziet+Asahi · · Score: 2, Insightful

      Play FarCry then But dont complain if you get shot while admiring the view

    3. Re:Why are they all set in dark machine rooms? by Milo+Fungus · · Score: 2, Informative

      Have you tried Jump N' Bump? It's not 3D or anything, but it sure is a lot of fun. And it matches your description perfectly.

    4. Re:Why are they all set in dark machine rooms? by tehcyder · · Score: 3, Funny
      with birds & butterflies flitting about
      and sheep...but maybe that's another genre...

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    5. Re:Why are they all set in dark machine rooms? by silicon+not+in+the+v · · Score: 2, Interesting

      I am totally with you about the darkness thing. (Forget the butterflies, though.) I'm not a big FPS gamer (mainly because I didn't want to shell out the money for the top-of-the-line video cards they need, and I don't have a lot of time to get good enough at them to play online.) I recently downloaded and played the demo of Half Life to see how it was since I heard so much about it. I could barely play it on a Saturday afternoon because even with the brightness settings in the game turned all the way up, the stinkin' hallways were still too dark to see very well in. I could play pretty well at night because there is dim stuff there to be seen if you are playing in the dark. I haven't played a lot of other ones, but Doom and Descent were decently lit. Is this an on going trend of games getting darker and darker? Pretty soon, every video card is going to have to be sold with a pair of night vision goggles to actually be able to see the games you play.

      --
      We may experience some slight turbulence and then...explode. -Capt. Mal Reynolds
    6. Re:Why are they all set in dark machine rooms? by rpillala · · Score: 3, Informative

      Get Serious Sam. Also, read the interview at Old Man Murray: http://www.oldmanmurray.com/features/73.html

      Ravi
      --
      When the axe came to the forest, the trees said, "Look out - the handle was once one of us."
    7. Re:Why are they all set in dark machine rooms? by retro128 · · Score: 2, Interesting

      I'm with you there. Well not necessarily regarding the butterflies and Bambi prancing happily though the meadow, but I'm talking about open environments. There is very, very, very little of that in games for some reason. Everyone still has Doom syndrome where they make you run though a maze for the entire game.

      It's probably why I liked Beyond Good & Evil and Giants so much.

      --
      -R
  46. Game Requirements by Anonymous Coward · · Score: 5, Funny

    So the game requires a PC with:

    1.4 GHz Processor
    512 MB Ram
    96 kb HD Space

    Well at least my computer meets one of those requirements!

  47. Elite..? by Anonymous Coward · · Score: 3, Informative

    Are you serious?!

    Discover Elite now!! Check out this page, maintained by one of the original creators Ian Bell and this Elite resource

  48. Re:awesome... now only if they'd do this for linux by molarmass192 · · Score: 4, Informative

    Off the top of my head OpenAL, I know it's used by NWN and some of the old Loki games. Whether that makes it a standard or not is a whole other question.

    --

    Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
  49. 4-bit representation of checkerboard texture by K. · · Score: 3, Funny

    10
    01

    You may have to scale and tile it a bit.

    --
    -- Proud descendant of semi-nomadic cattle-herders.
  50. Wonder how big the VB/.Net version would be? by caluml · · Score: 2, Informative

    It reminds me of this guy who wrote a snake game for Linux that compiles to under 1500 bytes. It really does work.

  51. Elegance by PhotoGuy · · Score: 2, Interesting
    Wow, flashback to when elegance in programming was far more common, and bloat was far less programming.

    I worry about newer generations of coders, never having known elegant, lean, efficient, and useful code, from the major bloat that comprises most software projects today.

    Items like this, are truly things of beauty, and only becoming more rare.

    --
    Love many, trust a few, do harm to none.
  52. Bill Gates was right by Woy · · Score: 2, Funny


    640Kb was enough after all!

    --
    "If God created us in his own image we have more than reciprocated." - Voltaire
  53. Re:Libraries by dave_mcmillen · · Score: 2, Insightful

    While it is impressive to write something like this in such a small binary, the "Application" as a whole is MUCH larger. The obvious dependancy on DirectX alone makes the entire app > 20MB.

    Right! It reminds me of the business of creating N-ingredient recipes (3-ingredient or 4-ingredient, typically): the trick is to define as many things as possible as "staples" (salt, flour, butter, sugar), so that the ingredients can be "salmon, oregano, and bread crumbs" or something.

    But just like the N-ingredient case, it's not really cheating. People really are likely to have those things already in their kitchen, and people really are likely to have the supporting libraries around their hard drive. And any attempt to optimize for size has a certain appeal in these days of increasingly bloated code.

  54. Re:You're right... by misleb · · Score: 4, Informative

    Using SDL may be "absurd" if you want to write a Windows-only game, but it isn't absurd if you want to make it crossplatform. Whether you will admit it or not, SDL/OpenGL is a standard that many (good and fast) Linux games have been based on.

    --
    "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
  55. Re:awesome... now only if they'd do this for linux by rogabean · · Score: 2, Interesting

    just thinking here.. but if it's DirectX 8 based then Wine should be capable of running this. Would most likely need a bit more in the way of system requirements, but might run. Will give me something to test out when I get home tonight.

    --
    "why don't you just slip into something more comfortable...like a coma!"
  56. You would be correct... by ThePyro · · Score: 3, Informative

    On my 2.8 GHz machine, the demo took a full minute to load.

  57. Pfft by l33t-gu3lph1t3 · · Score: 2, Interesting

    So, zipped, it's 96KB. Whoop-dee-doo-dah-day. Running, it consumed an obscene amount of system resources on my PC. How on earth does it require 512MB RAM and 128MB framebuffer? There seems to be an awful lot of duplication of texture, geometry, and code going on here...

    --
    ------- "From bored to fanboy in 3.8 asian girls" ----------
    1. Re:Pfft by randyest · · Score: 2, Informative

      seems to be an awful lot of duplication of texture, geometry, and code going on here

      No, there is some procedural generation of all of the above going on here. Not much duplication I expect.

      It requires 512MB RAM and 128MB framebuffer because it procedurally generates geometry and textures that are that big.

      And the zipping does little. The executable is 97,280 bytes, the readme is 5,504 bytes. The zip archive is 100,185 bytes. The compression is negligible.

      Don't poo-poo it just because you don't get it. It's very cool, and very impressive, IMHO.

      --
      everything in moderation
  58. Re:Amazing by troon · · Score: 5, Funny

    Please be sure to stick to standard Slashdot etiquette. In making a joke about accidentally messing up your system, it is customary to truncate the last bit of the message and terminate with [NO CARRIER] or some sort of +AT code.

    Applying to your situation would give us:

    Hey guys, I don't get whats the big deal? I downloaded a ton of these 85 to 150KB ".exe" games off kazaa yesterday. They never seem to run tho[NO CARRIER]

    Do you see? That's instantly at least 1337% funnier. Remember this trick for next time.

    --
    Ydco co ,df C erb-y go. a Ekrpat t.fxrapev
  59. Re:Libraries by John+Harrison · · Score: 4, Interesting

    I did something similar using OpenGL. It is a 3D asteroids game in which the action occurs in 3d, not in a 2d plane. The zip file for it is about 102 kb, but most of that is because I included glut.dll so that people wouldn't have to hunt it down. Oh, and by using OpenGL I have been able to run it on Windows, MacOS, and Linux.

  60. It runs like ass..!? by Anonymous Coward · · Score: 3, Informative

    I am running an optimized XP Pro system with the latest patches, 2.4 GHz, 1 gig of ram, ATI Radeon 9700, and it runs like dogshit. It crashed my computer and I am not going to try it again.

  61. Re:Libraries by penginkun · · Score: 2, Insightful

    Nevertheless, for a FPS to weigh less than half a gig these days is rather impressive.

  62. Re:this is nice but.. by absurdhero · · Score: 2, Informative

    The half-life executable and client and server dlls puts it up at several megabytes. perhaps over 10 megabytes, but I don't have a copy of it around to check, atm. This is 100kilobytes including generated music and textures. It requires very skilled coders to save byte after byte in every inch of the code. These guys have been making great 64k demos for a long time. Just a couple weeks ago I was thinking, "gee, why doesn't someone stick some mouse control, a gun, and collision detection in one and let me shoot stuff?" And my wish has been granted.

  63. Shrug - Been there, done that. by superultra · · Score: 4, Informative

    So I guess this is impressive, especially if it's taken more as a contribution to the demoscene than to gaming. But what I think is far more impressive is that a game like Starflight which included hundreds of planets, dozens and dozens of hours of gameplay, an equal number of conversations and text and hundreds of objects, all fit into 2 5 1/4 disks (360K x 2). In 1986. And while exceptional, Starflight is merely representative of the amount of efficient coding that had to go into early game creation. Kkrieger, and more so older classics like Starflight, should serve as examples to modern developers who seem to be bloating their code.

    1. Re:Shrug - Been there, done that. by otis+wildflower · · Score: 3, Informative

      Elite.

  64. Re:I would be more impressed... by misleb · · Score: 5, Insightful
    What I find curious is why the executable is 96k when it depends on DirectX. I would imagine that a good game engine written in assembly could easily be fit into 16kB. I would be more impressed with this particular effort if they had built their own graphics engine (with lighting effects, etc...)



    That 96k contains all the scene data. It isn't just the engine. Why would you be impressed if they wrote their own graphic engine? How would you take advantage of hardware accelleration. Sheesh! Write a tight program that uses OpenGL/DirectX and you get criticized for not using assembly tuned to bare metal. Write aseembly tuned to bare metal and you get criticized for having a program that only runs on specific hardware (or doesn't take advantage of hardware acceleration).

    -matthew

    --
    "THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
  65. Re:Misconception by ggambett · · Score: 2, Informative

    However, it does affect the size of the source code, which is what I was trying to minimize. Same thing with the #defines, which the preprocessor expands anyway...

  66. Re:awesome... now only if they'd do this for linux by drinkypoo · · Score: 4, Informative

    The standard sound library for Linux 2.6 is ALSA. Games usually talk to it through OpenAL (see sibling) or SDL, the simple directmedia layer. SDL basically provides all the functionality of DirectX except Direct3D, whose functionality is provided on Linux via OpenGL (as you know.)

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  67. Re:awesome... now only if they'd do this for linux by smithmc · · Score: 4, Funny

    Hell, It wouldn't be all that much code to port.

    Really? Gonna port DirectX 9 to Linux during your lunck breaks, are ya?

    --
    Downmodding is the refuge of the weak. Don't downmod, make a better argument!
  68. What if it *did* install Linux? by NotQuiteReal · · Score: 4, Interesting
    Maybe not this time, but it seemt to be just a matter of time before someone comes up with Linux "scum-ware", a la Gator (or whatever it is called now) and its ilk.

    1) get your cool geek game advertised on slashdot.
    2) lots of people download it and run it.
    3) bury some obfuscated language in a 30 page EULA [well, 30 pages that only show up 5 lines at a time in a tiny un-resizeable window]. The gist of the "I agree" button is that your machine will bootstrap into a nuke-and-pave Linux installation!

    Ok, this is tongue in cheek, but seriously, do the slashdot editors evaluate things like this for viruses or other mal-ware? Where's the checksum of the one they checked?

    Who downloads mysterious 100K executables and runs them on a live machine? [heh, especially from Germany, I mention this only because the last two unprotected Windows machines put on the net by some hapless aquaintences of mine were running German FTP sites so fast you'd think they were configured that way out of the box.]

    --
    This issue is a bit more complicated than you think.
  69. Re:awesome... now only if they'd do this for linux by KozmoStevnNaut · · Score: 2, Informative

    OpenAL is also used by UT2004.

    --
    Eat the rich.
  70. Re:Libraries by jon3k · · Score: 2, Interesting

    Should we consider the size of the operating system in that too? What about the hardware drivers?

    So every application is the size of it + all dependent software?

  71. Yawn.. here's a 5kb FPS by RenHoek · · Score: 3, Interesting

    Seen this?

    http://www.the5k.org/description.asp/entry_id=946

    It's a winner of the 5K contest. A Wolfenstein in Javascript in just 5 kilobytes.. Now THAT is small ;)

  72. Re:I would be more impressed... by kb · · Score: 5, Insightful

    Raytracing? What exactly have you smoked?

    I won't allow myself the time to dismiss your "arguments" on a detailed level, but:

    * Why is the game SO dependent on the graphics card then?
    * Why do you talk about missing lighting effects when there's a full phong lighting model with several light sources and stencil shadows everywhere?
    * Why do you think you know ANYTHING of the used algorithms? Did you already reverse engineer the whole game?
    * Timer interrupts? ON WINDOWS? Come on.

    Please. "I have no idea how this all works, but I hate them" would really have been less hassle to type

    kb / farbrausch .kkrieger audio programmer
    game programmer at Inverse Entertainment, .de

  73. I'll sum up by gillbates · · Score: 2, Insightful

    I post this in reply to a few of the responses I've gotten, not just the parent post.

    • I'm not impressed with the 96kB executable size. As far as executables go, it is small for a Windows app, but it still dwarfs the animated demos which have a limit of 4k.
    • It seems to me that the point of writing this game was not to produce the smallest useful binary, but rather to illustrate a particular method of reducing binary size by producing textures at runtime rather than compile-time.
    That said, the real story is not the size of the executable, but rather the value of the tradeoffs made to produce it. I don't find this particularly remarkable. The coders made a tradeoff; they exchanged a smaller exe size for a lower runtime performance. So what? How is this any different from what every other coder has had to do at one point in their career?

    I wish these guys had actually made the exe larger, because /. would focus instead on the technique used to compress the textures, rather than its small size. Maybe instead, someone would comment on how the 96kB exe actually runs faster because the whole executable image resides in the processor's cache?

    --
    The society for a thought-free internet welcomes you.
    1. Re:I'll sum up by TwistedSpring · · Score: 2, Insightful

      You're all retarded. If you knew that this 96kb has: 1. Several texture generators
      2. AI engine
      3. 3D engine with collision detection, mesh animation, mesh generation from simple primitives...
      4. Software music synthesizer as used in the Candytron and .das.produkt 64k demos

      This is an extremely interesting production for its size. Just look at the textures. So it uses DX8, oh no. Go download the Heaven Seven demo if you want a software raytraced demo in 64kb. This is a game, not a demo.

      Also, it won't run on Linux. Not everything has to run on Linux. This was made for windows. Windows has the best gaming and 3D support out there, Linux doesn't come close. If you wanted to play games, then why the hell do you run Linux? Linux is for work. And please don't cite a ton of games that have been ported to lux. The demoscene has always been for Windows/DOS only on the PC scene, since Windows is the best way to get the max out of gfx and audio hardware without compromising performance. It's just done better I'm afraid. I hope linux catches up someday, but the best way for it to do that would be to have MS port directx to it.

    2. Re:I'll sum up by Anonymous Coward · · Score: 2, Interesting

      I agree with you save the last paragraph.
      Linux is faster, and that includes 3D graphics. There are some issues with sound latency, dependent on configuration, but they might be over by now, I'm not running a late distro.
      Direct3D would not make 3D graphics any faster on linux, do you even know what you are talking about?
      Oh, IAAGP (I am a game programmer).

    3. Re:I'll sum up by Snaller · · Score: 2, Insightful

      Actually the demo scene was always on the Amiga. Originally the PC was so far behind it neede a space telescope to see the dust.

      --
      If Google really cared they would fix Android Chrome to reflow text, instead of discriminating
  74. Two Words: by shachart · · Score: 3, Informative

    Serious Sam

    --
    Those who can, do. Those who can't, consult.
  75. OK by Christ-on-a-bike · · Score: 4, Informative

    America's Army
    Aliens vs. Predator
    Descent 3
    GLTron
    Heavy Metal
    Mutant Storm
    Neverwinter Nights
    Unreal Tournament
    Unreal Tournament 2003/2004
    Vega Strike

    These are all games that use both SDL and OpenGL. Many more use either one or the other.

  76. RTFR by Dachannien · · Score: 3, Informative

    Read the readme.txt, dude.

    "The concept of the texture/mesh generators was developed by fiver2. We do .not. want to claim that the techniques we used to develop .kkrieger are new inventions. Its rather a selection of useful operations and their parameters to optimise the results."

  77. Bill was right all along! by fritter · · Score: 5, Funny

    Looks like we all owe Bill Gates an apology. 640K is enough for anybody!

  78. Explanations! by kb · · Score: 5, Informative
    Hi...

    As I'm one of the guys responsible for this game, let me explain a few things.

    First, to all the people saying this is senseless etc.: Please watch every second story posted on /. - most of them are about people doing something nobody in their right mind would ever try. So come on ;)

    Then, a few clarifications:

    • Yes, we are the same guys who are responsible for FR-08: .the .product and all the follow-ups (which you can find at our home page, http://www.farb-rausch.de).
    • We don't use any hidden texture/sound or game generators in Windows. .kkrieger requires DirectX 9, but only to gain access to the graphics and sound hardware. OpenGL and whatever audio API would also work, we just chose to use DirectX. Maybe we will even release a Linux version in the future (which should be about the same size using X and ALSA), but as all this is done in our spare time and none of us has a linux desktop PC, it's rather improbable. So, the only thing where we "cheated" and used ressources from Windows are the Arial and Times New Roman fonts which we use as base material for our fonts (heavily processed tho). This and all Windows DLLs that are essential for running. We don't even use any external libc.
    • All content, that is: the textures, the models, the map and part of the animations is generated procedurally. The basic concept is a modular graphics synthesizer which only stores the steps needed to opbain a certain image or mesh with their parameters. On www.theproduct.de you'll find a short explanation. .kkrieger uses the very same concepts, only in a really evolved and refined way.
    • Also the sound is created procedurally by a virtual-analog software synthesizer processing heavily compressed MIDI data. It runs in real-time (for the music) as well as as pre-processing step (for the sound effects). Actual sound output is done via simplest DirectSound programming.
    • The graphics engine is made for Doom3-style graphics, that means full Phong lighting model with various light sources and normal mapping everywhere, and of course stencil based shadows. It requires a PS1.3 level graphics card such as a GeForce4Ti or a Radeon8500 or better, though it's only fun on at least a Radeon 9600 or a GeforceFX 5700, we know.
    • We also know about the insane hardware and memory requirements and all the bugs as well as the mostly missing gameplay, but we worked on it (partly) for about two years and we definitely wanted to get it out at the Breakpoint party on Easter. This meant lots of things we had to cut, this meant lots of thigs we didn't test, and we know this beta is far from perfect. But expect a final version in a few months (we'll definitely take some rest now) which will be about 128k and not only feature less bugs, hangs and fsckups but only vastly more content and hopefully an improved engine capable of real vs/ps2.0 support for more speed and quality. Oh, and gameplay. And monsters that actually DIE instead of just being turned off :)


    Hope that clears up a few things...

    Tammo "kb" Hinrichs
    Farbrausch Consumer Consulting
    freelance audio programming guy for .kkrieger
    shocked that our server is still alive.
    1. Re:Explanations! by kb · · Score: 3, Informative

      The intro is supposed to be grey, for some unknown reason somebody here considered a postproc effect which uses the alpha blend unit to square (and thus solarize+half) the dest color good-looking ;)

      For the rest, well, a final will come ;)

    2. Re:Explanations! by WWWWolf · · Score: 2, Interesting

      As I'm one of the guys responsible for this game, ...

      Tammo "kb" Hinrichs

      Oooo, it all suddenly makes sense. You were the one of the guys who ported Second Reality to C64, right? Can't stop amazing people with smaller and smaller things, eh? =) Great work!

  79. Re:You're right... by Qzukk · · Score: 2, Informative

    noiz2sa - SDL
    Aleph One - SDL/OpenGL
    BZ Flag - OpenGL
    Egoboo - SDL/OpenGL
    PoopemUp - SDL/OpenGL
    Neverwinter Nights - SDL/OpenGL
    Not to mention all the Loki titles that used SDL (heck, didn't they develop it in the first place?): Myth, Rune, Civ3,Sim City 3000, Tribes 2, Alpha Centauri, and so on
    Don't forget the billion or so Doom/Quake/Wolfenstein 3D ports/spinoffs.

    --
    If I have been able to see further than others, it is because I bought a pair of binoculars.
  80. Why is it... by fzammett · · Score: 2, Insightful

    ... that every alien spaceship/moonbase/post-WWIII Earth is devoid of the technology to do LIGHTS?!?

    I am impressed by anyone that can get a 3D engine into that small a piece of code. You can make the argument that because it's linked to DX that it's actually hundreds of megs large. I don't agree... I could then make the claim that EVERY piece of software that makes use of an OS's API calls is really hundreds of megs big. That's clearly a bogus argument, and I don't think linking to a given library nullifies this achievement.

    But still... Can we get some LIGHTING in that thing?!? Doesn't even have to be dynamic, I'd be perfectly happy if you increased the overall gamma a bit. I mean, the graphics, what I can see of them, look excellent, Why not bring them out in the light more?!?

    *

    Omnytex Technologies - Where dreams and software unite

    K&G Arcade - 26 games in one, a unique blend of action, adventure and humor
    Invasion: Trivia! - Trivia, with a very sick twist!
    Electro - The premiere electronics tool for PocketPC

    --
    If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
  81. comments! by Grendel+Drago · · Score: 4, Informative

    Did you notice minrt_comments.cpp in the zip file? Same file, but with actual comments. Variable names are explained. The snipped you pasted becomes...

    int main (void)
    {
    char b[99];
    int W=GN,H=GN,i,n; // Read screen width and height
    nl=GN;ns=GN; // Read number of lights and spheres
    _f x,y;

    F(nl) // For each light
    RP(LI) // Read position

    F(ns) // For each sphere
    {
    RP(SI.c) // Center
    SI.r=GN; // Radius
    RP(SI.l) // Color
    SI.f=GN; // Reflection
    } // Allocate the frame buffer. Init to zero to perform antialiasing.
    char* s = new char[(n=W*H*3)];
    memset(s,0,n);


    Some weird macros are used:

    #define F(T) for(i=0;i<T;i++) // For
    #define FV(V,T) for(V=0;V<T;V++)

    #define SI sp[i] // i-th sphere
    #define LI lt[i] // i-th light

    #define GN atof(gets(b)) // Read a float from stdin

    #define RP(P) {P.x=GN;P.y=GN;P.z=GN;} // Read a point


    It's not really that bad.

    --grendel drago

    --
    Laws do not persuade just because they threaten. --Seneca
  82. Re:Amazing by faxe · · Score: 2, Informative

    they are actually the same group of people.

    --
    fx! kicking and screaming
  83. Doesn't work w/ wine or winex3 by taxtropel · · Score: 2, Insightful

    Well, this is rather disappointing. The game works with neither wine (transgaming CVS build) or winex3 (prebuilt binaries). You'd think that something this simple would run. I wish, I wish I hadn't paid that stupid fee to transgaming. I'm canceling my subscription to them as the CVS build works better for me anyhow.

  84. Another interesting game by ynnaD · · Score: 5, Informative

    Noctis (http://anywherebb.com/noctis.html) is less than 1mb but lets the player explore a whole galaxy. It's an interesting game where you have total freedom to fly anywhere and do anything. No fighting, just exploration.

  85. Re:Libraries by drxenos · · Score: 2, Insightful

    I believe his point was that the DirectX library handles a lot of the work that went into the bulk of the size of pre-3d accelerator games, such as Wolfensein 3D and Doom I & II. So, he's starting out with an advantage in size.

    --


    Anonymous Cowards suck.
  86. The point? by SmallFurryCreature · · Score: 4, Interesting
    Well howabout that this thing took less time to load then any recent FPS I played?

    Also there may be a model for selling software online rather then on CD/DVD. Obviously this game would cost a bit less to host then say the 5CD farcry.

    Also don't forget more portable solutions. Laptops or PDA's and other gadgets. They got extremely limited storage but my old calculator could hold this one. Not run it but hold it :)

    Mostly however this is just a tech demo. Showing that you do not need a massive wad of textures just to make a nice looking game.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  87. I just tried the game... by thx2001r · · Score: 2, Informative

    My hardware and software includes (I know, not the latest and greatest, but not a slouch either):

    • Windows XP Pro (all latest patches... this computer has not crashed in over 2 years... is not continously on, but does not crash when I use it for over 2 years)
    • AMD Athlon XP 1900+, MMX, 3DNow, ~1.6GHz
    • 512MB DDR 266 RAM
    • ATI Radeon 8500 128MB (DirectX 8 Support)
    • DirecX 9.0b (4.09.0000.0902)
    • Creative Soundblaster Live! 5.1 PCI

    Clearly, I meet the 'minimum requirements'... according to the game's accompanying readme.txt, the minumum requirements are:

    • A 1.5GHz Pentium3/Athlon or faster.
    • 512MB of RAM (or more)
    • A Geforce4Ti (or higher) or ATI Radeon8500 (or higher) graphics card
      supporting pixel shaders 1.3, preferably with 128MB or more of VRAM.
    • Some kind of sound hardware
    • DirectX 9.0b

    These requirements were not kidding... the game runs extremely slowly on my hardware. It was chugging along at, I'd guess, 10-15 frames per second (I'm not sure what resolution it was running at or color depth, but I run Windows at 1024x768x32bpp). The game was ok looking, visually, in some aspects was better looking than the original Unreal game, in others, not as good. Gameplay was not particularly exciting... though, at 10-15 frames per second, it might not be anyhow, but I only played it for about 2 minutes.

    After 2 minutes, the game crashed and crashed Windows as well... Probably a result of it being 'beta' software, but nevertheless, a rare occurence on my particular Windows XP PC. As noted above, it's been over 2 years since anything caused Windows XP to crash on me! Not sure if my hardware was overwhelmed, the game being buggy, or if DirectX just killed it, but that's what happened. If you have a computer, less than 1 year old, with the latest hardware and loaded with RAM, this game will probably work for you. It doesn't work too well for the minimum requirements (in my experience, YMMV).

    Interesting that they can pull this off in such a small package and trying out to see how it works for you. My $0.02.

    --

    -Joe
    If we're all god's children, what's so special about Jesus? - Jimmy Carr

  88. Re:I would be more impressed... by null+etc. · · Score: 3, Informative

    I wonder if you're referring to an assembly program I wrote to generate Sierpinksi triangles in 76 bytes. But please note, those 76 bytes included calls to DOS interrupts, which is an API in the same fashion that DirectX is an API.

  89. Re:You're right... by Zangief · · Score: 2, Interesting

    Using SDL would still make sense if you are developing a windows-only game. The simplified API would lower your costs, both in time and money. Although you give up a little power in exchange for that, so it may only make sense if you are a indie developer.

  90. Re:awesome... now only if they'd do this for linux by flatface · · Score: 2, Interesting

    It uses DirectX. And Windows binaries are larger than Linux ones. Don't get me wrong, I use Linux almost exclusively-- I wouldn't mind an extra few kb bloat to run it, just as long as it runs. I've been drooling over Farb Rauch's stuff for a while now.. Only if they released their source.

  91. Re:Libraries by Ryosen · · Score: 4, Funny

    >> Don't forget the whole Windows System, that is required. DirectX and the application won't work without the windows base system (or maybe wine...)

    It's much worse than that. I actually tried to install one of these things. Turns out the damn thing requires a computer, too! Lying bastards didn't tell me that I need space on my desk for a monitor, neither! I'll tell you this much. I never had any of these problems with my WebTV!!

    --

    Ryosen
    One man's "Troll, +1" is another man's "Insightful, +1".
  92. Re:awesome... now only if they'd do this for linux by cubic6 · · Score: 2, Interesting

    Does Minux have X, OpenGL, and suitable other libraries? This game isn't a standalone work. It makes extensive use of DirectX, and you'd need some pretty heavy support code to make it run on something else. The main "coolness" is the procedurally generated textures. In most games, textures, sounds, and models take up the most space. Code isn't that big.

    --
    Karma: Contrapositive
  93. Re:Amazing by Anonymous Coward · · Score: 2, Funny

    Hahahahahah That is so Funn[NO LAUGHTER]

  94. Best support for audio and gfx? by Ayanami+Rei · · Score: 2, Interesting

    I would really have to argue that... clearly you've never programmed against ALSA or OpenGL in Linux with properly supported hardware (which is a good slice of stuff available today, if you're willing to support the occaisional binary driver). There really isn't a difference, just familiarity with the APIs.

    Hell, demoscene coders would have killed for something like ALSA 6 years ago. Thank god for Sahara Surfers, if you know what I mean.

    The demoscene loved the Amiga. Now they love the PC. TBL managed to get their demo engine working on Linux and Windows (which is quite impressive). So what evidence do you have to support your opinion?

    (and I'm not expecting that anyone write a 3d demo in Linux, especially if they want a wide audience of gawkers... but IMHO it's much easier to write a 64k demo (especially if it eschews 3d in an old school stylee) in linux with the simple APIs than it is with Windows and DirectX. I can see myself doing the former, but I'd struggle with the latter.)

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  95. Re:I would be more impressed... by MyFourthAccount · · Score: 4, Funny

    "Cause even Trolls love Rock & Roll"

    I totally agree with your post.

    A couple of days ago I executed an MD5 hash and it was more functional than this.

    Years ago I was thinking of writing a ray-tracer in 1 bit. But, I couldn't decide if I should write it in Java or C#.

    Then I picked up my copy of "The Zen of Assembly Language", but unfortunately a little too swift so the dust cloud that that generated kept me from entering my parents basement for a couple of days.

    "The Zen" is truly the a great piece of work, although I don't really know why we would need to use these new fangled 16-bit CPUs.

    But back to the subject, let's walks through how this game could be done SOOOO much better:

    A "basic" raytracing algorithm is very simple - you simply map a texture over a wireframe model and then scale the result by dividing the x and y dimensions by the z distance.

    That's right. That's EXACTLY how a raytracer would work, if there ever was one. I think for this one we should also implement tracing the actual rays, to add to the effect. Btw, I've got a nice wireframe model sitting in my backyard that can be used for this. Again, I think this really can be done in 1 bit.

    Basic FPS gameplay would involve loading your device handlers (mouse, keyboard, etc...), and writing a response loop.

    I think we can safely say that with mouse, keyboard, speech synthesis, speech recognition and a couple of other run of the mill devices this could be done in 2 bits, give or take 1.

    Asynchrous gameplay (i.e., enemy moves as you stand still) can likewise be handled by chaining the timer interrupt (18h? IIRC) to your "enemy movement" code.

    What can be more simple than chaining an interrupt to the "enemy movement" code that appeared out of thin air? But because it deals with interrupts, maybe 2 bits??

    I bet with a Z80 we could bring it down even more, but let's not get ahead of ourselves. It's better to keep the system requirements low. So far we can do this in a 74HCT04.

    Collision detection, etc, could simply be brute-forced by plotting the vector of the expelled projectile until it collided with another object.

    I have a question about this. Do you think we should also use radiosity on the projectiles? Because my plotter doesn't support that, and I'd hate to waste the ink. Well, let's round it off, say 3 bits. That gives us a target of 8 bits total.

    There. We're practically done. What are these guys smoking. This can be done in 8 bits, on a 74HCT04.

    [/sarcasm]

    Sir, you are a fucktard. Your last experience with Assembler (yes I call it Assembler, not Assembly, sue me) seems to predate the invention of the 8086 CPU.

    I actually write assember for a living, and I can tell you that what these guys do is amazing. They are squeezing the last drop out of the space. These are the people that _write_ books like the Zen of Assembly (which is in serious need of a predecessor).

  96. Linux is faster by Anonymous Coward · · Score: 2, Informative

    Also of note is that with linux you can set up a fullscreen game as one of your X Session managers (or even a runlevel), thus freeing up all the resources that would be taken up by window managers, desktop environments, etc. When logging in you can use the session menu (of many display managers) to tell it to run the game instead of KDE/Gnome.

  97. Re:I would be more impressed... by Lost+Race · · Score: 2, Funny
    Years ago I was thinking of writing a ray-tracer in 1 bit.
    I did this once but after I put in the EULA and a few easter eggs it was bloated all the way out to a byte. Then my disk crashed and I lost that byte... if only I'd made a backup somewhere! I think it was 0xE7 or maybe 0x74? Ah well, so it goes.
  98. Re:I would be more impressed... by scot4875 · · Score: 2, Insightful

    Raytracing has absolutely nothing to do with wireframes. Maybe you're thinking of 'raycasting', which is similar but still not the same. But then you start talking about rendering the scene back-to-front, which has nothing to do with either technique.

    "Chaining the timer interrupt" is like something I'd say if I were interested in making something sound more complicated than it really is to someone who had no idea what I was talking about. Besides that, you don't get timer interrupts in Windows programming (nor any other protected-mode operating system, I'd assume).

    Based on those 2 things, I'd assume that you've got no clue what you're talking about. And how does an 81-byte fractal program compare in any way to a primitive 3d game engine?

    --Jeremy

    --
    Jesus was a liberal
  99. More Wow! by Ch_Omega · · Score: 4, Interesting

    For those interesting in something else from the same people, check out this 64k demo which among other things, includes detailed 3d-models of nude women. :)

  100. A *real* engine? by cgenman · · Score: 2, Insightful

    like a *real* engine such as Quake 3 or UT2004

    Hello Mr. Clueless-modded-insightful. What is listed as a requirement for Quake 3? That's right, Open GL. UT2004 doesn't explicitly require DirectX9.0b if you're willing to run in software emulation mode, but don't kid yourself and try it without. And since when does a static linking to DirectX9 take 5 CD's?

    Games take a lot of space because they are full of detailed 3d animated models, extra-large textures, and lots of sound and music. None of that comes from DirectX. These guys have managed to use some cool tricks to create detailed models and images on par with a lot of what is released today and do so in under 100k. That's pretty darned impressive.

    If your "Hello World" is dynamically linked to a C++ library, and mine procedurally generates a novel titled "Hello World" of comparable quality to a Tom Clancy book, my "Hello World" is just cooler.

    Of course, mr. Repugnant_Shit, you are a troll. But someone modded you up for reasons unknown, and as such a little explanation was in order.

  101. This is art. by Lurgen · · Score: 2, Insightful

    This isn't just a demo, it's fucking art. Nothing short of art.

    These guys consistently put together tightly coded, artistics pieces of material that not a single contributor to this discussion could have done no matter how long they had available to them.

    Yes, they used DirectX. Who cares. No, the game isn't a commercial effort. But it's tiny. And it looks awesome. And on good enough hardware it runs perfectly.

    This is the programming equivalent of carving a portrait into the top of a needle.

    So what if it doesn't run on Linux. Who said it was supposed to? It doesn't use OpenGL, that's their personal choice. Just respect it for the phenomenal level of expertise required to produce something like this. For the innovation, skill and effort they must have poured into 96KB of data.

    Personally, I'd love to come close to this level of skill in anything, let alone something this difficult.