Development Update - May 15, 2013

Mycal

Staff member
As is my nature, I've made some more changes to current plans. As you may know, I've been working on the scripting and script conversion for the past few weeks. I originally choose Lua because it is quite powerful and a well established scripting language. It's also fairly human readable for those who only know Odyssey's scripting. I have hit one major issue with it though. Passing game objects to scripts is extremely difficult and pointless. In passing a player object to a given script, I ended up writing getters and setters for every single variable, (eg. getHealth(), setHealth(), getStrength(), etc). While passing the actual was a step in the right direction since you no longer have to do a lookup, it was otherwise extremely pointless since I had to rewrite code for every single game object.

So, I am going to not use Lua and instead provide two scripting providers. When creating a script, I'll provide you with a config option that allows you to code in VB.Net (closer to Odyssey scripting) or C#. This has many benefits. For one, I can directly pass over the complete player class. It is also natively supported in both the .Net framework and Mono so we don't have to rely on another library. In addition to this change, by default, I'll convert all existing scripts to VB.Net. In the future I may provide a way to easily convert it between VB.Net and C#, but not immediately. This will make script conversion even easier since most of the scripts won't need to be changed.

I think in the long run this will be better for Odyssey. Since you guys are already used to VB style syntax, you won't have to learn too much new. And for those that prefer C# or Java syntax like me, you have that option as well.
 
Top