Archive 17/01/2023.

Polling language popularity

Modanung

Do you primarily write Urho3D games and applications in C++ or a scripting language?

  • C++
  • Scripting language

0 voters

What is (or would be) your preferred scripting language?

  • AngelScript
  • Lua
  • Other

0 voters

SirNate0

Is the second question preferred if it was an option, or is it preferred in actual practice? I.e. is it my ideal scripting language (if it was supported) or is it what I actually use for my projects?

Miegamicis

2nd question is misleading since it doesn’t actually specify if it’s the scripting language that the engine supports or is it any scripting language that is out there thus making the 2nd poll results invalid. If it’s the scripting language in general, then the answers should include all the popular scripting languages that are out there, not just the “other” option as it doesn’t add any value to the poll.

Eugene

Yeah, second poll is invalid and should be nuked. It doesn’t specify if it is general question or about Urho specifically. Therefore it contains mixed results and already contaminated.

If first, why only two options?
If second, why “other”?
Why there is no fallback option for ones who doesn’t use scripting?
Polls shouldn’t have any ambiguity is question.

1vanK

If for example I prefer to write in C ++, but in my game there is a console in AS and user modifications in any scripting language? Each language has its own task and they do not mutually exclusive.

lezak

First poll definitely should have option ‘both’ - for example about 80% or more of my code is written in c++, so I can vote for c++, but there is a reason why the rest is scripted, so this vote can be harmful for me in context of recent and ongoing discussions about AS removal.

Modanung

The first poll is to determine how many people write (basically) their entire application in script as opposed to using script only for specific purposes. The second is to find out if the available language options are what the community is looking for. If the other option were to surge, a follow-up poll could tell us more. If it does not, the available options suffice.

My apologies if this was unclear.

Eugene

One person may use only C++
Another person may use C++ and some scripting, not caring about specific scripting language.
Third person may use scripting a lot and require specific language (e.g. AS), but still write most parts in C++.
Forth person may use scripting only.

Modanung

We could divide these groups even further. For instance people writing only in C++ may still like the availability of script. In order to curtail complexity I decided to limit the options to %C++ > %Script and %Script > %C++.

Eugene

When you made a poll, what information did you want to gather?

For me, important information is how important scripting is for different people.
And there are three very separate cases. Ones who don’t need scripting at all, ones who need at least some scripting in any form, and ones who need specific scripting API and language (e.g. they need AS in its current form and nothing else, or Lua in its current form). The last case is actually split into two sub-cases.

These polls gave me too little information about said groups.

Modanung

As @1vanK implied, some people might also use multiple scripting languages. Also the scripting only segment might still write some C++ at times.

Feel free to create an extra poll to your liking in this thread, I will link to it in the first post.

Eugene

I think we already have overdose of polls, in last two weeks /laughing/. I think I will start one when/if it will be important.

Modanung

My main goal was to answer @brokensoul’s question without relying on assumptions.

Looking at the current results, I conclude the answer to be yes.

orefkov

In my understanding, a good game engine should combine both options. Separate high-quality components are written in C++ that work with high performance and in isolation from other code. And in the script part, game logic is set that glues independent components together. It is like bricks and cement — you need both to build a good home. In combination with the serialization mechanism, which allows you to save the state of the scene, nodes, components, and especially the excellent built-in serialization of AngelScript’s ScriptObjects, this allows you to achieve a truly editor-created and data-driven game. In which the various aspects of the gameplay are then simply set by setting the property fields in the editor, without modifying the C++ code.
I used this approach when developing games for Android. It generally used Urho3DPlayer and scripts. The main script just loaded the scene file and set up the viewport. And all the logic of the game was tied in the form of script objects to the nodes of the scene. Using scripts allowed me to achieve tremendous development speed - I just syncing the Data folder between the Android device and the development folder through rsync, and used new versions of assets and scripts without even leaving the game - no other engine provided such speed of verification on the Android device.
In this sense, scripts are good for rapid prototyping. And since AngelScript api repeats C++ api almost one to one - I could quickly rewrite already well-established and well-functioning parts of the game logic in C++.
Also, thanks to some dirty engine hacks - I have full support from the ide when writing code :slight_smile:

Modanung

I added a poll for those preferring an other scripting language.

throwawayerino

Bring back UnrealScript! ChaiScript seems really easy to bind, just add one line per function and is similar to C++.

Modanung

I wonder what’s behind the “Other still”. :slightly_smiling_face:

QBkGames

BASIC :grin: (this are padding chars so I can make this post at least 20 chars).

Pencheff

Everyone bumping Lua and Python…how about JavaScript ?

Rotate.prototype.update = function(elapsed) {
    this.entity.rotate(0, this.speed * elapsed, 0);
};
SirNate0

I like JS over Lua (as a language, ignoring performance concerns), but still significantly prefer Python over JS.
Do you know of any nice way to bind c++ to JavaScript, though?

Pencheff

I did some tests with V8 in my apps and performance-wise it was solid. SWIG didn’t have support for V8 back then, now it seems to support it - http://www.swig.org/Doc3.0/Javascript.html . Atomic was using duktape - https://duktape.org/, it seems solid as well but I can’t find any bindings generator.

pldeschamps

Is C# a scripting language?
I would have asked “Do you primarily write Urho3D games and applications in C++ or another language?”

SirNate0

In the sense that it is “not C++” you could call it a scripting language, but technically no it’s not (ignoring things like CS-Script). The third poll was added later, presumably the earlier polls weren’t really written with C# in mind (and given *** and UrhoSharp it could be assumed people do use C#, so it’s definitely appropriate to include in the 3rd poll).

Modanung

I removed the option.

jayrulez

Then why keep swift? Rust? Go?

Modanung

Third poll has been removed.