In this post I want to talk about the scripting language of ShugenDo. As you know Mugen uses a scripting language called cns. The strong and week point of Mugen is the cns scripting language. It allows you to flexible create your desired characters. But the cns scripting is old and has its draw backs. You need a lot line of codes to accomplish your task in comparison with the script language used in ShugenDo.
Because the scripting language of an engine is very important I took a lot of time to evaluate which kind of scripting language to use. And finally I found a good one. ShugenDo will use C# as its scripting language. C# is a modern object oriented programming language which is used by millions of people around the world. By choosing a language for scripting you have to take several factors in to account. Here are some factors which were important for me.
- Object oriented. Object orientation is the common standard nowadays and you should expect it form any programming language.
- A rich standard library is very important. Do not waste your time by coding something which the standard library can provide. You do not want to (re)create your own collections classes. C# has a rich standard library for nearly anything you need. On top of that ShugenDo provides you with classes and functions for your daily work.
- A good debugger. A debugger can improve finding bug in your code dramatically.
- Good run time performance. C# code will be jitted and you have the ability to recompile your code to the CPU machine code of your target platform.
- Garbage collection. A good scripting language should not let you worry about memory management. C# uses a garbage collector which will free unused resources automatically.
- A great supporting community. Since C# is used by a broad user community you can find a lot of resources related to your problems.
- Compiles code to a binary. So you are not forced to provide your source code with a release of your character. It is up to you to provide your source code.
- A good editor. You can use your favorite C# editor like Visual Studio or MonoDevelop. Those editors are featuring syntax highlighting and autocompletion.
In the end C# satisfied all of the above factors for me. And I think it will be the key point to make a good fighting engine. Every thing from charterers, menu , level or level objects will be code in C#. Even the game logic will be coded in C#. I will give the community the ability to influence the game logic and expand it. I get a lot of feature requests and I think the best way is to provide you the possibility to implement those feature by your own. This way the community can create new game modes or new features. I strongly believe in user generated content and I think great things will happen when I provide you with the best tools to create it.
In the past post I mentioned that C# and CNS differ to much. But it seem like a CNS compiler to C# is possible. Right now I am evaluating it.