Live data from Hacker News

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

distractionware.com

211–220 of 232 posts

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

#211
post #72

Oh gods. VVVVVV's core mechanic is that you don't so much "jump" as you just flip gravity, and you only get to do so when your feet are firmly on the floor. This leads to some very interesting designs. The stage "Veni Vidi Vici (Doing Things The Hard Way)" is possibly the evilest level I've ever completed in a video game. Just a tiny little block, trivial to jump over, but the lack of a jump button means you have to.…

How those rooms are implemented: https://github.com/TerryCavanagh/VVVVVV/blob/master/desktop_...

It's cool how you can kind of see the level if you squint.

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

#212

Earlier quoted context omitted.

> This is not really out of the ordinary for successful, released, real games Well said. A lot of people will nitpick and talk big about how they would use proper abstraction and write very clean code, but probably none of those people have ever had a successful indie game out.

To be fair, one of the most vocal advocates of higher code quality is Carmack, who has put out a few games. What I’ve seen is that it’s hard for someone who’s not released a game before and supported it post-release to know where and how you can sacrifice code quality for a faster development time.

> To be fair, one of the most vocal advocates of higher code quality is Carmack, who has put out a few games.

I'm working on a port of Doom right now, and have worked with the Quake 2 source code before. I also took a quick look at the Wolfenstein source code yesterday.

It's very clear that Carmack and his colleagues have developed their craft over time. Wolfenstein doesn't seem to have much structure to it at all. Doom is still a mess of global variables and ugly code. But you're starting to see some nice abstractions, like the WAD loading (which made it modder friendly) and the sound module system.

It's been a while since I worked with the Quake 2 code, but I remember it being quite elegant. From what I've heard the Doom 3 source code is excellent.

I think the point is, for your first projects, for small indie-style games, you really shouldn't worry too much. In my experience, it's really hard to learn to use good abstractions effectively unless you've tried to do things the hacky way first, and actually have a solid feeling for what the abstractions try to solve. I still notice this, that I really have trouble getting some projects off the ground if I try to do it the elegant way from the start. Sometimes you spend too much time with an abstraction that turns out to be a bad fit. If I just hack it together, and then refactor it later, it's much easier to get things started.

It's also important to remember that the more people you're collaborating with, the more important it is to have a clean structure.

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

#213
post #170

Earlier quoted context omitted.

> 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…

It’s not meaningless when you’re spending exponentially more time debugging random bugs due to lack of architecture (which usually implies you can’t properly test anything, too).

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

#214
post #79

Earlier quoted context omitted.

indeed, Ethan Lee's portfolio is impressive ! http://www.flibitijibibo.com/index.php?page=Portfolio/Ports I wouldn't have thought linux games were such a small thing, for a single person to have worked on so many of them

That's an impressive collection of Indie games. This looks like the classic example of a consultant gig. You have some specialized knowledge of how to solve a problem that's easy when you know what you're doing. Indie devs can hire you for a day and check off that "Linux support" box so they can show up in a Humble Bundle and make a little more than you spent on the consultant with those 5% or so Linux gamers. > Drea…

It's a comedy/meme game.

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

#215

Did they use a transpiler or something for the mobile version? Lot of magic numbers and odd code like this if (t == 0) t = 0; if (t == 1) t = 20; if (t == 2) t = 14; if (t == 3) t = 15; if (t == 4) t = 13; if (t == 5) t = 16; or case 17: blocks[k].prompt = "Press ENTER to activate terminal"; if(mobilemenus) blocks[k].prompt = "Activate terminal"; blocks[k].script = "terminal_warp_1"; setblockcolour(k, "orange"); trig…

It was hand-ported from Flash. I can imagine it being harder to do better than that in ActionScript especially if it was an older version.

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

#216

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…

Seems more likely they get blindly ported over because nobody can decipher what the hell the code was supposed to do.

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

#217
post #69

Earlier quoted context omitted.

Yes, OSI is responsible for the OSD, but the term has gotten somewhat "genericised". It's like saying that the Kimberly-Clark company doesn't define what "kleenex" is anymore. Whenever this debates comes up everyone always says, "wait, the term existed before OSI", but no, it really did not. Essentially nobody was saying "open source" before 1998 when OSI and Tim O'Reilly started pushing "open source". https://thebaf…

Well, there are references of "Open source" being in use earlier; for example: https://groups.google.com/forum/#!msg/comp.os.ms-windows.pro... http://www.xent.com/FoRK-archive/fall96/0269.html Especially that Caldera one seems pretty high profile. "Open source" has always been used as a generic term, because it's a very descriptive adjective+noun one. Trying to reserve such terms for one particular narrow usage seems…

The Caldera one is always "open source-code", not "open-source code". The words happen to appear together but aren't being used with the same intent.

I didn't know about the NT example. It's a new one to me. But it's also very isolated. I said "essentially nobody" not absolutely "no one". There are a few scattered and rare examples before 1998, but it was not common parlance and most people had never heard about "open source" before Tim O'Reilly bankrolled OSI.

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

#218
post #72

Oh gods. VVVVVV's core mechanic is that you don't so much "jump" as you just flip gravity, and you only get to do so when your feet are firmly on the floor. This leads to some very interesting designs. The stage "Veni Vidi Vici (Doing Things The Hard Way)" is possibly the evilest level I've ever completed in a video game. Just a tiny little block, trivial to jump over, but the lack of a jump button means you have to.…

How those rooms are implemented: https://github.com/TerryCavanagh/VVVVVV/blob/master/desktop_...

That code is generated by the level editor, IIRC.

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

#219

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…

its the game that is successful not the software. This game could be written many different ways. Players dont care. Now if there is a particular pain point or glitch in the game and it can be shown that its the style of code that allowed for this to happen. That better organized code would have mitigated this bug then that is important to investigate.

But trying to figure out what a successful game is by its source code is like trying to find what makes a painting good analyzing the chemicals used to make the pigments.

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

#220
post #12

Earlier quoted context omitted.

No kidding. I sincerely doubt this actually qualifies as Open Source. It certainly can’t be distributed by, e.g., Debian.

This probably could go in the Debian nonfree repo

…which is defined as being not distributed by Debian; it is, IIRC, the reason it exists.
Post reply on HN