In The Beginning
August 21, 2012
This is the start of a new project for me, the building of an AuroraSim based instance that uses the variable region function to create a single region that is 8,192 metres by 8,192 metres in size. I thought this would be a good project to write about. Share the problems and the solutions and to show what can, and cannot, be done.
Even flat and empty, this is already pretty amazing. Each side is over eight kilometers long. In other words, it is 8k square in size, hence the title. At 8,192 metres on a side, this works out to 67,108,864 square metres. In the US, each side would be 5.12 miles long, making the region 26.2 square miles in size. At 640 acres to the square mile, that comes to just a little over 16,777 acres.
In Metaverse terms, it is the same area as 1,024 regions in Second Life. As just one single region.
All on a computer that costs CDN$500 at the local WalMart.
So, some info on the computer itself. Its an AMD quad-core A8-3820 APU running at 2500Mhz. The system has Radeon HD 6550 D graphics embedded on the mainboard. I’ve added a nVidia GeForce 9500 GT/PCIe/SSE2 card (CDN$65) with 1Gb RAM which I use to run 2 monitors. The system has 6Gb RAM itself and a 1.5 Tb harddrive, which I have partitioned into two sections, one is 1Tb and runs all the software and applications and the other is 500Gb and holds all my files and data, including my OpenSim and AuroraSim instances. The operating system is Windows 7 64bit Home Premium. Everything is routinely updated and all drivers are current from the manufacturers. Total cost is CDN$565, all taxes included.
At this point, I am going to backtrack a little. I have already got my instance setup and so I know it can run a region this size, but the AuroraSim developers have made some changes in how you setup in the first place. And I already know that there’s going to be a lot of terraforming and landscaping involved. AuroraSim has an addon module called Fractal Terrain. I want to see if that will help with making the terraforming easier to handle. Which means compiling a new instance to include that module. And no, I don’t know if the module works, so we’re both going to find out pretty quickly.
I am using a copy of Excelsior Station to build from since it already has SoaS’s MySQL already configured for use with AuroraSim. The first thing I do is simply delete the AuroraSim files, but leave the Mowes things alone. Next is to clear the information from the MySQL database. I use HeidiSQL for that. Its easy to use, which is a huge thing for me as I am a MySQL putz. Nor do you have to use MySQL as AuroraSim, like OpenSim, can use SQLite.
So, I fire up Mowes to get MySQL running, then I start HeidiSQL running. You can get HeidiSQL at http://www.heidisql.com/. I open the database, select all the tables, right click, choose Empty Tables and confirm. Then shut down both HeidiSQL and Mowes. I now have an empty and defined database to work with. That quick and that easy.
Let me take a few moments to point some things out. What I am doing here can be applied to any size region of AuroraSim, so you don’t have to go with something as big as this. If you are willing to terraform the terrain yourself or load and offset terrain maps (see the AuroraSim page), then you don’t need to compile your instance. I am because I want to see what happens with the Fractal Terrain module. You can easily use FlyMan's unofficial 0.6 pre-compiled release and skip down to where I start the initial setup.
Back to the show. Before you compile AuroraSim on a Windows machine (sorry, I don’t have a Mac or use Linux), there’s a couple of Must Haves that you need. You need to have installed .NET Framework 3.5.1 or 4.0 and Visual Studio 2008 or 2010. I have .NET 4.0 and VS 2010, so I’m good to go. You will also need to know the information for setting up AuroraSim to use the SoaS MySQL database. Fortunately, that hasn’t changed from when I first wrote about it (see the AuroraSim page).
The first thing to do, of course, is to go to the folder where you have everything. I have mine on a D: drive partition. That way, if my system does crash or for whatever reason I need to re-install the operating system, I don’t lose all my work. The folder you want is the one that has runprebuild.bat in it.
Simply double click the runprebuild.bat file to get things going. A command console window will open, which will ask for some additional information, which is what I pointed out earlier, .NET Framework and such. Once you have answered the questions, it will create the files necessary to compile your AuroraSim instance.
Here is mine with the answers entered, VS 2010, NET 4, AnyCPU (though mine is 64bit) and debug configuration. I’m afraid I can’t tell you of the differences between the release configuration and the debug, other than the fact that debug will tell of warning and errors. Going with the release configuration is just fine. I go with debug so I can report back to the developers of anything major going on. Which hasn’t actually happened all that often. And at teh very end is whether you want to compile now or not. So, of course, I went with now.
Once you enter “y”, there’s a ton of gobbledy-gook that scrolls past too fast,
and within a minute or so you get the final result.
Success! No warnings, no errors.
Now we come to the initial setup. Which is quite different from setting up OpenSim. One of the reasons I am using my Excelsior Station setup is because I already have the shortcuts already in place to run MySQL and AuroraSim. But we’ll take the long way around anyway.
Okay, if you are not going to use MySQL, you can skip this part. If you are going to use MySQL, then this is the time when you start it. If you are using the database that comes with SoaS, feel free to clear the data as I did previously. Or not. AuroaSim structures the database differently from OpenSim and it will automatically restructure it when you first run AurroaSim. And don’t worry about the Apache server that comes with SoaS, either. AuroraSim has a built in web module, too.
So, start up your MySQL and then locate Aurora.exe in the /bin folder and double click it to start it up. The first thing that happens is that you are presented with is the option to configure Aurora or not.
I choose yes. Next, do you want (1) Standalone Mode or (2) Grid Mode. I’ll be running in Standalone, so its option (1) for me.
If you are going to choose Grid Mode, well, bear with me as things are similar, but you will have to figure some things out for yourself. And perhaps you would be willing to write about it so I can add it.
Next, after choosing the Mode, you are asked for which database you will want to use, (1) SQLite or (2) MySQL. We already know that I’m going with (2) MySQL.
Now this is where you must pay close attention. AurroaSim is defaulted to use the name aurora for the database, so you have to enter the name and other information for your database. In my case, its all from SoaS. Database name is opensim, MySQL database IP is localhost (so I can just hit Enter), database user is opensim, and the password is opensimpass, all of which can be found in SoaS’s \bin\config-include\MyWorld.ini file.
And now we come to entering the information for your instance.
First, you are asked for the name of your Aurora-Sim Grid and presented with the default, Aurora-Sim Grid. Take your time here. Although you can edit the files later on, its always a good idea to have in mind what your goals are. For me, with my plans for such a large land area, why not a city. Excelsior City, in fact. So, I enter ExcelsiorCity, keeping it as one word, just to be safe. After all, as I said, I can edit it later.
Next is choosing your Welcome Message. You will notice that part of the default Welcome Message is <USERNAME>. AuroaSim will let you greet visitors by their avatar name. So, whenever I login to my new city, I will get the message “Welcome to ExcelsiorCity, Sarge Misfit!”. Anyway, put in whatever you want, I’m going with the default and hitting Enter.
Now, the next thing is how you want new accounts to be created. You can leave this as the default, true, which means there’s no need to use a web interface or manual creation, but I keep the habit of doing manual account creation, just as a precaution. After all, if I do get this online, I want to retain control over who can enter. So, I enter false on this one.
Now, external domain name of IP address. In this case, its the usual 127.0.0.1.
And that is all that AuroraSim needs at this point.
It will finish the configuration of the files and load the Inventory Library before launching the Region Setup GUIs. Yes, there’s more than one.
First is the Aurora Region Manager. Frankly, this is a convenient alternative to manually entering all the information on the command console. You just fill in the blanks and change the settings to suit you and then click on the button labelled Create my Region.
As you can see, I have the dimensions set to 8192 by 8192. I changed the Region Location to 1001 and 1001. That is because we are accustomed to start counting at 1 and not 0. I also changed the port to 9100 as there are a lot of other calls to Port 9000, so its likely a good idea to reduce that. It certainly doesn’t hurt. I have left the Maximum Prims at the default 65536 as I believe it will means there is no maximum. I have no idea of how many prims I will need, or at what point things bog down, but if this were Second Life, then 1,024 regions at 15,000 prims comes to 15,360,000 prims. So, let’s see what happens if I should reach the default number. If I do have to change it, well, I can save an OAR of the region and then open the region manager later on to make those changes. Yes, in AuroraSim you can change your region with this same GUI. Just go to the command console and type in the command open region manager at the prompt.
When you click on the Create my Region button, you get a window saying “You must now set up an estate for the region”. Click on Okay.
This is a bit tricky and I am unsure of the exact sequence to go in., but this is where you create your estate and your avatar account. So, the first thing I did was click on Find user.
I enter my name on the Search line and then click on the Create User button.
Enter name and password and click on the Create User button in the bottom right corner. Back to the User Picker, re-enter my name and click on the Search button this time. There I am! Highlight my name and click on the Select user button in the bottom right.
Back to the Estate window of the region Manager, now I click on the Search button. New entry boxes open in the bottom part of the window.
Once you have filled in the information, click on the Create new Estate button, it closes and AuroraSim finishes setting up your new region.
DO NOT LET ALL THOSE RED WARNINGS FREAK YOU OUT!! AuroraSim is trying to locate things that have not yet been configured. And don’t forget, I’ve gone with the debug configuration, not the release. As I understand it, the release configuration won’t even show those warnings. The worse of it is, there’s still some work to be done on the configuration files. The important thing is, it did set up the region. Now you simply shut it down and move on to the next step, renaming and verifying the configuration files. (update: it appears the warnings are related to the Fractal Terrain module I installed)
In AuroraSim, the configuration files are found in \bin\configuration\modules. When you go to that folder, you will see that all the files end with .ini.example. My understanding is that you don’t actually have to have them named as .ini as everything is already set to defaults. But I do so just to be sure. And I am just anal enough to open each one to make sure everything is set just the way I want.
You will find configuration files in \bin, \bin\Configuration, \bin\Configuration\Data, \bin\Configuration\Modules, \bin\Configuration\Physics, \bin\Configuration\Scripting and \bin\Configuration\Standalone. I know, there’s quite a few. But its all mostly just renaming files.
So, here they are as a simple list of the files to rename by removing .example from the file name.
and all of the files in \bin\Configuration\Modules\
finally, its just a matter of a little editing.
First, open \bin\Configuration\Standalone\GridInfoService.ini. Here’s what to do here;
gridname = "My Aurora Simulator"
gridnick = "AuroraSim"
//;login = http://127.0.0.1:9000/ //
becomes (in my case)
gridname = "Excelsior City"
gridnick = "excelsiorcity"
//login = http://127.0.0.1:9000/ //
(note that you simply remove the semicolon from in front of the login)
Second, in First, open \bin\Configuration\Standalone\GridInfoService.ini. I change
WelcomeMessage = Welcome to ExcelsiorCity, <USERNAME>!
WelcomeMessage = Welcome to Excelsior City, <USERNAME>!
just so that it makes sense.
The next one I make changes to is \bin\Configuration\Data\Filebased.ini. Only a simple cahnge and one you don’t have to make.
;;This module saves periodic backups of the region so that if it crashes, you do not lose anything
;;This allows you to change the amount of time (in minutes) between the auto saves
;; Default is 5 (minutes)
TimeBetweenSaves = 5
gets changed to
;; This module saves periodic backups of the region so that if it crashes, you do not lose anything
;; This allows you to change the amount of time (in minutes) between the auto saves
;; Default is 5 (minutes)
TimeBetweenSaves = 60
I simply don’t see much need to save a backup any more frequently than once an hour, especially as AurroaSim also saves a backup when you shutdown.
Another personal change I make is to \bin\Configuration\Modules\Startup.ini
MaxNumberOfAttachments = 38
MaxNumberOfAttachments = 50
(update: In \bin\Configuration\Modules\AurroaModule.ini look for
;; The terrain tile renderer used
;; WarpTileRenderer - The highest quality renderer that will accurately render the scene, but may take a long time to do so.
;; TexturedMapTileRenderer - Textured terrain and prims. Will not take as long as the WarpTileRenderer.
;; ShadedMapTileRenderer - Will take the least amount of time, but very low quality tiles.
;; Default is WarpTileRenderer
TerrainTileRenderer = WarpMapTileRenderer
TerrainTileRenderer = TexturedMapTileRenderer
and the red errors referring to the Map will clear)
And that’s it.
Start AuroraSim, ignore the red warnings as you still have to enter the world. At the time of this writing, Angstrom Viewer is the only one that is AuroraSim compatible, but others are coming. Check the MIV for updates.
And now to try the Fractal Terrain Module…
And it crashes from Out of Memory Exceptions. Well, gridlings, I expected there would be problems. This is simply the first one. Fortunately, I’ve got a Plan B. FlyMan's unofficial 0.6 pre-compiled release. So, I copied the files from FlyMan’s release into the /bin folder. Started things up again and got errors about the map generation. But it hasn’t crashed. Time to go inworld and see what’s what. Since the errors are related to the map, I can only conclude that it is due to the Fractal Terrain Module, so don’t install it. As for inworld, its all nice and flat and looking good.
For now, that’s good enough for me. Its been a very long day and there’s a ton more for me to do next. Just imagine what its going to take to make all this land look like a continent. After all, a perfectly flat and square landmass just isn’t “natural”.
For now, its time for a break. Stay tuned, gridlings, this is going to be a very long project.
August 23, 2012
Well, gridlings, its time to carry on.
But before I do, I want to let you know that I fixed the problem with all those warning messages. I was focused on getting things running and writing what I was doing that I didn’t take a good look. Well, once the first chapter was posted and I took a break, I went back and looked closer. The message kept referring to “Aurora.Modules.WorldMap.WarpTileRenderer”. Well, this is where AuroraSim’s modular setup comes in handy. While there are a lot of configuration files that AurroaSim uses, its also much easier to track thigns down. In the \bin\Configuration\Modules\ folder is a file named AuroraModules.ini and in that file is the setting for MapModule. This module was set to use WarpTileRenderer. I simply changed that to use TexturedMapTileRenderer instead and no more errors. I’ll work on this further so I can generate a WorldMap inworld.
I’ve already updated the info about that, so let’s carry on from there.
What I have done since the last posting, besides fixing the map rendering, is to create a backup of my inventory. I do most of my building using OpenSim. I have an offline instance called, appropriately enough, WorkShop. My Inventory in the WorkShop contains all of my scripts and textures and everything I might need or want or use. And backing this up is easy enough by simply creating an IAR of everything. How to do this is well documented so I don’t think I need to provide a step-by-step with pictures on how to do it. What I do is create a new folder in my Inventory named Enchilada, as in “the whole enchilada”. I then create folders in that one for Animations, Gestures, Objects and so on. I then move the contents from the Inventory system folders into the appropriate folder in the Enchilada.
Off to the WorkShop’s command console and type in save iar Sarge Misfit Enchilada password D:\Temp\Enchilada.iar and then go pour myself a fresh coffee as its going to take a few minutes to save the file. Once it is complete, I move everything back, shutdown the WorkShop and make a copy of the file to save as an archive.
Now I’m off to Excelsior City.
And before I even login, I upload the IAR I made. load iar Sarge Misfit Objects password D:\Temp\Enchilada.iar. I use Objects as I haven’t created an Enchilada folder. And it takes much longer to load an IAR than it does to save it, so I’m off to have a snack.
~~ ~~ ~~
Well, 11,478 assets with 0 failures in 7,874 objects successfully loaded later and its time to login.
Yes, that’s the default login splash screen that comes with AuroraSim. There’s also a built in web interface, too. Use teh Grid Manager, get the login information entered and away I go…
And now I’ve run into problems with logging in to the region. Something seems to be glitching with the region capabilities. So, I’ve opened the Aurora Region Manager and reset the Port from 9100 to 9000. Setting the region Port to 9100 is the only change I made to the region configuration, so I am working on the assumption that the change is the culprit.
And that wasn’t it. I noticed that Angstrom had to try a few times to get it failed at the region handshake, I’ve gone through the configuration files and double checking everything to do with the region. First /bin/Configuration/Modules/Startup.ini. Nothing appears to be out of teh ordinary, but jsut to be sure, I’m changing the prim capacity configuration from ObjectCapacity = 80000 to ObjectCapacity = 8000000. That’s right, I’ve increased it from 80,000 to 8,000,000. Next, /bin/Configuration/Modules/Advanced.ini. Nothing I can see. Same for all the others. And I’ve also opened the Region Manager and changed the prim allowance in there to 5,000,000 instead of leaving it at the default, which is what I had before.
Nope. Well, I do know that AuroraSim works so it is likely due to how I set things up. Nice thing about this, I’m not tossing out any materials, only time. And I’m learning things, too. So, I simply delete everything from the \bin\ folder except for the Configuration folder. Run the intial configuration again and discover that its kept all the region information. No red error messages, no set up the region again, it just rolls along and everything appears to be running smoothly.
And with a fresh setup, things are working just fine and I login without any issues.
Yep, pretty flat. Looks like Saskatchewan only bald. So, now comes terraforming. At first, I thought I would need to load and offset standard terrain maps, which would be a lot as each has to be entered individually. I even prepared a grid of where to place those terrain heightmaps, too.
I know, the cells are rectangular but it is just a placement grid, not a to scale map. Here’s the thing, I want a region wide border of water, so that’s 124 maps just for that. Then there’s another 96 for land. I got those terrain maps from the various sites I have listed on the Content Providers page. I also used terrains from OAR files got on those sites as well.
You might wonder about the naming I used. Well, if you look at the edges you will see that the cells are numbered from 1001 to 1032 along the bottom and up the left side. Those are the X and Y coordinates used by the region. So, the names are a combination of the X and Y coordinates so I get an idea of what goes where. So, placing a terrain map at 1023, 1012 gives a name of 2312. By the way, the red numbers is the offset to use for placing the map. To use the same location, the command I would use in the console would be terrain load 2312.r32 OffSetX = 5632 OffSetY = 2816 (no, the file doesn’t actually exist, its just an example).
Well, as you can imagine, manually entering 220 terrain maps is a lot of work. But, thanks to Key Gruin’s comment I thought to search for island heightmaps. I eventually found a greyscale map that is 2048x2048. Using PhotoShop, I stretched it to 8192x8192. After that, it was a simple matter of loading just once. I did have the problem of the water areas not being dark enough so I ended up with the water being land, but that was also easy to fix. Loading the map into PhotoShop again, a used a big enough brush, set the colour to absolute black and coloured modified the water areas so there is now a shelf. Then I reloaded the terrain map.
And things look pretty good. I’ve got a nice variety of terrain features from river to mountain with lots of room for all sorts of developments, including seaside, mountain and offshore. I’ve TP’d to 4095,4095 and set my draw distance to 4,000 metres. It took quite some time to draw the image but it was worth it.
For now, I’m going to take a break.