Would you like to react to this message? Create an account in a few clicks or log in to continue.



 
HomeHome  Latest imagesLatest images  SearchSearch  RegisterRegister  Log inLog in  

 

 SimpleSpark editor project

Go down 
3 posters
Go to page : 1, 2  Next
AuthorMessage
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeTue Apr 20, 2010 9:58 am

I have created a (presumably crossplatform)
- C# particle editor
- C++ loader library
- compact C++ player for SPARK1

Pros:
- Cross platform, thanks to Mono project. (not tested, no efforts been put into making it crossplatform)
- Requires no built-in renderer or C#-C++ dll interfacing due to separate player and editor.
- Cost of testing is signifficantly reduced (you don't rebuild a C++ project, but instead launch a lightweight executable to "play" your particle script).

Cons:
- Not really visual, you don't see changes instantly when they are made.
- Might require either extended amount of GUI modelling and coding to make it easy to use, or will suffer from interface simplicity.
- If a text script editor is exposed to user, might be a steep learning curve for user, unless there will be some kind of templates and wizardry to guide user through the process of creating a particle system script.

With release of SPARK2 it will be easy to adjust this to support both versions of SPARK, or just fork this project and edit it for compatibility.


Download
http://lytovchenko.ca/simplespark/simple_spark.zip
http://longcat.info/files/simple_spark.zip

Data model is a set of classes which describe data structure, can load and save self to XML. C# will use standard System.XML reader and writer. C++ will use PugiXML lightweight library.

It is more or less in production state at the moment. There was a game released using this editor and SPARK v1, and 2 more games are in production as of March 2011.


Last edited by kvakvs on Thu Oct 20, 2011 5:04 am; edited 3 times in total
Back to top Go down
http://longcat.info
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeWed Apr 21, 2010 11:08 am

Here's the first glance of the UI

SimpleSpark editor project Ss1
SimpleSpark editor project Ss2
Back to top Go down
http://longcat.info
Darktib
Committer
Darktib


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeFri Apr 23, 2010 4:02 am

Great! But, why all property names are followed by an underscore?
Back to top Go down
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeFri Apr 23, 2010 4:26 am

Darktib wrote:
Great! But, why all property names are followed by an underscore?
Because properties duplicate fields with the same name.
Code:
    public class MModel: ISerializable
    {
        //! Model name (for editor)
        public TString Name = new TString();

Code:
        [CategoryAttribute("0. General"), Description("Model name (for editor)")]
        public string Name_
        {
            get { return Name.Value; }
            set {
                Name.Value = value;
                if (AssociatedTreenode != null) AssociatedTreenode.Text = this.ToString();
            }
        }
Honestly I should correctly override ICustomTypeDescriptor.GetProperties, and format property names pretty with spaces.
Back to top Go down
http://longcat.info
Juff
Developer



Messages : 539
Date d'inscription : 2009-07-14
Age : 42

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeFri Apr 23, 2010 5:01 am

That is nice ! Looking forward to seeing the finished version
Back to top Go down
http://spark.developpez.com
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeWed Apr 28, 2010 4:27 am

Got couple of urgent tasks at work, so editor was postponed for few days. Today I'm continuing.
Back to top Go down
http://longcat.info
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeThu Apr 29, 2010 10:09 am

Version R0.2 uploaded to my website

Editor is partially functional, data creation and most of data field read/write are functional. Save is mostly functional. Code generator was enhanced with enum default values generation (C++/C#).

XML writing (and reading) code is fully auto-generated from model description.

Resulting XML looks like this (default values are not written):
Code:
<?xml version="1.0" encoding="utf-8"?>
<System>
  <Group name="New Untitled">
    <Attr id="gravity">0;0;0</Attr>
    <Model name="M1">
      <Attr id="enableFlag">14</Attr>
      <Attr id="lifeTimeMinMax">0;0</Attr>
    </Model>
    <Emitter name="E1" emitterType="normal">
      <Attr id="direction">0;0;0</Attr>
      <Attr id="force">0;0</Attr>
      <Attr id="sphericAngles">0;0</Attr>
    </Emitter>
    <Modifier type="destroyer" linearForce_FactorType="none" linearForce_FactorParam="red">
      <Attr id="linearForce_Force">0;0;0</Attr>
      <Attr id="pointMass_Position">0;0;0</Attr>
      <Attr id="pointMass_Mass">0</Attr>
      <Attr id="pointMass_MinDistance">0</Attr>
      <Attr id="vortex_Position">0;0;0</Attr>
      <Attr id="vortex_Direction">0;0;0</Attr>
      <Attr id="vortex_EyeRadius">0</Attr>
    </Modifier>
    <Interpolator attachedTo="red">
      <Attr id="sin_Amplitude">0;0</Attr>
      <Attr id="sin_Offset">0;0</Attr>
    </Interpolator>
  </Group>
</System>

What's left in editor is basically to add editable properties for Interpolators and modifiers. Add some visualising interface for interpolator graph editing. And move on to C++/SPARK based particle loader/player, I'll base it on Irrlicht but nothing stops you from changing the renderer to your taste.
Back to top Go down
http://longcat.info
Juff
Developer



Messages : 539
Date d'inscription : 2009-07-14
Age : 42

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeSat May 01, 2010 7:59 am

That is nice. Your XML hierarchy looks convenient and clear. Maybe i can add your XML loader directly in the official release in the future so that it can be used for other editors as well (Darktib's one for instance) or direct XML script editing.

The only condition is that the dependencies remain low. Which XML parser do you plan to use on the engine side ?
Back to top Go down
http://spark.developpez.com
Darktib
Committer
Darktib


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeSat May 01, 2010 1:56 pm

Nice format. I think I will use it in my editor (but my editor doesn't save data from spark, it maintains an internal dabatase from which all files are saved)
Back to top Go down
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeSat May 01, 2010 3:17 pm

Juff wrote:
That is nice. Your XML hierarchy looks convenient and clear. Maybe i can add your XML loader directly in the official release in the future so that it can be used for other editors as well (Darktib's one for instance) or direct XML script editing.
The hierarchy and linking rules will refine over couple of next working days (we have Monday as a day off due to May holidays). More fields may be added. Also I added renderer/preview options section (each group gets a renderer with scale, texture and particular other options).

Juff wrote:
The only condition is that the dependencies remain low. Which XML parser do you plan to use on the engine side ?
I'll be using pugixml its C++, is quite compact (about 6 source files, and that's all what distribution contains) and is very efficient and fast.
I'd love to use Boost for pointers and string algorithms, but okay that's unneeded extra, can stay just to pugixml and Irrlicht/DirectX or Irrlicht/OpenGL1 for linking the player. You might later want to edit adding several player variants for different renderers.
Back to top Go down
http://longcat.info
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeThu May 06, 2010 12:12 pm

Today I've set up a C++ project for particle loading library, spent some time renaming namespaces and unbinding Boost from it (had to rewrite couple of algorithms by hand, but its fine, for now). Idea is that a random developer just drops libSimpleSpark it into his project, and uses CSparkLoader helper class to create particle groups and supplementary objects.

Now, when it has come to creating a simple API for particle loader, I came up with this draft. NOTE: This is a draft, now its end of my workday and I'll be going home, so tomorrow the API will refine and become more or less real and usable. At this moment this is just declaration in *.H file without any code.
Code:
class CSparkLoader
{
protected:

public:
   //! Load from a file. Use static function TFilePath::Create() to construct a TFilePath object
   CSparkLoader (const TFilePath & filename);
   
   //! Parse XML passed as a string
   CSparkLoader (const std::string & xml_contents);

   //! Creates an empty SPK::Group without filling it with models/emitters/
   //! modifiers etc, and configures its basic parameters from XML file
   SPK::Group * CreateGroup (const std::string & group_id);

   //! Creates a SPK::Emitter filling params from named section of XML file
   SPK::Emitter * CreateEmitter (const std::string & emitter_id);
   
   //! Creates a SPK::Model filling params from named section of XML file
   SPK::Model * CreateModel (const std::string & model_id);

   //! Creates a SPK::Modifier filling params from named XML section
   SPK::Modifier * CreateModifier (const std::string & modifier_id);
};


For now I only can think of creating every object separately. Later I will come up with some way to preconfigure creation process, so that you will get a fully configured Group with all models, emitters and stuff in it ready to be dropped into a System and launched on screen. Just not now Smile
Back to top Go down
http://longcat.info
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeTue May 11, 2010 12:01 pm

Moving towards first usable release at full speed.
Today spent most of the day writing the loading/creation code in C++ spark loader, just grabbed an Irrlicht fountain demo and started commenting out creation lines and moving the logic into loader code and XML. So far so good.

Its still lacking coverage, I think about 10% of SPARK functionality is covered so far, but this is bare usable & playable minimum, I have to come with to my boss by tomorrow.

I know you all love forum post with images, here's one more Smile


SimpleSpark editor project Ss3

The code, which uses the library, minus the commented out and not-yet edited lines, looks somewhat like this:
Code:
LSS::CSparkLoader simplespark (LSS::TFilePath::Create ("D:/EED/1.xml"));

//... skipped window creation ...

// this code will be moved somewhere inside the library, for now its exposed to int main()
irr::scene::ICameraSceneNode * cam =
    smgr->addCameraSceneNodeFPS (smgr->getRootSceneNode(), 100.0f, 0.0005f);
cam->setFOV (simplespark.Preferences._Camera_Fov);
cam->setPosition (simplespark.Preferences._Camera_Position);
cam->setTarget (simplespark.Preferences._Camera_Target);
   
float znear = simplespark.Preferences._Camera_ZLimits.x;
float zfar = simplespark.Preferences._Camera_ZLimits.y;
if (zfar <= znear) zfar = znear + 100.0f;
cam->setNearValue (std::max <float> (0.05f, znear));
cam->setFarValue (std::min <float> (10000.0f, zfar));

// here i skip not-yet implemented autocreation of model, emitter, renderer

SPK::Group * particleGroup = simplespark.CreateGroup ("G1", "M1", 2100);
SPK::Model * particleModel = particleGroup->getModel();
particleGroup->addEmitter(particleEmitter);
particleGroup->setRenderer(particleRenderer);

// creating obstacle
particleGroup->addModifier (simplespark.CreateModifier ("ground"));

// here continues original Irrlicht fountain demo


Also... Version 0.3 uploaded if you were interested. Not final distribution, just for your review.
SimpleSparkPlayer is not configured for final distribution, its now fused with my current game project, linking to (modified) Irrlicht version, so trying to build it may take some effort Smile
Download 0.3 HERE
Back to top Go down
http://longcat.info
Darktib
Committer
Darktib


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeTue May 11, 2010 4:27 pm

It looks really good!

BTW, I don't have time to compile it - I will wait for te next version^^
Back to top Go down
Darktib
Committer
Darktib


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeThu May 13, 2010 11:15 am

About the file format : now my editor is able to save xml files, but the xml structure is different from yours because of major differences in editor architecture.

It looks like:
Code:

<?xml version="1.0" ?>
<doc type="spes" version="1" spkversion="1.05" software="Spark Particle Editor" />
<zone name="center" lock="1">
    <plugin id="Point Zone#zone#D:/SPARK SystemP/Editor v2/App/Plugins/Plugin1.dll" />
    <references />
    <properties>
        <prop name="posX" value="0" type="double" />
        <prop name="posY" value="0.02" type="double" />
        <prop name="posZ" value="0" type="double" />
    </properties>
</zone>
<zone name="ground" lock="1">
    <plugin id="Plane Zone#zone#D:/SPARK SystemP/Editor v2/App/Plugins/Plugin1.dll" />
    <references>
        <ref id="obstacle" />
    </references>
    <properties>
        <prop name="nX" value="0" type="double" />
        <prop name="nY" value="1" type="double" />
        <prop name="nZ" value="0" type="double" />
        <prop name="posX" value="0" type="double" />
        <prop name="posY" value="0" type="double" />
        <prop name="posZ" value="0" type="double" />
    </properties>
</zone>
<modifier name="obstacle" lock="1">
    <plugin id="Obstacle Modifier#modifier#D:/SPARK SystemP/Editor v2/App/Plugins/Plugin1.dll" />
    <references />
    <properties>
        <prop name="active" value="true" type="bool" />
        <prop name="bouncingratio" value="0.6" type="double" />
        <prop name="friction" value="1" type="double" />
        <prop name="local" value="true" type="bool" />
        <prop name="trigger" value="8" type="int" />
        <prop name="zone" value="ground" type="QString" />
    </properties>
</modifier>

The main difference is your format use a tree, and mine a list...

Despite this format is different and will be the 'official' format for my editor, my editor will natively support your format too.

To differenciate file formats when reading, I advise you to put the tag
Code:
<doc type="spes" version="1" spkversion="1.05" software="Spark Particle Editor" />
at the start of the generated file. A small explanation on what this tag gives:

  • the format of the file - here 'spes' stands for Spark Particle Editor Scene
  • the version of the format 'version'
  • the version of spark. Thus it will be possible to store SPARKv2 data or SPARKv1 data in files
  • the program which created the file. It is - I think - an optionnal parameter, not very important
Back to top Go down
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeThu May 13, 2010 12:13 pm

Darktib wrote:
About the file format : now my editor is able to save xml files, but the xml structure is different from yours because of major differences in editor architecture.

The main difference is your format use a tree, and mine a list...
According to XML standard, there must be only 1 root node, that is <System> in my file format.
Your format is perfectly functional, except that some XML readers will display an error or fail on it, try open your XML in the Internet Explorer, you will see.

Darktib wrote:
Despite this format is different and will be the 'official' format for my editor, my editor will natively support your format too.
Please give it some days, until I release a working version, then you can take an editor, create everything of every type, save it, and see how the file will look like.

Also, my format allows having multiple groups per file, grouped by a <System> tag. Its there just for grouping, each <Group> can be extracted from dataset and created separately. And each <Group> has own set of animators, interpolators, modifiers, zones etc.

Darktib wrote:
To differenciate file formats when reading, I advise you to put the tag
Code:
<doc type="spes" version="1" spkversion="1.05" software="Spark Particle Editor" />
at the start of the generated file. A small explanation on what this tag gives:

  • the format of the file - here 'spes' stands for Spark Particle Editor Scene
  • the version of the format 'version'
  • the version of spark. Thus it will be possible to store SPARKv2 data or SPARKv1 data in files
  • the program which created the file. It is - I think - an optionnal parameter, not very important
You proposed for me same tag, as your example has, where is the difference? Should I add different abbreviation, like "libss" or "ss", or different editor name, like "SimpleSpark"? Or different format version number?
Also, this <doc> tag breaks the XML correctness, adding second root node. What if we use some different tag type, like <!DOCTYPE> or <?something?> or what happens if i put <doc> inside of my <System> tag?
Back to top Go down
http://longcat.info
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeThu May 13, 2010 12:18 pm

Changed the API today, added an one-stop shop for everything:
Code:
    //! A complete solution to your particle group building needs. Lists
    //! are strings separated by semicolon
    //! An empty parameter will attempt to take first available item in
    //! dataset. List set to "*" will take every available item
    SPK::Group * PrebuildGroup (
        const Str & group_id,
        const Str & model_id,
        const Str & renderer_id,
        const Str & emitter_list,
        const Str & modifier_list,
#ifdef SIMPLESPARK_IRRLICHT
        irr::IrrlichtDevice * device
#endif
        );

For example SimpleSparkPlayer tries to create every group:
Code:
ParticleSystem = SPK::IRR::IRRSystem::create (SceneManager->getRootSceneNode(),SceneManager);

for (LSS::CGroupData::MapType::iterator g_iter
        = SimpleSpark->Groups.begin();
    g_iter != SimpleSpark->Groups.end();
    ++g_iter)
{
    SPK::Group * group = SimpleSpark->PrebuildGroup (
        g_iter->first,  // group id
        "",    // model id, "" - use first available
        "",    // renderer id, "" - use first available
        "*",        // emitter list,  * - use all available
        "*",        // modifier list, * - use all available
        Device
    );
       
    if (group)
    {
            ParticleSystem->addGroup (group);
    }
}
Back to top Go down
http://longcat.info
Darktib
Committer
Darktib


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeThu May 13, 2010 1:08 pm

kvavks wrote:
According to XML standard, there must be only 1 root node, that is <System> in my file format.
Your format is perfectly functional, except that some XML readers will display an error or fail on it, try open your XML in the Internet Explorer, you will see.
You're right, I will change it.
I realize that the tag name 'doc' is not very appropriate; a name like 'scene' would be better I think. So, I think I could rename tag 'doc' to 'scene', and put everything in it. Thus, there will be only one top level tag (the 'scene' tag) and it will be standard compliant.

kvakvs wrote:
Please give it some days, until I release a working version, then you can take an editor, create everything of every type, save it, and see how the file will look like.
That was my intention Wink

kvakvs wrote:
You proposed for me same tag, as your example has, where is the difference? Should I add different abbreviation, like "libss" or "ss", or different editor name, like "SimpleSpark"? Or different format version number?
Also, this <doc> tag breaks the XML correctness, adding second root node. What if we use some different tag type, like <!DOCTYPE> or <?something?> or what happens if i put <doc> inside of my <System> tag?
It was an example, you can put the values you want in it. But, now, because there must be only one top level node, I think the best option is simply to check the name of this node, 'system' for SimpleSpark, 'scene' for Spark Particle Editor. But for the Spark version, I think the best option is always to specify it in the file.

For <!DOCTYPE> and <?something?>, the parser I use (TinyXML) cannot read them - and I don't want to use QtXml, which is too heavy I think.

Last but not least, all file management will be pluginable - if somebody wants to add a new file format, he just have to write a plugin and that's it.

I like your one-stop shop API, it could be very useful for advanced loading.

edit: now the format looks like:
Code:
<?xml version="1.0" ?>
<scene type="spes" version="1" spkversion="1.05" software="Spark Particle Editor">
    <zone name="center" lock="1">
        <plugin id="Plugins/Plugin1.dll/point" />
        <references />
        <properties>
            <prop name="posX" value="0" type="double" />
            <prop name="posY" value="0.02" type="double" />
            <prop name="posZ" value="0" type="double" />
        </properties>
    </zone>
    <zone name="ground" lock="1">
        <plugin id="Plugins/Plugin1.dll/plane" />
        <references>
            <ref id="obstacle" />
        </references>
        <properties>
            <prop name="nX" value="0" type="double" />
            <prop name="nY" value="1" type="double" />
            <prop name="nZ" value="0" type="double" />
            <prop name="posX" value="0" type="double" />
            <prop name="posY" value="0" type="double" />
            <prop name="posZ" value="0" type="double" />
        </properties>
    </zone>
    <modifier name="obstacle" lock="1">
        <plugin id="Plugins/Plugin1.dll/obstacle" />
        <references />
        <properties>
            <prop name="active" value="true" type="bool" />
            <prop name="bouncingratio" value="0.6" type="double" />
            <prop name="friction" value="1" type="double" />
            <prop name="local" value="true" type="bool" />
            <prop name="trigger" value="8" type="int" />
            <prop name="zone" value="ground" type="QString" />
        </properties>
    </modifier>
</scene>
Back to top Go down
Juff
Developer



Messages : 539
Date d'inscription : 2009-07-14
Age : 42

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeMon May 17, 2010 4:35 pm

Regarding the xml file format, i think it should follow the spark philosophy : objects (registerables) can be organized in a tree but can also be shared within the system. Therefore the tree should be able to contain only references to objects defined elsewhere.

I think having one and only one system per xml files is not a too restricting limitation and allows better organization :
So something like that seems good to me (pseudo xml only showing the hierarchy) :

Code:

<package> // or scene or root or whatever
  <system name="fire"> // mandatory
      <group name="flames">
        <emitter>...</emitter>
        <emitter>...</emitter>
        <renderer>...</renderer>
        <modifier ref="gravity></modifier>
      </group>
      <group name="smoke">
        <emitter>...</emitter>
        <renderer>...</renderer>
        <modifier ref="gravity></modifier>
      </group>
  </system>
  <modifier name="gravity">...</modifier>
</package>

And then a System* loadSystem(const string& filename) allow to retrieve the system. This system can then be used as a base system to construct all systems of the same type.
Back to top Go down
http://spark.developpez.com
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeMon May 17, 2010 5:00 pm

Juff wrote:
Regarding the xml file format, i think it should follow the spark philosophy : objects (registerables) can be organized in a tree but can also be shared within the system. Therefore the tree should be able to contain only references to objects defined elsewhere.
I will see how to reorganize my data structures to allow external linking between groups. Just might take a while until I'm granted more work hours for this improvement. Cause this is not my homework at spare time, I'm being paid by my employer to do this stuff Smile

Juff wrote:
I think having one and only one system per xml files is not a too restricting limitation and allows better organization.
There might be one or more systems. Like one per scene, and I have 3-4 scene layers active at the same time, there might be sparkling stars following an inventory item that'd be a SPK::System in UI scene layer, and at the same it might be glowing & sparkling on clickable zones in totally different SPK::System, in game layer. I might create sparkles for them from the same XML container or different containers. SPK::System has no data fields in my data model, I don't store any info about SPK::System, so I just wrap various data within a <System> tag, because there is need for a single XML root tag. Could as well rename it to <Package>.

Juff wrote:
And then a System* loadSystem(const string& filename) allow to retrieve the system. This system can then be used as a base system to construct all systems of the same type.
System is just a collection of groups, without any important fields. I don't construct systems. But I construct everything else. Also because, as mentioned above, same sparks may spawn in different systems, in different scene layers, they can't be grouped on a data level.
Back to top Go down
http://longcat.info
Juff
Developer



Messages : 539
Date d'inscription : 2009-07-14
Age : 42

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeTue May 18, 2010 2:44 pm

Well, system are important objects. They are the ones that allow to interface with game engines and therefore to integrate spark within various engines. Groups are mainly where all computations and important stuff happen but systems are mainly what users are interacting with.

Taking your example, i dont see why it is not compatible with systems loading. you load the system in the xml once and then duplicate it to create the all the systems you need. It has the same effect as duplicating the group then attaching it to a system. Having only one group per system makes sense.

Anyway, in spark 2, groups will be a lot more dependant to their systems, they will be created within them and wont be able to be manipulate directly (update and render). The interface will be clearer that way and it ll allow some more advanced stuff (like groups from the same system interacting with each other...).
Back to top Go down
http://spark.developpez.com
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeTue May 25, 2010 4:24 am

Just an update (a big one i think).

Version R0.4.
Series of improvements.
Interpolator graph editing mode using System.Windows.Forms.DataVisualization.Charting (i checked, Mono seems to have it as well).
Client library is entering test phase in a real Irrlicht-based 2d game.

Grab for reviewing (and try to use if you dare)
http://lytovchenko.ca/simplespark/simple_spark.zip
Back to top Go down
http://longcat.info
Darktib
Committer
Darktib


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeWed May 26, 2010 2:29 pm

Simple to compile, a very good point!

But there are some gui bugs with the path to player exe (which remains at fixed position).

Keep the good work!
Back to top Go down
kvakvs

kvakvs


Messages : 32
Date d'inscription : 2010-04-13
Localisation : Ukraine

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeWed May 26, 2010 4:14 pm

Darktib wrote:
But there are some gui bugs with the path to player exe (which remains at fixed position).
Player path is editable and should be saved to the registry (application settings section in C#)
If its not saved between editor runs, then its really a bug.

Darktib wrote:
Keep the good work!
o, i will Very Happy
Back to top Go down
http://longcat.info
Darktib
Committer
Darktib


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeThu May 27, 2010 1:45 pm

For the bug, it was purely a graphical bug, by position I meant (x,y) coordinates and not path (when you resize the editor)^^ Wink
Back to top Go down
Darktib
Committer
Darktib


Messages : 389
Date d'inscription : 2009-07-20
Localisation : A coté de Paris

SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitimeMon Jun 07, 2010 12:24 pm

Just an information: my editor is now able to edit the scene in realtime, except all spark elements (e.g. zone, groups, etc. properties)

Screenshot:
SimpleSpark editor project 100607061539170926183365

Link: http://www.mediafire.com/?myynmnkizmw

There is no save function for the moment...

Enjoy!
Back to top Go down
Sponsored content





SimpleSpark editor project Empty
PostSubject: Re: SimpleSpark editor project   SimpleSpark editor project Icon_minitime

Back to top Go down
 
SimpleSpark editor project
Back to top 
Page 1 of 2Go to page : 1, 2  Next
 Similar topics
-
» Particle editor
» Hadron3D a Particle Editor for SPARK2
» Icewhirl : Particle editor for SPARK
» Trying to compile project using SPARK

Permissions in this forum:You cannot reply to topics in this forum
 :: English Forum :: Evolution (en)-
Jump to: