is it possible to do a good game with Python?

Hello

My experience in programing is only related to the character setup in cg film. I work in maya using python because it is simple and fast. I love not having to declare variables, or creating scopes without having to open and close brakets, etc…etc…I just love how simple the syntax is.

Now, my question is, can I make a relatively complex game with python? I want to do a platform game like Limbo.
Or should I forget about python and go for C#. Because apparently all games are done in C#

Cheers

edit: I was just checking the forum, and it worries me that python isn´t mentioned that much.people chose javascript or C#. It´s like python isn´t even an option

In Unity, it really isn’t. The supported languages are C#, Unityscript (similar to Javascript) and Boo. I suppose you could use IronPython within C# to attempt to write a game, but it would most likely be more of a hassle than it’s worth.

Boo has Python-esque syntax. (The creator of Boo liked the features of C# but preferred Python syntax. There are some things missing from Boo, but you may or may not notice).

So, if you want to use Python with Unity, I’d recommend just using Boo.

Otherwise, I strongly recommend learning C#.

I should have clarified that when I say python I am refering to Boo of course( i just edited the title adding Boo). I´ve already did some simple test with Boo and I feel very comfortable with it because in maya I use python an I love that language.

when you say " in Unity it really isn´t", what do you mean? That is not posible to do a complex game in unity with Boo?
Because no one seems to use it. Does boo programing have any kind of limitation in comparison to c#?

I was referring to the fact that Python (NOT Boo) is not a supported Language in Unity. One of the limitations of Boo which I had noticed was the inability to define an anonymous function as a parameter value. This is a rather specific case, so there’s a good chance you won’t run into it.

Essentially I was having trouble getting something like this to work:

doSomething( 10, def ():
    doSomethingElse()
)

Which would be akin to this in C#:

doSomething(10, () => {
    doSomethingElse();
});

where doSomething() would call the anonymous function defined in the parameters.

Otherwise, you should be able to do just about anything in Boo that you need to game-wise.

ok, thanks.I am sticking with Boo then. That´s good to know.

But can´t you import C# commands in those specific situations? I mean,in maya you have python and mel (wich is C like language) and sometime, if you don´t have in python somehting that you do have in mel, you can just import it and translate the mel commands into python.

My issue was that I was developing a callback-based cutscene system that would have the scenes essentially hard-coded…but I was hoping to do it in something that felt more like a scripting language.

So my cutscenes look something like:

public void VillagerCS () {
    CSDirector.MoveTo("Villager", waypoint, () => {
        CSDirector.TriggerAnim("Villager", "wave");
        CSDirector.Say("Villager", "Why hello there!", () => {
            CSDirector.MoveTo("Villager", startingpoint);
        });
    });
}

Each action that gets chained is passed as a callback. Inelegant? Maybe. Works? Yes :wink:

ok.
I am not in a position to judge anyway,because I am just landing into programing.But I guess that sometines some parts of the code might not be that nice, but if it works it works.

I would say the biggest drawback is the lack of support and example code for Boo, but if you feel confident and/or willing to spend some extra time its no big problem i guess.

But don´t you think that most C# coding examples can be extrapolated to boo just changing the syntax?
Here is a great tutorial with boo to make from scratch the asteroids game: