Big list of small annoyances


#1

Been using Defold for several months now, it’s generally good but there’s a lot of minor annoyances which altogether make it quite frustrating to use sometimes. I use Unity in my day job so I’m generally comparing it to that. These are in no particular order and I haven’t tried Editor 2 so some may be irrelevant now.

  1. Allow negative scales. If I want to flip something horizontally it’s obvious and intuitive to set the x scale to -1 but very awkward and unintuitive to have to set x and z rotation to 180.

  2. Let me get the position of a sprite. I shouldn’t need the workaround of setting another parent game object. Seriously.

  3. Highlight the existing text when I click to edit a field. When you tab into a field it highlights the existing text so you can just start typing, great. But it doesn’t do that when you mouse click into a field.

  4. When you leave a field, make the leftmost part of it visible. The first few digits of a number and the first few characters of a string are always the thing I want to see. Is this y position positive or negative? In the order of hundreds or thousands? Who knows!

  5. Have draggable handles for tweaking numbers. This is so useful in Unity. To tweak numbers in Defold you have to click in the field, delete the existing number (see point 3), enter a new number, hit enter, repeat…

  6. Be able to disable physics for a collection. It has an overhead, if I know I’m not using any physics in that collection let me remove the overhead.

  7. Project setting changes aren’t detected until you select a different field. For some reason changing the project settings is a lot weirder than everything else. Changes aren’t detected (IIRC they actually don’t apply) until you select a different field? Also the mouse scroll wheel works erratically in the project settings, sometimes just not working at all.

  8. Scale the tiles in the tile preview window. Time to edit a level in my very low-res pixel art game, I’ll just select the 8x8 tile I want… Oh wait they’re so small I can’t tell what they are! I’ve resorted to placing one of every tile off to the side then making heavy use of the ‘right-click to select that tile’ feature.

  9. Make mouse controls (maybe keyboard too) affect where the cursor is, not which panel has ‘focus’. In Unity if I have two panels open that both have scroll bars I can just mouse over one and start scrolling, it’s great. In Defold I have to click to ‘focus’ that panel, then click back in the other one…

  10. MIDDLE MOUSE PAN. These aren’t in order but if they were this would definitely be number 1. Having to hold the Alt key to middle mouse drag pan is ridiculous, just let me middle mouse drag alone.

  11. Be able to place rulers/guides in the scene editor. My game is 128x128 with 8x8 tiles, so it’s really useful for me to set the grid size to 8. But unless the grid size is 128 I can’t easily tell where the edges of my screen are without counting. I usually add a temporary sprite sized to my screen resolution then delete it when I’m done, which is stupid.

  12. Generate code with tabs, not spaces. If my text editor is set to use tabs instead of spaces, when you auto generate the init, update etc. functions in a new file why does it still use spaces?

  13. Issues with changed files list and synchronizing. Quite often the changed files list will go blank and if I try to synchronize it won’t do anything, I have to edit a file and save it to repopulate the list and see all the changes I actually care about

  14. Issues finding a resource. Sometimes when I’m editing a field and click the ellipsis to select a file the list of matching items is just empty or half populated, I have to delete the asterisks and start typing to find what I actually want.

  15. Remember the camera position and zoom when opening a collection. When you open a collection the camera is positioned and zoomed to frame the entire collection, but 99% of the time I then pan and zoom back to the same place I always do.

  16. Snapping doesn’t work. When moving things around the scene editor you can hold shift to snap to the grid, great. Except it doesn’t force the snapping, you can still place things in between the grid positions. So even if my grid is 1 pixel I still can’t reliably place things at exact pixels because it might not snap. Also, if I’m dragging only the horizontal position handle while snapping, I really don’t want the y position to also snap to the nearest grid.


#2

You should switch to using Editor 2 and give feedback for it specifically as the older Editor 1 will likely not get changed.


#3

Good requests, a lot of these have bothered me too at some point. Most of these are editor features/issues, so you can also report them on the Editor 2 issue tracker so the team can track them easier.

  • 2 is a “high priority bugfix” on the latest roadmap, so there’s some hope for that.
  • 7 is fixed in Editor 2.
  • 9 is fixed in Editor 2.
  • 10 is fixed in Editor 2, honestly it’s one of the main reasons I use Editor 2 as much as possible.
  • 12 - Do you mean the built-in text editor? If so, this is fixed in Editor 2. (it also works fine with Atom)

#4

Wow! That’s an amazing list of suggested improvements. I agree with most/all of them. I see that you’re still using Editor 1, but I guess many of the improvements also apply to the new editor.

@Erik_Angelin, @Ragnar_Svensson, @mats.gisselson, @Ragnar_Dahlen, would you like to create tickets for some of Connor’s suggestions?


#5

Thank you so much for taking the time to make that list! I have added the issues left to fix for Editor2 in our public issues repo: https://github.com/defold/editor2-issues/issues

  1. https://github.com/defold/editor2-issues/issues/963
  2. https://github.com/defold/editor2-issues/issues/964
  3. https://github.com/defold/editor2-issues/issues/965
  4. https://github.com/defold/editor2-issues/issues/966
  5. https://github.com/defold/editor2-issues/issues/967
  6. https://github.com/defold/editor2-issues/issues/968
  7. Fixed
  8. https://github.com/defold/editor2-issues/issues/969
  9. Fixed (trusting @ross.grams on this)
  10. As above
  11. https://github.com/defold/editor2-issues/issues/970
  12. https://github.com/defold/editor2-issues/issues/971
  13. Fixed
  14. Fixed
  15. https://github.com/defold/editor2-issues/issues/972
  16. https://github.com/defold/editor2-issues/issues/973

It’s not clear to everyone what the labels in the issues repo actually mean, so I will update the README.md to describe that better.
In short, we are quite generous with the “blocker” label, it means anything that makes you not want to use the app. So feel free to go through the issues above and make a comment if a specific issue is really pissing you off. Since you took the time to make that list, I’m guessing a few should be raised to blockers. Please avoid saying something is a blocker if you can live with it for a while longer. It’s a sort of trust/responsibility based system, don’t abuse! :wink:
Prioritising issues against what we believe is the biggest accumulated user pain is really hard, and we need all the help we can get in understanding how severly issues affect you and your specific games.

@ross.grams Thanks for going through the issues in Editor2!


#6

Happy to help! Similarly to @ross.grams, middle mouse pan alone would be worth upgrading so I’ll definitely take the plunge on Editor 2 soon.

Out of the remaining issues I’d say #3 (highlight existing text when I click to edit a field), #4 (make leftmost part of a field visible) and #16 (snapping) would be ‘blockers’ under this definition.


#7

Here are some of my issues with Defold 2

  1. Don’t lock the editor while building/bundling .
    Use the local copy of files to bundle with and wait with saving things until the build in progress is done.
  2. Progress bars, it is frustrating not know how long the bundling will take.
    This is super frustrating, sometimes it doesn’t even say “Building…” and just says “Ready” so I think that the editor have crashed…
  3. Copy and Paste node properties copies the whole node.
  4. Hotkeys, there are no hotkeys…
  5. Hotkeys are not “industry standard” (i.e. “f” for framing)
  6. Text navigation in text fields
  7. (Sometimes) when tabbing the buttons selected aren’t highlighted (see .project file)
  8. Wan’t * to see if a file haven’t been saved
  9. Editor always warns that you have unsaved changes
  10. When resizing the properties truncate the properties names instead of making the text fields super small, fields are more important than their label.
  11. There is no “Close tabs to the right” option
  12. Middle mouse doesn’t close inactive tabs

Many of them are probably reported already, but a new/additional voice on them is probably not bad either :slight_smile:


#8

What is the current status of the second editor? Is it stable yet?


#9

I’ve seen other people report crashes, but I use it for at least a couple hours every day and I’ve never gotten more than momentary annoyances from it. Since it got bundling capability about six weeks ago I’ve almost never touched Editor 1. The above list should give you a good idea what the most obvious issues are with Editor 2.


#10

Isn’t there the plan to implement a snapping feature(16)? I think its a very primary feature.


#11

Yes there is, but so far other things have been given a higher priority.


#12

Thank you.
im waiting.


#13

Smaller list of small annoyances

Really cool to see how many of these have been fixed / added, great to see a team so connected to their community! (Also evidenced by how quick and thorough forum responses always are). That said, here’s a few more things which annoy me regularly in Editor 2, again unordered:

  1. Autocomplete is active while typing comments. I’m writing some pretty complex logic atm and am regularly adding multiline comments to document stuff. By multiline I mean both blocks of comments where each line starts with -- as well as blocks surrounded with --[[ and ]]. When I’m typing the last word in one line of a comment and hit enter to go to the next, the autocomplete often changes the word I typed to a function call or variable name or something.

  2. There’s no word wrap option in the editor. This is fine when using the trackpad on my laptop as I can scroll horizontally just as easily as vertically, but when using a regular mouse I can’t.

  3. Really want an option to have Defold automatically open whatever files I had open when the project was closed (per project). Ideally it would go back to exactly how I left it; scrolling in scripts, panning and zooming in tilemaps etc. This is a more general version of #15 in my original list.

  4. The debugger regularly crashes when evaluating tables in the console. I’m often afraid to use the debugger to check variables in tables because it so frequently causes both the game and editor to hang until I kill one of them to free the other (either way I’m losing a lot of setup time). This would be less annoying if #3 existed since the editor opens so quickly. I’ve seen crashes when evaluating the self table, tables local to the script, tables local to the function and global tables. So, any table I guess. By ‘evaluate’ I mean typing table.thingy or table[1] or whatever into the ‘> Evaluate Lua’ bit of the console after hitting a breakpoint. I have many nested tables, but I’ve definitely had crashes when evaluating a simple string key to number value.

  5. The self table can’t be expanded in the debugger (because it’s type is listed as Script?). Most tables appear in the Variables window while debugging as an expandable tree view but self doesn’t, which makes running into #4 more common.

  6. Global variables aren’t listed in the debugger. I believe internally Lua stores all these in the _G table, it would be great to just expose that in the debugger and have it be expandable as that would also make it clear which variables in the list are global (maybe include the global function pointers since they’re there too? idk). Again this causes #4 to occur more often.

  7. Array tables list their numeric indices in alphabetical order in the debugger. You can see in the image below that instead of listing the elements from 1-9, then 10-19, then 20-29 etc. they’re listed as 1, 10-19, 2, 20-29 etc. I’m guessing the Variables window treats all keys as strings and lists them alphabetically as “1”, “10”, “2” etc. but these are actual numeric keys. You can also see issue #5 and I guess #6 in the image.

  8. I’d really love a keyboard shortcut for jumping between functions. In PICO-8 it’s Ctrl+Up and Ctrl+Down, super useful for navigating large files quickly. I have some big scripts and regularly need to move between a few functions, usually I end up doing a search for the function name and cycling through the call sites or something similar. Other navigation aids like a drop down list of all functions in the scope, split/multiview of the same file etc are always welcome.

  9. I’d also love a keyboard shortcut for moving selected lines up and down. I do this all the time when writing code in Visual Studio, it’s Alt+Up and Alt+Down there, in Notepad++ it’s Ctrl+Shift+Up and Ctrl+Shift+Down. Part of an existing ticket.

  10. Option to set an external diff viewer. I’ve mentioned this before and someone else already made a ticket.

  11. The keyboard shortcuts for Windows often don’t follow convention. The most annoying one is skipping over words in the text editor when moving the cursor. You beat me to it, this has bugged me forever :slight_smile:

  12. Find all references only shows 10 results per file. Yassss you did it :smiley:

  13. Come to think of it the forum doesn’t have a shortcut button for strikethrough text and seems to be missing the icon for code fences. IIRC there’s several other formatting things you can do which aren’t indicated, I just guessed until I found ~~ because someone else did it earlier in this thread.


#14

P.S. 14. Script-level variables aren’t exposed in the debugger either. e.g.

local thingy = "foo"    -- not listed in the Variables window
function update(self, dt)
    print(thingy)
end

#15
  1. Autocomplete is active while typing comments -> DEFEDIT-1608
  2. There’s no word wrap option in the editor -> DEFEDIT-1609
  3. Automatically open whatever files I had open when the project was closed -> DEFEDIT-1610
  4. The debugger regularly crashes when evaluating tables in the console -> We have made several improvements to the debugger which all will be released in the coming days.
  5. The self table can’t be expanded in the debugger -> Yes, this is unfortunate and I’m not really sure we can do anything to solve the case of trying to iterate self.
  6. Global variables aren’t listed in the debugger -> The global table (_G) is pretty big with all loaded Lua modules in there etc. We could perhaps have it as a non-expanded entry in the Variables window. @vlaaad?
  7. Array tables list their numeric indices in alphabetical order in the debugger -> I think we’ve already fixed this as part of the recent Debugger improvements. At least it looks correct when I try in the latest editor version.
  8. keyboard shortcut for jumping between functions -> DEFEDIT-1611. We also plan to show all functions in the Outline panel (DEFEDIT-855)
  9. keyboard shortcut for moving selected lines up and down -> DEFEDIT-1612
  10. Option to set an external diff viewer -> We’re going to revise the entire git integration in the editor and either remove it completely or make it more stable and useful for beginners as well as powerusers.
  11. Done.
  12. Done.
  13. the forum doesn’t have a shortcut button for strikethrough text -> There’s a lot of talk about strikethrough support in Discourse (the forum software we use) https://talk.commonmark.org/t/strikeout-threw-out-strikethrough-strikes-out-throughout/820
  14. Script-level variables aren’t exposed in the debugger -> I don’t think there’s any way for us to access these values in the debugger. We use the debug functionality provided by the Lua language itself. @vlaaad?

#16

I think I heard someone from engine team saying that it could be possible to add pairs support for self-tables?..

Global variables aren’t listed in the debugger

Yeah, on bigger projects just serializing and sending _G from game process to editor process takes around 5 seconds. Having it lazily loaded bit by bit sounds like an idea worth exploring though. At least we are going to pprint evaluated values (such as _G) so they are presented in more readable form.

I didn’t try to figure out why, but I too noticed that we don’t receive any information about upvalues that are not used in the scope at a breakpoint. That sounds like lua compilation model to me.

Setting break point on line print(thingy) worked for me though.


#17

Thank you both for your detailed responses as always :slight_smile:
This is why I prefer to post in the forum instead of the issue tracker, I hope that’s not too annoying, there’s usually some discussion to be had.

Great to hear there’s some debugger improvements coming! Git revisions sound interesting too.

I wrote the ‘thingy’ example to summarize behavior I’d seen but didn’t actually test that exact snippet, sorry. I think because thingy is actually used there it becomes visible in the debugger. If I were printing something else then thingy wouldn’t be visible, I think.


#18

Yeah, this is the behavior I observed. Not sure we can do anything about it, but might be worth exploring.