A few weeks ago, I had a design idea. It was an idea that was so good that I really wanted to try to script a really base version of it to test it out. Originally, I had begun work on doing this in Neverwinter Nights. After all, the game was made from the ground up for people to go in and script their own behaviors. But it seemed a little constrictive on what I wanted to do which largely was the fault of small area zones. In order to do what I wanted to do, I needed a larger area.
So the thought occurred to me, why not use Ultima Online? The game has been emulated successfully almost since its inception more than ten years ago, and given its age it then likely has many scripts to go with it and are largely built in, and is refined.
I was right and wrong to some extent. I was right in that there is a wealth of various scripts and support given its past. However, since the game is so dated, interest in even the emulation has seemed to wane in recent years. This means that while there had been many good scripts in the past, many of them have been broken in recent updates. On the bright side, the base code seems to be working fine and keeps getting updated with newer UO patches. So in the end, it still works.
Why does it matter? Well, in my want to script, I’ve gone a bit overboard. While researching how to do what I wanted to do, one idea lead to another which lead to another. One complaint about the game world led to another and led to another. Sooner than I realized it I was reshaping the world and redoing more than I ever had originally intended.
I suppose it all comes down to, if I’m going to do this, I need to do this right. So here I am, designing a world from scratch. And one that I do not want to use elsewhere. I have not thought of a new story for this one. There is a possibility of making it related to an old one. But it may not matter overall, story will have to come later.
To start with, I had gotten an older version of the server running with an older version of the client. This has actually been great fun to me figuring out how to get this thing to work, and more so, how to get it to work the way I wanted.
For any who may be interested, I am using RunUO. If you want to get the latest version and keep it updated, the best route is to go with the SVN. I have found documentation on how to do get it going difficult to find, but for those interested, you will need to download Tortoise SVN. Once you have that, you will want to create a new folder for the server, and then right click on it to set up an SVN Checkout with the address of http://svn.runuo.com/repos/runuo/devel/. Once the server is downloaded, you will want to create a file with notepad naemd compile.bat. The code within the file should be:
SET PATH=C:WINDOWSMicrosoft.NETFrameworkv2.0.50727
csc.exe /out:.RunUO.exe /recurse:*.cs /win32icon:runuo.ico /optimize /unsafe
Once this is saved in the base directory, run it. This will create the runuo.exe that will be what you use to run the server. Then run the server, and you will be allowed to create the admin username and password and boom you are done.
Well kind of. This just gets the server up and running. Now technically speaking you could be done if you want but there is tons of work you could still do. Like I have said, I have gone through the additional effort of making a custom map which takes tons of time to do.
I have made some good strides to working on the map, and I will go into that in a future post. Right now, I have been doing a lot of preparation for the world. Truth be told, I haven’t really played Ultima Online since beta days. I played it heavily in beta, but never bought it. I gave a try or two after Blackthorne’s Revenge and then again after Samurai Empire, but by then the game had been past where I wanted to deal with it.
So I am prepping in a few ways. One, I am reading through every script on the server. This one I am doing more casually, but I am doing it. Have learned a lot about how they are emulating the server, still more to learn but have a good understanding.
The second thing I am doing is going through the entire library of art. What I am doing with this is actually making a word document guide that will help me later when I am actually world building. Looking through the artwork, things seemed randomly placed and randomly named. So I am basically organizing it so that I can be like “Oh I want a Temperate forest in this area, well here is the artwork I would want to use for a Temperate forest.”
Lastly, I am going through every publish and update that Ultima Online has posted. This I hope will help me get caught up on the systems with the game itself. Don’t get me wrong, I probably will be changing much of it (maybe). But it is good to know what I am working with, how it has changed, and all that. I also want to use this to basically put in what I want. I have a vision of things UO did right and things they did wrong. And partially in addition to doing what I want to do, I want to correct their wrongs.
So this is what I am working on. I find the whole experience to be challenging and fun all at the same time. I hope that I actually accomplish some of what I am going through. I’m not sure if I actually plan on opening up the server to the public or not. I really am going through the whole thing for my own learning purposes but I do plan on talking about my experiences here on my blog in the future.