distractionware forums

VVVVVV => VVVVVV => Topic started by: darkhog on December 26, 2011, 04:39:57 PM

Title: Level editor suggestions
Post by: darkhog on December 26, 2011, 04:39:57 PM
I've recently bought HIB#4 (mainly because Bit.Trip Runner and Cave Story +) and got this unexpected christmas gift (VVVVVV) ;). Anyway I have few suggestions for level editor.

First of all instead of developing own scripting language, maybe we could use one of existing languages like BASIC or Lua? This would give us more power (imagine spawning enemies or spikes in runtime, so you walking peacefully through corridor and then enemies jump out behind you) while being easier to learn if you already know language used (BASIC is my favorite since it's perfect for such things and IMO Lua, Python or other scripting language is an overkill here) or any programming languages in general. Of course there will be little pain with older levels, but we can ease that by leaving old interpreter intact and just adding another (then in level's XML file we could add ScriptEngine tag with number parameter. 0 will mean old one and 1 new one, if there will be no such tag game will assume it's old level and use old interpreter).

Also instead of few featured levels maybe we could make online repository like those in Voxatron available from within game with upload option from level editor? That will ease level sharing process.

And now feature for levels themselves - ability to choose whether map will be available in-game or not.
Also being able to shoot and jump (not flip). This though won't make into normal game, but it would be nice to add gun and jump upgrade bonuses (as collectibles) so player will be able to jump and shoot aside of just flipping.
Title: Re: Level editor suggestions
Post by: Damn It AL to Hell on December 26, 2011, 04:50:09 PM
Okay, not to put a spoil on your ideas, it's pretty good, but I have to disagree with the gun and jump upgrade. These would render the game broken as well as decrease the entertainment value. Since flipping is VVVVVVV's thing that makes it unique, jumping will conform it to a lot of other games while shooting will decrease the game's difficulty significantly. But it's not my place to decide, so we'll leave it to Terry.
Title: Re: Level editor suggestions
Post by: darkhog on December 26, 2011, 05:21:27 PM
That's why I said that it wouldn't make into main game. It's just another option for level designers - if they don't want it, they won't use it. Simple as that. Also I've thought of antibonus which would block flipping.
Title: Re: Level editor suggestions
Post by: Damn It AL to Hell on December 27, 2011, 07:25:09 PM
Ahh, I gotcha.
Title: Re: Level editor suggestions
Post by: darkhog on December 27, 2011, 07:33:27 PM
I've got quite interesting suggestions related to scripting.

- Remove hardcoded level goal (rescuing crewmembers) and add check functions for how many crewmembers were rescued (similar to ones for trinkets) and endlevel command which would end level.
- Add string and integer variables. Flags are often enough, but with integer and string variables for storing internal script data we would have much more freedom in designing scripts.
- Add return command which would return to previous script if would that script executed by if<something> command
- Add command for loading another level. This way we would have theoretically infinite dimensions.
- Do command reference. Even if not in tutorial form, "<commandname>(parameters) - it do this if parameters are that" form is enough for us. It don't even have to have screens!
- Add playsfx(x) command. It'll be similar to music command but it'll play one of VVVVVV sounds.
- Add quake(time) command which would quake screen for time amount of time.
Title: Re: Level editor suggestions
Post by: Damn It AL to Hell on December 28, 2011, 03:20:22 AM
Okay, now these are something that I'd love to see! No offense.
Title: Re: Level editor suggestions
Post by: darkhog on December 28, 2011, 11:05:42 AM
Additional suggestion:
- Add way to customize crewmate rescue/get trinket messages either via command or by editing level properties.
Title: Re: Level editor suggestions
Post by: Globix on December 30, 2011, 08:53:54 PM
I got humble indie bundle 4 for Christmas too!  :-\  Anyways, your ideas are very good, I wish I actually knew how to program the terminals make dialogue and stuff, e.t.c, Then I would actually care about those ideas implemented in the game.

I also have an idea for some added features id like to see:

- There should be simpler coding in my opinion, it kind if takes part of the point of VVVVVV away for me. (Like I said, I have no experience with programming at all, but that's just my opinion). Maybe VVVVVV stuff could be programmed either way, whichever you choose, but I guess that would be confusing. Any thoughts?
Title: Re: Level editor suggestions
Post by: Officer Captain on January 08, 2012, 06:09:14 PM
Quote from: darkhog on December 26, 2011, 04:39:57 PM
ability to choose whether map will be available in-game or not
why (http://distractionware.com/forum/index.php?topic=693.0)
Title: Re: Level editor suggestions
Post by: 999999 on January 08, 2012, 06:14:27 PM
* Hotkey for instantly to toggle the speed game (100% | 80% | 60% | 40% ) while you use the level editor.
* Hotkey for instantly to toggle the speed game (100% | 80% | 60% | 40% ) while you use the level editor.
* Hotkey for instantly to toggle the speed game (100% | 80% | 60% | 40% ) while you use the level editor.

Thanks
Title: Re: Level editor suggestions
Post by: Terry on January 08, 2012, 11:48:25 PM
If you have to slow your level down to test it, then you're probably making a stupidly hard level... :victoria:
Title: Re: Level editor suggestions
Post by: 999999 on January 09, 2012, 02:53:20 AM
Quote from: Terry on January 08, 2012, 11:48:25 PM
If you have to slow your level down to test it, then you're probably making a stupidly hard level... :victoria:

Oh, you make me sad, Terry  :victoria:. No, wait, I could to have explained it a bit too. I dislike hard levels. Well, I suck in hard levels too. Anyway, in all the situations where I found me asking to the gods why I can't to have a slowdown key is for quickly (it sounds contradictory ;)) to discard hard paths inside my level... and to avoid that a player can to fail in trying repetitively that path instead of other one <harder to figure>/<easier to pass>. Or that I want to think, at last in theory. In the tables... sigh, It's hard  ::)
Title: Re: Level editor suggestions
Post by: OJ on January 10, 2012, 01:48:27 AM
I suggest a sort of autosave feature, for a multitude of reasons not worth sharing.

There would be an option to have autosave on or off, by default it is on. There would be a time selector for the time between each autosave. By default, it would be set at every 10 minutes, maybe 15. It would go 5 minutes, 10 minutes, 15 minutes, 20 minutes, 30 minutes. It shouldn't go any higher, because that would defeat the purpose. By an hour spent editing, you'd HAVE to have saved at least once. You'd set it to off if you were experimenting with things, practicing scripting, messing around in the editor, and the like. If you save your level manually while autosave is off, it will switch to on, and the default time.
On the first autosave, if you hadn't saved already, would ask you what you would like to save your level as. You name it, for example, "My Level". With every autosave it will now save as "My Level" until you manually change the name. With each autosave made, a little notification would appear saying "level saved". If you make a mistake and it autosaves, there would also be an option below it saying "Delete autosave?", and "delete" and "keep" options. If you somehow missed that, and then for whatever reason your game closed or something, and you tried to load up your level again and it was totally ruined (e.g. you had put say and reply next to each other without noticing, and it autosaved), there would be a popup upon loading your level with the following options: "Start on last autosave", "Start 2 autosaves ago", "Start on last manual save". Etc, etc, you get my point.

tl;dr: The level editor needs an autosave feature.
Title: Re: Level editor suggestions
Post by: oposdeo on January 19, 2012, 07:03:10 AM
Quote from: Globix on December 30, 2011, 08:53:54 PM
I got humble indie bundle 4 for Christmas too!  :-\  Anyways, your ideas are very good, I wish I actually knew how to program the terminals make dialogue and stuff, e.t.c, Then I would actually care about those ideas implemented in the game.

I also have an idea for some added features id like to see:

- There should be simpler coding in my opinion, it kind if takes part of the point of VVVVVV away for me. (Like I said, I have no experience with programming at all, but that's just my opinion). Maybe VVVVVV stuff could be programmed either way, whichever you choose, but I guess that would be confusing. Any thoughts?

I'm not sure if you  read (what i believe is terrys post) on scripting bu it is really easy. like for the terminals you just type this

command(X)
BLAH
BLAH
BLAH
BLAH
space
next command

so basically you type either "say" or "reply" depending on if you want the terminal talking or veridian talking, then, in parenthasis, you just add how many lines of text you want it to say (maximum of 4 i think) then you write what it says in the BLAH's and if you want to add another one, you make an empty line, and then repeat. i personally think this is EASY, if all you have to do is say "say" or "reply" and put a number.

if you want the screen to flash when you walk through a script field, all you have to do is write "flash" in the scripting for that field.

if you want him to frown or smile when he walks through the field, you put "happy" or "sad" in its scripting. i could go on but im basically saying its pretty simple
Title: Re: Level editor suggestions
Post by: Insani on January 31, 2012, 02:34:59 AM
Quote from: Terry on January 08, 2012, 11:48:25 PM
If you have to slow your level down to test it, then you're probably making a stupidly hard level... :victoria:

I suck at VVVVVV.

Whenever I make hard levels I usually place checkpoints half way to see if it's beatable by someone better than me.

But otherwise it's a fun game.
Title: Re: Level editor suggestions
Post by: seaking177 on February 01, 2012, 02:18:26 AM
i donno how easy this is gonna be to put in, but make an option for 3DS users to import levels via QR code?

that is, when the 3DS version gets level editors and such...though, it it is QR code based, i can bet elisherer and the hacking/homebrew forum on GBA temp will make a PC level editor for VVVVVV for the 3DS, even though there is a level editor for the PC.

so, make a QR option for computer versions, and QR for sharing levels in the 3DS.
Title: Re: Level editor suggestions
Post by: Pyrite on February 12, 2012, 04:08:59 PM
It wouldn't be a QR thing, it would be in the SD card. QR codes are pretty hard to use for such a huge file. Have you ever looked inside a .vvvvvv file? It depends on size, but... yeah.
Title: Re: Level editor suggestions
Post by: FIQ on March 09, 2012, 08:37:38 PM
Things that doesn't give problems of backward compatibility:
* Ability to turn on invincibility in the editor. No, I don't make hard levels (I think?), I just want to run through parts of a level to see if things like scripting work, without bothering with the puzzles.
* Make so when you fire up the level editor for a second time, the last name you bothered with is forgotten. Once, I saved a short test level to try out things with over my other bigger level... (At least I had a backup)
* Cursor and scrolling in Direct Mode tile chooser
* Ability to set a gray colour within the editor*1
* Ability to change the platform speed within the editor*2
* Ability to get information of the game version - this will net you the possibility to do eventual new things that might be introduced, but that also might make 2.0/whatever unable to parse it:
ifversion(2.1,callscript)
If nothing is called, then it's an older version - thus making "older versions" easy to catch.

Things that gives problems with backward compatibility/need a new format:
* Access to the internal scripting engine properly - or just more powerful commands:
gotoroom(X,Y)
gotoposition(X,Y)
createentity(X,Y,ID,P1,P2)
cutscene()
endcutscene()
changecolour(crewmatecolour,newcolour)
blackout() (and one that actually work)
blackon() (same goes for this)
walk(direction,pixels)
playef(ID)
ifexplored(X,Y,script)
changeai(crewmatecolour,followplayer)
hideplayer()
showplayer()
flipgravity(crewmatecolour) (and preferally one that is stable)
position(position)

Pretty much everything except access of polar dimension, changing of the game state and these "alt()" things.

* Not forcing cutscene() when starting a script - to stop a script properly, it seems as I need at least one text command (OR use a quirky way to access endcutscene()*3) to end a script without the bars staying forever

* Access to Tower Tileset
* Tower mode levels, this can probably be done w/o too much hassle, and without creating a complete new level structure, if you only allow tower mode within the normal map bounds (i.e. letting for example map 1,1 to 1,4 being in towermode with a XML attribute, (yay "tower='0none/1up/2down'"?)
* Final stretch-style tile colour changes
* Bigger maps than 20,20 - this is very possible up to 25,25 without problems (the biggest problem is that the map becomes a bit weird) with manual editing
* Looking for more parameters than just the first one in the xml file, like setting platform speed "locally", enemy speed, enemy type, colour...
* Ability to declare a level complete by yourself, and not by some predefined mission. In my WIP level, I will not have this as the mission, but will (at now) have to create one/more crewmate(s) somewhere to allow "winning"...
* Ability to use entity ID 22 to show your trinket collection properly
* Ability to use moving platform p1="14" (moving on quicksand contact) properly
* Ability to use enemy p1="16" (B-B-B-Busted-style) properly, and set of enemy speed
* Ability to play Path Complete, Pause, Plenary*4


*1: Try setting tilecol="6" using Warp Zone Tileset. Also, try turning on warp direction and see what colour you get! Platforms, conveyor belts and enemies are green though.
*2: Try editing platv="4"
*3: You can do it now, albeit quirky
say(-1) # will parse the line below in VVVVVVscript while not being a part of any text command at all
text(terminal,0,0,4) # will store the 4 lines below found in the editor in a text command, but this doesn't necessary mean that it will get parsed
say(2) # will allow 2 lines below to get through to the internal engine as it thinks it will be part of the say command - while actually the text() command we did will make "text(terminal,0,0,2)" part of the text!
endcutscene() # will end the cutscene
loadscript(stop) # there isn't really any stop script, but i found this made any text commands being left unparsed (will prevent the editor from spitting out nonsense)

Will be parsed (something like this) internally as:
cutscene()
untilbars()
position(center)
squeak_active
text(gray,0,0,-1) # will not do anything at all actually
text(terminal,0,0,4)
endtext # text begins
position(center)
squeak_active
text(gray,0,0,2) # text ends
endcutscene()
loadscript(stop)
endtext # will never be encountered, thus making no text appear
endcutscene()
untilbars()


The text after "# foo" is my own comments on why it works, and isn't included in the script. This makes it possible to use ANY number of lines of internal scripting - that's more than the one who found out the 2.0 bug that allowed coloured text :P

If 2.2 isn't going to be released, at least keep that ^ possibility to access the internal engine. :3

*4
music(0a) - Path Complete (level complete!)
music(5a) - Pause (the music in the beginning of the original game)
music(7a) - Plenary (game complete!)
Title: Re: Level editor suggestions
Post by: Arthur on March 26, 2012, 04:22:56 PM
I would really like the possibility to make cutscenes (at least in 2.2).
Title: Re: Level editor suggestions
Post by: Damn It AL to Hell on March 27, 2012, 02:13:45 PM
Quote from: Arthur on March 26, 2012, 04:22:56 PM
I would really like the possibility to make cutscenes (at least in 2.2).

Yes! Would love to make custom cut-scenes.
Title: Re: Level editor suggestions
Post by: Arthur on June 02, 2012, 05:34:20 PM
What about making different types of levels ("normal" levels, time trial levels, polar levels who can only be accessed by warps in levels by the same author...)
Title: Re: Level editor suggestions
Post by: ToasterApocalypse on June 02, 2012, 09:22:49 PM
Quote from: Arthur on June 02, 2012, 05:34:20 PM
What about making different types of levels ("normal" levels, time trial levels, polar levels who can only be accessed by warps in levels by the same author...)

Quote from: Arthur on June 02, 2012, 05:34:20 PM
polar levels

*Cough* Direct mode *Cough*
Title: Re: Level editor suggestions
Post by: FIQ on June 02, 2012, 09:52:36 PM
The thing proposed was a possibility to have more than one dimension in the same level - which is impossible at the moment.
Title: Re: Level editor suggestions
Post by: LucasK on June 03, 2012, 04:11:32 PM
I would like the possibility to make autoscrolling levels. (Vertical and... HORIZONTAL!)
Title: Re: Level editor suggestions
Post by: FIQ on June 03, 2012, 06:01:22 PM
Quote from: LucasK on June 03, 2012, 04:11:32 PM
I would like the possibility to make autoscrolling levels. (Vertical and... HORIZONTAL!)
Would be awesome, but that's not going to happen I'm afraid.

finalmode(46,54) and walk your way to Panic Room/The Final Challenge is the sole possibility of utilizing scrolling *at all*, and it will probably remain like this forever. (which worked perfectly aside from the fact that the "Press ENTER to return to editor" text glitched).

<contents>...</contents>
<tower x="0" start="0" end="19" dir="0">...</tower>
...
<edLevelClass tileset="5" tilecol="0" platx1="0" platy1="0" platx2="320" platy2="240" platv="4" enemyx1="0" enemyy1="0" enemyx2="320" enemyy2="240" enemytype="0" directmode="1" warpdir="0" tower="1">The Tower</edLevelClass>

(Does not work, I just was bored)
Title: Re: Level editor suggestions
Post by: AcoG000 on June 04, 2012, 01:05:34 PM
This would be so unlikely, but I'd love if there was a feature for custom music in the editor.
Title: Re: Level editor suggestions
Post by: blue626 on June 04, 2012, 06:23:31 PM
There already is a thread for level editor suggestions, and it's organized: http://distractionware.com/forum/index.php?topic=484.0 (http://distractionware.com/forum/index.php?topic=484.0)
(By the way, how do you make hyperlinks showing a title instead of the address?)

Quote from: Arthur on June 02, 2012, 05:34:20 PM
What about making different types of levels ("normal" levels, time trial levels, polar levels who can only be accessed by warps in levels by the same author...)

An even better suggestion is to have a time trial for every level, having the par time always defined. However if that's too complicated, I like your idea.
Also, I think it's better to make normal dimensions and polar dimensions in the same level, instead of making one dimension per level and linking various levels.

EDIT: Is it a good idea to bump an old topic, just to avoid having 2 threads with the same topic?

EDIT 2: I have new suggestions:
Title: Re: Level editor suggestions
Post by: FIQ on June 06, 2012, 11:05:01 PM
You can simulate the roomtext lines amount by simply having more roomtext.

Interesting suggestions otherwise.

I also propose a new kind of Map Settings menu.

Editor Menu
* Map Settings
* Load Level
* Save Level
* Quit Editor

Map Settings
* Change music
* Script editor
* Change height/width
* Back

(The new addition is that change h/w becomes an actual part of the UI, and that the load/save stuff gets thrown outside map settings)

And a major change of the shift menu

F1: Change Tileset
F2: Change Colour
F3: Change Enemies
F4: Enemy Bounds
F5: Platform Bounds
F6: Copy Tiles
F7: Paste Tiles
F8: Platform Speed
F9: Enemy Speed (?)
F10: Direct Mode

W: Change Warp Dir
E: Change Roomname

Copy Tiles will copy the layout -- no entities -- selected like when you select platform bounds/etc. Paste Tiles will set your cursor like the area you copied, letting you paste it as you wish.
F8 and F9 will cycle between 1 and 10 selecting the entity speed. At the moment, you can alter the platform speed manually (not within the editor), but not enemy speed. The default is 4.

If F9 is added, this will make <=2.1 obsolete, which is a problem. Everything else will not break compatibility however (a 6th colour @warp zone works, the only "problem" is that enemies/platforms will be green).

I also would like the possibility to get the 6th color for real in the warp zone tileset, including entities. Enemies will not a problem, platforms/conveyor belts might however.
Title: Re: Level editor suggestions
Post by: blue626 on June 11, 2012, 06:44:31 PM
I have got more suggestions:

FIQ: I like your suggestions, but I still like the ability to change map size while editing.
I would like to know if there's any way to change platform speed in 2.0.

Also, I like the suggestion of the 1st post of this thread that enables the level to end after/before rescuing all the crewmates.
Title: Re: Level editor suggestions
Post by: FIQ on June 11, 2012, 06:48:08 PM
Quote from: blue626 on June 11, 2012, 06:44:31 PM
I have got more suggestions:

  • Script to change roomname while playing (again, like in the Final Level)
  • A script editor that would be like a normal text editor: Ability to erase text in the middle of the script without erasing everything ahead and the ability to copy and paste (and, maybe, cut) text.

FIQ: I like your suggestions, but I still like the ability to change map size while editing.
I would like to know if there's any way to change platform speed in 2.0.


Also, I like the suggestion of the 1st post of this thread that enables the level to end after/before rescuing all the crewmates.
There is, but not w/o editing manually. platv="" in a room controls the speed (default is 4).

Also, yes, I would really like a script editor not as limited as the current one, an editor that you can choose cursor place and use proper copy/paste, and most importantly, scroll proper.

Commodore 64-style is nice, but I feel it's rather limiting in this case.
Title: Re: Level editor suggestions
Post by: blue626 on June 12, 2012, 06:10:45 PM
I didn't think that the editor's limitations were related to its Commodore 64 style. Well, I like the retro-style, and I believe that there's a way to keep the font and color of the editor and, at the same time, add the modern features.


Quote from: FIQ on June 11, 2012, 06:48:08 PM
There is, but not w/o editing manually. platv="" in a room controls the speed (default is 4).

I won't change the platform speed, then. I didn't need to change it, anyway :verdigris:.
Title: Re: Level editor suggestions
Post by: Arthur on June 15, 2012, 01:34:50 PM
Maybe being able to use "passive" scripts, which would allow to use dialogue boxes without stopping Viridian, like in Comms Relay?
Title: Re: Level editor suggestions
Post by: blue626 on June 15, 2012, 06:04:22 PM
I like that idea, scripts that don't stop Viridian and don't create cut-scenes. This should be useful for turning flags on/off without stopping Viridian or making anyone speak, and, so, nobody would notice the flag changed! :vermillion: :vitellary:
Title: Re: Level editor suggestions
Post by: FIQ on June 16, 2012, 10:22:28 AM
You can always have a script with the sole purpose of turning a flag on or off, w/o dialogs. I had ton of these in my level :P

"Background" dialogs is a nice idea.
Title: Re: Level editor suggestions
Post by: blue626 on June 16, 2012, 07:37:58 PM
I thought I read somewhere that scripts expect a say/reply command and, so, put the cutscene bars and that if you don't put a say/reply command, the cutscene bars will stay. I guess I was wrong. I'll try doing one of those scripts.
Title: Re: Level editor suggestions
Post by: FIQ on June 16, 2012, 07:59:30 PM
I don't know how the parser work, but I've found out that if a script contain any say/reply *at all*, cutscenebars will appear, even if the script is stopped at the beginning (for example if you're doing an one-time script the "wrong" way). Honestly I think this is just weird and that the parser should improve on this, but it's like this at the moment.