Skip to main content
GameDev.net gamedev.net
🔒 Locked

ferite language?

Started by Wijitmaker Dec 22, 2003 at 8:48 PM 9 replies 4k views
Original Post
Wijitmaker
Wijitmaker
Hello, this is my first time posting in the scripting forum, so I beg for your understanding in my ignorance I''m the project lead for a freeware historical RTS game called 0 A.D. and we are researching out some scripting lanuages for the game. Up untill this point had decided to go with LUA. But, our LUA scripter just left the project due to some real life matters relating to the health of his wife. Because he was really the only one who understood the lanaguage (and he really didn''t get allot of documentation down), we thought it would be best to re-evaluate the scripting as an entire module. We just hired a few ''newer'' members who will be working with the scripting. They stumbled apon a language called ferite. I was searching this forum for information and glanced over the threads of the last year and I don''t think it has been brought up in this forum before? So my question is, have any of you had any experiance with this language before? Do you know any good points or bad points about ferite? How does it compare to LUA? Here is what we came up with so far: + Powerful. + Familiar C-style syntax. + Fairly well known. + Easily extendable without digging in engine. + Clear and very organised (looks like C++ but without the complexity). + Been in development for 3 years. + Comes with xml, dbi, regex, and other goodies built in. + It comes with a complete API just for implementation. + Integrated language, so we don''t have to compile scripts (though we''ll compile our built-in modules -- low level -- with their builder tool; must make that a final-release thing, though, so that we can keep the modules open during development for faster update). Could also bundle it to use for syntax checking -- no need to write Script Editor. - More powerful than necessary? Lua is sufficiently powerful. - C-style syntax isn''t very newbie friendly. Counter: But we''ll include a library of script functions (scripting API in various compiled modules: AI, RMS, etc) so that beginners and basic modders can play around with the basics (just call functions), while advanced scripters can easily write their own scripts (we''ll need to create a library as we go for our own code reuse purposes anyway) in a format that is familiar to them. - Lua has simpler concepts: UDTs, classes, lists, dictionaries, arrays are all one simple concept. - According to MarkT, from what he''s seen online, AoK scripting - which was Pascal-ish and simpler - is/was more popular than AoM scripting (custom language XS), which is much more C++. Counter: We''ll check with modding communities and see whether they would prefer a more natural language like Lua over a C-style language like ferite. Counter-counter: Existing modders are already technically proficient. It''s potential modders that concern us ... Counter-counter-counter: Script library will help us appeal to both. - It''s pre-1.0. On the other hand, Lua is up to about 5.0, been in development for 6 years, and has been proven in a fair few applications. Counter: Developer version numbers aren''t an accurate reflection. Ferite is only pre 1.0 because the developer first wants to release Windows port, but the engine itself is complete and stable. - It doesn''t have a Windows port yet. Counter: It will be officially released in January. If we need it earlier, the developer can hand it right to us (since we won''t be using a lot of the modules). - It requires a license. Counter: It''s only a BSD license: we just need to include their copyright information in our documentation, and in the binary (about section or credits) ... just so we don''t claim we created ferite. If any of you could offer any advice one way or the other as it relates to RTS games, we would greatly appreciate it! Thanks Wijitmaker™ member of WFG 0 A.D.
Wijitmaker™member of WFG0 A.D.
Maega
Maega
Ive messed with Lua for a while. If you want, you could send me the scripting portion of the code and I could comment it for you so the next guy could pick it up.

Edit: Ignore that if you mean the language itself and not binding the code to C/C++.



[edited by - Maega on December 22, 2003 12:48:57 AM]
Wijitmaker
Wijitmaker
Thanks Maega for your offer. Problem is he really didn''t to a whole lot that would make it worth your effort.

We are still (ug...) trying to find the best language. So if anyone has any advice or thoughts, we would really appreciate it

We broke it down into needs for Frontend and Backend functionality.

Here is what we got for ''wants'' on the frontend:

- few data types: int, string, boolean, object (no need for doubles unsigned etc).
- conventional coding: almost every language goes with C-type implementation whether it''s &#106avascript, perl, php, or java.
- real (or as real as possible) OOP: they want classes, objects, inheritance, and all that good stuff. It doesn''t have be complete and standard OOP though.
- allow scripters to create their own modules/function libraries.
- string/array/regex: we really need string/array functions. XS kept scripters limited with options and even having to create workarounds because they lacked this.
- no concepts called meta-tables...
- const keyword or whatever the language would call it (ferite calls it final).

Here is what we would like for the Backend:

- run multiple scripts in various stages of execution.
- get/set a script variable value from within the engine.
- call script functions from the engine.
- call engine functions from the script.
- create variables, arrays, and objects.
- expose complex engine data structures and classes (possibly with a custom interface)
- pause scripts during execution and, later, resume them.
- restrict acess to any unsafe features of the scripting language, if applicable: File I/O, network access, system diagnostic etc.
- (Preferably) To run like the proverbial bat out of Hell.

In your folk''s experiance, what spripting language would fit that list best?

Wijitmaker™
member of WFG
0 A.D.
Wijitmaker™member of WFG0 A.D.
Oluseyi
Oluseyi
quote:
Original post by Wijitmaker
So my question is, have any of you had any experiance with this language before?
I haven't, but I browsed the site and looked through the CVS pages of sample scripts. I was far from impressed.

quote:
Do you know any good points or bad points about ferite?
Bad: It is designed to be a "simpler C".
Bad: It has unnecessarily verbose syntax. (Who needs an alias keyword?!)
Bad: Its closure construct has convoluted, unintuitive syntax (please take a look at Python's lambda for comparison).
Bad: It unnecessarily introduces namespaces (a Console namespace to be able to print? What is this, Java?)

[Edit: Bad: It's immature.]

Good: I'm not using it. Neither should you.

[edited by - Oluseyi on January 12, 2004 12:03:56 PM]
Wijitmaker
Wijitmaker
Thank you Oluseyi, thats the kind of cons I was looking for!

AP: Yeah we briefly toyed with the idea of writting our own script... but it would just prolong our development time which we really don''t want to do.

Kylotan: I think your right, there just isn''t a silver bullet out there

You guys are all mentioning python. I was under the impression that LUA had its advantages over Python - especially in the area of speed?

Sorry don''t mean to take away from the discussion here:

http://www.gamedev.net/community/forums/topic.asp?topic_id=199348

Yeah its looking more and more like ferite isn''t really a good option. If any of you have anymore dirt you could dig up against ferite let me know so I can present it to our programmers. We are going to make our final decision this weekend in our programmers meeting.

Thanks again

Wijitmaker™
member of WFG
0 A.D.
Wijitmaker™member of WFG0 A.D.
TheDarkening
TheDarkening
From the little research i did on Lua vs Python i chose Lua because it was..., well I thought it was cooler. Lua may be a bit faster but it does a hell of a lot less for you. They are both used in the industry so i wouldn''t say Python is too slow.

If you have a lot of scripts written already then stick with Lua and try to get your last guy to teach you a few things if he has the time. Otherwise, read through that thread you just posted and take your pick.
Oluseyi
Oluseyi
quote:
Original post by Wijitmaker
Thank you Oluseyi, thats the kind of cons I was looking for!
My pleasure. Seriously

quote:
You guys are all mentioning python. I was under the impression that LUA had its advantages over Python - especially in the area of speed?
Lua has advantages over Python. Python has advantages over Lua. C has advantages over assembly. COBOL has advantages over FORTRAN. X has advantages over Y.

Generic statements are worthless without specific context - in which case they are no longer generic. You have a project and a set of goals for that project; does Lua completely meet your base requirements? Does any other language? If none of them do, which comes closest?

quote:
We are going to make our final decision this weekend in our programmers meeting.
I sent CheeZy an email through your forums. Pester him about it.
Kylotan
Kylotan
I would definitely choose to keep Lua over changing to Ferite or whatever. If you have no need to change, then don''t, as Lua is perfectly capable. I love Python but you don''t want to get caught in the trap of always upgrading to the next best thing. Better to complete the project with what you have and make notes as you go along to help you choose for next time.

[ MSVC Fixes | STL Docs | SDL | Game AI | Sockets | C++ Faq Lite | Boost
Asking Questions | Organising code files | My stuff | Tiny XML | STLPort]

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.