Polling language popularity

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

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?

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.

1 Like

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.

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.

1 Like

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.

1 Like

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.

1 Like

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.

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++.

1 Like

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.

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.

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.

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.

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:

4 Likes

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

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

1 Like

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

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

1 Like

Everyone bumping Lua and Python…how about JavaScript ?

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

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?