Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Editor Decisions [Poll - vote now!] #272

Closed
Karkus476 opened this issue Dec 21, 2015 · 23 comments
Closed

Editor Decisions [Poll - vote now!] #272

Karkus476 opened this issue Dec 21, 2015 · 23 comments

Comments

@Karkus476
Copy link
Member

Some big decisions need to be made regarding the situation of level editing in SuperTux.

It has been decided that @Hume2 's in-game level editor (composed partly of code from and) based around the old in-game level editors will be added for 0.5.0. But what should we have as an external level editor (for more complex things like scripting)?

Here are some options (make a comment if you've got any ideas):

  1. Use only @Hume2 's in-game editor. Add features like scripting anyway, and possibly rethink the SuperTux GUI? Of course, when considering the two options below, we assume that @Hume2 's editor will be included too.
  2. Use Tiled by creating a SuperTux plugin for s-expressions (the SuperTux level format) and squirrel scripting, as well as many, many other things.
<Karkus> Is there any way to create plugins for Tiled? A plugin API?
<o11c> Karkus: yes, at least for input/output
<o11c> Karkus: but really it's best just to use the standard formats
  1. Use Flexlay. This is already partially developed by myself ( @Karkus476 ) and @Grumbel , with SuperTux level editing in mind.
  2. Use the c#/mono editor. It's already very able, and has been used to develop features in the past. It has also suffered from some portability issues, and interest has been decreasing over time. It is not actively being developed, but has potential

Here are some pros and cons for each option, I have attempted to be as unbiased as possible:

Pros Cons
Option 1 - Only Ingame Editor Option 1 - Only Ingame Editor
No-one would have to download the SuperTux editor. Everything would be contained within the game. There would be no questions asking how to and where to download the editor. The SuperTux GUI isn't capable of this kind of complexity. It would take literally years of work to get anything done, and we'd likely have to redesign SuperTux's GUI system, or use an externally developed GUI manager
Option 2 - Tiled Editor plugin Option 2 - Tiled Editor plugin
As it's externally developed, we wouldn't have to worry so much about the UI, and other more visible parts of the editor, we could simply create a plugin which worked as a backend to the editor which would create SuperTux .stl and .stwm files. This could make the editor far more stable, and we might have to worry less about portability There would still be a huge amount of work to be done, and we would be starting from scratch. Some more impressive features like script editing may take longer to implement.
This may bring more people into the project, and if people recognize the name "Tiled", they may be interested in trying level editing. Some features in Tiled may be incompatible with SuperTux's level format. This could overload the issues page, when people complain
Some publicity may be gained through Tiled (website coverage) and developers may be attracted to the project. Suddenly working with a huge codebase may make development slow and hard
Option 3 - Flexlay Level Editor Option 3 - Flexlay Level Editor
Developed especially for this purpose, Flexlay is already halfway to becoming a decent editor. It can already be used to develop SuperTux levels (albeit somewhat limited in this regard) and I have planned to include a built-in scripting API and editor and many other features Although well developed, some code is going out of date and needs updating (PyQt4 -> PyQt 5?, I've already rewritten worldmap loading!) This could take time, but not so much as complete reimplementation
Written in Python 3 with PyQt, it is a versatile codebase which will be able to very quickly produce new (SuperTux specific) features and grow into a SuperTux-oriented development environment.
Option 4 - C# Level Editor Option 4 - C# Level Editor
An already functional SuperTux level editor, what more do we need? There have been some portability issues and is based around C# (Microsoft, ugh!)
It has most of the features currently implemented in SuperTux, and has been used to create levels in the past. Except, no-one's developing it now, and I haven't seen anyone around who's still interested in developing it. Can it keep up with improvements to the normal game (which I'm sure will happen someday)

Go ahead and comment your opinion below: 1, 2, 3 or 4. Make sure you evaluate all the possibilities first and if you like, give a reason.

@Karkus476
Copy link
Member Author

My vote goes to 2 or 3, as I personally don't want to work on 4 (C#), and 1 (fully-fledged in-game) is not practical at all. As with my quote about 2 (Tiled) I think it is going to be difficult and complex, but I would be willing to give it a go myself.

@jscott0
Copy link

jscott0 commented Dec 21, 2015

I like option 3. Flexlay looks appealing.

@brmbrmcar
Copy link
Contributor

I have to go for 4. The built-in level editor will come anyway, as a good thing. Flexlay is just to hard to develop, making it much slower than it could be, and is still several steps behind.

@brmbrmcar
Copy link
Contributor

And, I could develop it. Please don't say noone is interested, because you have asked people not to develop it any more.

@alketii
Copy link

alketii commented Dec 21, 2015

I vote either for in-game editor or for Tiled. Flexaly looks great, but it still needs some work, but if those issues are fixed, then there is no need for tiled.

@Grumbel
Copy link
Member

Grumbel commented Dec 21, 2015

As for the build-in editor, I would like to have it, but I would much prefer it when that editor would be kept as simple as possible. It should be something I can use with a gamepad on a couch and it should be something easy enough that a five year old can build levels with it. Right now the build in editor just replicates the functionality of the external editor, I don't find that all that useful.

As for Tilted, last time I looked at it, it wasn't really flexible enough. It's not a bad editor when you want to start a new game, but it is kind of hard to retrofit into SuperTux without losing a lot of functionality already present in the C# editor.

The C# editor is still the most complete editor around, but the use of Gtk+ and C# makes it rather unappealing these days. Python and Qt would be much nicer to work with, but pragmatically speaking the C# editor works right now and if I would want to build more levels that editor would do the job just fine. Adding new objects and stuff to it is pretty easy. As for portability, has anybody actually tried compiling it on other OSs? What are the show stoppers?

PS: The switch from Qt4 to Qt5 is pretty trivial, just a couple of lines of code. The Flexlay code was kept at Qt4 for easier portability, as none of the Windows Python .exe tools supported Qt5 when I wrote it.

@bjorn
Copy link

bjorn commented Dec 21, 2015

I'm interested to hear more about the features missing in Tiled for editing SuperTux levels.

Flexlay does indeed look quite nice, but on the surface it also looks very similar to Tiled. Personally I'd very much welcome you to look at contributing to Tiled instead. In the few minutes of clicking around in Flexlay I've already seen some things that would be nice to have in Tiled as well!

@Karkus476
Copy link
Member Author

@bjorn There are tons of features in Tiled which would work great for SuperTux levels, but what we really need is flexibility. Will it be easy to implement other features that appear only in SuperTux level creation? Will it be easy to keep that code separate from the rest of the Tiled code? Flexlay, although still only quite young (talking about the new Python 3 one at https://github.com/supertux/flexlay) in terms of development is designed specially for the purpose of being flexible. In theory, you could use it to edit any level, with a bit of work. I worry Tiled would be limiting in terms of what features we could create and what formats to use. How extensible is the plugin API of Tiled?

Of course, this may be a false assumption, and I would love to have a more stable and widely known level editor!

@bjorn
Copy link

bjorn commented Dec 21, 2015

@Karkus476 I think the answer is, right now it's not easy, but we could work together to make the things you need possible. I'd love for Tiled to be more extensible and this is very much already part of its future roadmap, for example by adding support for scripting (to extend Tiled in many ways), projects (for project-specific settings) and an object library.

@maxteufel
Copy link
Member

I'd suggest keeping Flexlay and an in-game editor. Reasons:

  • in-game editor will allow players to create their own simple level
  • if they want they can learn more about flexlay
  • flexlay is written in Python, which is easy to learn and contribute to
  • and it's portable, as is Qt
  • C# is too much of a mess

Edit:

I don't know anything about Tiled.

Why keep flexlay:

  • scripting/entering code is hard with the game's UI
  • some may prefer a separate environment for editing

@ghost
Copy link

ghost commented Dec 22, 2015

I am using the C# level editor and it works fine for level layout and scripting. As for Tiled, it just doesn't seem to be meant for supertux level creation, And Flexay works fine as well, but the graphics in the C# editor are better, and it is faster to make a level in C# editor because of tile layout.
The in-game editor might be good for players new to supertux just wanting to make a simple level.

Overall, I would recommend that you start up development on the Mono/C# Editor. Or if you don't, I am happy to make levels with Flexlay, but I would recommend that you maybe update the graphics in flexlay and change the tile layout.

@Karkus476
Copy link
Member Author

@jake41 What is your machine's OS?

@ghost
Copy link

ghost commented Dec 23, 2015

@Karkus476 I am running Elementary OS Freya 0.32
To run Flexlay, I run the following commands:

  • sudo apt-get install python3 python3-pyqt4
  • git clone https://github.com/SuperTux/flexlay.git
  • cd flexlay
  • git fetch origin
  • git checkout develop
It asks for my supertux directory and my supertux binary. After I select those, it gives me this error:
FileNotFoundError: [Errno 2] No such file or directory: '/usr/images/tiles.strf'

@Karkus476
Copy link
Member Author

@jake41 didn't it ask you to select your supertux data directory?

@ghost
Copy link

ghost commented Dec 23, 2015

@Karkus476 It says:

No Data Directory Found.

Press OK to select your Supertux directory.

@Karkus476
Copy link
Member Author

@jake41 Then you click OK, and select it right?

@ghost
Copy link

ghost commented Dec 23, 2015

@Karkus476 Yes, I select my supertux directory and click ok.
Then, it asks me for my supertux binary. I then select that and also click ok, and it gives me an error that says:

FileNotFoundError: [Errno 2] No such file or directory: '/usr/images/tiles.strf'

@Karkus476
Copy link
Member Author

@jake41 Please could you make a detailed issue at https://github.com/SuperTux/flexlay/issues?

@ghost
Copy link

ghost commented Dec 23, 2015

@Karkus476 Just got Flexlay to work, I had typed the path wrong. Looks good, would be nice if it got a graphics update.

@Karkus476
Copy link
Member Author

@jake41 Okay, great! Don't forget that what exists now is just an example of what can and hopefully will exist in the future 😄

@Mathnerd314
Copy link
Contributor

@bjorn I mentioned some things that were missing from Tiled on IRC (~ a year ago); here's an updated list, roughly in priority order:

@bjorn
Copy link

bjorn commented Dec 28, 2015

@Mathnerd314 Many thanks for the detailed list and even linking to all the related Tiled issues! It's hard to say how much work these things are, but it gives a very good overview. Indeed, Tiled could still be extended in many ways to be more useful in general, though I also clearly see the need for allowing more game-specific extensions since often it is necessary to limit the level designer to what the game can deal with.

I think the s-expr format would be on your side to solve, though I'd like to know what "format assumptions" are causing problems there. The rest I could work on as time allows, but it will be a slow process of course. Many of those things I'll be doing anyway, whether you decide to use Tiled for SuperTux levels or not.

@Karkus476
Copy link
Member Author

Closing, this poll has been finished. I will announce statistics soon.
Side-note: It's important to understand that by voting 2,3 or 4 we still want the in-game editor as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants