SMB3-Foundry
SMB3-Foundry copied to clipboard
Idea of how to very simply add a map editing system into Foundry.
In the initial window for choosing the levels, you could add a button for each card that depicts the maps of the game, (therefore except the first, the one with the list of levels that does not show any map) for their modification, and a "cancel" button inside the first tab dedicated to the level list, but only when the "modify this map" function is active and only when it would be necessary to associate a level in a further subordinate function dedicated to this purpose. These buttons should always appear the same for each tab talking about the ones visible on the maps before the edit mode is activated, but actually behind in its design of how each button should work, they should be individually dedicated to each chosen map, and should show the essential tools dedicated to editing by making the initial window widen downwards, displaying this new part as if it were a menu effect that from the window scrolls downwards, widening and then freezing and becoming part of the window, as if this new created part had been created right from the start so in the "level choice" window, thus integrating completely, and at the end at the end of the "modify this map" function, with a dedicated command that would be dedicated to it, it should make this new part withdraw by moving this part of the new window upwards and then disappears completely mind, it would basically do the opposite effect of the initial opening effect to return to its original state.
At the bottom of this new part of the window, there should be the essential functions for editing the map selected inside the tab, these should be in the upper part of this new integrated part of the window, and should be the functions dedicated to carrying out the work of modification.
I think it would be necessary to have a status bar in addition to control what is done with the mouse, or to know the settings in which we would be positioned In a nutshell, it should be a status bar dialogues with the operator by writing in real time what is needed to understand the status of the software, such as knowing which set of tubes we would currently be on or type to know which map objects in the "change parts" function of the visible map "we would be hooked with the selection in that specific function, (this is because there are identical designs but with different functions) such as rocks that can become, with the use of the hammer inside the game, horizontal or vertical roads, or if are rocks only to add drawings on the map and therefore cannot change even if the hammer is selected in the game, as happens in Map Editor, in that software it is revealed what kind of rock it would be if it were one instead of another, for example there if it is a rock only for the drawing on the map writes that it is of type "C" where by logic it is assumed that the type "A" and "B" are used to create roads. I would personally make this bar of an adequate size for a good visualization and with very understandable and marked characters. I would make it spit before the function keys that help to modify the map in the new part of the window, as if it were a menu bar at the top of this part with nothing, something that looks more like a separator, if not, it could always stay there where it is usually placed, at the bottom as the last part of the window. There is a need to do tests to verify how it is better also from the point of view of functionality with the eyes of the operator.
The primary functions should be buttons positioned at the top of this new part of the window and possibly, they should be located as centered as possible for an aesthetic fact.
Once pressed, these buttons should remain pressed until another different one of these essential "functions" is pressed and, from time to time, the previous ones should return to their original state until the "edit map" function is closed.
At the bottom of these most important essential buttons for editing, there should be different aids depending on the function chosen above and regarding the classic functions for editing maps, these aids should change from time to time as the type of function of " edit map "selected at the top from the most important main commands. These commands, since the window is very large and there is enough space, could be, imagining this new editing window split in half vertically (with a dividing center line) to be either right or left, adding on the opposite side, so that the colors of the map are always present, which could be big settings so that they appear in columns of three squares vertically and that they end up with a lack of a color because odd, this part where it should be square representing a color, which the eye would also bother, in reality it would be the place for a button, also always present, and it would be the one that would make this palette vary, from the one for the map to the sprite palette, so as to have everything you need for editing of the map. This button would also be this for an aesthetic fact to choose where to put it if on the right or left, or if in both options up or down, always considering the possibility of moving this palette to the right or left of the new part of the window.
(essentially everything should work similar to Map Editor anyway)
Function for Mario's starting position on the map;
This function should make Mario appear at the point where he is currently saved according to the values recorded in the .nes file, causing very fine square frames to appear and should appear as drawn in pencil type H, and would be frames placed at the top and bottom. as if it were a ladder, one above the other when viewed from the lower part of the map, because connected would give this impression, these lines should be colored in gray and this series of frames in their interiors, should be the possible points where Mario could position himself, and the variation in the map should be done by using the mouse with a click in the empty parts of this scale making Mario move inside these frames, or starting from where Mario would currently be by moving with the keyboard arrows.
Function for positioning and heading of the levels in the map;
To change the position of the layers on the map it should be similar to Map Editor having movable frames on the map and a similar way also in the way of managing these with the mouse, then using the right button to select the frames representing the layers and the left one to drag them on the map to choose the desired position, then with a double click on the frame with the left button it would decide the level, a choice that could also be searched by taking "enter" from the keyboard on the selected frame. For this layer header function, underneath the important and essential buttons at the top for editing the map, they should appear three simple new pulses; Their function should be to: "back", "forward" and "edit". The first two back and forth, for the selection of frames and an edit button, to change the level relative to that frame visible on the map. The edit function should direct the operator to the first tab of the window and stop there where the game levels list is waiting for further input for the choice of the level, once the level in the list has been selected, the function should automatically redirect the operator to the map tab you were editing previously to lock onto that tab again. In the event of a command error, if the software waits for the input to select the level, to cancel the function in completion transaction, the "cancel" button will come to our aid to bring the operator back to the map as before to block it again there and returning to the previous routine or if you like, returning the operator to the previous job in the map. The dedicated key on the keyboard would be "ESC"
The associated keys of the keyboard related to the movement of the frames on the map inside this function would be # 1
The keys related to moving the frame selections on would be # 2
The key that helps temporarily increase the amount of selection for the purpose of moving frames on the map is # 3
Please Note: These numbers # 1, # 2 and # 3 are written inside the information for the function of the tubes.
Pipe setting function:
This should also work similar to the one there is in Map Editor. This could have, under these "essential function buttons" for editing the map, a total of four subordinate buttons that would serve:
Two to do "up" and "down" between the list of possible pipe sets in the game;
Two buttons "left pipe" and "right pipe" to immediately select the left inlet pipe, or the currently selected right outlet pipe.
The keyboard keys associated with the necessary functionality should be: "page up" or "page down" for the choice of tube sets,
and
"left arrow", "right arrow", "up arrow" or "down arrow" to move the selected frames on the map. (# 1)
CTRL + "left arrow" or "right arrow" to change frame selection in the map (# 2)
To give the command "associate to pipe" the keys should be:
ALT + "left arrow" to associate the left pipe dedicated to entry to a level in the level list of the first card;
and
ALT + "right arrow" to associate the right pipe dedicated to the output to a level always in the level list of the first card.
For the movement with the mouse of the tube layers for the choice of the frame representing one of the two tubes, it should be similar to before, with the right button to select a frame on the map, and the left button to hook it and drag the frame to another point on the map or for a quick move to a point with a quick click.
To expand the selection and move more objects that is more frames, I think the left SHIFT button would be fine. (# 3)
(the SHIFT command could be associated with the use of the mouse with the pointer on the map and for use only with the keyboard only)
To associate the tube layer, as before, you would switch to the tab with the game's list of levels to freeze there waiting for the input, and once set, the software would take the operator to the map tab to eventually freeze. Once again. Again as before, to cancel the command, you could press the cancel button located in the first tab with the list, or via keyboard with the ESC key.
Being a pipe level, what interests you by necessity would be a "pipe" layer or a "sky tower" layer in this function dedicated to pipes, so I think it would be right to make the layers in the list of the first tab not dedicated to pipes or sky towers become gray in order not to allow them to be selected, and then block them in advance. (then if I'm wrong do not take this last speech into account)
In the case of a pipe or sky tower level header, which would be done by double clicking the mouse in the frames on the map or using the "enter" button on the keyboard, an output should appear on a dialog box, like in Map Editor, with the question: << "Is it a land of the sky? [yes] or [no] ">>, and once you have selected the level in the first tab, the second question should appear, that asks if you should scroll the screen or not, for the scroll effect or to avoid this in case of jumps between screens that should be separated, once finished it should return the operator to the map tab that was being edited.
Function for positioning and modifying the type of dynamic (moving) sprites on the maps in the game.
Below the essential function buttons that are at the top center of this new part of the window dedicated to editing, there should be three buttons for this function:
back, forward, and edit.
Back and forth would have the task of moving the selection of the squares dedicated to the sprites visible on the map, the edit button should only head what the square or sprite frame should represent in the map with an extra window for choosing, as happens in Map Editor with the same choices.
One could think of an additional button, in this lower part under the main commands essential for editing the map, which would lead to a window "edit sprites" to be able to modify their design, therefore the tiles that compose them. There could therefore be a command that leads to the sprite edit window that I had suggested in an idea earlier, and that leads to the window with the sprite already set in this window and ready for editing. Obviously the window contains all the sprites, but since at that moment I am looking for the one in particular it is obvious that it would be more convenient if it worked like this, without having to look for it in the list.
(for specific info on this window look for the publication to understand, it is a very useful tool, this too deserves a lot and should be added to Foundry)
Edit mode of drawing the interior of the map:
This should be used to modify the map view with the same tools you had in Map Editor, basically I mean the objects you could add, like castles, pipes, squares representing levels and all the rest.
One might think however, unlike in comparison with Map Editor in this part used to copy objects to be used "as brushes" on the map. In the window containing them, you should add a frame in these "brushes" that points out where the software is set, also to avoid making mistakes when editing. The reason is that it would be nice to be able to have an edit tile button somewhere there, as I had written earlier for dynamic sprite enemies on the map, to ultimately lead to doing the same thing, an edit each selected item on the window I was talking about first and always in the position you need, inside that window so as not to search the map drawing sprite object, whether it is a static or dynamic one in the map (but not one of the enemy group)
Mode search colors / save colors
This function should allow, thanks to two subordinate buttons, under the essential function keys, to search for other .nes files or another specific file with an extension made specifically for Foundry, all this to, with one of the two subordinate buttons, obtain the colors of the map and sprites that exist in the same world that is being edited as the .nes file searched.
The other button should be used to save a file, as I said with a new extension made for Foundry and which should be used to leave the color setting of that precise map saved in the hard disk including the colors for the enemy sprites.
Function displays
This function would be used to simply display the map without other active functions, displaying together with the position of the enemy sprites with their still image, the result of the work done, function also has Map Editor. The subordinate keys should be bitmap image expert, to save the Job design.
- "Close map editing tools" function
Function that activates the locking mechanism of the mode by sliding this part of the new integrated window upwards until it disappears completely to return to the usual Foundry software as always.
If needed, once the pointer passes over each function button automatically the name info of the essential functions of the map modification could appear.
I agree, the editor would be a lot better with a world map editor. I disagree with the idea to split the world map editor into a list of functions like Beneficii's map editor. It is confusing to create all these layers and not be able to see each of them at the same time. Instead, I think we should make everything visible in one screen like the level editor. There may be certain buttons or items you could press, but everything should be accessible from one window. To achieve only one window, we would need to select / press a button that will put us in a particular mode of editing. And to streamline the process, you could double click on an item in a different mode that is visible, to automatically set yourself inside that mode. In total this provides the user with three modes to edit the world map: by only using the mouse, by only using the keyboard, or using a combination of both and menus.
Also, I think the world map editor should be accessed similar to a level. You use the level selector and then you can select it that way. If we combine them, we would introduce bugs into the level select panel and it would be unintuitive to the user. I don't think a world editor has anything to do with a level selector and for that reason it should be its own isolated utility.
With regard to keyboard shortcuts, I believe they should follow in line with the remainder of the editor. If you can move a block by holding alt and right, then you should also be to do so in the map editor. And if we cannot do that, we should not use any to start off with and address it in a different issue as it becomes a problem. I believe the same should also be applied to function six, the changing of the world palette. We should use whatever the default is for the remainder of the editor and use that. Everything should use the same palette editor to maintain consistency.
Another area of concern I see is the pipe implementation you are discussing. Pipes are not part of the world map code in the typical sense. The stuff that codes for a pipe is actually held inside a level object, inside a level. This makes this implementation particularly hard for a few reasons: If we set a pipe inside a level and the level has no space, we will override part of the level object data. A player could mess with this object inside the level resulting in unintended bugs. Pipes are not associated with a world, only position, so the result of changing one pipe in world one, can easily change one in another world by accident. For this reason, I believe the pipe editor is deserving of a separate issue in itself and should not be part of the world editor, at least initially. Not saying it is a bad idea, but I do not see a good way of implementing it at the moment.
Given this idea of yours, Joe Smo could be created by proceeding as I will say later, and I think you can use everything including the mode of setting the pipes in the map.
As you said we could see the map as a level, by selecting this mode from the menu, or from a button on the top dedicated to this mode, this the first time you select it may ask which internal mode you want to start from and which map you want to choose to modify. After entering, for example, the first sub mode, the one that changes the terrestrial areas of the map, the upper part where there are these buttons dedicated to the level, should disappear to leave space for the tools for editing the map, where there could be a drop-down menu that chooses the map, and instead of buttons, put switches on the right of this menu which, once pressed, return the previous ones to their normal, unselected state.
In the case of a selected sub mode "change map tiles", the tiles could be seen in the left window which was previously dedicated to objects and enemies for the "change levels" mode. On the right other tools could always be present for example color change. Always on the right there could be a tool to quickly modify the card, displaying it with a size that takes the entire width of the right tool window in width, below you could see the four colors to be modified for the card and a function that makes it available only if the card moves like a .gif image, with more cards to be modified, thus being able to change the different cards by selecting with the mouse card 1, 2, 3 and 4, with a movable selection
| 1 (*) | 2 () | 3 () | 4 () |
In another sub mode, the "sprite mode", sprites could always be selected in the left window by referring to the number of sprites available in a drop-down menu located in the right tool window. Also on the right could be another drop-down menu to select the item you should return after killing an enemy. Always on the right in this sub mode, there could always be a box for changing the image of the four different tiles making up the sprite previously selected in the left window, to change the sprites in the different frames animating them, which is the "rowboat" , or "help" or whatever.
The tube mode could have the set on the left, with the icons appearing as many tubes with # 1 or # 2 written inside until the number of tubes sets available is completed. You could just think of putting two buttons for selecting "left pipe" for entry, and "right pipe" for exit in the right tool window along with a box showing a list of tube levels available in the various worlds; a "peak" setting [✓], which refers to the set (# 1, # 2 etc.) that can be selected in the left window and which decides whether the map should have a sliding effect on the output of the tube level or not, and another "tip" [✓] to choose if it is a sky tower level.
In the end at the top as another sub mode, a "see result" mode could be very well that opens a window that shows the result in a window, like the initial one for the choice of levels, and that adds, in addition to the map tiles, even the sprites to see the final result in its entirety of the work done, returning, behind this window, the level editing mode.
In this new window, however, there could be a menu at the top, to put other different subordinate functions, a function "export bitmap image" to export the result as a memory image; A function "import colors from another SMB3.nes file", a function that opens a window for the file search, to allow you to open another .rom SMB3 to obtain the same colors as the map you are viewing; A "save color matching" mode to allow you to save the colors of that precise map is being displayed together with the colors of the internal sprites, opening a saving window to allow you to save a file with a new extension dedicated to this task for Foundry; A function, "return to level modification" which makes you exit and return to level modification and which opens the initial window for choosing levels; Another function "go back to edit map" which makes you go back to continue editing the map; And a "change map to view" function (inside this window) to look at the other maps in their entirety and from there, or go back to map editing or level editing if you thought everything was fine.
While map editing is not integrated into Foundry, a separate tool called Scribe was released and should offer most if not all of the features mentioned here.