Planning

Developer
Apr 25, 2009 at 1:01 PM
Edited Apr 25, 2009 at 8:43 PM
We must make a roadmap on this RPG project.

I am currently try to end the Gui issues.

Then i will create the world editor project.

WorldEditor must be divided on the two side :
WorldEditor which keep the core implementations (the structure of a level forexample...)
WorldEditorInterface which will use World Editor to make actions simple via the interface (save with a click, load from directory, add meshes and rote them...)

We could use this discussion to make a brain storm of on WordEditor, here i start :
+ Create a GameLevel
       GameLevel must include this fixed GameLayers:
            >Floor (walkable meshes (we can use .mesh files))
            >Obstacle (not walkable meshes (we can use .mesh files))
            >ParticleEffect (like rain, snow or smoke... (we can use .particle files))
            >Interactive (Chests, Doors, Portals, Characters? ... (we can use .mesh files))
            >Sound (To use sounds as 3D objects (hear them in camera trace is their radius of grids) (we must research how to do it))
            >Light (Lights also must placed on grids (we must implement a class to use lights on grids?))
       All this layers must be 2D grid based & all objects must fit in to grid groups,
       A mesh can be little bigger than its actual gridsize if it will make no collision to others (forexample a tree can be a little bigger than a tile since its TopSide is not touching to a character stands on the next grid only tree stuck can be use as collision grid)

+ Save a GameLevel
to Xml  forexample (xml is good for now since .net can write any class to xml easily)
+ Load a GameLevel from a file
+ Create a mesh library
        >Import mesh file
        >Pick (or generate if possible) a thumbnail image that could represent the mesh from top view (on map and also world editor)
+Save & Load mesh library (as a packet to use on multiple levels (SnowyTown.meshlib & Dungeon.meshlib forexample...))

Lights
Lights can be used from a fixed list to read from/write to the GameLevel file (point, directional, spot) , tile-index, height, color values, radius & angle must be stored per light. Later we must also discuss to use normal maps, bump maps, defered lightling etc. (these issues would be handled after version 0.1)

Particles
I have not used any yet but i think that this can be grid-tiled too... (forexample : smoke or fire on somewhere, rain effect on someplace special, for upside down flying particles on magical tiles etc.) we must store their name (to call from axiom particle-manager), tile-index-list (effected areas), changeable effect parameters (if exist), timer-info (-1 for loops & bigger values of timer seconds to deplete the effect) depleted effects can removed from the scene dynamically.

Also some particle-effects will move on grids and triggered by player dynamically(ex: a magic aura of player must move with character always, or like sorceress blaze effect on diablo2 : generate flames on the trail of character with a duration, and just increase the last blaze duration while not moving)
(Since we are not making a hack&slash my examples are just examples, it does not mean that we use these effects like them)

Sounds

I have not also experienced on this, but as my guess we must store the name of mp3, start position of sound to play, length of sound to play, radius, volume on center, volume on outter circle, looping(ex: an ambientof hymn on a temple)/or triggered on enter radius(ex: footstep on wood sound on per tile)/random(this is not required now). Also some sounds will move on grids and triggered by player dynamically(ex: a warcry of the character must move with character always and must be played when player use warcry skill)

if someone notice any other needs please notify to there...
Coordinator
Apr 25, 2009 at 8:15 PM
With grids do you mean grids based on SmartMap 2D graphs ? Also the graphs can be connected together with the Vertex struct.
Anything that would be a SceneNode can have it's own class, yes.
Interfaces can be used beetween classes as well.
The grids or graphs can be any size at any pouint as long as they aren't touching of course.

I agree with most of the stuff. Also Axiom is working on SoundSystems and a demo for it should be released soon by andris11.
Coordinator
Apr 25, 2009 at 8:23 PM
I will prepare a Demo of SmartMap_Core. It will use what it is using now but upgraded to Crickhollow and with no UI so you can add the World_Editor GUI.
Is that cool?
Developer
Apr 25, 2009 at 9:16 PM
i have added a few other ideas above,

yes since SmartMap_Core is a UI-less library it is more systematic/clear now.

for Level Designer it must be a little practical to know add which item to where.

So we must think about it too...

EX:
Press a Create a Level button,
Fill Level Name (Orc_House_Floor03),
Press Create,
See a tablist on top and a gridded panel below (ex: with 16x16 pixel grids) and a TreeViews on left
Every tab (layer) has its own items on the grid, when changing tab items on the grids disapear and selected layers items drawn,
Also left tree view changes on each tab  (shows mesh libraries, light types, etc... on each different tab)
Also there might be a last tab that shows general properties of level...

Then click on  the create Mesh Library Button
Fill a Name,
Press Create,
Left click on the new created Mesh Library and Click Import Mesh from ContextMenu.
Browse for meshes an choose one,
Browse for a preview image(at first, we could choose a  predefined white filled image)
Enter a grid size from two NumericPads(ex : 3x3);
(A new gridded panel occurs on preview image (ex: image divided on to 3x3 slices)
Click for Passable Grids to change passability of them (also delete the partition of image),
// NOTE : Since we are adding FloorTiles not Obstacles it must act reversed (not-passable parts of the mesh image must be deleted)
Click save;
Drag the new item on the Gridded Panel on center, Click on where to place it, //It would be a little different on now, it is a bit difficult to implement drag and drops
Left Click on an item and choose rotate it (0-90-180-270 angles);
Apr 27, 2009 at 1:21 PM
Hi guys,

the SoundSystems plugin has already been checked-in into Axiom Contrib repository, I haven't revealed that yet on Axiom forums, because the Xna demo has wrong volumes and sounds not very well, and the OpenAL didn't work for Borrillis, so wanted to polish that somehow before advertising. But you may give it a try of course, check the few known issues in the tracker, but I hope the demos will work for you without problem.

The general interface yet can't support most of the tweaks you need, because they don't seem to be supported by Xna, at least not for SoundEffect style replay. But for OpenAL most of it shall be possible (like the inner/outer cone angles and volumes) if not in the OpenAL plugin's interface, then you need to peek OpenAL's sound Id and access OpenAL sound directly, but I suppose you don't need it in the first steps anyway.

Axiom.SoundSystems SVN: https://axiomcontrib.svn.sourceforge.net/svnroot/axiomcontrib/Axiom.SoundSystems/branches/budgerigar
MantisBT bug tracker: http://apps.sourceforge.net/mantisbt/axiomcontrib/my_view_page.php



Coordinator
Apr 27, 2009 at 3:53 PM
Thanks. This will be a real boost. I will see what nowherestudios says too.
Developer
Apr 27, 2009 at 6:48 PM
Yeah using sound through axiom will be a real boost!!! Is it run on only Woodhall or is it ready for Crickhollow?

If it is ready for Crickhollow, yeah i would say that we are so lucky :D
Apr 28, 2009 at 12:27 AM
It uses Crickhollow from SVN including one or two patches that are in Axiom's Trac only, but are not important for the API but for the demos only. All binaries are included so you should be able to checkout and run the demos out of the box. If you have questions, let me know