(4 replies, posted in Off-Topic)

Yeah I speak to Nistur almost daily in #Maratis IRC smile He is definitely not gone


(36 replies, posted in Scripting)

Seems like you can't do scalar/vector multiplication currently. Please add this . It should be fairly trivial. Just assume that if the metatable of one component is not a vec3, then it's a scalar.


(0 replies, posted in Scripting)


It would be really (really!) useful to have more keys available for scripting. For example, the comma key is missing (at least in the docs). Why would I need the comma key? Well I use the Dvorak keyboard layout, and comma there is w on qwerty. So it's kind of unhandy if I have to set my keyboard to qwerty everytime I test out the game. So please add more keys smile



(46 replies, posted in General)

Suhweet smile

Let's plug the heck out of this!


Cool, I hope it works out! Regarding the Icon I'm not a 100% sure, but I think the Windows version of Maratis has an icon, I don't know where you can find it though, you should contact Anael about it!


(13 replies, posted in Engine)

I can report today that when downloading Maratis for openSUSE 12.3 it worked fine out of the box after installing some 32 bit versions of dependencies for maratis via the package manager.


Howdy, I would like to suggest that Maratis could use the openSUSE build service for distributing Maratis SDK for linux. Why? Well because it would make building Maratis much less panful for linux. We'd get both 64 and 32 bit versions easily and it would provide __repositories for pretty much all major linux distributions__, meaning that we would get Maratis updates right in our systems' package manager.

I think it's without a doubt something to consider!

Have a look: http://build.opensuse.org/


(13 replies, posted in Scripting)

Ireheart: The reason I mentioned Angelscript is because it seemed to be quicker and closer to the metal when it came to ease of binding to C++ APIs. But on further research I found out that it doesn't natively bind to a C++ class so that you can inherit it from AngelScript code so it turns out it was less great. Squirrel on the other hand using the Sqrat library seemed ridicusously easy to bind to C++ APIs so that you could inherit from squirrel code. And it's faster than both AngelScript and Lua. Don't think I'll be spending any time on that though for a while but it sure would be interesting to bind the full C++ API to Squirrel.

anael: Well I guess the larger goal with having multiple scripts is that each script should more or less be independent from the other and as re-usable as possible. That way you could run them concurrently. And if you want even further nice stuff, implement message passing between the different threads/scripts. It would also be nice to be able to attach a script to an entity (which I guess would be a behaviour in maratis).

The reason that I feel that using dofile for this behaviour is bad is mostly for semantic reasons building this huge tree of scripts just feels a bit wrong and also clutters the lookup table (or whatever you'd call it). It also seems like if more files calls dofile on the same file they effectively copy all the code into them selves, I guess it's the difference between #include and import (modules vs headers). I'm not quite certain about how dofile works, if I make a lua module the way you would normally make a module in lua (module(..., package.seeall)) would it get imported/required properly? Unless I've possibly (and probably) misunderstood lua wouldn't it say that the script file is first this module from the dofile, then the other and then that one etc until you reach the final one and then the script would be the module of that file (as if I'm using the module function multiple times in a script). I might be wrong though.

Well yeah basically what I'm trying to communicate is that I'd basically like to have full access to the API you can use in C++ and pretty much the same power as far as fully accessing the core engine goes (not power as in I can reach the hardware and deploy malware via exploits etc etc), but from a scripting language. Because If I had access to it, I could easily write reusable behaviours like you would in C++. But with less pain and in less time.

For some further thoughts on AngelScript I had after doing some research today, have a look at what I said to Ireheart. Anyways, syntax has nothing at all to do with why I find AngelScript (or any other scripting language for that matter) more attractive than C++ for logic. It's more because I can rapidly make changes to a script and see the results immediately without recompiling or anything like that. Plus the fact that AngelScript has a C++ syntax does not lower it to the level of C++. Again though, further research showed that Squirrel is supperior when it comes to pretty much everything. Another benefit of using a scripting language for logic rather than C++ is because it opens the possibility for awesome one click export to multiple platforms. You could package maratis so that it has access to MaratisPlayer executables for all supported platforms and then when you click export to say Mac from linux it will grab the MaratisPlayer stuff for mac and you now, export all the things! And additionally when exporting you can add additional optimizations like precompiling scripts to bytecode (which will make people who are afraid of having their code visible happy, myself not included for the afraid part, I'd be happy about the saved processing time). I suppose the MaratisEditor also could go ahead and not cache scripts and maratisplayer cache scripts for gained performance. You know, things like that. I could pretty much just click export to Mac and trust that the game now runs on Mac (won't even need do add a bunch of ifdefs for different platforms) without having to boot OSX (or even owning a Mac!) and compile all my behaviours (and if I'm really paranoid, send it to a mac user and see how it runs) since it's already compiled to cross platform bytecode.

I don't know if I'm coming through here, but for me being able to access full Engine API from some awesome scripting language like Squirrel to write behaviours seems godlike in many ways.


(13 replies, posted in Scripting)

Iceheart: Well okay fine, I haven't used those engines but it sounds like a good way to do it. Although I'm not sure what you mean by repeating it in Unity though. You can define behaviours easily in Unity iirc (I don't really use Unity but I've played with it).

anael: Well yes, like I said you can emulate it with dofile, but that ends up being really messy. The point I'm trying to make is that with the speed of todays computers it's really fine to have the engine in C++ and handle the logic in scripts. Development efficiency has for the most part become more important than game performance (since it's usually fine, and if not, THEN port the hogs to something like C++). The scripting API should really be almost as robust as the core API through C++. I know C++ fairly well so it's not that I'm afraid of it. I just want to be able to move forward quickly. Something that might be an option though wold be to connect the entire C++ API to AngelScript as some kind of plugin to Maratis. As that requires much less work than designing a Lua API.


(4 replies, posted in Scripting)

Do you get any console output? Or is there perhaps a way to make Maratis more verbose. Or are we dealing with a segfault here? I'm assuming that we have access to all of Lua stdlib in Maratis because why wouldn't we.


(13 replies, posted in Scripting)

Hi, I would like to suggest that you please reconsider adding the ability of attaching multiple scripts to projects and scenes. It would make scripts clean and very modular which is a very good thing. I know that it can be emulated (kind of) with dofile, but that is very (very) messy IMO .

What I mean by adding to projects AND scenes is basically that you add scripts to a project and it's available to all scenes, but scene scripts are local to the scene itself so you can do level exclusive scripts (maybe you want to trigger stuff when the player is somewhere for example!). Maybe this would require some modifications to the scene editor, I don't know, I'm literally JUST getting back into Maratis smile



(10 replies, posted in News)

Oh cool! This passed me by, seems like Maratis has improvet a lot since last time!


(36 replies, posted in Scripting)

Delta Time: Ah I see. But what if an update takes more time than expected? Wouldn't that have implications on the script updating? If so, still a good idea to have delta time. Because then even if updates slow down it will update values according to how much time since the old update smile

Well, if we want a class system we should really take a look at adding Squirrel as a scripting language. Squirrel is incredibly light weight and has a lot of nice features. It's a lot like Lua, but a bit more familiar if you've used C++, C#, Java etc. It has tables and comes with classes! I personally prefer much compared to Lua and think it's quite a spectacular language! Lua is good, but Squirrel takes the good from Lua and adds other goodies too big_smile If you read some of what the developer says, you'll notice that he loves Lua - but has some valid criticisms!


(35 replies, posted in News)

Is there a good reason for this? It's kind of good to be able to run your game in windowed mode too, for many. Including when developing smile


Anyways it would be really nice to have the ability to do mouseVisible(false) in a Lua script!


(35 replies, posted in News)

Seems like the Linux version doesn't hide the mouse when playing. Is this some change that I need to know about or maybe a bug?


(35 replies, posted in News)

Suh-weet! big_smile


(36 replies, posted in Scripting)

Will the locked hz work even at framerate drops?

Also regarding vector math, I've started implementing Maratis vector library here: https://github.com/BitPuffin/MLuaUtil/b … /MVec3.lua

Keep in mind though that I haven't even tested it yet. And I'm not that good at Lua tongue


(3 replies, posted in Scripting)

Thanks! smile


(36 replies, posted in Scripting)

Well basically all kind of vector math functions for the things that getPosistion returns (a table of 3 elements, 3d vector tongue). Maybe some matrix math too? But I don't know if it has any use in the Lua api. I know for sure that Vector math is vital though, right now I have to do that stuff by myself which is a bummer.

Also delta time. Oh god please deltatime. getDeltaTime() or something like that. How does anyone live without deltatime?


(3 replies, posted in Scripting)

Maybe it's better to use require?


(3 replies, posted in Scripting)

I have a question regarding dofile. I heard that you couldn't have more than one script in a scene which is a bit sad for me but I guess it's alright if you can do dofile (it actually saves time so you don't have to keep adding all the scripts to a scene).

The only problem is that (I think) when you call it it will run all the code in the script. I only want to run the general stuff once so that memory is allocated and variables have an initial value etc and a value is kept until the next time (say, velocity) and not have it reset every time. So I was thinking maybe there was a way to first call dofile. And then call a function (update) in every file that I want to update. How would I approach this? Or maybe it works that way even if I do dofile over and over again? I'm a bit rusty with the Lua smile


(3 replies, posted in General)

Okay thanks for clearing that up! I noticed that the grid in blender is different. In the blender grid one square is 1 decimeter apparently.

Anyways cheers


(3 replies, posted in General)

I am a bit confused about how units work in Maratis. I know that on the Blender exporting tutorial it says that 10 units is one meter. Okay fair enough. But is that 10 blender units? And how much is 10 blender units in Maratis? Is it 10 there too?

Actually, how much is one "square" on the ME grid? Is it one meter?


Okay I fixed it for you! It appears it was just to change mesh.faces to mesh.polygons and the same thing in another place! It seems to work when exporting a default cube, but I don't know how it will work with complex models that have been edited with BMesh!

Here is a download for 2.63 that you just put in your scripts addons folder https://www.dropbox.com/s/63qug5u1hj7u2 … ort_263.7z I hope it helps everyone!

Here is also a paste of the file: https://gist.github.com/3236424 You'll notice changes on line 371 and 707. I hope it works for everybody! Glad I could provide a quick fix

It might also be time well spent to test with the pre release of 2.64 after fixing this. So you know that it still works.

I would also suggest adding a database of maratis addons for each version of Blender so that you can grab the one for your version. Just to be nice to those who aren't using bleeding edge smile