Terry Cavanagh Releases Source Code For VVVVVV On GitHub (gamasutra.com) 47
The source code for acclaimed 2D puzzle platformer VVVVVV has been released by creator Terry Cavanagh to celebrate the title's 10th anniversary. Gamasutra reports: Breaking to news in a blog post, Cavanagh explained the code fro both the desktop and mobile versions of the game can now be grabbed over on Github, and confessed that "even by the standard of self taught indie devs, it's kind of a mess." The desktop code is the version that was ported to C++ by Simon Roth back in 2011 and later updated and maintained by Ethan Lee, while the mobile code is written in Actionscript for Adobe AIR and is based on the original v1.0 flash version of the game.
Too late to save Neil Peart. (Score:2, Insightful)
Maybe if this had been released earlier, Neil would have been motivated to double kick the brain cancer. Now Neil stands alone, unable to download this.
Acclaimed 2D puzzle platformer? (Score:1)
Never heard of VVVVVV before today. Where is all the acclaiming coming from?
Re: (Score:2)
On Slashdot, being unaware of a particular 11-year-old indie 2D platforming game gets you called "boomer". ;) We're really living up to this comic [xkcd.com] here.
I should do that with things that I like. "What, you've never heard "Kolbítur" by Nóra? Lol, boomer."
Comment removed (Score:5, Insightful)
Re: (Score:2)
So many things to choose from out there. It is weird how there is always someone who will post "I never heard of this service/movie/musician/etc, why should I care?".
You shouldn't care, that is the best part. Instead of posting here, Google it and decide for yourself. We aren't supposed to know every last thing that we can be interested in in, so stop feeling attacked.
Re: (Score:1)
Boomers invented the internet and search engines. What you describe more accurately reflects millennials and zoomers.
Re: (Score:2)
No, it was actually the people who came back from the war, not the people who were born after those people came back from the war, that did all the work in this field.
Re: (Score:2)
Who's this Mario guy?
Re: (Score:2)
lol found the boomer
I've also never heard of it, and I'm much too young to be a boomer.
Maybe you found the millennial?
Re: Acclaimed 2D puzzle platformer? (Score:2)
Re: (Score:2)
I'm Gen-X and I just consulted a millennial who has never heard of it.
We're batting 3 for 3.
Re: (Score:2)
Well, see it's page on Steam, got a "Most Fun/Compelling Game" in an Indie Games Festival. And it's very well scored both on Steam and Metacritic.
I for one recommend it, great hidden gem of a game.
Re: (Score:1)
Re: (Score:2)
WIWTF?
Re: (Score:2)
For example, Slashdot [slashdot.org].
Re: (Score:1)
> Never heard of VVVVVV before today. Where is all the acclaiming coming from?
Come on, it has its own Wikipedia page: https://en.wikipedia.org/wiki/... [wikipedia.org]
Re: (Score:2)
To be fair, so does... (clicks "Random Article")... I've Forgotten What It Was in You (That Put the Need in Me), a 1989 "country rock" song by someone named Maria McKee. The article has five sections and nine references.
is the source code ever not a mess? (Score:5, Insightful)
code always seems to become a mess. especially in a project with a few developers, and i would guess an indie game is a great example. someone who claims their personal project a mess likely is also more critical of themselves anyway.
never heard of this game but it is still nice to see source code released for published games. the game is also still sold on steam, has 5k+ reviews and very positive rating. so i guess some people have heard of it.
the blog post goes very nicely with the code, providing interesting story elements on its development besides the single line picked up in this slashdot summary stating the code is a mess.
the mess seems to refer to some basic controversies of code quality (e.g., passing everything around all the time because "globals bad"), just hacking it together fast, and stating how he would be slower now trying to do it "right". is it so bad to just hack working stuff together while having some fun when making a simple indie game?
Re: (Score:3, Insightful)
As always it's really about the long term plan for the code. If you're building a game, and it's fairly solid and stable and only needs a handful of minor post-launch fixes/tweaks/changes then fine.
If you're going to maintain it day in, day out for 10 years then you really want the code to be in a better state because you inevitably have two choices when dealing with a codebase like that for the longer term:
1) Continue building hack upon hack upon hack until you can do no more with it and have to abandon th
Re: (Score:2)
Or you could do like EA and other game developers do, simply re-release the same engine every year and once in a while you update the assets/levels to a slightly higher definition.
Re: (Score:2)
C doesn't have a real modulo operator (Score:2)
I can think of two reasons to perform modulo reduction via repeated subtraction.
Re: (Score:2)
Re: (Score:2)
code always seems to become a mess
Once you get enough experience, you can write code that isn't a mess. I focus on three elements:
1) Does the code work?
2) Is the code readable? Can a new programmer take the source and figure it out?
3) Is the code flexible? Can new features be added without massive refactors?
Re: (Score:2)
If you have a plan from the start the code doesn't have to be a mess. I've had some pretty big C projects that I kept in shape by having a plan and sticking to it. Even one fairly large (16k) assembler project.
Re: (Score:2)
No, games are generally coded horribly.
And that's because of two things. First, a game has almost no long-term maintenance - for the vast vast vast majority of games, once it's released, after the first few patches, that's it, it's dead. So no one cares about long term maintainability since no one's going to maintain it longer than a few months after release. So accumulating technical debt doesn't matter because it's effectively written off.
Second, time pressures. You don't have time to refactor, or clean u
Unmaintainable code (Score:2, Interesting)
Re: (Score:2)
Re: (Score:3)
I think to be fair you start with a switch statement that's 8 lines long then add new features, and it grows and keeps growing.
It's not really talent to work on that code, it's knowing the code inside out because you wrote it all and there's enough of a logical structure that lets you navigate it.
My code from the early 90s is unsophisticated but I had no trouble working on it. I wouldn't wish it on others now.
Credit to him for being willing to share. Platformers just aren't my thing so I gave up on his game
Re: (Score:2)
The length of the switch (while a problem) isn't as big of a problem as fucking magic numbers. That's 101 amateur shit right there:
case 7:
case 9: //Start SWN Minigame Mode B
case 10: //Start SWN Minigame Mode A
Really? He was too fucking lazy to add simple enums???
enum
{
STATE_END
Re: (Score:3)
Why slashdot's "code" tag is STILL shit: It removes extra whitespace
Slashdot's <code> tag (not <ecode>) removes whitespace on purpose, following the behavior of HTML's own <code> tag. Slashdot's <ecode> tag behaves more like HTML's <pre> tag.
20 years later and they STILL can't fix this basic shit.
A lot of the quirks of Slashdot with respect to formatting are intended to deter people from posting sexually explicit or racially bigoted ASCII art copypastas.
Re: (Score:2)
Stuff that matters? (Score:2)
Countless projects have their source code made available every day, what makes this one 'stuff that matters?'
Involuntary physiological reaction (Score:2)
"while the mobile code is written in Actionscript for Adobe AIR"
I literally shuddered when I read that part.
"Puzzle platformer" (Score:3)