Map Editor

Supremacy; support/discussion/questions

Moderators: thunderchero, Iceman

User avatar
Danijel
Lieutenant-Commander
Lieutenant-Commander
Posts: 168
Joined: Tue Mar 06, 2018 9:49 am

Re: Map Editor

Post by Danijel »

I think there is lots of confusion here :)
Boar are you talking about Birth of the federation game? Cus this is Supremacy part, separate game, it is "like" sequel to BoTF.

EDIT:
Spocks-cuddly-tribble wrote: Mon Aug 15, 2022 10:42 pm There is also a map editor for BotF. It's part of the Ultimate Editor (Tools -> UE in the AIO Installer): viewforum.php?f=125
User avatar
Spocks-cuddly-tribble
Code Master
Code Master
Posts: 1926
Joined: Sun Apr 27, 2008 2:00 am

Re: Map Editor

Post by Spocks-cuddly-tribble »

The users in this topic don't know how the Ultimate Editor for BotF works, that's why you got the link, so that you can ask the question where the right guys might read it and give you advice. :wink:
Last edited by Spocks-cuddly-tribble on Fri Aug 19, 2022 9:15 pm, edited 1 time in total.
I don't know how many bugs is too many but that point is reached somewhere before however many in BotF is.
User avatar
toffeeblue
Lieutenant-Junior Grade
Lieutenant-Junior Grade
Posts: 54
Joined: Mon Jan 05, 2009 3:00 am

Re: Map Editor

Post by toffeeblue »

Misfire wrote: Sat Mar 05, 2022 2:03 pm I've decided to take on the task of creating a map editor and wanted to ask if anyone has any input on what this should include. My thoughts:

On the new game configuration screen, create an option to load map data from a file. The game would then load map data from a file which would contain:
-Map size
-Position of all empire home systems
-Position of all minor home systems
-Position of all uninhabited systems
-Position of all other objects (wormholes, nebulae etc.)

Does anyone have an opinion on whether each home system location should be specific (i.e. Sol in sector 5,10, Romulus in 20,25) versus having generic starting positions defined for empire home systems, then assigned to each empire at random?

To keep the scope of this project smaller, I think it would be best to leave the individual system properties (planets, population etc.) to be set by the game rather than in the map file. Thoughts on this?

Any other ideas are welcome.
I can see you can alter galaxy map size parameters e.g. "huge" = 150 x 150 squares in 'resources/tables'

How can I get a .gal file that has a "custom size" e.g. 150 x 150 ?

Just as I'm building a true canon map and think it needs more spacing out for systems etc within sectors

Thanks
User avatar
Misfire
Lieutenant-Commander
Lieutenant-Commander
Posts: 151
Joined: Mon Jan 31, 2022 1:01 pm

Re: Map Editor

Post by Misfire »

I'll work on getting that done. I'll probably have to convert maps to have their own numerical size, rather than use the values from the tables (that could cause issues when people have them set differently). Shouldn't be too hard to implement.
User avatar
toffeeblue
Lieutenant-Junior Grade
Lieutenant-Junior Grade
Posts: 54
Joined: Mon Jan 05, 2009 3:00 am

Re: Map Editor

Post by toffeeblue »

Misfire wrote: Sat Aug 20, 2022 8:19 am I'll work on getting that done. I'll probably have to convert maps to have their own numerical size, rather than use the values from the tables (that could cause issues when people have them set differently). Shouldn't be too hard to implement.
Great stuff

Yeah, I saw in the tables that you can alter the galaxy size e.g. huge is currently 72 x 72.

A gigantic 150 x 150 generates some interesting maps ... LOL

I'm playing on a 120 x 120 with a higher minor spawn ratio, and have altered the ship lists slightly to be more canon like.

Game is amazing.
User avatar
toffeeblue
Lieutenant-Junior Grade
Lieutenant-Junior Grade
Posts: 54
Joined: Mon Jan 05, 2009 3:00 am

Re: Map Editor

Post by toffeeblue »

Misfire wrote: Sat Aug 20, 2022 8:19 am I'll work on getting that done. I'll probably have to convert maps to have their own numerical size, rather than use the values from the tables (that could cause issues when people have them set differently). Shouldn't be too hard to implement.
I created a custom map from one of the pre defined maps.

What is this error referring to? Is it because there are too many systems in the game to start ?
21:23:25.451 [48] ERROR General - An error occurred while starting a new game.
Supremacy.Types.SupremacyException: An error occurred while creating a new game context. ---> System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at System.Collections.Generic.List`1.get_Item(Int32 index)
at Supremacy.Universe.GalaxyGenerator.PlaceMinorRaceHomeworlds(CollectionBase`1 positions, IList`1 starNames, HomeSystemsDatabase homeSystemDatabase, List`1 minorRaceCivs, CollectionBase`1 minorHomeLocations, List`1 chosenCivs, Boolean respectQuadrants, IList`1 mapinfo) in C:\Projects\Supremacy\Mainline\SupremacyCore\Universe\GalaxyGenerator.cs:line 665
at Supremacy.Universe.GalaxyGenerator.PlaceHomeworlds(CollectionBase`1 positions, IList`1 starNames, CollectionBase`1& homeLocations, IList`1 mapinfo) in C:\Projects\Supremacy\Mainline\SupremacyCore\Universe\GalaxyGenerator.cs:line 996
at Supremacy.Universe.GalaxyGenerator.GenerateGalaxy(GameContext game) in C:\Projects\Supremacy\Mainline\SupremacyCore\Universe\GalaxyGenerator.cs:line 198
at Supremacy.Game.GameContext.Initialize() in C:\Projects\Supremacy\Mainline\SupremacyCore\Game\GameContext.cs:line 828
at Supremacy.Game.GameContext..ctor(GameOptions options, Boolean isMultiplayerGame) in C:\Projects\Supremacy\Mainline\SupremacyCore\Game\GameContext.cs:line 772
at Supremacy.Game.GameContext.Create(GameOptions options, Boolean isMultiplayerGame) in C:\Projects\Supremacy\Mainline\SupremacyCore\Game\GameContext.cs:line 751
--- End of inner exception stack trace ---
at Supremacy.Game.GameContext.Create(GameOptions options, Boolean isMultiplayerGame) in C:\Projects\Supremacy\Mainline\SupremacyCore\Game\GameContext.cs:line 755
at Supremacy.WCF.SupremacyService.DoStartGame() in C:\Projects\Supremacy\Mainline\SupremacyService\SupremacyService.cs:line 255
User avatar
Misfire
Lieutenant-Commander
Lieutenant-Commander
Posts: 151
Joined: Mon Jan 31, 2022 1:01 pm

Re: Map Editor

Post by Misfire »

Can you post the map so I can step through the loading to see what's happening?
User avatar
Misfire
Lieutenant-Commander
Lieutenant-Commander
Posts: 151
Joined: Mon Jan 31, 2022 1:01 pm

Re: Map Editor

Post by Misfire »

Nevermind, found the problem and fixed. Haven't heard from Iceman in a while but he should be including it in the next patch.
User avatar
Misfire
Lieutenant-Commander
Lieutenant-Commander
Posts: 151
Joined: Mon Jan 31, 2022 1:01 pm

Re: Map Editor

Post by Misfire »

toffeeblue wrote: Fri Aug 19, 2022 9:38 am I can see you can alter galaxy map size parameters e.g. "huge" = 150 x 150 squares in 'resources/tables'

How can I get a .gal file that has a "custom size" e.g. 150 x 150 ?

Just as I'm building a true canon map and think it needs more spacing out for systems etc within sectors

Thanks
I have this functional in the game and editor, just need to add buttons in the editor yet to alter the size. Then I'll do a bit of testing to make sure it didn't affect anything else in the game, it should be coming soon.
User avatar
thunderchero
Site Administrator aka Fleet Admiral
Site  Administrator aka Fleet Admiral
Posts: 7933
Joined: Fri Apr 25, 2008 2:00 am
Location: On a three month training mission, in command of the USS Valiant.

Re: Map Editor

Post by thunderchero »

Misfire wrote: Thu Aug 25, 2022 4:32 pm Haven't heard from Iceman in a while
that is strange for him (last login was Sun Aug 14) hope he is just busy.
Iceman
Admiral
Admiral
Posts: 3311
Joined: Fri Apr 10, 2009 2:00 am

Re: Map Editor

Post by Iceman »

Sorry guys, I should have posted about being away, but I wasn't expecting so much action in august :grin: and I thought I'd be back sooner.
I was busy with RL stuff, and taking some vacation time. Now with the beach stuff taken care of, time to get back to work :cool:
Iceman
Admiral
Admiral
Posts: 3311
Joined: Fri Apr 10, 2009 2:00 am

Re: Map Editor

Post by Iceman »

@Misfire, since you're working on the map editor, one smallish detail. When loading a map, the civ list is built/ordered in the order the civs are found in the map file (by sector coordinates), instead of their CivID. This might cause some issues.
I edited the canon map so that the empires are listed in their CivID order, but when custom maps are made, the maker needs to be aware of this.
Iceman
Admiral
Admiral
Posts: 3311
Joined: Fri Apr 10, 2009 2:00 am

Re: Map Editor

Post by Iceman »

Oh, and one other "bug" that affects custom made maps. When generating random systems, it can happen that Rogue planets are spawned in non-Nebula systems. I had to remove/replace them by hand in the canon map.
Iceman
Admiral
Admiral
Posts: 3311
Joined: Fri Apr 10, 2009 2:00 am

Re: Map Editor

Post by Iceman »

Iceman wrote: Sun Aug 28, 2022 8:14 am Oh, and one other "bug" that affects custom made maps. When generating random systems, it can happen that Rogue planets are spawned in non-Nebula systems. I had to remove/replace them by hand in the canon map.
Fixed.
Also made it possible to add planets to Nebulae, fixed planet bonuses in GGs, semi-fixed Crystalline planets, and some other smallish fixes.
User avatar
kaiidth
Cadet 2nd Year
Cadet 2nd Year
Posts: 8
Joined: Tue Dec 10, 2019 5:09 pm

Re: Map Editor

Post by kaiidth »

Hello,

First of all I want all of you to thank you for your work.
I have also discovered the fantastic mapeditor. But I have a problem. Every time I want to edit a saved map, I get an error.
Could you help me?

Thank you in advance. Keep up the good work.

bij Supremacy.Client.MapEditorDialog..ctor(IList`1 mapInfo, GalaxySize galaxySize, String fileName, String description) in C:\Projects\Supremacy\Mainline\SupremacyClient\MapEditorDialog.xaml.cs:regel 533
bij Supremacy.Client.LoadMapDialog.GenericCommandsDeleteCommandExecuted(Object source, ExecutedRoutedEventArgs e) in C:\Projects\Supremacy\Mainline\SupremacyClient\LoadMapDialog.xaml.cs:regel 110
bij System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
bij System.Windows.Input.CommandManager.ExecuteCommandBinding(Object sender, ExecutedRoutedEventArgs e, CommandBinding commandBinding)
bij System.Windows.Input.CommandManager.FindCommandBinding(CommandBindingCollection commandBindings, Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
bij System.Windows.Input.CommandManager.FindCommandBinding(Object sender, RoutedEventArgs e, ICommand command, Boolean execute)
bij System.Windows.Input.CommandManager.OnExecuted(Object sender, ExecutedRoutedEventArgs e)
bij System.Windows.UIElement.OnExecutedThunk(Object sender, ExecutedRoutedEventArgs e)
bij System.Windows.Input.ExecutedRoutedEventArgs.InvokeEventHandler(Delegate genericHandler, Object target)
bij System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bij System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bij System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bij System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bij System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
bij System.Windows.Input.RoutedCommand.ExecuteImpl(Object parameter, IInputElement target, Boolean userInitiated)
bij System.Windows.Input.RoutedCommand.ExecuteCore(Object parameter, IInputElement target, Boolean userInitiated)
bij MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
bij System.Windows.Controls.Primitives.ButtonBase.OnClick()
bij System.Windows.Controls.Button.OnClick()
bij System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
bij System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
bij System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
bij System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bij System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bij System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bij System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
bij System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
bij System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
bij System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
bij System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
bij System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
bij System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
bij System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
bij System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
bij System.Windows.Input.InputManager.ProcessStagingArea()
bij System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
bij System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
bij System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
bij System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bij System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bij MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bij MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
bij System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bij System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
Post Reply

Return to “Supremacy”