Live data from Hacker News

VVVVVV Source Code

github.com

81–90 of 95 posts

Re: VVVVVV Source Code

#81
post #54

Quote from https://distractionware.com/blog/2020/01/vvvvvv-is-now-open-... , linked in the article: --- snip --- There’s a lot of weird stuff in the C++ version that only really makes sense when you remember that this was made in flash first, and directly ported, warts and all. For example, maybe my worst programming habit is declaring temporary variables like i, j and k as members of each class, so that I didn’t hav…

I'm not sure if this a new idea, unlikely - but I'll write it out at risk of forgetting later:

Code can be terrible, but fun: interesting bugs created and found in novel ideas.

Code can be wonderful, but boring: a calculator application which is well written, but drab in implementation.

Code can be terrible, and boring: some poorly thought-out B2B product that has hundreds of edge cases, each of which have numerous, similar but distinct bugs.

Code can be wonderful, and interesting: Doom, etc.

Re: VVVVVV Source Code

#83

Earlier quoted context omitted.

this is the correct takeaway, in my opinion. game developers must consider things that people like enterprise developers never concern themselves with, like latency and performance. these days, at least where I work, everything is dominated by network latency. no matter what you do in your application logic, network latency will always dominate response time. with games, there is no latency unless you are writing a m…

The comment reads as ragebait or sarcasm but I actually can’t tell. I don’t want to take away from Game developers but as a “corporate developer” I can attest that a lot of what you said about us is blatantly false. I’ve spent a lot of time optimizing the performance of many backend services. This is a very standard practice. Having highly performant code can save companies a ton of money on compute. In fact I’ve wor…

Not rage at or sarcasm.

Maybe you have optimized your stuff so far that you have to use Compiler Explorer to tell you how many cycles a change will cost you in a user transaction. I doubt you do, but maybe you do. Someone surely does this, somewhere. Maybe finance developers do this actually.

I’m sure there are enterprise devs who throw all industry “best practices” out the window, because they all seem to be designed specifically to slow your software down, but I’ve never even heard of anyone doing that.

Maybe you’re an enterprise developer who writes code in a very strongly data-oriented way, rather than strongly matching the objects in their code to the simple concepts the users think of when they’re using their software.

I honestly hope you are, because I’ve been dying to see that stuff happen ever since I became an enterprise software developer and saw how things are really written.

I have always worked with people who strongly prefer to write their things in JavaScript or Python, because anything else is “too hard.” I’m only slightly exaggerating with that. Very slightly.

Re: VVVVVV Source Code

#84
post #16

I’ll take the chance to reference Super Hexagon by the same author. Incredibly fun and addictive game as well while being super simple. I recall reading somewhere that the author spent only a day or so writing it. And PPPPPP, the soundtrack for VVVVVV, is neat too!

Super Hexagon is my all-time favorite mobile game. I bought it in 2017 and I still play it to this day. I say it's the only game quick enough that you can have fun during an elevator ride.

Re: VVVVVV Source Code

#85
post #31
post #16

I’ll take the chance to reference Super Hexagon by the same author. Incredibly fun and addictive game as well while being super simple. I recall reading somewhere that the author spent only a day or so writing it. And PPPPPP, the soundtrack for VVVVVV, is neat too!

I'll add a shoutout to PPPPPPowerup!, an album of remixes of PPPPPP, and MMMMMM, an album of metal covers of PPPPPP.

Thank you for telling me about MMMMMM. I have the two PPPPPP albums on CD, but never heard of the metal covers until now.

Re: VVVVVV Source Code

#86

Earlier quoted context omitted.

this is the correct takeaway, in my opinion. game developers must consider things that people like enterprise developers never concern themselves with, like latency and performance. these days, at least where I work, everything is dominated by network latency. no matter what you do in your application logic, network latency will always dominate response time. with games, there is no latency unless you are writing a m…

Factorio is black magic fuckery as far as I'm concerned. Maybe it's because my factory hasn't gotten big enough or I'm playing a MOSTLY vanilla install, but all that's happening and the game is still only using 2% of my CPU. I can't imagine the immense size of a factory you'd need before the game started stuttering.

Agreed. It’s an amazing example of just how much a computer can do in 16.6ms.

Re: VVVVVV Source Code

#87

Earlier quoted context omitted.

Playing retro games seems like a good way to get ideas. The VVVVVV gravity mechanic is pretty much Gravity Man from Megaman 5 (I guess Megaman is not the first time it was used either). Mining retro game mechanics was probably easier at the time VVVVVV was developed as the explosion of indy games has probably reused the best forgotten ones of the 80s/90s. It's getting close the time mechanics from 00s games can be re…

I don't see why you can't reuse whatever mechanics you like. Return of the Obra Dinn was a 2018 mystery puzzle game, where you have to figure out how everyone died in an ill-fated voyage at sea. Amazing game. I searched Reddit for "games like Obra Dinn", and this led me to Case of the Golden Idol, a 2022 game with similar mechanics. The developers were quite open about being inspired and influenced by Obra Dinn -- an…

To further justify your position; Originality is just the unique composition of various unoriginal things. If you chase quality, originality will appear as a byproduct as you deal with the intricacies from your specific combination of features.

That is, everything interesting appears from the relationships between subjects, not the subjects themselves (the edges, not the nodes, of the graph). You could change any one major component of the game, explore it sufficiently, and you will inevitably have something sufficiently original despite 90% of the original core being duplicated — the nature of exploring the relationships thoroughly — chasing quality — will inevitably lead to a cascading series of changes until you reach the new stable point

Re: VVVVVV Source Code

#88

Earlier quoted context omitted.

The comment reads as ragebait or sarcasm but I actually can’t tell. I don’t want to take away from Game developers but as a “corporate developer” I can attest that a lot of what you said about us is blatantly false. I’ve spent a lot of time optimizing the performance of many backend services. This is a very standard practice. Having highly performant code can save companies a ton of money on compute. In fact I’ve wor…

Not rage at or sarcasm. Maybe you have optimized your stuff so far that you have to use Compiler Explorer to tell you how many cycles a change will cost you in a user transaction. I doubt you do, but maybe you do. Someone surely does this, somewhere. Maybe finance developers do this actually. I’m sure there are enterprise devs who throw all industry “best practices” out the window, because they all seem to be designe…

In my experience in enterprise code nothing really matters except the DB. From a performance perspective. The amount of compute you can save in application code is peanuts next to a poorly written query or worse, a poorly designed data model.

I've seen code take 10 minutes (yes, really) to complete a request. Naturally that's 99.99% database time. The application code, which was C++, was nothing. If we switched to Java or even Python nobody would notice.

What made that request so bad was so simple, too. No pagination, no filtering. Instead, it was done in the application code. Yes, really, grabbing hundreds of thousands of rows and then filtering them in for loops and returning less than 100. Original code written who knows when (our source control only went back to 2011 so it's anyone's guess). Probably at some point grabbing all the rows didn't really matter. But then the table grew and grew and I'm sure it's scope grew, too, and suddenly the performance was unbelievably bad.

Anyway, if you can write half decent SQL you're already leaps and bounds ahead of most backend developers. Half of backend developers avoid SQL like the plague, and it leads to doing SQL-like things in application code, which is just asking to start a fire in the server room.

Re: VVVVVV Source Code

#89
post #57

VVVVVV is a superb demonstration that graphics don't make a game -- music does.

Agreed!

Nonetheless, VVVVVV’s graphics are exquisitely done, and, well, perfect? The graphical limitations – the technical underpinnings of the style? – those are a decision, and the result is… exactly what it should be.

(Hard to get into words! Came out kinda pretentious? *shrug*)

Re: VVVVVV Source Code

#90
post #54

Quote from https://distractionware.com/blog/2020/01/vvvvvv-is-now-open-... , linked in the article: --- snip --- There’s a lot of weird stuff in the C++ version that only really makes sense when you remember that this was made in flash first, and directly ported, warts and all. For example, maybe my worst programming habit is declaring temporary variables like i, j and k as members of each class, so that I didn’t hav…

This sounds great and confirms my suspicions that gaming coders learn more than standard coders do.

> gaming coders learn more than standard coders do

See the _Taos_ operating system. Based around something that conventional programming knowledge said was impossible. Created by games developers because they could.

https://sites.google.com/site/dicknewsite/home/computing/byt...

TL;DR

All Taos code (except for some core device drivers for booting) is compiled for a nonexistent "Virtual Processor" (VP) and the VP bytecode is compiled to native code on the fly as it's loaded into RAM; the compiler is so efficient that the time delay of reading from hard disk is enough to generate native binaries with no significant delay.

Result: not only is the entire OS above the bootloader not just portable but will execute unmodified on any supported CPU from x86 to Arm to MIPS to PowerPC, but it was possible to have heterogenous SMP.

The Acorn RISC PC was an Arm desktop with an x86 second processor in a slot. Taos could execute on both at once.

Taos evolved into Intent and Elate, and nearly became the next-gen Amiga OS, before Tao Group collapsed. Some of the team used to hang out on HN.

The closest thing in the Unix world is Inferno, which is effectively UNIX 3.0 and is almost unknown today. Inferno embeds a bytecode runtime in the kernel, shared by the whole OS, and rewrites what was effectively Plan 9 2.0 in its own new descendant of C. So all binaries above the bootloader and kernel are cross-platform binaries that can execute directly on any CPU.

Post reply on HN