9 ms·
F***ing Learn to Code Again (1999)
- mathgeek 12y agoYou should have included the year in the title, as it wasn't obvious at first.
- huxley 12y agoFYI: from Feb 15 1999
- userbinator 12y agoNeeds a (1999) in the title. For those not in the demoscene, this is written by one of the members of the demogroup Farbrausch: http://en.wikipedia.org/wiki/Farbrausch http://en.wikipedia.org/wiki/Farbrausch I think this is one of their most impressive demos: http://theproduct.de/ http://theproduct.de/
- jeffreyrogers 12y agoThanks, I fixed the title.
- leeoniya 12y agolet's not forget .kkrieger - their 96k procedural FPS game [1] also, ryg from Farbrausch (who works for RAD Game Tools) blogs regularly [2]. A story about their crazy .kkrieger code sprints at [3] (submitted about a year ago [4]) [1] http://www.pouet.net/prod.php?which=12036 http://www.pouet.net/prod.php?which=12036 [2] https://fgiesen.wordpress.com/ https://fgiesen.wordpress.com/ [3] https://fgiesen.wordpress.com/2012/04/08/metaprogramming-for-madmen/ https://fgiesen.wordpress.com/2012/04/08/metaprogramming-for... [4] https://news.ycombinator.com/item?id=7739599 https://news.ycombinator.com/item?id=7739599
- oxalo 12y ago96k. Think about that for a sec. Most big name games for PC are ~10GB these days... 100,000x as big as .kkrieger.
- sp332 12y agoMy favorite bits from link 3: In the menu at the start, cursor-down works, but cursor-up doesn’t (he never hit cursor-up in menus during the test run). The small enemies at the start can hit you, but he didn’t get hit by any enemy shots, so in the released version of .kkrieger enemy shots deal no damage.
- m_mueller 12y agoFunny how they apparently did go with reusability at the end ;).
- pselbert 12y agoHilariously following the links lands you at http://www.theprodukkt.com/ http://www.theprodukkt.com/, which is the site for a German butcher shop. Avoid the link unless you like giant images of thinly sliced meat.
- staticshock 12y agoFor the record, that's not German, that's Russian. Moscow, to be specific: > 111398, г. Москва, ул. Перовская, 20
- 10098 12y ago> Avoid the link unless you like giant images of thinly sliced meat. Found the vegan :)
- pselbert 12y agoI'm not vegan at all, in fact I'm quite the carnivore. The trail of links just leads somewhere unexpected if you're coming from a demoscene page. Separately, my apologies about mistaking the language and location.
- sp332 12y ago.the .product was amazing at the time, but I feel like the scene has really moved beyond that old demo.
- clay_to_n 12y agoFarbrausch made the first demo I ever saw, a 2007 one called debris (fr-041): https://www.youtube.com/watch?v=wqu_IpkOYBg https://www.youtube.com/watch?v=wqu_IpkOYBg Super cool, and in an executable of 177kB.
- maxs 12y agoA newer one from them I really liked is Rove: https://www.youtube.com/watch?v=k_oTQd93eRI https://www.youtube.com/watch?v=k_oTQd93eRI
- falcolas 12y agoI found this to be a great reminder of how far we've come in 16 years, but it's also a reminder of how little some of the basics have changed. We still advocate going down to A lower language for the fast boys, but we can more or less forget about having to write ASM for all but the most complicated algorithms. We still fight platform differences, and DirectX is still one of the most powerful and developer friendly frameworks. Low level knowledge is still mocked by some individuals, yet C++ is still the God of graphics and video games.
- emodendroket 12y agoIs it not the case that many/most games now are some smaller C++ components being scripted by something higher-level?
- dfox 12y agoThat was the case in second half of 90's and 00's, today most engines got back to C++ plugins (or plugins in same language as engine itself) and simple declarative logic in game data. (this has to do with both performance as with various walled gardens that do not allow general purpose scripting)
- emodendroket 12y agoThe Apple App Store has allowed scripts for some time for this exact scenario. I'm not sure which other walled gardens you mean though.
- deleted 12y ago[deleted]
- emodendroket 12y agoWhy would that be a reason to prefer to implement your entire game in native code?
- 12y ago
- nowarninglabel 12y agoFound a video of the "perfect drug" demo mentioned, uploaded with notes by the author to Youtube https://www.youtube.com/watch?v=_LHpaGSb3JQ https://www.youtube.com/watch?v=_LHpaGSb3JQ
- SpaceInvader 12y agoI was really deep into scene many, many years ago, and in terms of PC - 2nd Reality by Future Crew blew my mind. And still does. http://en.wikipedia.org/wiki/Second_Reality http://en.wikipedia.org/wiki/Second_Reality
- gfodor 12y agoYup, if the "Mother of all Demos" moniker wasn't already (rightfully) taken, 2nd reality would be it.
- pjc50 12y agoMe too. Maybe it isn't precisely at the top technically, but artistically and musically it just hangs together so well and so accessibly. A minor but important point in its favour is that it didn't require a Gravis Ultrasound, those things were annoyingly expensive.
- mech4bg 12y agoMy friends and I all upgraded with the ACE version came out, which was meant to be used more as a passthrough - it was great. http://en.wikipedia.org/wiki/Gravis_Ultrasound#UltraSound_ACE_.28Audio_Card_Enhancer.29 http://en.wikipedia.org/wiki/Gravis_Ultrasound#UltraSound_AC... A lot of friends who were devs got free Gravis boards by writing to Gravis directly which is why so many demos and shareware supported it.
- johansch 12y agoCrystal Dream 2 by Triton, released earlier the same year is on par, I think: http://en.wikipedia.org/wiki/Crystal_Dream_2 http://en.wikipedia.org/wiki/Crystal_Dream_2 https://www.youtube.com/watch?v=7mWbnVPwX4U https://www.youtube.com/watch?v=7mWbnVPwX4U
- nsxwolf 12y agoThe Commodore 64 version is double-mind-blowing.
- everyone 12y agoAlso blew my mind. I could have watched it 100 times. I'm surprised I came across a copy of it so soon after it came out. It must have really made the rounds! Same as DOOM, they both showed up on floppies via an older cool acquaintance of mine.
- moron4hire 12y agoThe programming advice it provides is good[0], but I'm ultimately struck by how whiney and entitled this sounds. People respond in this manner when they feel like they have some sort of position they have personally gained through their own work that is now being threatened. The arguments often only hide an insecurity that the methods the "traditionalist" used to gain their position are dying out, that a new breed is forming, using new techniques that they don't understand, but that they inherently recognize have the potential to be universally (or near-enough) superior, if given the time to be developed. Thus the need for the immediate, preemptive attack: to cut out the nascent ideology before it has a chance to establish roots. I think the anti-intellectual aspersions cast towards computer science students is a good indicator of this. The techniques he holds dear are only possible because of computer science. Computer Science is a field of applied mathematics that some people dream will one day be treated like a field of theoretical mathematics, to gain standing and respect in the world of mathematics that traditionally looks down upon the applied fields like CS, statistics, cryptography, etc., in much the same way that "aht" artists look down on illustrators. I think he writes off an entire field of study just because occasionally, specific people--caught in this cultural divide between applied and theoretical mathematics--write some shitty code. Let's see him come up with IEEE floats on his own. Let's see him conceive of 2's compliment signed integers on his own. Let's see him come up with an assembler on his own. Without prior exposure to the concept.[1] You don't get Dijkstra's path finding algorithm with an ivory-tower attitude that doesn't care about the practicalities of implementation. It's not like people are or were getting paid to do this. People did it for fun. If you don't like something that people do for fun, just walk away. The reason these things happen, that we see "bad" examples is not because people are getting worse at doing this stuff, it's because new people are finding it easier to get started. Angry diatribes like this are just attacks at new people when they need encouragement and guidance. [0] Well, to a degree. His field is "clever hacking of X86 assembly". A similarly "clever hacking of dynamic programming languages" exists that necessitates completely different techniques. I'm reminded of the 30-LOC spreadsheet in JavaScript that showed up about a year ago: https://news.ycombinator.com/item?id=6725387 https://news.ycombinator.com/item?id=6725387 [1] I'm reminded of a joke. Some years in the future, a man goes to God and says, "God, science has progressed so far that we don't need you anymore." God smirks a little and replies, "Oh really?". Man says, "Yeah, and to prove it, I challenge you to a duel. Anything you make, I will make, too." And God answers, "Okay, well, how about a man?" And the man replied, "No problem. We know chemistry and biology and genetics, we can synthesize everything we need to make a man." He bends down and starts to pick up some dirt and some other materials to start making amino acids when God interrupts him, "Hey now, go get your own dirt."
- emodendroket 12y agoThis is an old attitude. People thought the idea of writing an operating system in anything other than assembly was nuts at first too but eventually the optimization is just not very meaningful.
- serve_yay 12y agoThis mostly just makes me glad I was never part of the demo scene.
- davesque 12y agoYeah, if I had a nickel for every time I heard someone rant about how stupid everyone is...
- GuiA 12y agoThis attitude is fairly common amongst the real old timers of the demoscene. While there is of course a bit of viewing the past through rose tinted glasses, I think it's definitely grounded in truth. The reason for that is that demo programming is the coding equivalent of watch making: extremely precise, technical work that takes deep knowledge and long hours to achieve something notable. Knowing your tools and platform inside out is a necessity - and the more modern your CPU/GPU are, the less realistic that is. When I was writing assembly for my 8MHz z80, I could easily hold the full instruction set + CPU register layout etc in working memory. When you're working on a modern i7 + GTX780, that's pretty much impossible, and you have to resort to abstraction layers and tools that inevitably lead to the situation described by the author of the article. It's a classic case of extreme restraints working in the favor of creativity. Interestingly enough, my few friends who are still into coding demos don't do it on modern architectures - they're mostly sticking to the C64.
- bane 12y agoOn a side note: the rise of the 1k, 4k and 8k sub-"scenes" is likely a response, create artificial constraints to enable creativity.
- tracker1 12y agoI think the JS k demos are pretty interesting to say the least... it's amazing what can be done with a few K.. though the original vs. final code doesn't always bear much resemblance. The point is, too many people don't spend any* time thinking of how what they write is inefficient or not... Even mobile devices are becoming mobile powerhouses. It's a bit of a shame really.
- jpsierens 12y agoSorry to ask but, what do you and the author refer to with 'demos'?
- maxmem 12y agohttp://www.demoscene.info/the-demoscene/ http://www.demoscene.info/the-demoscene/ http://en.wikipedia.org/wiki/Demoscene http://en.wikipedia.org/wiki/Demoscene
- brudgers 12y agoThe big lesson from demos is that procedures are the ultimate form of data compression. Minutes of video in 64kb often seems to be off people's radar these days, somewhat unfortunately, because some problems are amenable to the approach.
- jheriko 12y agomost of that specific optimisation advice is very far out of date. the principles remain good though, basically * know your shit * measure your work and make sure you really do know your shit i do constantly cry and bleed inside over the tremendous waste of bountiful computing resources we have today. someone once tried to tell me an xbox 360 was a memory constrained environment... jesus wept.
- theandrewbailey 12y ago> someone once tried to tell me an xbox 360 was a memory constrained environment... jesus wept. Depends on what one is used to and what needs to be done. If you're used to PCs that have at least as much GPU RAM and bandwidth as an entire 360, then sure, a 360 is memory constrained.
- chadgeidel 12y agoI always assumed that "memory constrained" referred specifically to the giant texture assets that modern games used. 2048x2048 textures are - from what I understand - not uncommon in PC game dev. I assume this is the biggest constraint.
- chipsy 12y agoIf we're talking about "which bottleneck is the biggest" memory size is traditionally the big one on consoles; there's a longstanding preference for a performance profile of small/fast memory, mid-tier CPU, and top-end dedicated graphics, because, as the saying goes, "graphics sell games," and in most games, the kind and quantity of assets in a scene are limited and the design will allow for them to be carefully streamed in as necessary, so it's more important to allow processing headroom. This also accounts for a difference in design style between PC games and their console equivalents, where PC stuff tends to incorporate deeper simulation aspects with more persistent data being tracked, because there's some extra room for that stuff, while console games are forced to be "lean" with most of their memory dedicated towards the assets while the stats and save data are relatively light. Like everything else, this has changed as we've gotten closer and closer to photorealism and games that are glorified tech demos constitute less and less of the overall market; the current generation consoles have substantially changed their profile to generalize and be more like PCs - the 360 had only 512MB at a time where gaming PCs were going for 1-2GB, while Xbox One and PS4 are roughly in the same ballpark(5GB and 8GB) as current-spec gaming PCs.