1,101

(12 replies, posted in Editor)

Hi,

how is the uv mirrored ?
can you show us a screen-shot ?

1,102

(15 replies, posted in General)

For the texture property I don't know, it maybe require to use a special bullet physics feature.
Also, in 3d hardware textures are loaded into the 3d card memory, trying to access texture pixel in software would require to also keep the texture loaded in normal memory. You could use vertex-color, using ray-tracing with a ray going down from the player is easier than reading a texture pixel.

But right now for sure you can use mesh-volumes and detect if you are inside to change the friction, speed etc.
You can also divide the collision mesh and define the correct friction value for each portion.

1,103

(3 replies, posted in External Tools)

Cool smile
No problem, my fault, I didn't plan it the right way, in the next release the blender export script won't be published with Maratis package (to avoid the version problem)

1,104

(3 replies, posted in General)

For now the best is to divide the scene in multiple objects so that they can be detected out of the screen,
the engine is Maratis one, called MEngine (itself using Maratis core MCore), it is a virtual engine, it uses OpenGL on desktop and openGLES on phones (iOS). It could theoretically uses other things like directx, console systems or software engines.

Games are coded in lua script or/and c++ pluign (using the engine functionalities)
If you really need LOD, you can always do a little c++ code that hide/show different parts of a mesh (called subMesh) according to the camera distance. There is a decimate modifier in Blender that can be used to generate manually multiple LOD models.

1,105

(3 replies, posted in General)

we can't see your message,
but I guess you want LOD for your game, there is no build'in lod feature,
it has to be done manually for now, but there is a view elimination for big scenes (it only draw what visible).

1,106

(3 replies, posted in External Tools)

hi,

yes you need to select the zip file directly,
did you try with the last version downloadable separately on maratis website ?
> http://www.maratis3d.org/download/marat … bl-257.zip

I didn't tried yet on blender 2.62, I'll make a try to see if they didn't change something on python.

1,107

(5 replies, posted in Gossip)

Hi, yes I wanted to send you a mail to thank you for libnpk, it's a very good lib, it was very pleasant to implement,
we are close to finish the packaging system, there is just one thing missing about the level files (the working files are xml but it need to be a binary for the final packing inside npk).

Nistur implemented a virtual context to manage files to be able to use npk or stdlib with the same interface :
http://code.google.com/p/maratis/source … gerNPK.cpp
(plus the parent code inside MCore)

svn is on google code if you want to have a look :
http://code.google.com/p/maratis/

Thank you
Anaël.

Hey, I just remember Vegas did a tutorial on this here :
http://forum.maratis3d.com/viewtopic.php?id=98

Maybe it can help.

1,109

(7 replies, posted in General)

there has been some users that needed to update their 3d drivers to be sure to have opengl.
is it on windows ?

What is this "Game Properties" tab ? is it a script generating a uv-offset animation ?

The uv-offset is what is used in Maratis for this kind of thing :
http://www.maratis3d.com/wp-content/uploads/2011/01/10.jpg

1,111

(48 replies, posted in General)

Ho, and for your first question, in the shaders example, the "standardDSEN" shader is the same as the one hard-build into Maratis (just less optimized according to the textures really used) :

http://www.maratis3d.org/?p=548

1,112

(48 replies, posted in General)

Hi,

I started an example of post processing some time ago, but I didn't had time to finish it to publish on the website,
it also need a recent version of Maratis from svn.

It is possible to use render to texture and shaders in c++ to do post processing,
here is a (work in progress) example blurring the frame :

(custom MGame::draw)
http://www.maratis3d.com/code/post-process/

I found on google image, I think it's a japanese website so I don't understand anything, but it seems they compare different rendering engines (not real time expect for Maratis). The scene looks very high in triangles.

Just found on the net, someone using Maratis as a renderer smile :

http://dlsite.blogimg.jp/RG12372/imgs/7/2/7270774f.jpg

Nistur edit: update image URL as original one expired

1,115

(37 replies, posted in Engine)

For the version number, passing it inside StartPlugin will break the current plugins, it could be either using MEngine or a global variable (a define like M_ENGINE_VERSION ? ; could a macro update it depending on svn version ?).

For MGui, basically we should remove all the new and delete direct calls and replace it, like for MEngine by ::getNew() and ->destroy() class function. MaratisUI.cpp should be updated too to not use "new" but getNew when creating the gui.

1,116

(37 replies, posted in Engine)

Hi,

I understand, I also have a lot of work those days and was not able to finish the level bin thing, I'm hardly find time to respond to mails and clean the forum (lots of bots...).

The version thing can be a good idea to avoid crashing, how do you see it ? MEngine returning a version value ?

For drawing a child window, there is different ways, by making MGui dynamic yes, but I'm not sure the memory management is safe for shared library right now, as it was always static. If you create a new window from a plugin, it won't be deleted the right way when the plugin will be unloaded.

The other way from a plugin is to create a custom MGame class and change the draw() function to write text.

Finally, for drawing things directly it is also using MGame::draw class,
you can simply use MRenderingContext :

    // to draw in 2d

    MRenderingContext * render = MEngine::getInstance()->getRenderingContext();
    render->setViewport(0, 0, width, height);
    
    // set ortho projection
    render->setMatrixMode(M_MATRIX_PROJECTION);
    render->loadIdentity();
    
    render->setOrthoView(0.0f, (float)width, (float)height, 0.0f, 1.0f, -1.0f);
    
    render->setMatrixMode(M_MATRIX_MODELVIEW);
    render->loadIdentity();

    // draw a quad

    MVector2 vertices[8];

    render->disableNormalArray();
    render->disableTexCoordArray();
    render->disableColorArray();
    render->enableVertexArray();

    vertices[0] = MVector2(position.x, position.y);
    vertices[1] = MVector2(position.x, position.y + scale.y);
    vertices[3] = MVector2(position.x + scale.x, position.y + scale.y);
    vertices[2] = MVector2(position.x + scale.x, position.y);

    render->setVertexPointer(M_FLOAT, 2, vertices);
    render->drawArray(M_PRIMITIVE_TRIANGLE_STRIP, 0, 4);

You can use all the core drawing functions of MRenderingContext like that and mix it with the engine drawing.

The problem of including Love2d is that the drawing will not use MRenderingContext, it can work on the current Maratis as it uses OpenGL but will break the portability scheme.

1,117

(2 replies, posted in Engine)

I think the blender export plugin could be improved to be able to do something more "realtime", for now it only export the selected objects when you press "export".

In python we could catch some interesting Blender events, like file saving or scene modification to automatically export the meshs of the scene using object names or layers.

1,118

(47 replies, posted in Tutorials/Examples)

Hi,
something simple for stairs is to put a flat plane on top of the stairs and set it invisible (I did it before it works pretty ok).

1,119

(47 replies, posted in Tutorials/Examples)

Cool, I'm really waiting to see a little game moving smile

1,120

(1 replies, posted in General)

Hi,
welcome smile

There is a plugin for Blender to export mesh and animation,
you can find a first introduction here : http://www.maratis3d.org/?p=277

And there is more examples, and some video explanation there :
http://www.maratis3d.org/?page_id=53


About Android, it is possible in theory with a bit of programming using Android NDK (c++ android sdk),
the engine is compatible and there is an OpenGLES port. However there is actually no ready-made or tested version like for iOS.

1,121

(5 replies, posted in General)

In lua (script) :

object = getObject(« objectName »)
changeAnimation(object, animationId)

or in c++, it's more advanced but more complex

Have a look at the examples inside the release, "Jules" example uses animation,
you should look at the script to see how it works, it's very simple.

1,122

(5 replies, posted in General)

Hi,

for now, you have to export from Blender :
http://www.maratis3d.org/?p=277

It supports bones animation, material animation and uv-texture animation (texture offset/scale).

You can also find more tutorials here :
http://www.maratis3d.org/?page_id=53

or in this forum (tutorial/examples section)

1,123

(47 replies, posted in Tutorials/Examples)

Hi !
waw, that's very good, I like the way you write,
very detailed and clear. And nice photo with the ruler smile

As I saw it in your tutorial, I'll just clarify some points about time in Maratis,
- the update functions (of MGame and so of MBehavior) is always synchronized at 60fps, it does not use a delta, only the drawing function is sometime canceled to give the priority to the update logic.
- If you want a tick, to be platform dependent you can use "engine->getSystemContext()->getSystemTick();" (milisecond)

Waiting to read more,
thanks !

1,124

(3 replies, posted in Engine)

Normally, you should be able to use the fixed renderer, but as ManualUse is hard coded, you have to modify the code a bit, and the rendering will be without shaders.

in the code of ManualUse replace MStandardRenderer by MFixedRenderer (im not sure if all the headers are there but it's basically that)

1,125

(3 replies, posted in Engine)

it says GL_VERSION version 1.4,
shaders are only available on openGL 2.0 and plus,

or your card is not compatible opengl 2.0 or the drivers.
It's hard sometime to find the good drivers for linux, if you have an nvidia, there is sometime vendor drivers (but not always up to date with recent linux (it's my problem on my home linux))