Jump to content
Sign in to follow this  
Harrumph

Addition of Python or Lua as a Scripting Language

Recommended Posts

I love python, easy to learn for anyone and very fast for short code which is exactly what you use in map making.

Share this post


Link to post
Share on other sites

I'm a huge fan of Python, I use it often to write web applications.

A lot of people complain about indentation in Python, and then use indentation in their favourite language.

Share this post


Link to post
Share on other sites
To paraphrase a member of the Arma.co.za community who works with python regularly - "... with a complete enough API, persistent worlds would even be possible."

That has nothing to do with the language. A whitespace programmer could say the same thing.

Share this post


Link to post
Share on other sites

Yes, please. Best Arma3 suggestion so far. sbsmac hits the nail on the head:

In sqf, any moderately complicated operation needs to be built from the ground up. In any other modern language, primitive types and standard libraries provide huge amounts of the heavy-lifting.

Share this post


Link to post
Share on other sites
Because using something like Python, means that BI won't need to develop and maintain a scripting language as well as a game. Python development and maintenance is arguably one of the largest and most well organised systems of it's type, right now. Why duplicate this effort? The benefits are huge.

What about rewriting the whole engine for Python?

What about Python lacking the needed commands?

Ain't gonna happen, bros

Edited by metalcraze

Share this post


Link to post
Share on other sites
What about rewriting the whole engine for Python?

What about Python lacking the needed commands?

Ain't gonna happen, bros

I'm sure its a lot of work, but theres no need to "rewrite the whole engine for Python" and Python "lacking the needed commands" is a minor issue. Python "lacks the commands" of 3D editing software, but that didn't stop Autodesk from adding it to Maya as a scripting language (together with the existing MEL) and now tout it as a significant feature. If it "ain't gonna happen", it won't be because its not doable.

It would be nice to hear the opinion of someone with expert technical knowledge of the Arma engine, if theres anyone about...

Share this post


Link to post
Share on other sites

Switching a scripting language will make all mods and addons instantly incompatible that could be ported with ease otherwise from AA2 and AA1

Python doesn't have a lot of commands SQF has that are needed for the engine.

The documentation will be needed all over again for people to understand how and what to use in mods and addons

Finally people who work with SQF for the last 10 years will have to learn Python instead of using something they are familiar with.

You can start learning SQF.

Share this post


Link to post
Share on other sites
I'm 100% sure nobody meant REMOVE the current scripting environment... yes.. it says 'replace'... but we all know that doesn't make sense. Can a moderator please change the title of this discussion to "Adding Python or Lua as a scripting language" or something, so we don't have to field dozens of "why replace it, why not just add" comments...

This. Renaming the topic would be useful.

Share this post


Link to post
Share on other sites

I'm hoping for an object oriented "spin-off" of SQF.

Python would work too though - all you need are interface classes to work with the different aspects of the game. It's a very extensible language.

Share this post


Link to post
Share on other sites

Ruby, Ruby, Ruby :))

But yea, OO spin-off of SQF would do, bit like JavaScript I suppose :)

If anything, I think they will always keep SQS/SQF/FSM if only to remain backwards compatible.

Share this post


Link to post
Share on other sites
Ruby, Ruby, Ruby :))

But yea, OO spin-off of SQF would do, bit like JavaScript I suppose :)

If anything, I think they will always keep SQS/SQF/FSM if only to remain backwards compatible.

You probably know this, but using game logics and object variables, it's actually already possible to do some very crude/ugly OO with SQF. I've got a faux-object-oriented SQF-based XML reader/writer sitting on my hard drive at home. Not that anyone needs one. :D

I think SQF could and should be extended to enable OO scripting. (Without breaking backward compatibility.)

Share this post


Link to post
Share on other sites
Ruby, Ruby, Ruby :))

But yea, OO spin-off of SQF would do, bit like JavaScript I suppose :)

If anything, I think they will always keep SQS/SQF/FSM if only to remain backwards compatible.

JavaScript OO syntax style would indeed be nice, I'm a sucker for brackets. As long as we don't need armaQuery for it. :P

Share this post


Link to post
Share on other sites
Switching a scripting language will make all mods and addons instantly incompatible that could be ported with ease otherwise from AA2 and AA1

If you read back a little, the intention wasn't actually to replace the scripting language, despite what the topic is called.

Python doesn't have a lot of commands SQF has that are needed for the engine.

Clearly you're not a programmer... :) Its not about 'commands' its about syntax and structure.. specifically the ability to use a well developed object orientated architecture and all the features of the language.

The documentation will be needed all over again for people to understand how and what to use in mods and addons

Again, not replaceing SQF. Python is extremely well documented and in fact also pretty easy to learn.

Finally people who work with SQF for the last 10 years will have to learn Python instead of using something they are familiar with.

Again... not replacing.

You can start learning SQF.

The arguments that SQF is suitable and thats that, are like saying: "Horses are fine, who needs tractors?". Sure, horses can plough a field... and surely did for hundreds of years. But then a new technology came along that made it even easier. I'm not sure why anybody would resist that, other than they have invested in horses recently.

Share this post


Link to post
Share on other sites
You probably know this, but using game logics and object variables, it's actually already possible to do some very crude/ugly OO with SQF. I've got a faux-object-oriented SQF-based XML reader/writer sitting on my hard drive at home. Not that anyone needs one. :D

I think SQF could and should be extended to enable OO scripting. (Without breaking backward compatibility.)

:nods: but it's currently crude and basically you only really get basic Object properties, not all the other nicey-ness that is OO.

Share this post


Link to post
Share on other sites
:nods: but it's currently crude and basically you only really get basic Object properties, not all the other nicey-ness that is OO.

Yup. I think "crude/ugly" described it pretty well. ;)

A proper implementation would be sweet.

Share this post


Link to post
Share on other sites
I think SQF could and should be extended to enable OO scripting. (Without breaking backward compatibility.)

Agree!

Originally Posted by JoeDamage
Originally Posted by metalcraze

Finally people who work with SQF for the last 10 years will have to learn Python instead of using something they are familiar with.

Again... not replacing.

People who work with SQF for the last 10 years will have to learn Python, because in a mod team you must understand what others scripters/programmers are doing or the community have to abandon one of the languages.

And nearly every addon is based upon another addon: Play a mission -> Open it -> see the scripts -> adapt the idea/algorythmen and make your own spinoff. Its leanring by doing. Two languages will hamper the whole procedure of leanring by doing or you have to learn both languages and their specific commands.

Share this post


Link to post
Share on other sites

I fully agree with the topic owner.

I don't think that SQF can evolve in a programming language with similar capabilites like Python etc, because BIS surely does not want to invest so many resources in doing so.

An exception is UDK from Epic, which has unreal script as a propretary scripting languge...but the issue here is that it is a full-blown programming language with strong OO concepts and third-parties provide a full Visual Studio plugin with debugging capabilites and so on.

Sure, SQF is nice if you wanna create missions, where you need here and there a script. But do you really wanna implement complex algorithms in that language? How do you debug it? How do you leverage open source libraries for AI and other stuff? How do you do unit testing ? How do you make real reuse libraries?

Also if you go to industry standards, you can leverage from new trends, like functional languages (.NET -> F#, Java->Scala; partly Python).

Think about how shall SQF evolve...there is no real library concept (apart of that new 'function module' stuff) If you add more and more commands and isolated functions, surely the 'hard core' of the modders can cope with but don't you think this will scare off new people?

I can understand people, who wanna take their investments of Arma1/2 into Arma3. On the other hand, I think it is time to make a radical switch now.

The Arma engine as a sandbox is very strong. Create a library for an industry-standard language with more low-level access (or make it more transparent)...I am quite sure people will create 'miracles' with such an engine.

Edited by hawk66de

Share this post


Link to post
Share on other sites

SQF is a mission making programming language right?

Is there another use for it? If the answer is not then why change to a different programming language for Arma 3?

Everyone is comfortable with it who uses it. If you bring in another language to replace / work along side it then thats another learning curve that the missions making / scripting community needs to go through and in my opinion it isn't needed.

Share this post


Link to post
Share on other sites
Think about how shall SQF evolve...there is no real library concept (apart of that new 'function module' stuff)

Thats not true. You can make libary-like files with this command and some other handy sqf-commands. I wrote a lot lib-like-files and use them in a lot of addons or missions. Other big projects using the same method.

Share this post


Link to post
Share on other sites

Hey all,

Well, replacing .sqf/.sqs at this point I would say is an absurd and completely crazy! :p

_neo_

Share this post


Link to post
Share on other sites
Hey all,

Well, replacing .sqf/.sqs at this point I would say is an absurd and completely crazy! :p

_neo_

Noone said replace, but in addition to SQF/SQS

Share this post


Link to post
Share on other sites
A lot of people complain about indentation in Python, and then use indentation in their favourite language.

Using indention doesn't equal enforcing it. For example, if you break long lines in C by indenting them a bit further in the next line, like:

   int some_variable = some_rather_long_function_name(
       param1,
       param2);

Python would go nuts because it thinks that param1 is a new block. Using indention for building blocks is a bad idea, and it completely and utterly fails once you start mixing tabs and spaces - and you don't even see it.

(but I suppose this is going off-topic. I apologize)

Share this post


Link to post
Share on other sites
Noone said replace, but in addition to SQF/SQS

That could work, but in the title it says "Replacing the current scripting language with Python or Lua ".

_neo_

Share this post


Link to post
Share on other sites
That could work, but in the title it says "Replacing the current scripting language with Python or Lua ".

Please note that the thread text clearly states the following:

Edit: The Title is a complete misnomer - if a mod could edit it, that would be appreciated.

This is a discussion of the addition of Python or Lua as a scripting language

If you'd read the post beforehand you'd have noticed the bold text.

Could mod please change the title of the thread to avoid further confusion, despite the endless clarifications of this.

Share this post


Link to post
Share on other sites

I am no hardcore programmer, I think I would fit the category of script kiddy.

I have dealt with a lot of script languages directed at HTML, Flash, Houdini (which also uses python btw), and lately some of our sqf. And I had no trouble whatsoever in adapting to sqf. If I didn't, would a programmer in its propper sense? So cut the crap about syntax.

Ok, advanced and OO patterns, sqf is apparently limited, why not extend/alter it to allow for that, instead of implementing a whole new language?

Ok, extended libraries/frameworks of development (which Python would bring), this is the strongest point I think. I would have to concede that in the adaptation I had to look at a lot of examples and I found the existing documentation a bit lacking (both official and community), the closest we have that I know of is BIS Functions and CBA, but they're surprinsingly hidden (there is a story to tell about that too, but maybe latter). If we had a larger community stuff more on this lines would eventualy turn up, and could be sufficient.

Not completely against the last point is the fragmentation that another (in parallel) language would bring, keep in mind though that dispite my investment in learning sqf I am already familiar with Python anyway. But this would make the adaptation task harder to newcomers.

I am inclined to favor an extention/empowerment of existing sqf more then bringing a new language to the table. But if the latter happens, personaly, so be it, there are good dividends from that too!

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×