Things I'd like to suggest for future builds of Solarus

Started by ffomega, February 09, 2016, 01:00:46 AM

Previous topic - Next topic
I have a few suggestions for Solarus.  My main source for these requests comes from a program called Graal Online.  In the late 1990s and early 2000s, this program started out as a quest maker for A Link to the Past, and even had a very well-made map editor.  Quests were 2x the size of one map space in A Link to the Past (1024 x 1024), tiles were 16 x 16 px and you could do the following:

1. Click and drag a rectangle over a group of tiles and give them a unique name.  While this can be done from the tile editor, in Graal, it can also be done directly from the map editor.

In Graal you were unable to change the terrain properties directly, so if you wanted to change the tileset in any way you had to place tiles in specific places within the tileset's image when creating it, which had to be 256 png in order to load.  I am glad Solarus uses 16m, alpha channel pngs for its images as well as allowing you a wide range of terrain types for tiles.

2. You could also, by holding down the shift key, select multiple tiles, which did not even need to be in a perfect rectangle, or not even adjacent to each other, to create tile patterns.  Unfortunately doing this led to tiles with whitespace, which were sloppy.  While technically you can do this to a degree, I think it would be a great idea if you could group tiles together like you can in most image editors as if they were a single tile.  A small icon could be placed on one of the corners of the grouped tile to indicate that it is a group made up of multiple tile patterns.  These grouped tiles could be placed in a section within the tile editor, and could maybe create a menu button that opened a popup window showing grouped tiles.

3. In the map editor, there is a "paint" type option that Solarus is in need of.  For instance, currently Solarus only allows you to choose a solid background color for your maps.  In Graal, you could choose a single (16 x 16) tile that motifed into the background by right-clicking on it.  You could also select a single tile and then left double-click on the map within an enclosed space to paint that tile onto the background.

4. While this was technically a separate program, there was a map generator application for quick 'world building'.  The only things the user had to do was add details to the maps, buildings, and entities.  This was done by opening a paint application and, using only a set of predetermined colors, paint a basic map and then importing that into the world generator.  It would then convert the image into a complete world with separators.  There were some graphical errors that were unavoidable at the time but could be fixed by editing each map manu8ally for finishing touches.

There are quite a few videos on youtube showcasing Graal Classic and its level editor.  When I originally started a fan project I was using Clickteam Fusion (Then it was Multimedia Fusion 1.0), and Graal's level editor to make maps, then save them as while png files and then load them into Fusion as active objects.  I believe you could take some ideas from the level editor.
My tilesets page can be found here:
http://absolute-hyrule-tutorials.solarus-games.org/

1. You can click and drag a rectangle to select multiple entities in Solarus. About giving a name to this group of entities, I don't know, what do you want to do with it the? What is the use case?

2. Yes, grouping entities is a feature request people want. We will do it one day :) It is in the bug tracker.

3. I don't think it is needed to make a new "paint" option to repeat a tile. You can already easily do so by placing a tile and then resizing it.

4. A map generator can save a lot of time yes! Vincent did that for his games (Zelda ROTH, Zelda OLB, Zelda 3T, Zelda NSQ). But I don't think this should be provided by Solarus, because it is specific to each tileset. Every game has different needs. Quest makers can develop their own tools if they want: the format of map data files is straighforward and well documented.

Thanks for the ideas!

Hi Christpho.

The suggestion I made regarding the selection of tiles was to simplify tile creation.  Right now, you must open the tile editor every time you wish to alter tiles, then save the tileset, and save the map in which the set is being used, then refresh the tileset from within the map editor.  or you can close the map out entirely, edit the tileset, save it, and then reopen the map.

I am suggesting being able to adjust or create/delete tiles from your set directly from the map editor.  It would basically be removing a required step in map/tile creation.

Part of the reason I suggested this is because I created a tileset based off of the Project Zelda Engine's tileset, which uses alpha shadows instead of solid colors  This makes tile placement that requires certain tiles (with certain colored shadows) easier to place without having to go back and changing tiles to match.  Once I am satisfied with how it looks, I might post it here in the resources section for others to use.  Though right now most of the tiles themselves have only numeric IDs for convenience

When painting tiles, I suggested this idea not to conflict with the creation of tiles by clicking and dragging.  I am suggesting an option to paint a tile pattern into the background by right clicking on a specific tile in the tile map.  It might also be a good idea to allow the option to lock tiles in place in the event where you must stack tiles for prettier mapping.  For instance, say I'd like to create a group of trees under a patch of dirt.  I would first have to create the trees in the desired positions and finally place my dirt tile underneath it.  Do not misunderstand, I have no problem doing it this way, but let's say I make a mistake in the group of trees and need to fix it, or even edit it without having to redo a lot of the work I put into it.  Locking the dirt tile in place (and you can indicate locked tiles by maybe changing the color of the rectangle around the tile, or by a tiny 'lock' icon in one of its corners) so I don't accidentally remove the dirt underneath.
My tilesets page can be found here:
http://absolute-hyrule-tutorials.solarus-games.org/

Ok. Locking entities was already suggested and there is indeed an issue for that.
Note that if Ctrl or Shift is pressed when you start dragging a selection rectangle, it does not select the first entity clicked (your dirt tile).

Modifying a tileset directly from the map editor should be possible. But we end up editing two files are the same time (the map and the tileset) so it is easy to save the wrong one or to undo/redo in the wrong one... I don't know. Another way is to auto-detect from the map that the tileset has changed, avoiding the need to click the "Refresh tileset" button.

Will future builds of Solarus support tileset swapping?  This could be useful for mechanics such as changing seasons as seen in the Oracle of Seasons.  You could also try putting an RBG coefficient on tilesets and entities.  For instance, the default RGB coefficient of any given pixel, by default, is 16,777,215.  This is white in the color index, while 0 is black.  If you applied 0 to the RBG channels of an entity/tileset, it would change the hue of the entire surface of the entity to solid black, and if you applied 255 to the RBG coefficient, it would place a red 'bleed' onto the surface of the entity.  A perfect example of this is in Clickteam Fusion, where all objects can have an RBG coefficient applied to them.

Another suggestion i had was to apply photoshop 'effects' to images.  For example: you create a white shape, and, if you apply a "dodge", "overlay", or "screen" effect to the image, it might create an impressive lighting effect.
My tilesets page can be found here:
http://absolute-hyrule-tutorials.solarus-games.org/

Solarus already support Tileset Swapping

http://www.solarus-games.org/doc/latest/lua_api_map.html#lua_api_map_set_tileset

If you are talking about transition then it might be more technical, the other requests might be doable when shaders will be user-exploitable.

That's wonderful <3 I literally found the tileset swap command after I posted my message xD
My tilesets page can be found here:
http://absolute-hyrule-tutorials.solarus-games.org/

You can easily show an overlay image that has semi-transparency.
See this tutorial (in French, sorry! but just seeing the code should help): https://www.youtube.com/watch?v=zfVYJHJM2jQ

Will animated tiles be animated in the map editor in later versions of Solarus?
My tilesets page can be found here:
http://absolute-hyrule-tutorials.solarus-games.org/

Yes, there is a feature request for this and we will do it eventually.