Live data from Hacker News

VVVVVV’s source code is now public, 10 year anniversary jam happening now

distractionware.com

171–180 of 232 posts

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#171

Earlier quoted context omitted.

It is different for technical terms. It's perfectly fine if I told a novice mathematician, "no, wait, that's wrong, a Riemannian manifold is..." We have a precise, technical definition of open source precisely so we can judge when a license satisfies the legal freedoms that open source demands.

Perhaps, but "open source" isn't a technical term, and anyway there are lots of vaguely technical terms that have a subtly different layman's definition anyway. Categorizing certain phrases as "technical terms" to which different rules apply is just another form of linguistic prescriptivism, after all.

"Open Source" specifically was coined precisely because there was little or no documented previous use of the term. They wanted something that would mean roughly the same as "Free Software" but possible to protect with a trademark and owned by an industry association. (Not the FSF.)

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#172

It’s always great to be able to study the source code for successful, released, real games. I will note that this is actually the source code of the C++ rewrite! The original game was written in Flash, and this version was apparently written by Simon Roth. My impressions: The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes (…

> The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes ( https://wiki.c2.com/?GodClass ), and in general you will have to do a bit too much archaeology to figure out what a particular class or member function is supposed to do (the function and class names don’t give you enough, and there are no comments to help out). There a…

Game development mostly relies on getting creative stuff implemented fast, not good. And if it works then it works, why spend any more time on it if you can implement even more cool ideas (or release it).

And Minecraft is one of the best examples for a game that is still paying for such a development style.

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#173

Earlier quoted context omitted.

> The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes ( https://wiki.c2.com/?GodClass ), and in general you will have to do a bit too much archaeology to figure out what a particular class or member function is supposed to do (the function and class names don’t give you enough, and there are no comments to help out). There a…

Game development mostly relies on getting creative stuff implemented fast, not good. And if it works then it works, why spend any more time on it if you can implement even more cool ideas (or release it). And Minecraft is one of the best examples for a game that is still paying for such a development style.

> And Minecraft is one of the best examples for a game that is still paying for such a development style.

But most games aren't in continuous development to the extent Minecraft is

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#174

It’s always great to be able to study the source code for successful, released, real games. I will note that this is actually the source code of the C++ rewrite! The original game was written in Flash, and this version was apparently written by Simon Roth. My impressions: The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes (…

> The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes ( https://wiki.c2.com/?GodClass ), and in general you will have to do a bit too much archaeology to figure out what a particular class or member function is supposed to do (the function and class names don’t give you enough, and there are no comments to help out). There a…

This is a classic, but I think it applies here: https://web.archive.org/web/20200108125657/https://www.jwz.o...

Edit, I've been informed that the direct link has a NSFW redirect, so using archive.org instead

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#175
post #170

Earlier quoted context omitted.

> The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes ( https://wiki.c2.com/?GodClass ), and in general you will have to do a bit too much archaeology to figure out what a particular class or member function is supposed to do (the function and class names don’t give you enough, and there are no comments to help out). There a…

> Maybe these supposed anti-patterns don't really matter as much as we think they do for successful software? Given that plenty of successful software has them. There's more than one variable involved. You can write successful software full of anti-patterns, but you'll probably pay for it in some other way (like increased QA effort or a low bus-factor [1]). [1] https://en.wikipedia.org/wiki/Bus_factor

This is a game that has gone through a few revisions by different authors. And whilst I doubt any of them were happy with the hand they were dealt it still shipped after their work. So maybe it had increased QA effort over the baseline version that doesn’t exist but it certainly had no bus factor.

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#176

Earlier quoted context omitted.

> The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes ( https://wiki.c2.com/?GodClass ), and in general you will have to do a bit too much archaeology to figure out what a particular class or member function is supposed to do (the function and class names don’t give you enough, and there are no comments to help out). There a…

This is a classic, but I think it applies here: https://web.archive.org/web/20200108125657/https://www.jwz.o... Edit, I've been informed that the direct link has a NSFW redirect, so using archive.org instead

Watch out, this gives a NSFW redirect

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#177
post #170

Earlier quoted context omitted.

> The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes ( https://wiki.c2.com/?GodClass ), and in general you will have to do a bit too much archaeology to figure out what a particular class or member function is supposed to do (the function and class names don’t give you enough, and there are no comments to help out). There a…

> Maybe these supposed anti-patterns don't really matter as much as we think they do for successful software? Given that plenty of successful software has them. There's more than one variable involved. You can write successful software full of anti-patterns, but you'll probably pay for it in some other way (like increased QA effort or a low bus-factor [1]). [1] https://en.wikipedia.org/wiki/Bus_factor

The motivations around those kinds of factors are different for games, though.

e.g., bus factor has to be weighted a lot more highly on software that needs to be maintained indefinitely than it does on software that is going to be shipped on a fast-approaching deadline and then (probably) never touched again.

Also, bus factor's importance depends on the size of the team. In the limit case - a 1-developer project like VVVVVV - it's meaningless.

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#178
post #121

Earlier quoted context omitted.

> is possibly the evilest level I've ever completed in a video game That was the case for me too, until I recently picked up the game Celeste . Some of the C-sides were so evil I just gave up and never beat them (I have a wife and kids, time is limited). This is coming from someone who generally likes hard games (big fan of Dark Souls series, for example, and yes, I know "hard" is relative). The Celeste Chapter 9 gol…

I got sucked back into Celeste recently; as of last night, the only golden berries left for me are 5B-8B, Farewell, and the dashless winged berry for 1A. (I also haven't gotten the moon berry yet, I kind of forgot about it when I was polishing off the red berries earlier). At the same time, it's easy to believe that this is as far as I'll ever make it; part of what makes going for golden berries so addictive to me is…

Dashless 1A isn't as hard as you think - just go into options and remap the dash button and then take it one room at a time - you can die as much as you want, you just aren't allowed to dash. Watch a video if you get stuck. I was able to do it in one sitting.

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#179
post #141

Earlier quoted context omitted.

Yeah but carmack style quality isn't as SOLID as people want to. Game devs have always also factor in performance, that's what other dev communities have lost. Apart from embedded devs.

I would caution people against taking SOLID as a measure of code quality. That’s a trap. SOLID is just a set of object-oriented design principles, not laws. If you take the guidelines too seriously, you will end up with a damaged code base which is difficult to read or understand. Having spent quite some time in id Software code bases, I will defend them as being high quality, but whether or not they are SOLID is not…

I fully agree with this.

Guiding principles are a good thing, but the one principle that should top them all is "no dogma".

Re: VVVVVV’s source code is now public, 10 year anniversary jam happening now

#180

It’s always great to be able to study the source code for successful, released, real games. I will note that this is actually the source code of the C++ rewrite! The original game was written in Flash, and this version was apparently written by Simon Roth. My impressions: The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes (…

> The source code is a bit of a tangle here. There are magic numbers ( https://wiki.c2.com/?MagicNumber ) all over the place, plenty of god classes ( https://wiki.c2.com/?GodClass ), and in general you will have to do a bit too much archaeology to figure out what a particular class or member function is supposed to do (the function and class names don’t give you enough, and there are no comments to help out). There a…

Game code is usually specifically built to be useful for a very short amount of time, and is frequently the definition of "one and done". Examples against are long lived games like world of warcraft, engines like infinity, unreal, naughty dog etc, which must support extension over time.

A game like VVVVVV is, once a class is created, unlikely to be changed a thousand times. It wouldn't scale if you had 200 people working on it with new people coming in and leaving all the time. But at the end it doesn't really matter much in this case, and isn't the right thing to focus on while coding up a game.

> Maybe these supposed anti-patterns don't really matter as much as we think they do for successful software

They matter a lot for some software more than others. All software is a set of tradeoffs in some ways or another - in this case its attention to things like perfect class naming.

Post reply on HN