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)."
that's awesome!
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
My website
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/
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?
...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.
The Army reading list
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*
I thought we were all nearly extinct from the Visual Armageddon!
It's a demoscene product, made by the group farbrausch.
According to the readme, the texture-maps are generated in real-time:
.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.
We do
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.
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,
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.
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" ----------
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.
Lasers Controlled Games!
Crashes on my Windows XP box. (BTW, when first writing this comment, Slashdot complained I was too fast ... looks I need some of those pills to last longer?)
"I'm never quite so stupid as when I'm being smart" (Linus van Pelt)
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.
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?
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
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
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
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.
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.
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!
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
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
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).
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.
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. :)
"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!).