Python is currently at version 3.8.1. Version 3.9.0 will be released late this year. The Python community is split between versions 2.x and 3.x of the language, with various vested interests refusing to move forwards. This schism happened quite awhile ago, as Python 3.0 was released in December 2008. Python 2.7.x was officially given end-of-life on January 1, 2020, with version 2.7.18 code frozen at that time. It will actually be released in mid-April, 2020. There will never be a Python 2.8.
Why talk about Python, when Urho3D already has its hands full with Lua and AngelScript? Because improving things with either of those languages is not easy or some kind of “free move”. Lua versions have substantial incompatibilities. tolua++ would need to be depreciated, so doing a new C++ binding regime while phasing out the old one, is work. Bumping the AS version is easy, but I hear that despite its C++ friendliness, no automated C++ wrapper exists for it. I haven’t investigated that yet so YMMV, but manual labor to produce C++ wrappers, clearly isn’t the equal of an automated regime. When someone contributes an Urho3D pull request, they often haven’t done AS or Lua bindings, which greatly delays or stops their work from getting into core. That’s unsustainable. Whereas with Python, I expect that an automated C++ binding regime is out there, since Python’s ecosystem is large.
Python will never be the performance equal of some of the other scripting language choices. However it offers something that other languages do not: a strategic ecosystem. Python is favored in the 3d modeling and animation world now. Autodesk has a stranglehold on the market with its 3DSMAX and Maya products, both of which do Python nowadays. It’s Python 2.x, which is regrettable, but it’s still Python. When I last checked on it, there was not a peep out of them about ever moving forwards, but that was some time ago. Maybe official end-of-life will get them moving someday? Maybe it’ll depend on what their paying customers actually clamor for, so they’ll sloooowly get around to it. I don’t expect the 2.x holdouts to manage their stubbornness forever.
Meanwhile, Blender 2.80 is using Python 3.x. I believe it’s 3.5. Python numbering culture is that minor releases don’t break anything. 3.x is 3.x is 3.x. If a Blender person wanted to start banging on Urho3D, I can’t reasonably expect any problems for them to do so.
The popular Godot 3D engine, which I’m sure many of you realize is sucking the air out of the room for projects like Urho3D, uses a bastardized Python called GDScript. It’s not real Python. For me personally that’s a dealbreaker. I’m not trusting my game scripting content to some rinky dink one shot engine developer! I’ve got complex coding stuff in mind, and the only things I’m going to use are either a standard language, or my own language, which I don’t actually have implemented at this time. There’s no reasonable future for GDScript outside of Godot, it is simply not a career skill or valuable in the marketplace. Python 3.x, in contrast, is something that people can reuse for all sorts of things and make money at, while they’re trying to survive as indie game developers.
My other reasons for rejecting Godot are it’s 2D oriented, mobile oriented, and not strong at 3D. Pity, as their development effort has other strengths going for it.
Banging up the UI of a game in Python 3.x is a sane idea. As a lone wolf indie, I need to have this sort of thing. Banging it up in Lua isn’t a horrible idea, for instance Blizzard did it for World of Warcraft, but it does beg questions about which version of Lua. Picking a Lua isn’t a free move, because of the C++ binding issue. I have no doubt in my mind, that Python is better suited to larger scale applications development, than Lua is. Witness Blender.
Meanwhile, from an ecosystem standpoint, I don’t really see AS as even a contender. I don’t want to undermine an extant ecosystem, as it’s important to preserve existing user base. But really, if you’re sitting down to write something important, why AS rather than Python 3.x? I don’t see any money or life blood coming from that. The world of 3d modeling and animation has pretty much voted on what works, and it’s Python.
I haven’t even checked on whether anyone forked Urho3D to do any kind of Python. For the record I’m also not interested in “collect all languages” binding efforts. I talk about Python because it has specific strategic value, that other languages don’t have.
In particular, I have no interest in C#. If you want that, I have no idea why you’re not using Unity. And if that isn’t good enough, I have no idea why you’re not doing NeoAxis. It came from Ogre3D, some dev who said “I wanna do C#!” and also said, he wanted to get paid to sustain it.
C# is not a scripting language, you can’t just interpret it in plain text and have your results immediately available for your prototyping. It’s the tedious compile cycle drill, and it doesn’t offer anything interesting as a language, for someone whose tastes might run more towards Lisp or Forth. In any event there are plenty of “new devs coming up”, who really only know C# as their world, who want to go do stuff in C#. There are plenty of open source 3d projects already doing that sort of thing. Between those and Unity absorbing the vast majority of game devs, I see no motive whatsoever, to try to compete with anyone on a C# basis. It’s suicide.
If Jonathan Blow finally ships Jai, we’ll talk about that. I hear some early betas are going around now. But we’re also 5.5 years out, and it isn’t here yet. And I didn’t get my own language done either. So here we are, talking about what to do with Urho3D scripting. Looking over the archives, I’m surprised that my first minimal involvement with Urho3D was over 4 years ago. Some CMake build bug stuff. I probably had just finished my cleanup of the moribund Ogre3D ecology and ditched it.