Good day.
Have you considered replacing your hole gameplay/scripting component against one based on Mono/.NET. I know this a not an easy task and probably something for X-Rebirth 2 or something, but it would fix a lot of things and probably makes a lot of things much more easier not only for script/core-modders, but for your own gameplay programming as well.
Personally, I hate md script programming because so simple programming logic is so hard to implement, debugging makes no fun and finding errors or troubleshooting is real pain in the a.... I like more using the lua programming you now are opening up to modders, but it's still not the same as programming in c# and it's only used for ui.
Pros/Cons
[+] Mono can be used on windows and linux plattforms
[+] Mono is open source (microsoft opens up .net itself currently)
[+] Much easier coding in c# syntax than xml more closer to normal programming
[+] You can combine and unify UI and gameplay scripting/modding instead of using lua for one thing and proprietry xml for gameplay
[+] Probably less memory issues because of .nets own garbage collection and less memory footprint than lua and md
[+] Pre-Compiling code to dlls is possible
[+] De-Compilation possible if necesarry (e.g. checking for malicous/bad code)
[+] Compile on runtime, e.g. directly from ingame editor or files while game is running is possible
[+] May even be faster than md/lua
[+] Allows complex object modeling, delegate/event based programming, object-oriented programming style
[+] Using Visual Studio as development and probably even as debugging environment
[-] Requires re-design of gameplay-components to interface with .net
[-] Requires new .net based object model
[-] Requires porting current scripting to .net code
If you need successful examples for this approach have a look at the most recent Cities: Skylines or The Sims 3. Both are using mono/.net as their scripting/gameplay-heart and have a huge modding-community and history of expansions (well The Sims 3 at least, C:S ... we will see). And in my opinion both examples are still not the optimum .net programming can provide.
[REQ] Replace Scripting and Gameplay Engine
Moderators: Scripting / Modding Moderators, Moderators for English X Forum
-
- Posts: 335
- Joined: Mon, 23. Apr 12, 23:56
I really think that this would obviously be future work
and I also think that this is not quote the api that egosoft would want to provide. yes, mono (or any other "real" programming language) would be much more powerful than the current md/aiscript api. but it would also bring up a problem, that egosoft has just recently fixed concerning the ui-api: documentation. with the supplied *.xsd-files (and the right tools) you are able to see almost all applicable options you could use. also, every "method" has a documentation-node explaining the parameters and the result of the method itself. and I think I read in some thread that the main reason for xml has been one thing: everybody can do it. scripting/programming languages are fine if it comes to real programming, but: how many programmers are playing X:R? not few of the modders have nothing really to do with programming or related stuff, but want to modify the game. the xml-api is a wonderful and easy option for them. a real programming language would most probably scare the hell out of them and block us from having some nice mods
As for eg Sims3: I don't think they have a modding api. ea has never been quite for that. instead, there have been some "freaks" who found out about it themselves and "just modded". ea then realised it is needed and tried to open up a bit. but I have yet to see someone made a "total conversion" mod for it
Cities: Skylines is another thing. most mods there are new maps, assets like buildings and interchanges. that is stuff that really does not need programming skills, but in fact can be done ingame, which is pretty neat. that is why C:Skylines has so many mods, not because they have a mono/.net-api. those capable use it, but it's by far a small group.


As for eg Sims3: I don't think they have a modding api. ea has never been quite for that. instead, there have been some "freaks" who found out about it themselves and "just modded". ea then realised it is needed and tried to open up a bit. but I have yet to see someone made a "total conversion" mod for it

-
- Posts: 34
- Joined: Wed, 6. Nov 02, 20:31
To clarify that: Not all is bad, quite the opposit. There are different kinds of mods, some are just changing some stats we call that xml-mods/diff-mods. Also adding, changing or replacing things via xml-diff is really nice. Don't change that! Creating code/dlls for that would be overkill.
The problems starts at the point when you want to mod things that needs code/scripting in any way. Good ai, ui and gameplay requires much and often complex scripting/programming and a good and extensible object model and programming interfaces for that are very important. That's were scripting engines comes into play and mono/.net could create a huge difference not only in using it while the game is running also in creating, extending, debugging, troubleshooting it because it's not only about possibilities sometimes it's just about productivity and .net is very good in that area.
The problems starts at the point when you want to mod things that needs code/scripting in any way. Good ai, ui and gameplay requires much and often complex scripting/programming and a good and extensible object model and programming interfaces for that are very important. That's were scripting engines comes into play and mono/.net could create a huge difference not only in using it while the game is running also in creating, extending, debugging, troubleshooting it because it's not only about possibilities sometimes it's just about productivity and .net is very good in that area.
-
- Moderator (Script&Mod)
- Posts: 14571
- Joined: Sun, 20. Nov 05, 22:45
in case you didnt notice: the UI is written in lua 

if not stated otherwise everything i post is licensed under WTFPL
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter
I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help
Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help

-
- Posts: 34
- Joined: Wed, 6. Nov 02, 20:31
-
- Posts: 335
- Joined: Mon, 23. Apr 12, 23:56
more powerful apis are not always wanted, as I stated above
still, you can in fact modularise md/aiscripts by eg creating new generic cues/libraries(md) or creating new aiscripts to handle more generic tasks. take a look at the move-scripts for example. they are called move.escort, move.escort.capital etc.. that is model based (in my opinion, at least). it may not be as convenient as classes etc, but it is doing well. what I personally also don't like about an api for a real language, especially concerning mono/.net is the fact, that it is almost impossible to develop without an ide. I don't like ides, although I'm currently using eclipse for developing my mods. but I will stop using eclipse when X:R on linux is finally out of alpha and I can start developping my mods on linux. problem with mono/.net would then be that I would be forced to use a ide made by a company that I don't trust (M$) for a plattform I don't like (windows).
and again: modding apis are not only targeting programmers, so in fact using a less convenient language like lua is less "scary" (powerful is not even the right word here, it's just more convenient using OO and stuff, but not neccessarily needed
). also, a scripting language like lua is much less complex and much easier to learn than eg. mono/.net or java (or anything like that). I was quite happy that egosoft uses lua for ui, because it was easy to learn (even though I'm a programmer). but I don't always want to learn new languages in my spare time, much less does everyone have time for that.
but yes, an alternative to current xml md/aiscript would be nice. but, for consistency, it would have to be lua here as well. realistically though I doubt it will happen, as egosoft is a relatively small company and maintaining two apis for the same stuff is probably more effort than it's worth.

and again: modding apis are not only targeting programmers, so in fact using a less convenient language like lua is less "scary" (powerful is not even the right word here, it's just more convenient using OO and stuff, but not neccessarily needed

but yes, an alternative to current xml md/aiscript would be nice. but, for consistency, it would have to be lua here as well. realistically though I doubt it will happen, as egosoft is a relatively small company and maintaining two apis for the same stuff is probably more effort than it's worth.
-
- Moderator (Deutsch)
- Posts: 4630
- Joined: Sun, 26. Jan 14, 09:56
+1 for more Lua
The only valid argument you are using is "I already know C#, please use C#".
Your whole request is based around this language but don't consider that there are many people who don't know such a language or would rather program in C++, Python, MD or whatever else.
Your argument is pretty selfish, don't you think?
Yes I am supporting a Java (or what you call "C#") or C++ like modding language and we already have: Lua
There is no reason to change Lua to C# because YOU already know C# which is again the only argument you give to use C# over any other language. The other points apply to any other language as well and are mostly just assumptions
Again: Yes, I agree(!) but the whole argumentation lacks and is only based on personal preferences.
The only valid argument you are using is "I already know C#, please use C#".
Your whole request is based around this language but don't consider that there are many people who don't know such a language or would rather program in C++, Python, MD or whatever else.
Your argument is pretty selfish, don't you think?
Yes I am supporting a Java (or what you call "C#") or C++ like modding language and we already have: Lua
There is no reason to change Lua to C# because YOU already know C# which is again the only argument you give to use C# over any other language. The other points apply to any other language as well and are mostly just assumptions

Again: Yes, I agree(!) but the whole argumentation lacks and is only based on personal preferences.
Code: Select all
Und wenn ein Forenbösewicht, was Ungezogenes spricht, dann hol' ich meinen Kaktus und der sticht sticht sticht.
/l、
゙(゚、 。 7
l、゙ ~ヽ /
じしf_, )ノ
-
- Posts: 126
- Joined: Mon, 12. Nov 07, 05:48
@Tamina +1
I personally don't really like XML, but it's a huge improvement over the old X programming language. I can write expressions instead of assembly, and it makes me happy.
Using a general compiled language would require modders to gain a deep understanding of the game code instead of merely the simplified sandbox of a scripting API.
We'd have to deal with threading issues for example.
You're effectively asking them to rewrite and then open source the game, and for modders to all get 4 year CS degrees (and in my experience that would not be sufficient).
When mods can cause memory corruption or execute arbitrary machine code I start to worry and so should you.
I personally don't really like XML, but it's a huge improvement over the old X programming language. I can write expressions instead of assembly, and it makes me happy.
Using a general compiled language would require modders to gain a deep understanding of the game code instead of merely the simplified sandbox of a scripting API.
We'd have to deal with threading issues for example.
You're effectively asking them to rewrite and then open source the game, and for modders to all get 4 year CS degrees (and in my experience that would not be sufficient).
When mods can cause memory corruption or execute arbitrary machine code I start to worry and so should you.
-
- Posts: 1277
- Joined: Tue, 13. Dec 11, 08:27
EGOSOFT actually did talk about this topic ages ago before XR was even announced.
Slides for their talk is here: http://members.gamedev.net/bag-of-holdi ... kside.html
Basically the reasoning behind the current xml implementation was not only to make it more accessible but to also implement a domain specific language that would focus more on the issues that a gameplay developer would want to think about.
Looking at their reasoning it makes lots of sense why they would do what they have done. It is not so much about a decision of what language to use, but one that gives the developers the ability to address the scope of the problems that they are designing for without bogging them down in the nitpicks of a normal language.
So while XML is awkward to use, the logical design that is present would always be used, it is just that XML is the easiest delivery platform for the task at hand (this is most likely since EGOSOFT have used XML quite extensively during their initial creation of MD in X3:R).
Slides for their talk is here: http://members.gamedev.net/bag-of-holdi ... kside.html
Basically the reasoning behind the current xml implementation was not only to make it more accessible but to also implement a domain specific language that would focus more on the issues that a gameplay developer would want to think about.
Looking at their reasoning it makes lots of sense why they would do what they have done. It is not so much about a decision of what language to use, but one that gives the developers the ability to address the scope of the problems that they are designing for without bogging them down in the nitpicks of a normal language.
So while XML is awkward to use, the logical design that is present would always be used, it is just that XML is the easiest delivery platform for the task at hand (this is most likely since EGOSOFT have used XML quite extensively during their initial creation of MD in X3:R).
1940s - Various "computers" are "programmed" using direct wiring and switches. Engineers do this in order to avoid the tabs vs spaces debate.