VVVVVV is a game about flipping, and has support for custom levels. Dimension Open is a custom level that you can complete by simply zipping through the entire map.

Game objectives

  • Aims for fastest time
  • Uses death to save time
  • Abuses a programming error

Comments

This run is done on VVVVVV 2.2 and Dimension Open 1.1.3.
Due to being a custom level, timing does not start upon game boot, and so this TAS is actually completed in 3 minutes, 10 seconds, and 536 milliseconds. See Timing below for details and rationale.
I have made a commentated video explaining this run. It does not assume the viewer has any prior technical knowledge (or even knows what VVVVVV is), and as such, explains every concept needed to understand this run to the average person.
Here is an uncommentated encode:

Zip glitch

The single most major glitch this run relies on is the "zip glitch". It works on the Windows and macOS versions of the game; however, it is undefined behavior, and so will result in a softlock (actually a really long zip) when performed on those versions. (The Windows version even behaves differently if you run it under Wine.)
The zip glitch is a simple oversight of failing to check for an out-of-bounds value. The game stores all loaded entities in the current room in an std::vector (from the C++ Standard Template Library (STL)), with 200 elements (in VVVVVV 2.2 and previous). It uses indices to refer to each entity in the array (a programming technique known as "handles"). For example, the player entity is always at indice 0.
Teleporters are used in the main game to teleport you places. Whenever you teleport with them, your respawn point will be set to the position of your destination teleporter.
To fetch the teleporter in a given room, the game uses a function called entityclass::getteleporter(), which returns the indice of the given teleporter.
However, teleporters were never meant to be used in custom levels. When you use them in custom levels, the room you teleport to will not contain a teleporter. Because of this, entityclass::getteleporter() will return -1 instead.
The game uses the result of entityclass::getteleporter() to (1) fling Viridian out of the teleporter, and (2) set their respawn point at the teleporter. For (1), it checks that the value isn't -1 and doesn't follow it. However, for (2), it follows it and ends up reading an x-position of 0 and a y-position of 46,097; it is always guaranteed to produce those values on Linux (on other versions, the values are different). From my investigation, the 46,097 seems to be glibc malloc bookkeeping, hence why it is stable.
Then after this, dying will respawn Viridian at that y-position.
As the game window is only 320 pixels by 240 pixels, such a high y-position always places Viridian in the offscreen area, and will keep triggering a room transition on every frame. The room transition will keep teleporting Viridian upwards by 240 pixels until they arrive back onscreen, giving us around 6 seconds of zipping through rooms.
We have no way to land on a specific room, unless we go through vertically-warping rooms. These rooms will stop us from triggering a room transition every frame, but we still get teleported up by 232 pixels on every frame. However, we can precisely time it so that we land in a specific room by exiting the vertically-warping room on a specific frame.
By carefully taking a specific route throughout the map, we can exit out of the zip and into the final room of the level, to rescue the only required crewmate needed to beat the level.

Stage by stage comments

Start

In the 2 frames of control at the very start of the level before the opening cutscene, I hold right so I have less distance to travel later (saving 1 frame).
During the cutscene, I press alt+enter (the toggle fullscreen keybind) to flip upwards, so the time that going upwards takes is spent during the cutscene itself. This way, I don't lose time waiting for Viridian to move upwards, like I would have if I flipped after the cutscene is done.
In the T5 teleporter room, I hit the checkpoint and make sure to avoid all other checkpoints from then on until I get the blue keycard (for Valso skip).

Lab

It's faster to bounce on the top gravity line twice in "The Bernoulli Principle II" than it is to hit it once and then hit the middle gravity line.
I perform a vertical gravity line clip (like a horizontal gravity line clip, but for vertical gravity lines) in "Keycard", which saves time over not doing it and having to land on the other side of the three-tile spike gap before flipping again.
I perform Valso skip by pressing R right as I activate the blue keycard download terminal, and respawn in the T5 teleporter room, closer to the next zone of the level. This skips having to rescue Valso and complete the Lab.

Warp Zone (skipped)

In a similar vein to Valso skip, I skip the Warp Zone by setting my checkpoint in the red keycard gate, then backtracking to the blue keycard gate (while avoiding checkpoints), running its cutscene, and pressing R at the right time.
Both the blue keycard and red keycard scripts call the script command destroy(warptokens) to destroy the warp token that acts as their gate; however, there's nothing preventing that script command from being ran in a different room than intended.

Space Station

I make sure to grab the checkpoint in "Upper Hand" and avoid all checkpoints thereafter so I can set up a timesave in the post-level cutscene.
I save time after completing the level by not having to walk over to the T5 terminal in the hub room (needed so I can set the teleporter destination to teleport) after the cutscene ends.
In the cutscene, there's one part where Viridian moves rightwards. Then the cutscene script calls gotoroom() (which teleports you to a given room) to clear all entities created with the createentity() script command.
By pressing R and respawning in "Frustration" during the cutscene, I utilize the rightwards movement to perfectly line Viridian up with the same x-position as the T5 terminal, by having them hit the vertically-moving platform in "Frustration". (One pixel to the left, and I would lose 1 frame when traveling to the T0 terminal, due to pixel alignment.) Then when the gotoroom() happens, I get teleported back into the hub room, and can immediately activate the T5 terminal once the cutscene ends.

Green keycard gate

To move through the gate on the first possible frame I can, I press left and flip at the same time as I activate the terminal, so I'm positioned above the passageway but don't fall through it just yet. Then I press alt+enter on the first possible frame I can without hitting the warp tokens that get destroyed.
Dimension Open does not intend for you to be able to access the round teleporter spawned in the red teleporter room (it stops you with a cutscene). However, since there are 2 frames of delay before the script box which spawns the teleporter actually spawns the teleporter, I can enter the room, then immediately move backwards to spawn the teleporter in the previous room, where I can then access it.
I use the zip glitch here to zip to the end of the level and rescue the last crewmate.

Timing

I have decided upon the following rules for timing custom levels:
  1. Time starts on the first frame of a level.
  2. Time ends on the last input frame needed in order to eventually achieve either one of these two conditions:
    1. You have rescued all crewmates, and the gamestate is 1013.
    2. You have rescued all crewmates, the gamestate is 1012, and pressing ACTION here would lead to 1013 and wouldn't be interrupted.
In VVVVVV 2.2 and previous, the first frame of a level is easy to spot by simply looking for the first non-red frame after loading a level in libTAS's input editor.
Gamestate 1013 is the gamestate the game uses to complete a level, award you stars for completion, and send you back to the title screen.
Gamestate 1012 is the "All crewmates rescued!" text box prompt, if you have rescued all crewmates.
Note that the only crewmate that counts for completion in this level is the one at the very end of the level. If you rescue it, you will always be awarded stars for completion. The other crewmates are not the same type of entity as this crewmate (touching them won't lead to a "You have found a lost crewmate!" prompt).

Rationale

I have decided upon rule 1, rather than starting time from game boot, because otherwise the position of a level in the levels list would end up contributing to its movie time. The levels list is sorted alphabetically. In other words, the very name of the level would end up being a factor in how fast it would be able to be completed, which doesn't seem fair to me.
Rule 2 is more complex. Essentially, the two conditions are your input leads to a state that eventually either completes the level, or gets to the "All crewmates rescued!" text box prompt. I've decided that the "All crewmates rescued!" text box prompt counts as completion (and in fact, I use it in this TAS), to enable being able to end input as early as possible leading up to the final crewmate.
Otherwise, I'd have to add some more input frames, plus wait 15 frames just to press ACTION. I see no point in having to wait 15 frames to press ACTION. Plus, viewers get to see the "All crewmates rescued!" text box in all its glory, rather than it being visible for only a handful of frames and easily missed.
The "wouldn't be interrupted" clause in the second condition is simply to cover very rare cases of levels where it's easily possible to interrupt the gamestate sequence of rescuing the final crewmate, and end up being stuck without being able to properly complete the level.
In such levels, what happens is that either the gamestate sequence is canceled completely, or you're stuck on gamestate 1012, without an ACTION prompt, so you can't press ACTION to continue, and since you're in a "complete stop" mode, the game won't accept any other input (which is a softlock; I have fixed this softlock in VVVVVV 2.3).
These cases happen because the level creators place script boxes or other various entities on top of the crewmates, for no particularly good reason. Dimension Open does not do that, so we need not worry about this clause here.

History and improvements

This is an improvement of 23 seconds and 52 milliseconds from my previous TAS of this level, which was done in 3 minutes, 35 seconds, and 588 milliseconds (video here). It uses the zip glitch as well but is generally slower overall. The biggest improvements are accessing the teleporter with a wrong load, using alt+enter to position Viridian better during cutscenes, and general movement optimizations throughout the run.
I first finished this run in November 2019, with an initial time of 3 minutes, 15 seconds, and 942 milliseconds.
For almost 2 years, I have worked to produce the commentated video, as well as worked to find any improvements to the run (of which there were plenty).
This TAS is the most optimized movie I can produce given current knowledge. There are no known improvements.

Suggested screenshot


feos: I didn't anticipate having to reject this movie because what I saw in the submission text is surprising attention to optimization details. Awesome job on that! But I looked at the thread and ended up agreeing that custom levels should be treated like ROM hacks, so their movies have to meet the requirements we have for ROM hacks. A good explanation of this reasoning was posted by Radiant here, and other judges agreed.
So since we want ROM hacks to be "entertaining enough to make it to the Moons class, usually by showing unique gameplay or brand new content", we want the same for custom levels. Unfortunately, it's hard to tell is this level is entertaining and different enough, because we don't get to see its gameplay in full. Feedback in the thread was against using the major skip glitch in a custom level, because that defeats the purpose of being as entertaining and different as possible.
So we will most likely accept some other custom level of this game, as long as it's a high quality product, has unique gameplay mechanics, and the movie showcases its differences, resulting in positive feedback.
Rejecting this one, unfortunately.
Memory: revisiting based on rule changes
Memory: OK so given that derivative game content can now go to standard, I took a look at this submission. What I didn't quite realize until watching was that this submission uses a major skip glitch unique to custom levels. As long as TASes of derivative game content are distinct from each other (ie don't use ACE to beat every SMB3 hack before reaching the title screen), it can go to standard.
Accepting.
fsvgm777: Processing.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14879
Location: 127.0.0.1
This topic is for the purpose of discussing #7181: InfoTeddy's Linux VVVVVV - Dimension Open in 03:16.86
Patashu
He/Him
Joined: 10/2/2005
Posts: 4016
Nice mix of precision platforming, minor skip glitches and major skip glitches - I'm amused. Yes vote!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
g0goTBC
He/Him
Experienced player (755)
Joined: 6/11/2018
Posts: 110
I found the movie entertaining with all the technical glitches and the fast movement. However, I'm not really a fan a run of custom levels that aim to skip most of the game using major glitches. imo it kinda defeats the purpose of having new levels.
Banjo-Tooie runner, DTC 8, 9, 10, and 11 winner, but more importantly, "When's GR?" Current projects: Banjo-Kazooie: Grunty's Revenge - 100% (50 minutes) Mario Party 1 - All Boards (est: 4-6 hours) Mario Party 3 - All Minigames (est: 40-50 minutes, not sure) "Ooooh, I saved some more subpixels. Look at those sweet subpixels. You can't look at them, because they're subpixels, but they look so good." - The8bitbeast "It's as if I knew what was going to happen. It's as if I had the plan written in front of me and I was reading it. I mean, I do have it in front of me, but I'm not reading it." -garagedooropener
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
What g0goTBC said. What little gameplay this movie had was fun, though.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
I dislike how the encode shows the left quarter of the main screen again to the left. Is this a glitched encode or is this custom level a romhack that just looks like that? Anyway, no vote. VVVVVV has a metric ton of custom levels and very few of them are anywhere near notable for a run (and google suggests this isn't one of them). The game does not have a ton of mechanics, so many custom levels appear pretty much identical to one another.
Judge, Moderator, Player (195)
Joined: 7/15/2021
Posts: 110
Location: United States
Radiant wrote:
I dislike how the encode shows the left quarter of the main screen again to the left. Is this a glitched encode or is this custom level a romhack that just looks like that?
No, this is not a glitched encode. And no, the custom level does not edit the binary or source code of the game (a "romhack" as you put it). That is just how I do my encodes for games that don't fit 16:9 because I don't like having black space.
Former player
Joined: 6/30/2010
Posts: 1093
Location: Zurich, Switzerland
I didn't find this custom level particularly interesting, so I'm voting "meh" here. I generally find TASes of mods, ROMhacks and similar things completely pointless when they just skip to the end. TASes of such games should aim to show off as much content as possible.
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
Zinfidel
He/Him
Player (200)
Joined: 11/21/2019
Posts: 247
Location: Washington
I have to agree with the general sentiment of the others here in that the technical quality of the movie is obvious, but the entertainment value is questionable due to the custom level stuff just sorta flying by. Just as I was getting into the gameplay, it was suddenly major skip glitch and done. I too have an expectation of custom/romhack/etc stuff looking like the absurdly difficult SMW hacks with equally absurd TASes. So, a 'meh' from me as well. I would like to go on a tangent though and congratulate the author on the extremely well constructed and edited commentary video that was provided. I thoroughly enjoyed watching it and it feels professionally done. If we were to be voting on entertainment factor of the provided commentary video, I would give a resounding 'yes.'
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
I still get lots of resolution changes while dumping video, even though I set virtual screen to 640x480. The game runs at 320x240, don't know how to change that. Doesn't happen when running the movie without video dumping. I use this command: -c:v ffv1 -vf scale=320:240 -sws_flags neighbor -pix_fmt bgr0 -level 1 -g 1 -c:a pcm_s16le and even rescaling it on the fly doesn't prevent new segment creation. Is there any way around this?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Judge, Moderator, Player (195)
Joined: 7/15/2021
Posts: 110
Location: United States
feos wrote:
The game runs at 320x240, don't know how to change that.
Right, I think that's what the problem here is. I almost forgot that the game defaults to 320x240. You'll need to change the game's resolution by going to ~/.local/share/VVVVVV/saves/unlock.vvv, finding these XML tags, and changing them appropriately like so:
<window_width>640</window_width>
<window_height>480</window_height>
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
It has 640 and 480 there but in libTAS it still runs at 320x240 (even with writing to disk enabled). Can I hack libTAS to also have 320x240 as a virtual res option?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Judge, Moderator, Player (195)
Joined: 7/15/2021
Posts: 110
Location: United States
feos wrote:
It has 640 and 480 there but in libTAS it still runs at 320x240 (even with writing to disk enabled). Can I hack libTAS to also have 320x240 as a virtual res option?
Oh, right, I also almost forgot about that too. You don't need to hack libTAS. You just need to set the scaling mode to be "stretch" (under "toggle letterbox" in graphic options). Otherwise the game won't adhere to the 640x480 resolution under libTAS.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
Thanks that finally works!
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
Radiant wrote:
Anyway, no vote. VVVVVV has a metric ton of custom levels and very few of them are anywhere near notable for a run (and google suggests this isn't one of them).
Official recognition seems to exist for some "Featured" custom levels https://distractionware.com/blog/category/vvvvvv-levels/ and I couldn't find this level among them. The feedback on the level itself so far hasn't been positive. Skipping everything in a "major skip glitch" movie doesn't often get good ratings, and when it does, it's mostly for well-known great games: http://tasvideos.org/Movies-C3041Y-RatingS.html There are some unofficial games in that list, but no movies of game hacks.
However, teleporters were never meant to be used in custom levels. When you use them in custom levels, the room you teleport to will not contain a teleporter. Because of this, entityclass::getteleporter() will return -1 instead.
We obviously can't say "This custom level was designed so poorly that you can break it into peaces with some precision and there's nothing mind-blowing about it". But what we can say is "People are making those levels so that they are fun to play, and TASing is meant to add a new kind of challenge to them, ideally both of those layers should be fun to watch".
Official requirements for Featured levels wrote:
DO: Try something different. I'm very likely to feature a level if it does something I haven't seen in a VVVVVV level before. Experiment with scripting! Try to build levels around unusual ideas! DO: Make it polished. This is mostly just a matter of making sure there are no gaps you can fall through or glitches, and that you've tested things thoroughly to make sure sure everything feels nice in the game.
We also can't say that the "major skip glitch" movie makes the good, officially recommended parts of this level's gameplay shine, because we just skip it using a glitch. The main question is whether we want to treat custom levels (not featured officially) as hacks or as homebrews. We don't accept hacks unless it "features unique gameplay or brand new content" and the TAS is entertaining to watch. For homebrews, we can publish different games separately but they need to meet common requirements for unofficial games; specifically "recognition or popularity" is questionable regarding this level. In any case we can't publish all custom levels of this game, so they will have to complete. I personally have a feeling that if this movie didn't have a major skip glitch, it'd get better feedback, but then the question is "Are there levels better suitable for an entertaining TAS?"
Since this is about having to reject this movie, I really need some more feedback regarding points raised in this post.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
That's a good question, I'm a bit surprised that there are no runs yet for games with an internal level editor, where the run is for a custom level set. I'm sure this will come up more in the future, so what's the precedent? ...thinking about it, I'd say that using level editor to make a custom levelset is pretty close to romhacking, because most romhacks are also editing the levels using a third-party tool or hexediting or something. Both with a romhack and with custom levels, you are tied to the existing game engine, physics, enemy types, and so forth; whereas a homebrew game has to create everything from scratch and can be literally anything. Also, any game with a level editor tends to have TONS AND TONS of custom levels; so it sounds like a good constraint to get only custom levels that "features unique gameplay or brand new content". I believe that for this particular levelset, if it had a run without a major skip glitch, it would look too similar to the VVVVVV main levelset, and would not be very entertaining for most people. $.02
Judge, Moderator, Player (195)
Joined: 7/15/2021
Posts: 110
Location: United States
If you asked anyone in the main VVVVVV Discord server about Dimension Open, they'd definitely recognize it. But the VVVVVV community is scattered around the internet and not all of them are into custom levels as much as that server is. Terry's featured levels posts are okay, but he only ever did them around like 2011 (his most recent ones only highlight some of the ones posted to a level-making jam from last year). So I'm not sure how I feel about using those as a standard of recognition. Ever since the game was released in 2011, Terry hasn't really engaged with it that much; after release, he went back to working on other stuff (like Dicey Dungeons), and the most major thing he's done recently is make the source code publicly available on GitHub in 2020 and started accepting pull requests (and even then, most of the pull requests get reviewed and merged by another dev named Ethan Lee, not him). And to be fair, nowadays custom levels do some crazy stuff with new mechanics and gameplay, and they even have custom graphics. Dimension Open was made in 2013, and while impressive for the time, it's a bit lackluster now. I'm just not sure what recent level I should pick because unfortunately most of them are short and don't really aim for the same ambition and scale that Dimension Open did. (This is due to a lot of them being made for the VVVVVV Discord level-making contests.) I picked Dimension Open because it's basically the only level with a zip glitch (no other levels use round teleporters), I figured the zip glitch would be somewhat entertaining, and I thought that the zip glitch would make it stand out from all other levels. If I did a TAS of Dimension Open with no glitches, it'd just kind of look the same as one of any other level, plus the resulting movie would be three times the length of this one, so I'm really not sure if having a major skip glitch adds or detracts from entertainment.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
Is there any kind of community ranking for custom levels? Like which one is the most popular, which one is the hardest, some other scale maybe? Here's the wording of our rule:
Non-official games are allowed for submission. However, they go through more scrutiny than other games. This is because the game itself also becomes subject to judgment, so it must meet a minimum standard of quality or notability to be eligible for publication. We look for games that can be played and completed, have some recognition or popularity, or are notable in some other ways as decided by the judge and the audience.
There's some amount of freedom in what can be picked, and ideally it'd be #1 on several different scales, but if there's no such thing then at least on one?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Reviewer, Active player (277)
Joined: 12/14/2006
Posts: 717
After thinking about it, I really do feel that custom level sets and mods are closer to hacks than anything else. They both involve building new content on top of a base game. Also like hacks, some mods can just be aesthetic and some can be entirely unique content. I'm of two minds on this. One is just to go by that definition and say all mods should be treated like hacks, and the other is base it possibly on official recognition, like, for example, a mod that has its own official store page maybe can be recognized as closer to a homebrew game.
Judge, Moderator, Player (195)
Joined: 7/15/2021
Posts: 110
Location: United States
feos wrote:
Is there any kind of community ranking for custom levels? Like which one is the most popular, which one is the hardest, some other scale maybe?
The main VVVVVV Discord server has a "recommended levels" list: https://i.imgur.com/Tzga5wp.png
Memory
She/Her
Site Admin, Skilled player (1523)
Joined: 3/20/2014
Posts: 1762
Location: Dumpster
In my opinion, we should treat custom content the same as hacks for the purposes of the rules. It's more or less an extension of a base game.
[16:36:31] <Mothrayas> I have to say this argument about robot drug usage is a lot more fun than whatever else we have been doing in the past two+ hours
[16:08:10] <BenLubar> a TAS is just the limit of a segmented speedrun as the segment length approaches zero
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
Info Teddy wrote:
The main VVVVVV Discord server has a "recommended levels" list: https://i.imgur.com/Tzga5wp.png
No stats... Is there a level that's the most different from the original game?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Judge, Moderator, Player (195)
Joined: 7/15/2021
Posts: 110
Location: United States
feos wrote:
Is there a level that's the most different from the original game?
There's a lot of them. Out of the ones in the list, I can name Overdose, Unshackled, Detox, Summer Spooktacular, Abort, Tempel van Hond, Temporal Troubles, and Atmosfear. All of them have custom graphics and music, and some of them at least try to have different gameplay mechanics. There are some more recent levels not in the list that have new gameplay mechanics. For example, one of my levels is basically a puzzle level. There's also a work-in-progress sequel to Dimension Open, with custom assets and tons of new gimmicks.
Site Admin, Skilled player (1236)
Joined: 4/17/2010
Posts: 11268
Location: RU
New gameplay mechanics is what we want the most! Custom graphics and music would also be a nice bonus on top of that. Otherwise I think you know the scene well enough and we can trust your choice based on those requirements (probably involving asking the VVVVVV community too, why not).
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
TASVideosGrue
They/Them
Joined: 10/1/2008
Posts: 2738
Location: The dark corners of the TASVideos server
om, nom, nom... sweet!
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14879
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [4721] Linux VVVVVV - Dimension Open by InfoTeddy in 03:16.86