Status
Not open for further replies.
gametec submitted a new resource:

Update On The Ultima Online™ Map Creator - Map, Maker, Generator

So as some of you know I've been working on a UOLandscaper clone with a few extra bells and whistles. All of the original UOLandscaper applications work as intended, but I won't release this until I am finished with an updated transition editor. In the mean time I have a little present for all of you who are at a loss in the creativity department when trying to design land shapes for maps. This is specifically for those who don't have Adobe Photoshop and my accompanying Adobe Photoshop Action...

Read more about this resource...
 
This looks nice. I will be trying it out.

Question. Does it smooth out the land so that you don't end up with those awkward broken edges?
 
Hey Lokai, long time no see! :)

It depends on the settings but yes; everything I'm releasing is open source anyway so when i release the final suite the forums will also get the source code (visual studio project). I'm hoping people will use the opportunity to improve upon and re-release those improvements and source so the map creator then becomes a community project. All I am doing is trying to lay down a foundation for that to happen.

The program is just meant to pull shapes off the output. Colors still need to be readjusted and some of the edges will need to be touched up, but with the way both methods create maps and the right settings the edges are compilable. Remember 1 pixel = 1 tile in game.

I am still learning about Perlin Noise and its implementation. There are a lot of configurations for it.
 
Last edited:
Hey Loki, long time no see! :)

Hi. Please don't leave out the "a" in my name...hehe, it makes me feel like a demented Norse god.

The program is just meant to pull shapes off the output. Colors still need to be readjusted and some of the edges will need to be touched up, but with the way both methods create maps and the right settings the edges are compilable. Remember 1 pixel = 1 tile in game.

I am still learning about Perlin Noise and its implementation. There are a lot of configurations for it.

Yeah, one of the problems I always had with hand-drawing maps is that I would end up with an isolated pixel somewhere or too sharp of an angle and it would end up looking screwy in game.
 
Well the background is this....

A long time ago I wanted to create stencils for land shapes that people could use in their paint programs. Well being an avid Adobe Photoshop user I decided that I would make an Adobe Photoshop Action Script which basically did the same thing as this program does. Well when I took on the project of recreating UOLandscaper I wanted to, not only clone the original programs, but also create new ones that would facilitate map building. That is where the idea for this program came from. The whole reason for the entire project is so we, the community, can have working source code for a working and up-to-date map making software suite. Everything is closed source these days and I think this suite will be fresh air for everyone who enjoys making maps.

Sorry about the mis-spelling... corrected! lol

I'm actually just learning how to program in private classes 5 days a week (5-6 hours a day) and a couple of hours on the weekends; both C# and C++. I still need a lot of help with certain things like for instance... I need to study up and learn how transitions are created in UOLandscaper so I can make a new transition editor that works for both 2way and 3way transitions. The compiler for this suite and UOLandscaper both have the ability to compile 3way and 2 way transitions; I just need to figure out how to get those to output with a WYSIWYG windows form application editor. :)

The project is slow going because my instructor has me making unit tests for everything we're doing. Some of those tests can take a half hour to set up, but they make sure everything works :)
 
Gimp can also do things using Perlin Noise and "Stochastic Koch". Scripts can be created in it also.
glaciers? how does this make glaciers?

You mentioned an Ultima Online Map Creator suite
Have you taken any time to contact @StaticZ ? I believe he is working on "Essence UDK" which has many features one of which is mapping. Though I've heard little news on it
http://dev.uoquint.ru/projects/essence-udk

Are there any requirements to use this program? You didn't list any.

When I run the program, click Generate Random Landscape and wait the program throws an Unhandled exception has occurred in your applciation.
I'll post the details in a spoiler. (windows 7)
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Generator.Common.ConvertDoubleArrayToFloat(Double[,] arr)
at Generator.PerlinNoise.Generator.INoiseGenerator.Generate()
at CreateLandscape.CreateLandscape.Generate()
at CreateLandscape.CreateLandscape.buttonGenerate_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
CreateLandscape
Assembly Version: 0.0.1.0
Win32 Version: 0.0.1.0
CodeBase: file:///C:/Users/<username>/Desktop/New%20folder%20(3)/CreateLandscape.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
Generator
Assembly Version: 0.0.1.0
Win32 Version: 0.0.1.0
CodeBase: file:///C:/Users/<username>/Desktop/New%20folder%20(3)/Generator.DLL
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
 
You get the error because the program can only handle squares... the default x,y settings are wrong in the program so you'll need to change them. This was a pre-release and not the final version. ;) Yes I talked to StaticZ but he has little knowledge about transitions or maps so he and I don't have much to talk about. :/ The program makes glaciers, that's all one needs to know at this point until I get around to releasing the source code; which won't happen until I decide the program suite is ready to release to my satisfaction.

This program has no requirements though I recommend running it as an administrator and under Windows Vista Service Pack 2 compatibility. It was made under Windows 8.1

Keep in mind that I work at my own pace; the program suite will get done when I finish the software I want to include in it. That said, nothing in life is perfect - especially software; this is an as-is suite. It's open source so when I release everything I will also release the source as well; that is me turning the project over to everyone in the community under the presumption that any software additions added to the project by the community will be made available as free software to the public.

Once it's released I will still be adding to it myself, but I will not be pro-actively troubleshooting issues. If people have issues, they also have the source and should be able to both ask for help on the forums to fix the issues or already know what they are doing and solve the issues themselves. I will not be providing sole support for it.

This is my way of both saying thanks to the community and offer up something we don't see everyday - A community map making project.
 
Last edited:
Just one more note: this program will auto-generate terrain, but you still need to take that image, copy the shapes you like, touch them up and apply them to your map. It's not an all inclusive deal. It was designed to give ideas for potential map makers to use to take the guess work out of making terrain; nothing more. Eventually I may add the ability to use any x, y size and generate a more uo style terrain. However I'm new to Perlin Noise and Stochastic Koch so it might take a while.

I've asked for help several times openly from the public in the community and no one really has the knowledge to step up to the plate and/or nobody that does have that knowledge is motivated enough to get back with me. I'm not a programming genius, but I am learning quite a lot more than the average person taking a college curriculum in programming. It takes time. :)
 
You should consider adding in support for Dragon and Landscaper color schemes, format & bitrate. This way people won't have to take the image into gimp, photoshop, paint.net, etc and change the colors.

What do you plan on doing for an altitude? Any plans to random generate an altitude map for these randomly generated map images?

Have you talked with Praxiiz's about this thread? http://www.servuo.com/threads/procedural-content-generation-for-uo-image-heavy.388/ Or does he know too little knowledge about maps?
I was very excited for that project he was working on.
 
Lol... always suggestions. Tell you what Hank, when I'm done with my multitude of projects and release the source for this, YOU are free to add what ever compatibility you want for which ever program you want. This program is designed for what it does... image ideas. As much as you and a few others would like your own spin on things; I just don't have the time to conveniently customize each product to suit everyone's needs.

Therefore :) you will get what I release, you will get the source, and you are free to modify what you want - how you want. Personally if you care about making maps, like I do, taking 5 minutes to import images and copying and pasting shapes is worth while; especially if you can get them to fit into one another ;) This program is not a map compiler. It just creates images you can borrow shapes and ideas from. You still need to put those images on your Terrain.bmp and add altitude as you normally would with the appropriate program in the suite.

The programs are named with tell-tale names for the most part...

These Programs Are Done:

CreateDataIndex.exe: Initializes the program suite
CreateColorTable.exe: Creates and customizes the color table and swatch files for Photoshop
CreateBitmaps.exe: Outputs the template map files: Terrain.bmp and Altitude.bmp
CreateAltitudeBitmap.exe: Outputs a rendition Altitude.bmp based off your Terrain.bmp
CreateLandscape.exe: Gives land shape ideas to map makers
CreateStatics.exe: Allows you to add statics to terrain types and outputs to .xml
CreateUOP.exe: Packs maps to .uop format
CreateMUL.exe: Extracts .uop maps to .mul format
CreateFacet.exe: Compiles your new map when you're done drawing it

These Programs Are Next:

CreateTransitions.exe: Creates 2way and 3way transitions and Outputs them to .xml
CreateSpawns.exe: An external spawner that uses a script to spawn in-game real-time
CreateRegions.exe: Create regions and this program handles:
  • region specific lootpack spawns
  • region specific weather
  • region specific sicknesses based on the elements
  • region specific rulesets
  • and what ever else I can think of as I go along
Simple enough? I won't go into anymore detail about these programs until I release them.

This program is fully compatible with the Ultima Online Map Creator which uses UOLandscaper color tables. There will be mild editing that needs to be done with the colors to get the compiler to read them, but only because I haven't yet figured out how to customize the rbg values in the Generator.dll file.

Just FYI because you missed the memo the Ultima Online Map Creator suite is a clone of UOLandscaper:

UOLandscaper has been recoded (by me) from it's original code in Visual Basic to C#; I redid the forms, made the programs a lot more stable, added a few new programs to the suite, changed the name, updated the Ultima.dll, and redistributed it as open source since the original author dknight (1) no longer is working on UOL and (2) never released an official source. He gave me permission to clone it, but in order to release it I had to change the name.

The actual code for it was stolen from Punt originally anyway, so consider it a "what goes around comes around" type thing and since Punt believed everything should be open source, I'm making this a community project and posting the Visual Studio Professional project files; and before you ask, the actual project may or may not work with the free versions of Visual Studio; I don't know, except to say that some things made with the Professional version do not work with the free versions.

As for Dragon: a little known fact - UOLandscaper runs off Imod9 - that's how it compiles its transitions. However I will not be using Dragons color tables at all for this project since the actual suite allows users to make their own color tables and output to Adobe Photoshop .ACT and .ACO files from which you can screen shot the palette and use the image as a stand alone color table in any paint program.
 
Last edited:
[COMMENT]
  1. Have you talked with Praxiiz's about this thread? [url][url][url][url][url][url]http:...al-content-generation-for-uo-image-heavy.388/[/url][/url][/url][/url][/url][/url] Or does he know too little knowledge about maps?
[/COMMENT]

I forgot to answer this one aspect to your post Hank; before I begin, you should know that if you're thinking it, I've most likely already thought of it. I'm very detail oriented. To answer your question: Yes and no. Praxiiz and I have known one another for a long time now and are good friends; we talk regularly. He and I had a discussion about this program I was making. His program and mine are similar but they do different things and the .mul files outputted by his program will crash certain clients when used.

His program generates maps using Perlin Noise. It generates flat maps only with no statics and the land forms come out looking like strips. He also added unnecessary topographical features that have to do with height mapping which are useless in Ultima Online because we're dealing with a 2d isometric world; not a true 3d environment. Using some of those added features will also cause your .mul files outputted by his program to crash the client. I've gotten his program to work maybe twice with client version 7.0.21.1

Unlike his program, which is still very good and I still modify it from time to time, CreateLandscape.exe was created to output images with similar color schemes to UOLandscaper. I didn't want it to export to .mul - I wanted it to export to an image so I can create a custom altitude on the shapes I borrow from the images it generates. This program also simplifies my life a bit. I used to create brushes for photoshop map making over on the RunUO forums under the name Sythen. One of those brush sets has pre-made land shapes that people can use on their maps. This program does that automatically without me having to convert things into a brush saving me about 2-3 minutes a brush shape. ;)

I hope that clarifies. At some point I will modify it; you know when my programming skills improve. Until then unless people want to work with me (program and assist me in troubleshooting problems) to improve these programs - everyone is going to have to be patient. My instructor has me testing each program pretty much before they get done. It's annoying and time consuming, but it ensures they work, they don't fail, and they do what they're supposed to do. I am not trying to be rude but there are not enough hours in the day to keep up with the custom requests people want; likewise I'm doing this alone, under the guidance of my instructor outside my course hours, as a relative newbie in the programming industry.

Do I have awesome connections on a professional level - yes... Are they always available to help me learn and assist me in improving my projects - no. Nor do I expect them to be. I have been at this programming thing since October of 2014 learning C++ and C#. My classes are as intensive as the course curriculum since its all private (1on1) and sometimes we work 10 hours a night. I appreciate the help I get, but help is far and few between simply because people have their own projects and my asking them to help is like you, Hank, asking me to add feature after feature that I just don't have time time to do. I can't say I'm not learning fast though.

One last thing: these programs and this suite would not have been done if Praxiiz hadn't motivated me to do them.

Have a wonderful night :)
 
Last edited:
I would just like to chime in here. I create a fair share of custom content, and the occasional "borrow - change - improve - update", whether it be on systems, or external apps, etc. I have no problem with comments like "Hey, you think you would consider making this compatible with..." or "Are you planning on updating this for..." and so forth. The only exception I take is when people borrow what I wrote, break it, then ask me to fix it, like something must have been wrong with it in the first place. The other problem is when I have clearly stated the parameters of how it is to be used, but someone uses it in a different way, and things crash, but I get blamed. o_O

@gametec I understand if you are busy...most of us are...but don't think of requests as a burden, but rather an opportunity. Someone may ask for an improvement you had not thought of before, and it may spark your interest or allow you to take your scripts in a new direction that makes them even more useful. If you are not interested, that's fine, you can say so.

@Hank Try to make sure your requests come from a desire to be helpful rather than to be helped. It makes them more palatable. For example, rather than "When is this going to be done?" someone might say "I am SOOOO looking forward to the final release. This looks awesome! By the way, not sure how I can help, but if you need any, let me know!"

I don't usually get involved in this way, but I would like this forum and the interactions we have to be positive and supportive. So far I think this conversation has been a good one, but I just want everyone to become aware of how their words are perceived, and take a moment to think about my suggestions. :cool:
 
This is cool Xen, but your program will take a while to go through ;)
I'm actually done the clone, redid the transition files and am working on reviewing the code and reworking the data directory locations. Otherwise I'm aiming to release this in a 3-5 days depending on time.

as12.postimg.org_c3icip23h_new_UOMC.jpg
 
Xen, I am interested. I am a nut for grabbing ideas where I can find them. Currently, I picked up the challenge of updating the source code for the XmlSpawner's SpawnEditor program, which has not been updated since like Tokuno was introduced. It freezes on loading the map, and of course the XmlSpawner system was way different back then too, so it can't load and use current XML files very well. I have not made very good progress unfortunately... :(
 
Hey Xen,
Your help is appreciated. I was actually looking through your source and it's all a very nice resource. I'm currently trying to find the transition code for your transition editors; I still have to do the three-way transition editor. I'm also looking for the mul to bitmap code, if it's in there, so i can get that applet finished. Anyway it's been a long 6 months on this project; I did mine in Windows Forms :)
 
gametec updated Update On The Ultima Online™ Map Creator with a new update entry:

Application Plugins Added...

New Features Include:
  • Added a (.mul) To Bitmap Converter By: noyznarcos
  • Populated user submission section accessible via the Main Menu
  • Added a Random Cave Generator
Still Need Help On The Following:
  • The SaveDialog method in the Random Cave Generator does not work at the moment. I've tried quite a few things but for some reason I can't get the image in the Picture Box to save to a...

Read the rest of this update entry...
 
Hey GameTec, i have been messing with your program (as i have become a little frustrated with UOL) i like all you have to offer in this. I have a question regarding the images it will read though. Im currently using photoshop and my maps are Index color 8 bit images. Is this the proper format for this map creator? or do i need to change it to something else to get it to stop giving me errors when i go to compile it?
[doublepost=1470706158][/doublepost]i got the maps to generate but the tiledata must be wrong because the "blank" or black tiles are stars and pretty much every tile isnt what it is supposed to be.
 
well i get an array error on generating random land.
i look for a tool to generate smooth edged maps from my photoshop bmp.
so this tool is useless :'(
 
well i get an array error on generating random land.
i look for a tool to generate smooth edged maps from my photoshop bmp.
so this tool is useless :'(

Lol... Random Land Generator is what it's labeled - a land generator (or better phrased "a shape generator"). It was meant to be used to make shapes that you'd use for land in Photoshop. This allows the user to save their desired pattern generated by the program, load it up into a paint program, and then copy and paste the shapes off the saved file you just opened into the Terrain.bmp.

This program was loosely based off Praxiiz's Land Generator which I don't think is available anymore and I'm not sure if I have it still. This program Praxiiz made actually generated random MapX.mul files but it was just a test run to see if this process could be done. The LandGenerator.exe he designed only created maps with land and sea with no room for depth, overlaying statics. or dual layering. Also the land forms came out skinny and the program often crashed when you'd set it to create maps for 7168x4096 (Trammel/Felucca size).

My program wasn't meant to do this. Like the Cave/Dungeon Generator, it is just meant to get ideas for those who lack creativity in how to draw realistic land shapes and how land naturally fits together; which was accomplished using Perlin Noise.

As for the rest of the suite: Map Creator was based off UOLandscaper with dknight's (the original developer of UOL) blessings. He and Praxiiz actually walked me through some of the development. Overall the suit works fine and identical to UOL in it's function. However mine does not have any known memory leaks like UOL and it's been threaded properly (with maybe 1 or 2 issues here or there, but not as many as UOL). The major changes are the inclusion of the plugin applets, UOL was written in VB and MapCreator was written in C#, and the ability to change and recompile the source yourself. YES! The suite you obtained has the source code in the Data Folder; accessible from the credits box. I made Map Creator open source for a reason: it allows flexibility to the community by allowing users to code for it and patch it. We no longer have to wait until a single developer decides to fix an issue because we have the code to do it ourselves!

It was supposed to be a community project, but not many showed an interest. There weren't and still aren't any map creators newer than Map Creator and thus this program is a perfect foundation to build on; not only would community contributions make it better, but it would serve to benefit everyone who wants to make a unique custom world for their server. I did not want to have to create a suite like this, in fact it wasted nearly a year of my life trying to figure out how and learning the steps to accomplish it. I was actually hoping someone more qualified would've stepped to the plate seeing as how a map editing program (that works) is an essential tool for the community because without it, most other map programs will either idle and not load, crash all the time, or freeze.

With that said, it was sad that not much interest aroused and the only comments I got on it from well, H_ _k, of course were negative because this individual didn't know the reasons behind the project, assumed I just stole other people's work, and had no clue that I have the original developer of UOLandscaper on Skype and we have talked about this project in depth. This, he, is one of the reasons I have slowed down releasing things on the forums. I do offer everything I create free and will give people scripts and help if they ask and I have the time, but releasing them on an open forum seems to bring out the judgmental sides of people :(

Just A Note: This program was only meant to work with clients up to 7.0.23.1... it has minor .uop compatibility (taken from UOFiddler). However that too can be changed to work with newer clients; the one benefit to this program is that it can decompile and .mul map file and supports Ultima Live which supports up to 250 worlds (which includes the default maps).
 
Last edited:
dear gametech,

my post shouldn't "bring out my judgemental side", so sorry if u missunderstand or i spoke correctly.
maybe my post has better 2 parts.

1st .... i got several errors in your tool. every error has to to with arrays or empty arrays (i know arrays ... i am a programmer too).
so i get them on generating random land or try to selecting ... grass as tile.

2nd i look for a tool to create maps and freeze my builds. the most of the tools are crashing on my OS Win10. Maybe it's the damn Win10.
Anyone knows some good of them ?

...

gametech, i'll never speak bad about software which is generated and give for free to the people, so i am sorry.

ShaoKhan
 
It's all good...
I wasn't specifically talking about you. I was just making reference as to why I slowed down and why you were having the issues you had. Windows 10 screwed with this program as well. I'm not a programmer by trade. In fact the only reason I know what I do about C# is because I took a course at the local community college and I had some tutoring via Skype with a developer friend of mine; prior I only messed with the C# RunUO used. What I learned was that RunUO scripting alone will not give you a solid foundation into programming - courses are required.

With that said, I can send you the latest version I have of this program if you want to fiddle with it and see if you can weed out the errors. I wouldn't mind helping as well. It will be one less thing on my plate. lol

I sent you my skype info.
 
Any help is good help... there is nothing noobish about wanting to learn; we've all had to start somewhere. I can't say that all of my work is exactly expert stuff. I have had to wing a lot of my code by looking at other scripts and figuring things out.
 
@gametec Just downloaded your mapmaker suite. Toying around with it now. I like the updates you've done from UOL so far. Keep up the great work man. Also using your brushes to see how things turn out.

(Its been a couple years since I did any UO map making)
 
Status
Not open for further replies.
Back