Level editor suggestions

Started by darkhog, December 26, 2011, 04:39:57 PM

Previous topic - Next topic

seaking177

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.

Pyrite

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.

FIQ

#17
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!)

Arthur

I would really like the possibility to make cutscenes (at least in 2.2).

Damn It AL to Hell

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.

Arthur

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...)

ToasterApocalypse

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*

FIQ

The thing proposed was a possibility to have more than one dimension in the same level - which is impossible at the moment.

LucasK

I would like the possibility to make autoscrolling levels. (Vertical and... HORIZONTAL!)

FIQ

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)

AcoG000

This would be so unlikely, but I'd love if there was a feature for custom music in the editor.

blue626

#26
There already is a thread for level editor suggestions, and it's organized: 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:

  • A 2x2 brush, in case you want to draw as thin as possible, but don't want to have bad level design.
  • A selector tool that allows to select an area and move all the objects in the area at the same time.
  • A menu showing all the colors that exist, letting you choose better the colors. The same for tilesets.
  • A script that changes warp directions while playing the level.
  • A script that changes the tileset while playing the level (again, like the one used in the Final Level in the main game).
  • Roomtext boxes with more than one line.

FIQ

#27
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.

blue626

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.

FIQ

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.