Library Question

Is it OK to use Mekanimo ( as the library?

(log in to comment)


some time ago they were closed source. If thats the case now, then it can not be used.
Closed source libraries can't be used?
hmm not that im' going to use any closed source libraries.. but ya.... can't they be used? ..
Technically.. we are using closed source opengl libraries.. (with opensource python bindings ofcourse) but ya.. we are using them.. in a way.. so what would be stopping anybody from using any other closed source library?   just thinking out loud here... :D
Well, it's closed-source, doesn't run (as of yet) on platforms other than windows. And it seems to me that it implements too much game logic. Especially because I don't have a platform to run your game on, I would rate it farely low ;-)
There's no restriction on using closed-source libraries as long as they're freely available and well-documented - though being limited to Windows does limit your audience around here.

I don't have a lot of time to look into it but does that library really implement a lot more than pygame/pyglet + box2d or similar? Well, it has a fancy scene editor, and I don't know how deep its capabilities are...
I think it is a little bit more than pygame/pyglet + box2d.  Unfortunately it is windows only for now.
These videos can show it to you in action.

If it is eligible I would like to use it.

Just looking at the first tutorial, it looks like you don't even write any Python - it generates based on your creating objects in almost a photoshop like environment...

Hmm, looking through the other ones it seems like the same deal - you can modify the Python code, but that is generally done only to tweak things, as far as I can tell...

Looks to me to be like a physics based game maker, almost?
Would that be an accurate/fair representation fahri, or am I just seeing only part of it (probably :D )?
I get a similar impression to RB[0] from the video - I think the real question of eligibility is whether, at the end, you can release your game as Python source code (possibly using the Mekanimo libraries). If so, this is just a shortcut for setting up some physics simulations using box2d, and in any case, there's plenty of other effort which would (presumably) have to go into turning this into a polished game - creating graphics, menus and so on.

On the other hand, if what you release at the end of the week isn't a Python script at heart, I don't think it's an appropriate entry for a contest based around writing Python.
Looking at the videos, and the tutorials on the website, I'd say that it's on the borderline of acceptability. The fact that you can make things with it without writing any code makes me slightly uncomfortable with it. That said, it doesn't seem to actually provide any more than something like Panda3d, even if it is slightly more than Pyglet/Pygame with a physics library.
I installed Mekanimo on my Windows computer and had a play with it. I couldn't see any way to export a design created in Mekanimo so that it could be used from outside the Mekanimo program itself, which I think should probably be a requirement for a game submitted to Pyweek.

I also couldn't access much of the "reference" information on the Mekanimo website - most of the nodes just wouldn't open when clicked (and I tried in several browsers). Fahri, since (as I understand) you're the primary developer of Mekanimo, you would certainly need to make sure that adequate documentation is available for anyone who wanted to use it - although the tutorials on the website should certainly help.

Please let me try to explain what Mekanimo is.  I think those videos show only one side of it.  I better create some advanced videos so that the other side of Mekanimo is visible too.

Mekanimo is designed to attract people (especially young ones) to programming, physics, science and engineering by means of games.  It is a tool for teaching advanced subjects in the context of game creation.  The parent company's name is SEE (Science and Engineering Education) International, Inc.

When I use it I do a lot of programming with it.  I use numpy, Csound, sympy, etc.  But a beginner doesn't have to use any programming.  They can create games without any programming at all.  I hope that they will take a peek at the generated code and coding will seem less mysterious to them.  They may start doing programming by using simple loops to avoid repetitive tasks as shown on those videos.  I would say that would be an excellent start.  After that they may start examining more advanced examples, and may even try to imitate them.  Am I dreaming?

One of the main goals was to make it attractive to people with varying skill levels.  Someone can make a walking ragdoll by using feedback systems (or genetic programming or control systems or machine learning etc.) or hang it from a sliding spring and just move the legs back and forth.  A 10 year old child can do the second but the first one requires advanced math skills.  Another example:  you can assign a behavior by using the provided dialog boxes (when this object collides with that then play this sound).  Or you can look at the collision velocity, normal and tangent directions and generate a wave file by using these collision characteristics to design a realistic sound in real time.  Both of these approaches should be fun.

Mekanimo is written in Python for Python programming.  Even the user interface (wxPython) can be reprogrammed from Mekanimo itself.  If someone wants to start programming I think they should start with a good language.  In my opinion, one of the most attractive things about Python is its suitability for both beginners and advanced programmers.  I tried to emulate this with Mekanimo and hope to attract young ones to Python by showing what can be done with it in an appealing way.  I try to remember that everybody was a beginner at some point.

So please don't see this as a competition to your creations, it is meant to be an invitation to others.



Hi Adam,

Thanks for your feedback.  I am aware of the problems with the object tree.  I just fixed that issue and about to release a new version.  In the mean time, if you resize the columns in the object tree so that all text is visible, they should work.




So is it possible to export a game from Mekanimo into a form where it can run without access to the Mekanimo application itself? Presumably you could export something which would need to depend only on pyBox2d, wx, etc.?
Currently games cannot be exported as an executable.  This will be possible in the near future.
I don't think anyone sees Mekanimo as competition to their creations - I for one think it's great!

However, this is a competition for Python game programming, and that means that some things aren't allowed, no matter how good they are - in fact some things aren't allowed, simply because they're too good.

It's Richard's decision as to whether it's acceptable or not, but I have to say, the more I look at it, the less comfortable I am with it. Mekanimo feels much more like a game engine than a library, and I think it doesn't really fit with Pyweek. This isn't a criticisim of Mekanimo; as I said, I think it's a really nice idea, and seems to be well implemented. However, I don't think it fits the criteria for a Pyweek library.
The way it's sounding to me is that Mekanimo is a very closed IDE and is also the only runtime environment. This makes testing the game you write pretty cumbersome because we'd all have to download the IDE/runtime and figure out how to use it. And run Windows, which apparently only 70% of us do - even assuming we'd bother to go through the effort.

It is a requirement of this challenge that you submit your game's source code under an Open Source license.

There is no hard definition of "game engine". It would be too hard to nail down. Suffice to say that if you're just producing some artwork and maybe some simple behaviors and plugging them into a graphical interface, then you're probably using a game engine. It sounds to me though that there's significant coding required to do anything beyond the simple graphical point-n-click stuff in the online demo videos.

I will allow your use of it, but don't expect a good reception from your fellow competitors regarding its running environment.

I would categorize Mekanimo as a game engine rather then a library too.  It seems like this is not accepted (or barely accepted) in the community and I respect that.  So I decided not to enter the competition.  If I create a game just for the fun of it I hope you guys don't mind me sharing it (maybe a video of the creation process as well) with you. 

I am kind of curious to see how much coding would be required to create a real game with it.  Hopefully it won't be more than a beginner/intermediate programmer can handle.

Good luck to all participants.


As richard said there's no hard and fast rule - IMO, as long as you have to get down and dirty in the code to do something really useful, and can't just plug everything in through drawing and the gui events - then it's fine with me.

No matter what you use, some people will always complain (or dislike it quietly, hopefully :) ) and some will like it - but neither should make you not use it.
Richard said he'd allow it, and in reality, even if he didn't there have always been some people who don't follow that and no one has ever been disqualified, really, you have to get 50% DQ or DNW, and that won't happen LOL

If you are going to make something for fun, then just make sure you code it a lot, and release it, if people disapprove they'll mark it DQ, but most of us will just enjoy the game and effort :)
Not to mention, one of the things I've stressed in the past with my own disputes (heh :) ) is that part of teh main goal of Pyweek is to increase the body of code, tools and expertise for Python game making.
This is certainly the first I've seen your library, engine, ide, or whatever it really is, is irrelevant, I want ot see what it can do, and it looks like it will be a great tool for Python game development.
So I think in that sense, it is in the spirit of Pyweek - I mean, if we get 3 days in and you game is completely finished and would already win, and the lines of non-generated code are like, less than a couple hundred, then I think some people will DQ you, but next time around they'll pobably use it themselves ;)

So I say go for it, have a blast, make a great game, that's Pyweek for you :)