[HN Gopher] VVVVVV's source code is now public, 10 year annivers...
       ___________________________________________________________________
        
       VVVVVV's source code is now public, 10 year anniversary jam
       happening now
        
       Author : ciroduran
       Score  : 549 points
       Date   : 2020-01-10 14:59 UTC (8 hours ago)
        
 (HTM) web link (distractionware.com)
 (TXT) w3m dump (distractionware.com)
        
       | ginko wrote:
       | Quite cool, although the license is quite strict:
       | 
       | https://github.com/TerryCavanagh/VVVVVV/blob/master/LICENSE....
        
         | ciroduran wrote:
         | Terry is open to propositions
         | https://twitter.com/terrycavanagh/status/1215679119666688001
        
         | teddyh wrote:
         | No kidding. I sincerely doubt this actually qualifies as Open
         | Source. It certainly can't be distributed by, e.g., Debian.
        
           | fiddlerwoaroof wrote:
           | This probably could go in the Debian nonfree repo
        
         | cjbprime wrote:
         | It looks similar to e.g. Quake 3's license, source is open but
         | assets aren't.
        
           | simias wrote:
           | Not at all, Quake 3's source code is GPL[1]. You can totally
           | sell a game made with Quake 3's source, you just have to
           | redistribute the source as mandated by the GPL. v{6}'s
           | license is more restrictive.
           | 
           | The assets are a different problem. You can use the code
           | without the assets and vice-versa.
           | 
           | [1] https://github.com/id-Software/Quake-III-
           | Arena/blob/master/C...
        
             | cjbprime wrote:
             | Oops, I missed that extra clause, thanks.
        
         | ocdtrekkie wrote:
         | Prohibiting commercial use would make it non-open. But it's not
         | that surprising given that VVVVVV is still sold today. I'd
         | rather have the source with limits over not having the source
         | at all.
        
           | [deleted]
        
         | floatingatoll wrote:
         | Not much more strict than CC-BY-NC, unless I'm missing
         | something? The "you may not represent your fork as my product"
         | is a good abuse prevention that I'm not sure the equivalent CC
         | contains, good call including that.
        
           | teddyh wrote:
           | " _You may not alter or redistribute this software in any
           | manner that is primarily intended for or directed toward
           | commercial advantage or private monetary compensation._ "
           | 
           | This kind of stuff is generally regarded as non-Open Source.
        
             | tudelo wrote:
             | Why? The source is open to the public?
        
               | woodrowbarlow wrote:
               | it's a "look but don't touch" situation. open-source
               | means giving freedom to the users.
               | 
               | there's nothing wrong with source-available, but source-
               | available and open-source are not equivalent.
        
               | teddyh wrote:
               | The term "Open Source" has a precise definition,
               | determined by the Open Source Initiative, who invented
               | the term and started promoting it. Nobody used this term
               | in software contexts before they did. They get to define
               | it.
        
               | xorcist wrote:
               | Not sure why this is downvoted. One of the criteria when
               | the term "open source" was decided on by the people who
               | went to form the OSI was that it must not have (much)
               | documented earlier use in order to become eligible for
               | trademark protection.
               | 
               | It was always meant to be a trademark, even if they ended
               | up losing that particular battle. It was deemed to
               | descriptive and generic to be trademarkable, IIRC. The
               | OSI published their criteria anyway, enforced it as much
               | as they could, and really publicized the term over the
               | years. Of course they get to define it.
        
               | yarrel wrote:
               | The source is being shown to the public.
               | 
               | It's not open for them to use.
               | 
               | To argue otherwise is to confuse a window with a door.
        
               | floatingatoll wrote:
               | The analogy doesn't really hold. Is a bathroom door at a
               | grocery store called a "window" rather than a "door" if
               | they prohibit you from bringing unpaid groceries through
               | it?
        
               | Gracana wrote:
               | I have no idea what you're going for here. I feel like
               | Programmer Analogies always rely on the reader agreeing
               | with the author... :|
        
             | Wowfunhappy wrote:
             | Terry is no longer calling this open source after someone
             | pointed this out. The title of the original article now
             | reads "VVVVVV's Source Code Is Now Public".
        
             | SQueeeeeL wrote:
             | "Don't make VVVVV 2 with my code" seems to be what they're
             | going for. I don't know if I agree with the sentiment, but
             | it's nice to have this source available, so if this is the
             | price we have to pay...
        
       | caconym_ wrote:
       | This is a great game, by the way. If you haven't played it, you
       | should.
        
         | rusk wrote:
         | Yes it is very enjoyable.
        
         | xioxox wrote:
         | It's really good. Had a real 80s vibe and nice gameplay.
        
       | diegoperini wrote:
       | I've spent days speedrunning this game. Highly recommend it!
       | 
       | I also suggest "Don't Look Back" from the same developer. It is a
       | short but touching platformer that fills more like a book than a
       | game without even telling a single word.
        
       | JakeWesorick wrote:
       | I appreciate big successes revealing the jank-ness going on
       | behind the scenes. It helps me fight imposter syndrome knowing
       | that everyone is always learning.
        
       | ranger207 wrote:
       | The Awesome Games Done Quick speedrunning marathon [0] ran this
       | game this morning. I didn't get a chance to see it, but I wonder
       | if they mentioned anything about its tenth anniversary? Watch for
       | the video here [1] after today's stream is archived.
       | 
       | [0] gamesdonequick.com [1]
       | https://www.reddit.com/r/speedrun/comments/ek9zmz/agdq_vod_t...
        
         | KapKap55 wrote:
         | This source code release was actually announced at AGDQ on a
         | custom end-game screen once the runner completed it, which is
         | why you're hearing about it now.
        
           | ranger207 wrote:
           | Whoops, I missed that. Have to watch it when I get home then!
        
         | degenerate wrote:
         | Here is the direct link to watch (the run is 21 minutes total):
         | 
         | https://www.twitch.tv/videos/533706108?t=05h29m30s
        
         | t_akosuke wrote:
         | Terry, the creator of the game, sends a $1k donation before the
         | beginning of the run as well
        
         | bscphil wrote:
         | Awesome, thank you for posting this! 100% glitchless is what I
         | do myself when I want to have a little fun, but I can't compete
         | with speedrunners, my best time is 28 minutes and change.
        
       | ddevault wrote:
       | This is really great! I wish they wouldn't call it "open source",
       | though. It looks like a source-available license:
       | 
       | https://github.com/TerryCavanagh/VVVVVV/blob/master/LICENSE....
       | 
       | If Terry is reading this, please correct your article. The
       | correct terminology is important! Open source is defined by the
       | OSD, which this license doesn't qualify for:
       | 
       | https://opensource.org/osd
       | 
       | Kudos for releasing your game's source, though!
       | 
       | Edit: I sent Terry an email and he agreed to change it <3 Thank
       | you!
       | 
       | Edit 2: Ethan Lee worked on this! Ethan Lee is an awesome person.
       | Ethan is probably the single biggest contributor to gaming on
       | Linux, and he's always worked in the background. Thanks Ethan,
       | you rock, and deserve more credit.
        
         | RHSeeger wrote:
         | > Open source is defined by the OSD
         | 
         | To be a bit pedantic, your statement is a slightly ambiguous.
         | 
         | They have a good/accurate definition of open source. They don't
         | "define it" in that they can change the definition to mean "and
         | the packaging must be blue" and that becomes part of what open
         | source means.
        
           | jordigh wrote:
           | 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://thebaffler.com/salvos/the-meme-hustler
           | 
           | "Open source" wasn't our idea, and the greatest marketing
           | trick that OSI ever did was convince so many of us that it
           | was.
        
             | RHSeeger wrote:
             | Not kleenex, no, but open source as a term exists in the
             | same way that escalator does. If the OSI was to change
             | their definition, they would be wrong. The definition has
             | transcended them. I honestly have a hard time understanding
             | how people don't agree with that.
        
               | jordigh wrote:
               | OSI got bad legal advice and quickly abandoned the
               | trademark of the term "open source" itself.
               | 
               | https://trademark.trademarkia.com/open-
               | source-75439502.html
               | 
               | Bruce Perens regrets this[1]. But they could have. The
               | term was not generic when they coined it. It really is
               | like "kleenex".
               | 
               | ----
               | 
               | [1] private communication
        
               | codetrotter wrote:
               | But due to how trademarks work, they would have had to
               | then aggressively protect that trademark with lawyers and
               | stuff and I have a hard time imagining that working out
               | all that well with a lot of us open source software
               | enthusiasts and companies.
               | 
               | Simply put, I think if the name "open source" was a
               | trademark, the open source community would still exist,
               | and businesses would produce open source software as they
               | do today too, but a lot of us would be using some other
               | name for this instead of referring to it as "open
               | source", so that we'd avoid any potential problems with
               | the trademark of open source.
        
               | jordigh wrote:
               | It wouldn't be such a big deal. As the current situation
               | with VVVVV shows, we already kind of have our own little
               | informal community-driven "trademark enforcement", and it
               | works.
        
               | RHSeeger wrote:
               | I used escalator specifically because a lot of people
               | don't realize it originated as a trademarked term for the
               | Otis Elevator Company's moving staircase. Kleenex is
               | still well known as a brand name for tissues, even if it
               | is used generically.
        
         | SquareWheel wrote:
         | > Open source is defined by the OSD, which this license doesn't
         | qualify for
         | 
         | The OSD isn't an arbiter of what is and isn't. Open-source is a
         | flexible term, and insisting that projects must meet
         | definitions A, B, and C is just going to fragment the community
         | and exclude people.
        
           | jordigh wrote:
           | The point of insisting what "open source" means is that we
           | want to ensure the freedoms that open source guarantees. If
           | we don't insist on this definition people will start pushing
           | licenses that forbid commercial use and other things, as this
           | license forbids, and we'll embrace it because we think "ah,
           | open source!"
           | 
           | And yes, when you coin a term, you also get to say what that
           | term means. That's the whole point of coining it:
           | 
           | https://news.ycombinator.com/item?id=22012429
        
             | SquareWheel wrote:
             | The freedoms are guaranteed by the language of the license
             | itself. That's what licenses are for.
        
             | joshuamorton wrote:
             | You're arguing about linguistic prescriptivism vs.
             | descriptivism. Is the definition of the term what the
             | coiner says, or is it how it is commonly understood?
             | 
             | A lot of people are going to disagree with you if you claim
             | that prescriptivism is somehow more correct.
        
               | jordigh wrote:
               | 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.
        
               | joshuamorton wrote:
               | 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.
        
               | the_af wrote:
               | "Open source" is _very much_ a technical term with a very
               | precise definition.
               | 
               | Microsoft knew this when they wanted to jump on the
               | bandwagon and named their own license "Shared Source
               | Initiative"
               | (https://en.wikipedia.org/wiki/Shared_Source_Initiative).
               | It wasn't open source, it was "Shared Source", because it
               | didn't comply with the definition of open source.
        
               | xorcist wrote:
               | "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.)
        
               | SquareWheel wrote:
               | I'm very curious how many of those insisting on the
               | strict definition also pronounce .gif as GIFF, despite
               | the creator clearly insisting it's JIFF.
               | 
               | Words change. The coiner has no more real authority over
               | them than anyone else.
        
               | alvarosevilla95 wrote:
               | To be fair I see a fundamental difference between
               | changing a words pronunciation and meaning.
        
               | SquareWheel wrote:
               | That's true enough.
               | 
               | Related, the definition of gif has actually changed for
               | some. Instead of a specific file format they use the term
               | to mean "soundless looping video". Admittedly even I have
               | a hard time swallowing that definition.
        
               | djur wrote:
               | Seems more like calling a JPEG a GIF.
        
         | JoshTriplett wrote:
         | Thank you for doing this.
         | 
         | Could a mod please change the HN title to match the new article
         | title?
        
           | dang wrote:
           | Sure!
           | 
           | p.s. I asked Drew to post another version of his comment
           | praising Ethan, so we could move the replies to that bit to
           | another subthread which isn't so offtopic. He did:
           | https://news.ycombinator.com/item?id=22014064.
        
       | jonahrd wrote:
       | I just replayed this over the holidays! Time for more :)
        
       | [deleted]
        
       | joshu wrote:
       | i was so hoping this was about vvvv.
        
       | [deleted]
        
       | gameswithgo wrote:
       | It says a lot about vvvvv that, I don't like this TYPE of game,
       | lots of jump puzzles. But I like this game! It is just really
       | well done.
        
       | pdpi wrote:
       | 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... do things the hard way.
       | 
       | https://www.youtube.com/watch?v=4CtiY5D6HCs
        
         | theon144 wrote:
         | Hahaha, despite playing VVVVVV around the time of its release
         | (it's really been 10 years, wow), I realized I could still feel
         | my muscle memory firing up when I saw this level.
        
         | SubiculumCode wrote:
         | that was the task where I put VVVVVV down. lol
        
         | dan00 wrote:
         | The first time not dying going up and down in 'Veni Vidi Vici',
         | I was so exited, that I landed on the wrong side of the box ...
        
         | umvi wrote:
         | > 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 golden strawberry though... that has got
         | to be the most evil collectible I've _ever_ seen included in a
         | mainstream game. I would bet  <.01% of Celeste players will
         | ever earn the Chapter 9 golden strawberry.
         | 
         | To put it in perspective - to earn a golden strawberry you must
         | beat the level without dying once. If you die, you are sent all
         | the way back to the beginning. This isn't too hard if the level
         | only takes 10 minutes to beat like Chapter 1. However, Chapter
         | 9 took me over 4 _hours_ to beat and I died over 1,000 times.
         | And not only that, if you manage to beat Chapter 9 without
         | dying, you are transported to a secret _extra_ level (that you
         | 've never had a chance to practice). You have one chance to
         | beat the secret extra level without dying - only then does the
         | game award the golden strawberry.
         | 
         | I can't even fathom the amount of time and practice required to
         | accomplish this feat. It must be up there with some of those
         | insane Mario Maker levels.
        
           | mey wrote:
           | You may be interested in the TAS (Tool assisted speedrun) of
           | Celeste from AGDQ 2018.
           | https://www.youtube.com/watch?v=BEcv7BD1q9o
           | 
           | ADGQ 2020 is currently going on.
        
           | NoodleIncident wrote:
           | 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 that each new level has seemed pretty much
           | impossible before I start practicing it, so I guess we'll
           | see.
           | 
           | The subreddit r/celestegame tries to keep track of everyone
           | who's gotten the Farewell golden berry; the official list
           | only has about 20 people on them. Of course, you have to
           | record and post your gameplay to be eligible for this list,
           | but there can't be many more people than that who've done it.
           | 
           | But from the other side of things, there's actually a
           | speedrunning category for collecting all 202 berries,
           | including the Farewell berry. TGH just set the world record
           | on Christmas Day, I believe, completing that chapter's golden
           | berry on his first attempt, along with the other hard golden
           | berries. I think this really puts into perspective how skill
           | curves work in games; not only are there very few people who
           | ever approach the top level of skill, but the individuals at
           | the very top are separated by wider skill gaps than you can
           | imagine. This is why matchmaking at the top of a ranked
           | ladder is so hard!
        
           | [deleted]
        
           | SebastianKra wrote:
           | only 4 hours? Im impressed. I took 8h to 12h with 5k deaths!
        
             | umvi wrote:
             | Oh, it took me over 4 hours (maybe even 5 or 6) but my
             | memory is fuzzy enough that 4 was the lower bound I could
             | confidently say. Same with my death count. 1000 is the
             | lower bound, it could have been 2000-3000 range
        
           | chapium wrote:
           | I stopped playing celeste when it was no longer fun for me. I
           | made it about half way through the b-sides before throwing in
           | the towel.
        
         | john-radio wrote:
         | What I love about VVVVVV is that there's almost no way to
         | describe it and make it sound fun; if you just watched that
         | video and know nothing about the game it would not seem fun at
         | all; and yet it's one of the most fun video games I have ever
         | played.
        
         | tills13 wrote:
         | How those rooms are implemented:
         | https://github.com/TerryCavanagh/VVVVVV/blob/master/desktop_...
        
         | dkersten wrote:
         | Oh wow that brings back memories! That section took what felt
         | like ages to eventually successfully perform.
        
           | pdpi wrote:
           | 400ish attempts for me IIRC. But then I could do it on demand
           | for a while (I've since lost the muscle memory of course)
        
             | ehsankia wrote:
             | I need to play through this again. So many great memories.
             | It was one of the great early indie games that paved the
             | way for thousands more, alongside World of Goo, Braid and
             | Super Meat Boy.
        
         | reificator wrote:
         | I just completed that on switch the other day, took me about
         | 100 deaths. In fairness it's not the first time I played the
         | game, but it's been nearly a decade since the last time.
        
       | klodolph wrote:
       | 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 (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 are a few WTFs in here,
       | like the "int i, j, j;" in Script.h.
       | 
       | THAT SAID, This is not really out of the ordinary for successful,
       | released, real games. It's not really different in style from the
       | Celeste Player code.
       | 
       | https://github.com/NoelFB/Celeste/blob/master/Source/Player/...
       | 
       | But if you're writing a game of this size or complexity, I
       | recommend doing some refactoring work along the way. In my
       | experience, this will reduce the amount of insanity in the
       | project towards the second half of the development cycle.
       | 
       | But I am always more impressed by ugly code behind a good game
       | than I am by clean code behind an unreleased, unfinished, or
       | unfun game.
        
         | dkersten wrote:
         | > There are a few WTFs in here, like the "int i, j, j;" in
         | Script.h.
         | 
         | The blog post does explain this though.
        
           | SamBam wrote:
           | I figured OP was referring specifically to defining j twice,
           | which would definitely have been a WTF, but it seems in the
           | actual source it's i,j,k. So, still weird, but better.
           | 
           | https://github.com/TerryCavanagh/VVVVVV/blob/master/desktop_.
           | ..
        
         | wingerlang wrote:
         | Your impressions pretty much mirrors his own notes about the
         | code, if you read through his actual post.
        
         | chrisseaton wrote:
         | > 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 are a few
         | WTFs in here, like the "int i, j, j;" in Script.h.\
         | 
         | > This is not really out of the ordinary for successful,
         | released, real games.
         | 
         | 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.
        
           | Seenso wrote:
           | > 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
        
             | meheleventyone wrote:
             | 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.
        
             | mumblemumble wrote:
             | 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.
        
           | phoenix616 wrote:
           | 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.
        
             | ChickeNES wrote:
             | > 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
        
           | ChickeNES wrote:
           | This is a classic, but I think it applies here:
           | https://www.jwz.org/doc/worse-is-better.html
        
             | Avery3R wrote:
             | Watch out, this gives a NSFW redirect
        
         | ehsankia wrote:
         | > 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.
        
           | klodolph wrote:
           | 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.
        
             | gcpwnd wrote:
             | 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.
        
               | klodolph wrote:
               | 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 something I really care about.
               | The SOLID guidelines also regularly conflict with YAGNI.
        
             | mstade wrote:
             | Right, but at the same time what Carmack considers quality
             | code may well be considered low quality by non-game devs
             | because it's too complex, too magical, not documented
             | enough or whatever. Context matters; some code is one game
             | developers beauty; while it's some other developers
             | nightmare.
             | 
             | I'm not a game developer, but I've worked with enough game
             | developers to realize they have a completely different
             | mindset and point of view from mine. It doesn't make them
             | wrong, and it doesn't make me wrong either, it's just that
             | - different points of view, different contexts, different
             | constraints. I have immense respect for game developers.
             | 
             | I'll play Battlefield 1 or Horizon Zero Dawn and marvel
             | that they can get a stable 60 or 30 FPS despite seemingly
             | infinite complexity, all the while I'm struggling to filter
             | a grid with 250 rows in a web browser...
             | 
             | You're absolutely right - no one knows better where to
             | sacrifice quality (whatever that means) for dev time or
             | performance, than game devs.
        
           | lojack wrote:
           | From a pragmatic point of view I would actually expect it to
           | be pretty common for games to sacrifice code quality. You
           | build a game with a set end date, and do a small amount of
           | maintenance on it moving forward. As opposed to an engine
           | where it's a product you're building on and you want to grow
           | over a much larger timeframe, and those unfamiliar with a
           | piece of code are likely to maintain it down the road.
        
             | koonsolo wrote:
             | Exactly this! I was a mobile game developer for several
             | years. The technical dept at the end never needs to get
             | paid .
        
         | protomikron wrote:
         | > The original game was written in Flash, and this version was
         | apparently written by Simon Roth
         | 
         | Thanks, I did not know that at all - I know VVVVVV (Linux
         | version) and Roth rang a bell - it's the same guy that wrote
         | (writes? the game has a very long development story) Maia - a
         | space colony simulation/game.
        
       | buryat wrote:
       | I remember getting this game from the first humble bundle and
       | enjoying it, it had very simple gameplay, little to no time to
       | get into and very enjoyable. Going to play it again!
        
       | ddevault wrote:
       | Ethan Lee worked on this! Ethan Lee is an awesome person. Ethan
       | is probably the single biggest contributor to gaming on Linux,
       | and he's always worked in the background. Thanks Ethan, you rock,
       | and deserve more credit.
        
         | nurbel wrote:
         | 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
        
           | jandrese wrote:
           | 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.
           | 
           | > Dream Daddy: A Dad Dating Simulator
           | 
           | WTF???
        
             | MattRix wrote:
             | It was a very popular game!
        
             | meheleventyone wrote:
             | Dating Dads is probably the least risque thing in that
             | genre.
        
         | cookiecaper wrote:
         | Maybe I've just been out of the scene too long, but can't let
         | mention of Linux gaming luminaries go without Ryan C. Gordon of
         | Loki Games/icculus.org. For many years, if there was a big
         | project coming to Linux, Ryan Gordon was likely to be the
         | wizard behind it.
         | 
         | His homepage: http://icculus.org/
         | 
         | Wikipedia: https://en.wikipedia.org/wiki/Ryan_C._Gordon
         | 
         | Patreon: https://www.patreon.com/icculus
        
           | FreezerburnV wrote:
           | Ryan is currently working on on a new cross-platform game
           | engine where you write entirely Ruby:
           | https://dragonruby.itch.io/dragonruby-gtk
        
           | superpie wrote:
           | It's fantastic that he provided a place to host code for game
           | modders / developers as well, I definitely spent years of my
           | life playing http://svn.icculus.org/tremulous/
        
       | alexghr wrote:
       | Gosh, this brings back sooo many good memories. If you haven't
       | played it yet, you must! It is an excellent game, with superbly
       | simple gameplay and excellent music!
        
       | newnewpdro wrote:
       | It's helpful/inspiring to see you don't have to be the greatest
       | programmer to create successful video games.
       | 
       | Just skimming the code a bit reminded me I probably spend way too
       | much time on elegant interfaces, clean implementations, and good
       | naming, in my own games.
        
       | danschumann wrote:
       | It's easier to distract people than to give them traction. I
       | think budgeting software would be the best way for a developer to
       | write software which gives traction.
        
       | CodeArtisan wrote:
       | 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=0;
       | break;         case 18:             blocks[k].prompt = "Press
       | ENTER to activate terminal";             if(mobilemenus)
       | blocks[k].prompt = "Activate terminal";
       | blocks[k].script = "terminal_warp_2";
       | setblockcolour(k, "orange");             trig=0;
       | break;         case 19:             blocks[k].prompt = "Press
       | ENTER to activate terminal";             if(mobilemenus)
       | blocks[k].prompt = "Activate terminal";
       | blocks[k].script = "terminal_lab_1";
       | setblockcolour(k, "orange");             trig=0;
       | break;
       | 
       | from
       | https://github.com/TerryCavanagh/VVVVVV/blob/master/mobile_v...
        
         | spiralganglion wrote:
         | This just looks like typical game dev code to me. You treat the
         | code like a scratchpad, exploring the space and looking for
         | things that work well. Lots of things written once and never
         | touched again, lots of things written with magic numbers
         | because that makes it easier to delete.
        
           | tudelo wrote:
           | Whenever I look at game source code, I start to realize how
           | all of the crazy speedrun glitches exist
        
             | exikyut wrote:
             | Especially on limited platforms of old, where crazy hacks
             | were necessary to get the game to _fit_ in the cartridge
             | /RAM/CPU speed.
        
       | tombert wrote:
       | You know, people like to crap on Flash (and there are valid
       | reasons to do so), but I really miss how _quick_ you could get a
       | game built with it, while it still felt like  "real" programming.
       | 
       | With Flash, I felt like a nice "one-stop-shop" in a lot of ways;
       | you could draw your graphics, animate them, and code them, and
       | you could get a simple game made in an hour or two.
       | 
       | I haven't tried Unity or really any other dedicated game engine,
       | so maybe you get that feeling with those, but I will always be
       | nostalgic for Flash; it really helped make programming "fun" for
       | me.
        
         | bbmario wrote:
         | Flash left a huge void in the indie community that has yet to
         | be filled by something. Remember Newgrounds.
        
           | tombert wrote:
           | Newgrounds is still around, and there are probably some great
           | HTML5 games out there; I don't really play games anymore so I
           | don't go on there much now.
           | 
           | A friend of mine recommended just Scirra Construct if I want
           | something similar to Flash that exports to HTML5.
        
           | the_af wrote:
           | Also remember Kongregate (in its early days at least, before
           | every game was a MMORPG clone or tried to sell you
           | something).
           | 
           | Flash was a huge boon for indie games.
        
         | chasing wrote:
         | Flash was awesome and it's can't be overstated how much it
         | empowered the indie game community in the aughts.
         | 
         | Seems like people crap on it not because of the tool itself but
         | because Adobe dropped the ball and let it become a crashy,
         | resource-hogging mess, aligning powerful people (like Steve
         | Jobs) against it.
        
           | jimmaswell wrote:
           | I feel like Google simply didn't like users having such
           | control over extending their browsers' functionality in ways
           | that are harder to track, so they started the anti-flash
           | bandwagon by abusing their browser's market share to kill it
           | along with all other add-ons (a continuation of their death
           | grip on what extensions are allowed and making unapproved
           | extensions not available to the average user either), leaving
           | a vast graveyard of significant, great content unavailable to
           | the average web user. The golden age of web functionality was
           | the period of HTML5 and Flash both being supported at the
           | same time and Firefox having full support for NPAPI and the
           | old extension system including allowing unsigned extensions.
           | Now we're stuck suffocating in sterilized walled gardens
           | almost everywhere we go. Android still lets you install third
           | party apps for now at least but I bet the days of that are
           | numbered too. Sad state of affairs for users all around.
        
             | panopticon wrote:
             | I think Steve Jobs was more responsible for Flash's death
             | than Google. YouTube only stopped serving Flash as the
             | default less than 5 years ago while hubs like Newgrounds
             | were seeing significant declines well before then.
             | 
             | Maybe I'm misremembering, but the golden age of Flash
             | _content_ was certainly over before HTML5 hit in a big way.
        
           | marcosdumay wrote:
           | People crap on Flash because of the sites made on it. It
           | wasn't for games nor videos.
           | 
           | Adobe had a site building tool that was more productive than
           | ASP, but only barely so, and created sites that would break
           | on about every computer. The few times they were working,
           | they would have completely non-standard UI elements,
           | including buttons and links, and break nearly all interaction
           | modes.
        
           | egypturnash wrote:
           | I worked in Flash animation around 2000-2005 and it was
           | _always_ a crashy resource hog.
        
         | azhenley wrote:
         | Flash was great and I haven't found a direct replacement yet
         | (GameMaker Studio 2 is the closest I have found). I pumped out
         | 8 Flash games about a decade ago that generated enough ad
         | revenue to cover all my bills for a few years! I miss how easy
         | it was. Another _huge_ win is how effortless it was to
         | distribute Flash games (they spread like wildfire after I
         | uploaded it to one or two sites).
        
           | Quenty wrote:
           | Have you tried Roblox?
        
             | ghostbrainalpha wrote:
             | I thought Roblox was a game... is it also a game making
             | platform?
        
               | jandrese wrote:
               | Most of the Roblox games are user created. It ships with
               | Roblox studio.
               | 
               | Just remember that the average age of a Roblox player is
               | like 8, so in-depth RPGs or complex sim games probably
               | won't get a lot of traction.
        
               | asdasdasdasdwd wrote:
               | There was an interesting podcast about Roblox in
               | Hanselminutes a few weeks ago:
               | https://hanselminutes.com/709/robloxs-kelly-mayes-on-
               | communi...
        
               | BinaryIdiot wrote:
               | Unfortunately most of Roblox games are just attempts to
               | siphon your money by buying Robux. Their target market,
               | kids around 8, beg their parents for Robux so they can
               | buy some stuff in one person's game.
               | 
               | It's incredible how much money they make through tactics
               | that make many of their games not really enjoyable unless
               | you spend a lot of money in them.
        
           | tombert wrote:
           | A friend just messaged me telling me that i need to check out
           | Scirra Construct; apparently that gives a very Flash-style
           | interface to build games. I'll have to play with that.
        
           | Marazan wrote:
           | It's not the loss of Flash per se (as there are plenty of
           | rapid game making tools targetting HTML5 about) it's the
           | complete collapse of the supporting infrastructure.
           | 
           | Mochi Media closing was huge. I went from getting a steady
           | trickle of money for games I wrote to nothing.
           | 
           | As far as I can see there is no Mochi for HTML5 games. Every
           | portal is its own closed environment.
        
         | [deleted]
        
         | layoutIfNeeded wrote:
         | And Adobe let it rot.
        
           | MattRix wrote:
           | This is the saddest part. Even with the Flash Player being
           | killed Adobe could have done so much more with the authoring
           | tool. Instead they did little incremental updated and
           | basically let it (and the vibrant community around it) die
           | off.
        
         | Topgamer7 wrote:
         | Flash was my first programming language from way back when I
         | Was 12-13 in a game programming club when I got to high school.
         | It was a fun, creative way to get introduced to programming.
         | Which I have done non-stop ever since, and now do
         | professionally.
         | 
         | It will always be a cherished toolset to me.
        
         | Willamin wrote:
         | Would it be ridiculous to write a Flash game then package it
         | with Electron bundled with a Flash Player?
         | 
         | I feel like the issues most people have with Flash are one of
         | two things. It isn't a great choice for rich interfaces
         | (especially things that aren't games) when considering
         | accessibility and different screen sizes. It also presents
         | security vulnerabilities when it was intended to be sandboxed.
         | 
         | By moving it from web browsers to standalone applications, you
         | lose any expectation of sandboxing. When only using it for
         | games, it ceases to have the same accessibility constraints.
        
           | tomc1985 wrote:
           | Dude just export to Flash Player. Electron is such a
           | ridiculous resource hog
        
           | exikyut wrote:
           | There are many interesting potential outcomes that could
           | emerge from such an idea.
           | 
           | Here is one that would be a tad awkward:
           | 
           | - The concept goes appreciably (if not crazily) viral, people
           | start distributing "SWF-lectron" containers, and much fun is
           | had by all.
           | 
           | - Flash is officially deprecated (incidentally 20 days from
           | now, the 11th of January 2020). It dies; the bitrot process
           | is exponentially accelerated because of the huge installed
           | base yet abrupt and utter lack of updates. Many, _many_ ,
           | MANY vulnerabilities are found in the platform. How much
           | impact do they have? Theoretically little to none. But you
           | never know.
           | 
           | - The Electron containers used in this idea probably never
           | get updated. It proves surprisingly easy to just wait for
           | Chrome 0days to float to the top of the pond, scoop them up,
           | and rework them.
           | 
           | Practically speaking I know the above will never really
           | eventuate. But it's what I envisage; more generally, that
           | _anything_ that leverages Flash will fall victim to a _very_
           | mature ecosystem of hackers (the cracker kind) who 've been
           | studying the platform for years, and have a once-in-a-
           | lifetime moment to attack while the platform remains
           | installed.
           | 
           | Flash will have a half-life of years, but it's going to
           | become a VERY big target, I think.
           | 
           | I think.
           | 
           | Maybe I'm wrong/being overdramatic/freaking out/am wearing
           | too many security hats at once/none of the above?
        
             | true_religion wrote:
             | I am not really seeing how any of the hacking discussion
             | relates to a self distributed game, using a packaged
             | version of Flash.
             | 
             | It's not the browser, so it'd be easier for hacker to just
             | distribute their malware directly than go to the trouble of
             | making malware that hacks an unrelated game, then does
             | something else.
        
             | hjhhftgy wrote:
             | Dude, just wow.
             | 
             | There are many flash games in Steam and elsewhere. Your
             | whole rant is clueless.
        
           | tomku wrote:
           | Unless I'm missing something that Electron adds to the
           | equation, that's already possible (and common!) via
           | standalone Flash player packages or Adobe AIR. There's a fair
           | number of smaller indie games on Steam distributed that way,
           | for example.
        
         | billfruit wrote:
         | I think you can do that pretty much with 'defold'[0]
         | 
         | [0] https://defold.com/
        
           | tombert wrote:
           | This looks really neat; I will have to play with this
           | tonight...thanks!
        
         | exlurker wrote:
         | Pico8 for you, if you're OK with a retro look. Very quick and
         | satisfying. :)
        
           | tombert wrote:
           | I absolutely love Pico-8, and actually teach that to
           | teenagers at the library on Saturday, and I will agree that
           | it does somewhat satisfy some similar niche as Flash.
           | 
           | That said, Pico-8 is (purposefully) very limited, and if you
           | want to do something a bit more advanced than C64-era gaming,
           | the limitations show. Flash is limited too, but not as much.
           | 
           | It's obscenely fun to play with, definitely agree with you
           | there.
        
         | toper-centage wrote:
         | There are also great Javascript platforms for all kinds of
         | purposes these days. As a former flash developer (hobbyist
         | level) I do not miss Flash at all.
        
           | dwild wrote:
           | > There are also great Javascript platforms for all kinds of
           | purposes these days.
           | 
           | Except nothing replace it in a one-stop do it all like Flash
           | was able to do. You open it, you had a timeline that could
           | contains both graphics and code, you could easily reference
           | them on the IDE directly, and then when exported, it was a
           | single binary file that could be shared everywhere and could
           | easily be made quite secure. That meant that there was
           | platforms like Mochimedia that allowed you to import a SWF,
           | that added the ads and it was shared on multiple thousands
           | website for people to play on.
           | 
           | Nowadays you have to use a bunch of different tools, which
           | sure is more flexible in a way but it's a barrier big enough
           | to remove any desire to do a quick prototype for fun. There's
           | software like Unity which is amazing (and a proof that a one-
           | stop software is highly preferred by people), but it's made
           | for bitmap or 3D graphics, which both are made over an other
           | platform and are more complex to handle than vectors that
           | just works great in any context.
           | 
           | That's while considering that everything can be done, which
           | isn't really true because even in term of performance, it
           | took a decade for JS to reach a performance similar to what
           | Flash was able to do at the time. The vector editor was so
           | good that I knew many people that preferred it over
           | Illustrator. I was able to do some nice graphics easily on
           | it, I tried to do the same with Illustrator nowadays and I
           | just can't.
           | 
           | > As a former flash developer (hobbyist level) I do not miss
           | Flash at all.
           | 
           | Lucky you.
        
             | MattRix wrote:
             | I don't really have anything to add... But as a former
             | professional Flash developed, and now nearly 10 years doing
             | game dev (with Unity), I agree 100% with what you said.
             | 
             | It's not really about the language or about the Flash
             | player itself. There was something special about the direct
             | integration of the code and the visual design/animation
             | tool with Flash. Nothing else really comes close these
             | days. Nothing else allows such rapid development.
        
           | tombert wrote:
           | That's probably fair; I think part of my rose-colored viewing
           | of this is in no small part because I largely don't do any
           | kind of games programming anymore, and as a result am largely
           | ignorant to the newer alternatives to Flash.
        
         | cartoonworld wrote:
         | You can still do with haxe: https://haxe.org/use-cases/games/
         | 
         | Haxe is somewhat a flash clone.
         | https://github.com/HaxeFoundation/haxe/
        
           | phreack wrote:
           | If you happen to know, how does haxe compare to Godot? Would
           | you say it's simpler to draw and get a very basic
           | game/prototype up and running?
        
             | Drakim wrote:
             | Haxe is more like a traditional programming language, not
             | an "engine" or whatever is the right term for Godot.
        
               | umvi wrote:
               | I would call Godot/Unity/GameMaker an engine-IDE.
               | 
               | You can have an engine like Love or pygame where the
               | engine is literally just a shared object or dll and you
               | need to basically supply your own tools for level design,
               | programming, etc.
               | 
               | Engine-IDEs are one-stop-shops with nearly everything you
               | could need built in (level editor, code editor, particle
               | effect sandbox, etc.).
        
             | rishav_sharan wrote:
             | Super easy. Haxe's Flixel is probably one of the most full
             | featured and easy to use 2d engines around.
        
           | tombert wrote:
           | Does Haxe have drawing tools too? I thought it was just a
           | programming environment (very possible I'm wrong though).
        
             | KapKap55 wrote:
             | Haxe is just a language. However, there are several
             | graphical frameworks that allow for that. Dicey Dungeons
             | (his newest game) is specifically built off the OpenFL
             | framework which tries to replicate the Flash API.
        
               | azhenley wrote:
               | I always used the Flash WYSISWYG editor for the canvas
               | and graphics, so OpenFL isn't a replacement at all in
               | that respect.
        
               | justsayinghi wrote:
               | Same here. I remember implememting the game loop using
               | one or two timeline frames.
        
             | joshtynjala wrote:
             | OpenFL, a library for Haxe that implements the Flash API,
             | includes a mechanism to import graphics drawn with Flash's
             | original tooling.
        
           | Wowfunhappy wrote:
           | Notably, Terry built his most recent game, Dicey Dungeons,
           | using haxe.
        
       | cambalache wrote:
       | I bought this game for 1 dollar (in the first Humble bundle) and
       | I still consider it as of the most fun games ever. Simple
       | controls, catchy music, interesting mechanics (for its time),
       | nice difficulty, without being "unfair". It has everything. If
       | you like platformers and simple games you should check it out.
        
         | jandrese wrote:
         | I'm giving a side-eye to that 'without being "unfair"' comment.
         | I remember a few levels with some real bullshit.
        
       | tibbon wrote:
       | Oh this is really cool! I've been thinking how interesting this
       | could be to backport to NES or C64. I'm guessing there isn't too
       | much in the game happening that couldn't probably happen on those
       | systems with minor modifications.
        
       | royjacobs wrote:
       | An interesting quote from the build instructions: " In
       | particular, the Windows version absolutely positively must be
       | compiled in Debug mode, with /RTC enabled. If you build in
       | Release mode, or have /RTC disabled, the game behaves
       | dramatically different in ways that were never fully documented
       | (bizarre softlocks, out-of-bounds issues that don't show up in
       | tools like Valgrind, stuff like that)."
       | 
       | I wonder if people will spend the time to actually debug this
       | properly now that the source is available.
        
         | rob74 wrote:
         | Considering other quotes, like this one: "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 have to
         | declare them inside functions (which is annoying to do in flash
         | for boring reasons). This led to some nasty and difficult to
         | track down bugs, to say the least." I wish those people the
         | best of luck :)
        
           | Jare wrote:
           | Cunning way to never have uninitialized variables!
        
           | [deleted]
        
       | VonGuard wrote:
       | Terry Cavanagh is one of the greatest game designers of our time.
       | His simple mechanics and designs often remind me of something
       | like Chess or Go, where a simple ruleset covers a massively deep
       | game, or is used to communicate a story in a very minimalist
       | fashion. Don't Look Back is one of my favorites:
       | https://terrycavanaghgames.com/dontlookback/
       | 
       | A few years back, he did a beta of a game called Four Letter
       | Word... Though that's not the real title:
       | http://distractionware.com/blog/2011/11/the-four-letter-word...
       | The real title is a set of cryptic non-alphabet characters.
       | 
       | It was like an Atari 2600 cartridge from a space alien. It
       | featured 2600-style graphics, a hidden hard-as-nails FPS game,
       | and a buncha hidden 2d content that seems simple at first, but
       | was super intriguing. So crazy non-traditional, and with some
       | obscure mechanics, it was one of my favorite things I've ever
       | played, and he never finished it, sadly. I love cryptic games,
       | and I love simple mechanics taken to extreme conclusions. That's
       | why I adore Terry.
        
       | MrGilbert wrote:
       | I always love when something closed source goes open.
       | 
       | While I never played this game in particular (looks like I've
       | missed something!), I love to study code. It's always interesting
       | to see how other devs tackled a problem or just structured their
       | code.
       | 
       | Thanks a lot!
        
         | yarrel wrote:
         | This isn't open.
         | 
         | Studying this code then making anything too much like it might
         | be a problem.
        
         | ocdtrekkie wrote:
         | Indeed. Someone open sourcing their previously closed project
         | will always get my upvote. :)
         | 
         | In this case the code is likely pretty messy. The repo explains
         | that it was ported from a Flash game and a lot of the bad hacks
         | used to make it work in Flash were ported to C++ more or less
         | verbatim.
        
           | quietbritishjim wrote:
           | From the article:
           | 
           | > 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 have to declare them inside functions (which
           | is annoying to do in flash for boring reasons). This led to
           | some nasty and difficult to track down bugs, to say the
           | least. In entity collision in particular, several functions
           | will share the same i variable. Infinite loops are possible.
        
             | lukebitts wrote:
             | > which is annoying to do in flash for boring reasons
             | 
             | Does anyone know what are these boring reasons? I've used
             | AS2 and AS3 extensively and don't remember this ever being
             | an issue
        
               | uhoh-itsmaciek wrote:
               | Same here. The only thing I can think of is variable
               | hoisting, but I don't think that's annoying enough to
               | prefer this other approach.
        
       | egypturnash wrote:
       | Ah yes, fond memories of spending hours trying to navigate my
       | little dude through several screens of Godzilla's Spiky Asshole.
        
       | jdlyga wrote:
       | It's such a good game, I highly recommend it. The level design,
       | the music, and the creative names of all the rooms you visit.
        
       | jadar wrote:
       | This is one of my favorite games and one of my favorite game
       | soundtracks!
        
       | scotth wrote:
       | If anyone is looking for a really great game, you should check
       | out Terry's latest, Dicey Dungeons. Incredible variation. Each
       | episode and character has you discovering new strategies and play
       | styles.
       | 
       | 30% off on Steam right now:
       | https://store.steampowered.com/app/861540/Dicey_Dungeons/
        
       | bscphil wrote:
       | VVVVVV is probably my favorite game of all time. I've gotten so
       | many great hours out of it, it's very relaxing. Thanks Terry for
       | everything and now for releasing the code as well!
        
       ___________________________________________________________________
       (page generated 2020-01-10 23:00 UTC)