Kkrieger – A 96KB first person shooter(en.wikipedia.org) |
Kkrieger – A 96KB first person shooter(en.wikipedia.org) |
In some sense, getting 1k colors out of a CGA is the contra-movement to node.js :)
To stay on topic, what is the true news value here?
But I can't really expect them to go pixel-bashing in the ancient Turbo Pascal IDE (regardless how great it is), nor do I believe that `mov ax, 13h; int 10h` still even works on modern OSes, without an emulator ;-)
I got one of them coding a cool interference circles effect and a Mandelbrot-zoomer in Processing. It's Java without the boilerplate to get a window and gfx primitives, which is just great. But afaik nobody in the scene uses it. It is used by digital/generative artists, but they often have the hardware power to get away with inefficient Java implementations (nor is their work always as "shiny" as demoscene productions, demoscene always[0] aims to impress, digital art can have diferent motivations).
BTW--just to gloat a bit here--I saw .kkrieger at the big screen on BP04 when it was released whoohoo ahem
[0] yes there are exceptions but no they don't win parties :-p
Back in the day on the Atari ST it was all assembly because C was just too slow.
None of my stuff was included because it really wasn't good enough.
Also the guy who did most of the music for the Synergy Megademo, Joris de Man, went on to do music and sound effects for Killzone and lately Horizon: Zero Dawn. So proud of him.
Is it?
I have the feeling node.js development has the same spirit, getting some tech (JS) to do something it was never ment to do.
Getting JavaScript to work as a server side language is about as challenging as getting a crew cab pickup truck to work as a 2 passenger commuting vehicle. [1]
The kinds of things done in demoscene (such as kkrieger) are more like finding a way to use a motorcycle to haul several tons of cargo. (Is that even possible? I don't know, but "Is that even possible?" is PRECISELY the feeling demoscene stuff evokes in the user. It is art.)
__
[1]: I'm gonna get in trouble here so I have to say: I don't mean this as an insult to nodejs, since difficulty has nothing to do with utility. But way before nodejs, any novice programmer could have put together such a thing in a weekend by gluing libraries together (e.g., Java had a JavaScript engine for a long time, and that's probably how I would have done it). What nodejs accomplishes is creating a way for people who only have learned JavaScript, of which there are many due to the web, to immediately add server-side coding to their abilities without having to learn a whole new language. I wouldn't use nodejs for my own work, but making programming more accessible is always good.
That's pretty much my reaction to the entire modern WWW. What started as a way to serve some simple static text has evolved into something that is truly amazing. Using a modern "webapp" like Fusion 360 (3D CAD) is a miracle of technology.
https://fgiesen.wordpress.com/
This is one of the very few blogs where I enjoyed reading every single article.
I think it contains .kkrieger but I didn't try it.
If you find that interesting, you really should check out http://tooll.io It's pretty much a more modern take on .werkkzeug with a focus on usability rather than compression.
For those who can't stand that endless stream of bs.
"I'm amazed they didn't finish this game, this plays really well."
To be fair, a legitimate review would have just been "Holy shit, this is 96k. Holy shit. Just 96k. Jesus. That's less than the space taken than a single screenshot. Wow."
EDIT: Oh, I see what happened. He thought "demo" referred to a game demo, as in a limited edition of a full game.
I do agree with him about the lack of gore. It doesn't necessarily have to be bloody per se, but there's a great short gamedev presentation called "Juice it or lose it"[0] with loads of basic little tricks to make a game "juicier". They already hit a bunch of them, but there could have been some monster bits flying from the explosion.
[0] https://www.youtube.com/watch?v=Fy0aCDmgnxg (15 mins)
I'm fairly certain that Farbrausch made it a point to have many of their releases begin with a lowercase 'k' (for no other reason than style, afaik). You can choose to omit the dot if you really don't like it, but it's just not spelled with an uppercase 'k'.
And these people are German, where nouns are always capitalized. So when they do not, it's very much on purpose.
edit: wine-stable on ubuntu17.04
Edit: Just make sure it actually closes when you close it. I checked my task manager and it was still running!
That's pretty crazy
And of course, the biggest trick in .kkrieger is that everything is procedural. A choice made because of the goal they set out with. There's assets in Doom that just couldn't have been done with tiny procedural texture descriptions and still represent quite the same thing. For .kkrieger such assets were simply not an option and the game was designed around it.
Also, I always liken the graphics in .kkrieger to Halflife 1, not Doom, which is quite a bit different. Objects in Doom were all billboarded sprites, afaicr.
The entire game uses only 97,280 bytes of disk space. In contrast, most contemporary first-person shooters fill one or more CDs or DVDs. According to the developers, .kkrieger itself would take up around 200–300 MB of space if it had been stored the conventional way [0]
[0] https://en.wikipedia.org/wiki/.kkrieger#Procedural_content
A guy I know wrote a Minecraft clone, a left 4 dead clone and a populus clone in 4KB each.
(he also wrote the real Minecraft)
> (he also wrote the real Minecraft) So what you're /actually/ trying to do is namedrop, and say "I know notch". Good for you. I find it funny that you felt the need to add this footnote, given anyone who is wise to these prods (or just googles them) will be aware of the author.
https://www.reddit.com/r/Minecraft/comments/fhdlp/minecraft_...
So it is a Crytek engine? That joke held itself for ages.
> The "real gamedevs" (such as Carmack) were trying to optimize for performance and working on the most possible hardware configurations.
There are many different kinds of gamedevs and many games never made it past their one target platform or sucked on anything else, in addition third party console ports often end up horrible.
Not to forget that the true heroes are often the driver developers that have to add game specific hacks to make the bundle of undefined behavior that the gamedevs call a game both run and look like it didn't come from the uncanny valley.
Games are not about technical superiority - they're about having fun and projecting stories and emotions, just like any other art form.
You say that as if it is a pejorative. In many ways, the demo scene is more demanding of excellence than game development.
Yes, there are differences in priorities between demos and games, but by creating a technically excellent demo that is also a game that "plays really well", they've shown that they are "demodevs" who are also "gamedevs".
And art comes in many forms. Besides the obvious visual/animation/audio artistic aspects of demos, the awe felt at the technical superiority of a great software demo is very similar to the inspirational effects of great physical architecture, but not everyone feels that emotion.
The Taj Mahal is a physical "demo" that demonstrates great "technical superiority", but even people who don't care for architecture tend to recognize it as art.
That implies that making something technically impressive, like .kkrieger, isn't an art form.
These guys did the ALL of the work from the ground up. That's REAL development.
On the other hand, yes of course demos are also about "technical superiority", as well as "having fun and projecting stories and emotions". Just in a different sense than games are, which is the part that's "just like any other art form" ;-)
[EDIT] though, to be clear, still far less than Perfect Dark did.
While writing your own engine from scratch can sound tempting, and absolutely is a rewarding excercise, if your goal is to publish a game, it's probably wise to not do this. Pick up gamemaker or godot or unity and start prototyping right away.
I might have a bit of a bias here, but I spend a not-insignificant amount of time on an online gamedev community, and the only people who ever finish anything are the guys using gamemaker and unity. Everyone else gets stuck at the "should I use regular inheritance or components/what's the best way to z-order sprites/Delta time coefficients cause random bugs in physics" stage and cannot proceed because their engine becomes unstable.
If you have the skills and time, and feel like it is necessary to write your own engine for your game, then by all means, but I think that for most people, these prerequisites don't exist.
"Real dev" or not, once you shipped your game, you've done more than most devs.
Sorry, but doing more work just for the sake of doing more work is not something that's impressive. It's merely a waste of time. For .kkrieger the technical achievement of fitting that much in so little space is definitely impressive, but dismissing developers that were using a licensed engine is pointless. Most games are built with finite time and money. If you can build a better game by allocating money somewhere you'd otherwise have spent time at the expense of part of the game, then that's a net win in my eyes, and doesn't diminish the result in the slightest.
I believe there's rules on HN regarding unwarranted snark. You very obviously missed the entire point of what I said so there's no point in trying to explain.
Unless you believe that every single game should write its own engine from scratch, then I don't know what to say about that, it's just extremely obvious that it's not feasible for every project regardless of whether you have 100 or 10000 people working at your company.
We expect certain things from games, and .kkrieger doesn't deliver on that front. In the context of the demoscene, it delivers in spades.
I thought you were originally objecting to the reclassification of the .kkreiger developers, gamedev -> demodev. A second reading suggests that maybe they don't consider .kkrieger to be art, in which case I disagree.