1,151

(150 replies, posted in Engine)

cool smile thanks !
ho, I added the meshBinLoader the last time, that's why it loaded smile
sure you can submit the VS2010, just put it in a directory named VisualStudio2010

1,152

(150 replies, posted in Engine)

there is no problem with making a temp, we don't need to keep it after, it can be deleted after send to the package.

1,153

(150 replies, posted in Engine)

yes, no problem, you can submit directly

1,154

(2 replies, posted in Engine)

ok, basically MGui was designed to build maratis editor and is not designed for games, there is probably some code that can be used to create a more game suitable version, but right now it is probably very "system" and it force you to create the interface by code. Also, as you mention it is not dynamic, but it could be. The data system is just not using MEngine (only MCore).

I did some interface for games, and, as a designer I was more attracted to the freedom of 3d and of a visual editor. We can use Maratis to put "2d" meshs items using the ortho view (bottom view for ex to have x-y coords). The problem is the interaction that then need to be coded, by script or by c++. An interesting technique would be to create a bank of GUI behaviors (Menu, Button etc) that can reduce the code need and be setup visually.
> Like you sugest, to not have to go to blender to model a simple quad with a texture, we could add a meshLoader that takes a simple image file (jpg, gif or/and psd) and create a flat quad automatically. The rest can be done with a 3d tool if you want a real 3d button.

- child windows : yes you can create multiple screen using viewports and scissor test (with MRenderingContext).
> You can do that in a custom MGame class, the draw function.
> You can also draw multiple scenes at the same time but with different sub-window : your profiler text can be a MOText in a separate scene that you update.


As a general statement, what is missing today is some pre-coded behaviors, I only created very basic ones like Follow and Look-at. With a bigger bank of standard behaviors, it will reduce some code needs.

1,155

(150 replies, posted in Engine)

smile cool

the loader doesn't add the mesh to the level, but it adds the textures.
The main reason to create another level was more to be able to clean it after loading each mesh (to not use too much memory).

And by using engine->getMeshLoader(), if someone adds a custom mesh loader it will still be able to convert it to bin.

1,156

(150 replies, posted in Engine)

Hi, yes we need to convert all mesh in the mesh directory and sub-directory (i added an option to scan recursive in readDirectory, it returns global filenames if recursive)

You can create a temporary level if you don't want to touch the one in memory and load file by file :
Something like (doing by head, code is not 100% sure) :


MLevel * currentLevel = engine->getLevel();
MLevel * tempLevel = new MLevel();
engine->setLevel(tempLevel);

MMesh * mesh = MMesh::getNew();

(for all meshs)
{
    mesh->clear();
    if(engine->getMeshLoader()->loadData(filename, mesh))
        exportMeshBin(filenameDest, mesh);
    tempLevel->clear();

    (same for armatureAnim, texturesAnim and MaterialsAnim files)
}

mesh->destroy();
engine->setLevel(currentLevel);
SAFE_DELETE(tempLevel);


It will unfortunately load textures also for now,
but I will add an option to the xml mesh loader this week-end to not do it

strange... is it on windows ? windows 7 ? (I only have xp)
on macosx, there is something called inactive memory, when debugging memory xcode show that the memoy used is 32mb, but the monitor shows 100mb (active+inactive). Is it like that with win 7 ?

you was right for the sleep, it put the cpu usage down.

is it not working also when exporting from Blender ?
(at least a good point for Maratis)

I tried to load YoFrankie when packaged, and the memory seems to react approximately the same, from 10 to 32 to 10, without bigger picks than the unpacked one. Good to see smile

I'm curious to see more of the comparison and test with big meshs and maybe unity. I also would like to be sure about what is happening with the used memory you recorded.

To check the svn version, I ran it with xcode and debug instruments, and opened/closed YoFrankie example,
Maratis was using 10mb at start > 32mb with YoFrankie, it came back at 10mb when closed.
The instruments recorded 4 leaks, basically 192bytes from Maratis and 400bytes from Bullet physics.

There is maybe some leak linked with the big mesh you use but I don't understand...

In the short term what we need most is at least a global check of the memory using an existing debugger/profiler, there is some ready made and visual tools, what I mean is we should spend the energy to do some investigation first. I don't think there is huge leaks as it was checked for the previous release, but it's a long time it has not been made.

Also, doing benchmarks like you did with the big mesh is very important.

You said you used Sponza camera, is there a chance that the sponza mesh was still in memory ?
The website release of Maratis with Yo-frankie demo opened uses 36mo (I don't have a svn build where i am)

Some memory test would be very nice to do, there is not some build-in tools to debug it ? (I use one with xcode, but i don't know if it exist with visual or on linux)

still, with a box and a script, there is something wrong, did you used the last release or your svn build ?

yes, someone told me about this sleep() thing, there is not, in fact I'm not sure how to set the duration of it

thanks for the testing,
about the cpu usage, I noticed that it was high, I don't know how to reduce that it happen even with an empty program (we probably need to add a wait to the thread or something)

but for the memory usage, Im surprised, at start it should not take more than 25mb (not 71)
Maratis takes 22mb on my windows for ex

1,165

(14 replies, posted in General)

we should do some speed testing, I'm not so worried, in one studio we made a game for DS that was reading all the data from a zip (uncompressed) using zlib, it was working very good and NDS is reaaaly slow. I think it's what npk does too. Maybe the encryption can make it slower ?

1,166

(14 replies, posted in General)

For the size of the psp ram, it also depend of the demo you want to do, if it's small it's ok, but it is good to anticipate the limitation if it's possible (it can be blocked by DevKitPro anyway).

1,167

(150 replies, posted in Engine)

I would be surprised that it's taking much ram, it's using zlib, but we should test it yes. With an example heavy in textures we can compared maratisPlayer used ram with package and without.

For the loading, good, I should also add a callback in maratis, at least to call lua and update the window.

1,168

(14 replies, posted in General)

(I should write it in the package topic) when a package is opened it takes ram ?

1,169

(14 replies, posted in General)

ho yes, that was that.
The problem is when the data is inside the program and using ram, you still need to load the game data in the ram.
Lets say your game, when loaded, use 16mb max of loaded data and 32mb of stored data, it will be out of the 32mb PSP-1000.

1,170

(14 replies, posted in General)

If I was you I'll first check the maximum data that can be put into the executable, it was a problem for me on devkitDS.
It's maybe different on devkitPSP...

1,171

(14 replies, posted in General)

smile yes, take some rest man..

This business of building data into the executable is also a homebrew stuff, normally you don't need.
There is probably a way to not be forced to do it even with DevKitPro, adding to the fact that you have limited space (I think it was 4mo for DevKitPro DS).

1,172

(14 replies, posted in General)

I'm sure it will interest some users, after I don't know what is the performance of DevKit,
some years ago I used Nintendo DS homebrew before using the official kit, and it was really not the same, but it helped me building a prototype.

Just about the build, the iOS publishing example doesn't use scons at all, just xcode. I'm curious about premake, it sounds quite good, and updating all the projects when there is new versions of Maratis is currently very time consuming.

I build the last svn version :
http://www.maratis3d.org/download/M_Lin … -rev93.zip

I'm curious to see if it works for you (I just ran python scons.py)

1,174

(150 replies, posted in Engine)

smile cool,
for the key, you can just pass a string, each manager will interpret it the way it need.

For osx yes, it is working like that, but it also possible to put the data/dylib into the Resources/ app sub-path, so it is more hidden.
I tested by copying it by hand.

[EDIT] it's working on my Linux : http://www.maratis3d.org/download/M_Lin … -rev93.zip

1,175

(150 replies, posted in Engine)

Done ! smile
wow, that was huge, thanks a lot for the big work Nistur !

I tested on mac and windows (not on linux), and it seems to be working.
There was a bad access on mac, because the publisher was accessing Maratis::getInstance() before everything was started, so I made MPublisher a singleton. I finalised the mac .app publishing and did a general cleaning.

But I didn't had to time to start the level bin. Maybe next week-end.

Thank you again, that was huge !
If you want to improve the publishing code, you can now commit directly on svn.

Cheers,
Anaël.