This project is read-only.

I have returned...

May 21, 2009 at 12:54 AM

Yeah finally i have returned. Still i have much to do since 25 May but my hardest period ended.

I have committed the RPG_Demo with axiom latest build and ultra fine working edition.

I have looked at OrthoSnapper and tried a few action but ioncycles code seems very challenging and complex to me so i have opened a similar project that do not use SmartMap to implement Orthosnapper. My clean version seems working fine, but it is mostly at the begining (not doing much now) so i will commit that project later.

I seen that Smartmap is mostly disorganized and its inheritance seems mostly complicated.

Can ioncycle draw a uml diagram that explains the smart map?

Then we could decide how we can organize smartmap source and discuss how can we connect it to rpg game.

May 21, 2009 at 3:45 AM

Starting something different then OrthoSnapper is fine. I just hope you were able to gain what you needed off of it then I can delete it or reorganize it into something else.

About SmartMap, We do need to discuss this I agree. I have been asking you about how to do this for a while, but I know you were busy.

I can start a UML diagram and we can think how we want SmartMap or SmartMap_Core to be used in the simulator or rpg_game.

First thing I need for you to explain exacly how you want it to connect to the RPG World editor. I was thinking that the 2D editor would communcate with the 3d SmartMap/Axiom engine somehow. You would manipulate 2d tiles in the WorldEditor and at it would translate back and forth into SmartMap. Take orthographic pictures of SmartMap world and then manipulate them in the WorldEditor in 2d. Then translate the 2d back into 3d in SmartMap. Like shuffling a deck of cards.

Give me some ideas on how you wanrt the XML to look for this. Would scenenodes be involved? It's a little complex right now but we can figure it out over time I think.

May 21, 2009 at 6:22 AM
Edited May 21, 2009 at 6:39 AM

Also, Draw4D is generally considered to be where the moveable objects are loaded in, including zone collison boxes I put in there before. Draw3D is where the static objects are like the tiles or rooms. This can be changed too, I just had it that way. Right now it's a little limited because the objects are all sorted in regular arrays and not collection classes.

May 21, 2009 at 10:02 AM
Edited May 21, 2009 at 10:11 AM

I have not fully understand your source design, but first of all i must mention about how can we use SmartMap on our RPG.

My idea is that, we must use SmartMap on WorldEditor or on the World component itself... Because, RPG game will need random mazes to be generated before rendering stage and RPG will need different rendering requirements than Smartmap itself. So maybe we could only use smartmap as a 2D map generator. RPG will not only use random patternly generated but also "designed" maps.

But these are my ideas only. It also depends on what SmartMap want to aim for? Is it aims to be A Map Renderer or A Powerful Library to create patterned & randomized maps? My vote is for the second. :)

Also I think that Smart map would be better organized by dividing into lesser components. The lesser components would be as like these:

SmartMap_Core : That include only calculation classes that generate random maze structure, path finding, setting accessible and unaccessible grid structure etc... It does not need to include any Axiom stuff!!! It is the most usable part, that we could use this component on rpg_engine and other external projects even on a non-Axiom 2D world Editor...

If it is abstracted from any Rendering functionality it will really become handiful. A pure tool to generate patterned maps of non-constant grid-sided objects (different grid sized objects rotated randomly on the powers of 90 degree ex: 2x3, 3x5, 1x1 etc.) to create randomized mazes (it seems that currently it only uses only 1x1grid sized wall meshes). It must have abstract coordination classes (not using Axiom.Math.Vector3 etc.) and assumig meshes as only 2D grid sized objects.

SmartMap_Renderer : That include the whole Axiom usage...  Smartmap can still use its own current renderer or we could abstract a new simple renderer that uses latest build of Crickhollow. This would be used for SmartMap features demonstration (like currently SmartMap doing) and on other simple simulation projects and if they not need specific render requirements

SmartMap_UI : That completely include your GUI stuff and other classes that aim to draw it 2D on a windows panel etc. This can be merged with SmartMap_Renderer or can be a seperate project...


May 21, 2009 at 10:58 AM
Edited May 21, 2009 at 10:59 AM

Here is an example to what i mean by maze with non-constant sized objects

May 21, 2009 at 1:22 PM
Edited May 21, 2009 at 1:24 PM

OK I agree with what you want.

I agree about the 2D abstract coordinate classes.
(If there is any pathonoding that needs to be done from overhead rooms it would have to be dumb, meaning that mazes would lay on top of each other and be connected by random edges, if the AI wanted to go upstairs or downstairs.

Wouldn't SmartMap_UI be the WorldEditor or did you want to rename it? Or should we clone it? Any 2D or 3D stuff connects to the SmartMap class.

We can create the new folders for the SmartMap_  stuff and all of that is under the BSD license but SmartMap regular is under the LPGL and is my own thing I want as a pure demonstration device.

So I will create the folders you want now but did you want to help out start this up. I don't want to start doing something you may not want. Right? I will try starting it up though. Sometimes it's hard not being in the same building.


May 21, 2009 at 4:35 PM
Edited May 21, 2009 at 8:32 PM

Yeah, for that reason i need the umls of smart map. I need them to help you.

Also it is ok for me SmartMap_UI = WorldEditor, but maybe it may seem a little ambigious for anyone who only want to use the pure SmartMap (not to use on an RPG game)...

Because, World Editor will include some RPG items (Inventory items Triggers Dialogs etc...) later. So cloning it later for both RPG and pure SmartMap purposes seems more logical.

Since you have a demonstration to SmartMap, we would keep it and open a second project to clean it from Axiom to prepare a pure Smartmap that uses World classes (project is in the RPG_World folder). and after we prepare the library then we could continue to WorldEditor to create 2D levels using World + Smartmap.

After all at last we would implement a SceneManager that can draw any level prepared by WorldEditor. After we achive that goal we would use all that i mentioned above seperately in SmartMap_Demo and RPG_Demo projects.

I think project hierarchy seems like this:



SmartMap_Demo -uses-> TileBasedSceneManager

    TileBasedSceneManager -uses-> World

    TileBasedSceneManager -uses-> Axiom


SmartMap_Demo -uses-> WorldEditor

    WorldEditor -uses-> World                   //To create custom designed levels

    WorldEditor -uses-> SmartMap_Core    //To create randomized levels

        SmartMap_Core -uses-> World         //To use 2D coordination classes (Grid etc.)




RPG_Demo -uses-> RPG_TileBasedSceneManager

    RPG_TileBasedSceneManager -uses-> TileBasedSceneManager

        TileBasedSceneManager -uses-> World

        TileBasedSceneManager -uses-> Axiom


RPG_Demo -uses-> RPG_WorldEditor

    RPG_WorldEditor -uses-> WorldEditor

        WorldEditor -uses-> World                   //To create custom designed rpg levels (with items, triggers etc.)

        WorldEditor -uses-> SmartMap_Core    //To create randomized rpg levels (with items, triggers etc.)

            SmartMap_Core -uses-> World         //To use 2D coordination classes (Grid etc.)




If you dont understand what i meant, i can also draw a uml diagram to explain this...

May 22, 2009 at 12:43 AM
Edited May 22, 2009 at 12:46 AM

Interesting stuff. The RPG stuff can be done alongside the generic creation libraries. Even though SmartMap, with these extensions, could create generic stuff, I think it's good to add another RPG_ aspect to it because I would want the developers to be able to modify stuff to what they want. I am looking at SmartMap as more of a back-end tool like SpeedTree, but allot more complex of course.

With this type of managed code (When I say managed I don't mean it in a negative way) we are creating something quite large and extensive. This is where .NET really works well. I like how it dictates exactly how to make a game intuitively. My hope is that more game/sim companies change their dev process to use more automation and not let the large world creation take up too much time and $$$. I think people could use certain aspects of SmartMap without it taking over the project.

***I think a UML diagram is the first step. This type of coding doesn't produce to many bugs and can be done pretty fast but it produces a massive amount of code. So we should be very structured in our approach. Just tell me what to do since I am not that much a managed coder like this yet. You can set up a UML first I think and we can pinpoint exactly where the classes go.***

We can also put the diagrams in the front WIKI here and in the DOCS folders.



May 22, 2009 at 12:58 AM

Also, I would really want to do PINVOKE somwhere (C,C++ engines) for the abstract media classes.

Jun 10, 2009 at 5:03 AM
Edited Jun 10, 2009 at 7:03 AM

OK, I have created a method called CreateMap().

This method does something similar to CreateTileset() but doesn't make modules. Instead it just mazes the modules that have been created. This should make SmartMap allot more realistic now for city building. For roads, they could be simply created along these labyrinth lines now using a spline with either texture splatting or meshes on that if preferred. They would go alongside the buildings and the buildings can face the street. Also you should be able to space them as far as you want like for farm houses or buildings that have allot of private property, or just statues.

Jun 11, 2009 at 10:58 PM

hmm looking tastety... :) let me know when you make a little demo of it. If you need any sample meshes or textures, just explain what you want there, and i could prepare some.

Jun 14, 2009 at 2:14 AM
Edited Jun 14, 2009 at 3:41 AM

Hey, I want to say thanks for helping with the font page. It looks real professional. I am good too at icons and stuff but it helps to have someone who has allot of talent. Plus I need to add more plugins to GIMP, I have been lazy. My fonts are so basic.


We can put this in the notes or something. :-) Maybe later.

Jun 14, 2009 at 9:13 PM

There is a SmartMap listed on registered in 2006. It's been on there that long? I invented the name and posted code on it in 2005 on RealmForge forums. There wsn't a SmertMap anywhere back then. Oh well, what do you think? It might get confusing if I want to put it on sourceforge.

Jun 15, 2009 at 1:27 AM
Edited Jun 15, 2009 at 1:40 AM

is that you in the picture?

:) Cool one if he is you. I did not have time to add you from the facebook, since i dont check facebook and similar stuff not so often. (once in 2-3 months)

and btw,

Why do you want source forge? Maintaining 2 places might be difficult... We could stay on Codeplex. I learned how to open new wikis other than the main page and how to bind them each other. If you want to put some other info at wiki here just i wrote below. It is so easy.

Forexample just try write, and from the page opened, just choose to create link to create a page named "AnyWikiPageNameHere"...Then use [AnyWikiPageNameHere] to create a link from main page.

if you need spaces use %20 stuff. Forexample: create a page named "Any Wiki Page Name Here"

I have not so talented on design, but thanks anyway ^^

And i also realize that using rpg and smart map on the same project little confusing. We must open different projects for them and link them togather with links on the home pages. That will also save us from free disk space problems.

And i think that, we must first focus on the SmartMap to make it somewhere, we can call it is a "product".  then we must continue rpg back.
I am still waiting UMLs from you. I just wander on otherthings (like continue to scenario scripts, and finalizing Axiom mascot...) while you finish them.

Jun 15, 2009 at 2:00 AM

Yah that's me in the picture.

Right now I am finishing the createmap method and going to demo it for you. Also at the same time I am fixing a bad memory leak that is coming from my QuickGraph modification. It breaks the current build. It cancels the application, which is bad. Then i will finish the UML or I can do it real quick when you finish the scripting.

Yah we can separate the projects and then you can link and advertise SmartMap and me too. SmartMap can be a product as well and then if people want extra things wto pay for that's up to them, but I want to keep it primarlity open source.

Jun 15, 2009 at 4:22 AM

Yah let's expand the Wiki. The art you did is radical, real kick ass. I'm not going to change the name from SmartMap no matter what. I invented it, so there. I wont bother the other people if they don't bug me about it. It's a different thing anyway then what they are doing with different logos.

Also when you start the other projects still stay on my team, but I know your were going to though.

Jun 15, 2009 at 6:43 AM
Edited Jun 15, 2009 at 6:44 AM

UML served up fresh.



Jun 15, 2009 at 8:22 AM

Your Draw 2D/3D/4D ( what is 4D!? :D ) modules are classes or interfaces? Use "I" prefix on the Interfaces ex: IVehicle, IConnection...

Where is the SceneManager there? Do you use Octree? or something on yourself. This UML is really not big enough & not explains anything yet.. It is not final one i think... Stick on notes on classes and try to explain them.

I did not tried to say that we must make it close source, neither i did not tried to say we can get a fee for SmartMap. I tried to say that we must change the class hierarchy and put some interfaces between modules, and completely refresh the gui with its new branding to call it a "product". We will also use Guidelines on the Axiom forums on the code. But not bother with them yet. I will handle them after UML. if it will not bother you, (and if needed) I wanna also change some of your class/method/attribute names to more recognizable ones, and maybe some of the classes would require splitting (splitting means to divide a class into lesser ones to decrease the number of lines per class).

SmartMap is a good name we dont need to bother about other SmartMap application/s... There are also some GIS applications that called SmartMap while search through the net, but what matter... i also like SmartMap name.

Jun 15, 2009 at 3:19 PM
Edited Jun 16, 2009 at 8:04 AM

Yes, this is not the final version of the UML. Also everything sounds good but probably most major changes would be with SmartMap_Core and not SmartMap. If coding guidelines need to be done this is a separate product then Axiom and probably wont just be used with the Axiom engine later on so the coding style will be different then Axioms'; if that's what you meant.. Maybe you want to just have our own guidelines?

Draw 4d is more for dynamic modals that move around like NPC's etc. Just something different to have code somewhere else or another class, but for SmartMap_Core if you want some modifications to the classes, that's fine.

In physics the 4th dimension is considered a time value meaning something that moves.

I modified the UML. Just ask to add more stuff.

Jun 24, 2009 at 7:52 AM

Ok this uml is enough for now. I will re-search your code this weekend. Can you end your final touches to smartmap until this weekend.

it is critical because i would make many changes on the smartmap project, so you must wait for me to prevent conflicts.

Jun 24, 2009 at 3:16 PM

OK that's fine. Just change the SmartMap_Core project for now. and it's subfolders _Renderer etc. Not SmartMap as I'm doing some different stuff with it. Also I have simplified some code in SmartMap as well but I will wait for your changes to SmartMap_Core before changing them there. Still I was more focussing on fixing SmartMap_Core so it actually runs with the latest version of Crickhollow.too if you wanted.

Adding CreateMap has really made the code allot less messy too.

Jun 24, 2009 at 7:32 PM

Ok i could wait until you finish to update the latest crickhollow.

Jun 25, 2009 at 4:13 PM

Just a thought,, there is really no reason at this point to use Crickhollow (too unstable) for our projects anymore because it has been merged into the Axiom trunk. I will try to get the trunk running. If it is too difficult I have gotten Axiom Final running and it is at least bugfixed compared to Hobbiton.

Jun 25, 2009 at 5:58 PM

Looks like we're in business with Axiom Trunk. I will update SmartMap_Core soon in svn. It should remain allot more stable than Crickhollow and hopefully be released soon so we can just take the stable version. If you need more enhancements we can maybe tweak our own version or wait until it's added to the trunk so we can stay as stable as possible.

Jun 25, 2009 at 6:57 PM
Edited Jun 26, 2009 at 1:33 AM

SmartMap_Core with Axiom trunk is now in svn.

Working with Axiom Trunk now (all the Crickhollow goodies and seems stable). Hopefully when trunk is moved to release we can maybe use that instead - to stay stable.
This update is working except my media files, Room_ etc., are old and it's causing a stack overflow error so you can convert them if you want or add your own of course. Also, The Media folder wants to copy to the bins for some reason so it doesn't read it.
This release is bulky and maybe messy a little but it is more refined and has the CreateMap() method. Multi-Sized module support is not in yet but easy to put in.
You can start to add in the OO features you wanted with this release and clean it up the way you want..

Also, set the terrain Y height in Terrain.xml to 0 if you want flat terrain.

Jun 26, 2009 at 8:33 AM

Ok i'll have my full saturday to begin

Jun 28, 2009 at 3:13 AM

I updated the UML again. I think I want to change the name of the CreateTileSet() method to CreateModule().