From Fallout Scripting to Programming

JimTheDinosaur

Vault Dweller
Modder
I'm thinking of at some point trying my hand at making a vapourware/game of my own, and given that I want to do something a bit more challenging than the Multimedia Fusion sillyness I did years ago, I'm pretty sure I'm going to have to learn (at the very least) some very basic programming.

Now, my question is if there's one of the languages out there which has a particular affinity with that of the scripting in Fallout. I don't have any illusions that being able to do some basic mod scripting will give me a really big advantage when it comes to learning a programming language, but I assume that it's at least somewhat useful. I read somewhere that the Fallout language is closest to Pascal and C preprocessor, but I'm fairly sure those don't get used a lot anymore (at least, all the talk I see is about C#, Python and C++).

Also, would anyone be able to recommend a good game making engine (which should of course ideally use this language affiliated with Fallout's)? I was planning on either going a very small step from Multimedia Fusion to Game Maker (at least, I heard it has more scripting options for you to change the basics) or a slightly bigger one to Torque2d.
 
JimTheDinosaur said:
I'm thinking of at some point trying my hand at making a vapourware/game of my own, and given that I want to do something a bit more challenging than the Multimedia Fusion sillyness I did years ago, I'm pretty sure I'm going to have to learn (at the very least) some very basic programming.

Now, my question is if there's one of the languages out there which has a particular affinity with that of the scripting in Fallout. I don't have any illusions that being able to do some basic mod scripting will give me a really big advantage when it comes to learning a programming language, but I assume that it's at least somewhat useful. I read somewhere that the Fallout language is closest to Pascal and C preprocessor, but I'm fairly sure those don't get used a lot anymore (at least, all the talk I see is about C#, Python and C++).

Also, would anyone be able to recommend a good game making engine (which should of course ideally use this language affiliated with Fallout's)? I was planning on either going a very small step from Multimedia Fusion to Game Maker (at least, I heard it has more scripting options for you to change the basics) or a slightly bigger one to Torque2d.
From the snipets of code I saw from Fallout scripting languages, I think they look A LOT like C.
Taking out Python, which is quite different, all of the languages you named have a syntax quite similar to C's. In fact, you can use C as a subset of C# and C++. Being extremely simplist, C++ is C plus classes (which if I get OOP correctly, are just structs and typedefs with methods), and C# would be C++ with the ability to make managed code (which is optional, AFAIK). Last time I checked, C# was mostly used as a scripting language within games, and the engines kept being coded in C++. Python has some usecases, but I think is mostly suited for the scripts, not the engine (except small games), since being an interpreted language usually means nested loops become really slow. There is experimental support for building binaries and bytecodes, IIRC, that might help.

For game making engines, I think FIFO might be what you're looking for. I didn't try it, but since it's derived from an attempt to clone the Fallout engine, it's likely the scripting language and the results are similar to what Fallout gives.
 
Oppen said:
From the snipets of code I saw from Fallout scripting languages, I think they look A LOT like C.
Taking out Python, which is quite different, all of the languages you named have a syntax quite similar to C's. In fact, you can use C as a subset of C# and C++. Being extremely simplist, C++ is C plus classes (which if I get OOP correctly, are just structs and typedefs with methods), and C# would be C++ with the ability to make managed code (which is optional, AFAIK). Last time I checked, C# was mostly used as a scripting language within games, and the engines kept being coded in C++. Python has some usecases, but I think is mostly suited for the scripts, not the engine (except small games), since being an interpreted language usually means nested loops become really slow. There is experimental support for building binaries and bytecodes, IIRC, that might help.

For game making engines, I think FIFE might be what you're looking for. I didn't try it, but since it's derived from an attempt to clone the Fallout engine, it's likely the scripting language and the results are similar to what Fallout gives.

Thanks a lot for the info. Yeah, I considered using either FIFE or the FOnline engine, but those worry me a bit because I've heard a lot about their lack of documentation (I just went to FIFE's site and the link to "DOCS" doesn't even refer to anything). So I thought I'd start out with some more user-friendly engines, maybe learn the ropes and if necessary switch at some point.
 
Drobovik said:
Oppen,

You meant FIFE engine, I think.

Link
Yep, that's what I meant, thanks.

JimTheDinosaur said:
Oppen said:
From the snipets of code I saw from Fallout scripting languages, I think they look A LOT like C.
Taking out Python, which is quite different, all of the languages you named have a syntax quite similar to C's. In fact, you can use C as a subset of C# and C++. Being extremely simplist, C++ is C plus classes (which if I get OOP correctly, are just structs and typedefs with methods), and C# would be C++ with the ability to make managed code (which is optional, AFAIK). Last time I checked, C# was mostly used as a scripting language within games, and the engines kept being coded in C++. Python has some usecases, but I think is mostly suited for the scripts, not the engine (except small games), since being an interpreted language usually means nested loops become really slow. There is experimental support for building binaries and bytecodes, IIRC, that might help.

For game making engines, I think FIFE might be what you're looking for. I didn't try it, but since it's derived from an attempt to clone the Fallout engine, it's likely the scripting language and the results are similar to what Fallout gives.

Thanks a lot for the info. Yeah, I considered using either FIFE or the FOnline engine, but those worry me a bit because I've heard a lot about their lack of documentation (I just went to FIFE's site and the link to "DOCS" doesn't even refer to anything). So I thought I'd start out with some more user-friendly engines, maybe learn the ropes and if necessary switch at some point.

Yes, it makes a lot of sense. Documentation is everything if you are supposed to code something to run on it. I wasn't aware of that. I'm looking for something in which to spend some time and I think I'm capable of writing a wee bit of docs, so I might try to give them a hand on that aspect :)

EDIT: Doesn't this help? http://www.fifengine.net/doxygen/classes.html
 
Oppen said:
Yes, it makes a lot of sense. Documentation is everything if you are supposed to code something to run on it. I wasn't aware of that. I'm looking for something in which to spend some time and I think I'm capable of writing a wee bit of docs, so I might try to give them a hand on that aspect :)

EDIT: Doesn't this help? http://www.fifengine.net/doxygen/classes.html

I wouldn't know yet, but I probably just used documentation in the wrong sense (I was thinking in terms of tutorials, help files, this sort of thing). Either that, or I was only thinking of FOnline (whose lack of documentation I saw Surf Solar complain about somewhere.) Do you think it would be feasible for someone with zero programming experience to get to understand FIFE with only the documentation you linked and some general programming guides on the side (at least, I assume I would need that, unless there's the tutorials I was looking for somewhere I haven't found them)? Or do you think I'd be better off taking the other route I mentioned?
 
JimTheDinosaur said:
Oppen said:
Yes, it makes a lot of sense. Documentation is everything if you are supposed to code something to run on it. I wasn't aware of that. I'm looking for something in which to spend some time and I think I'm capable of writing a wee bit of docs, so I might try to give them a hand on that aspect :)

EDIT: Doesn't this help? http://www.fifengine.net/doxygen/classes.html

I wouldn't know yet, but I probably just used documentation in the wrong sense (I was thinking in terms of tutorials, help files, this sort of thing). Either that, or I was only thinking of FOnline (whose lack of documentation I saw Surf Solar complain about somewhere.) Do you think it would be feasible for someone with zero programming experience to get to understand FIFE with only the documentation you linked and some general programming guides on the side (at least, I assume I would need that, unless there's the tutorials I was looking for somewhere I haven't found them)? Or do you think I'd be better off taking the other route I mentioned?
I have no idea, the closest I've ever been to what you want to do was trying (and I'm currently working on that, I just need to rewrite a few things to get audio to work) to fix a long abandoned Linux engine for Wolfenstein3D.

But my guess is you can if you try to decide which problems need solving first, and make a stub for the program. Then, you can check what you need the engine to do, and trying different ways to put it into words you'll probably find what you need from the exposed API, and will be able to implement your game.
 
Would you consider helping with my project instead? :P

I dont pretend im actually gonna make a new fallout game but im not willing to let go of the project either and so far its working ok. I even coded AI for companions :D
 
Asking Jim or asking me?
If it's me, I don't think I can right now. Also, I picked that project mostly to learn.
 
Well, in case anyone is interested (I'm sure you were all waiting with bated breath) I have decided to try my luck with FIFE. Turns out they do have a very nice set of tutorials and demos out after all, so I'm happy. The scripting is Python-based, though the engine itself is C++, but I haven't a clue whether or not that fact addresses Oppen's performance warnings about Python.

I'm also considering giving FifeRPG a try, though probably later on. It's still pre alpha, but the thing it does - introducing a component-based entity system - looks very useful for making rpg's. At least, if I understood it right, it replaces the class/object-based system with one which makes attributes and the like very easy to apply. What I also like from reading the ECS wiki is this:

- The entity can be referred using the id instead of a pointer. This is more robust, as it would allow for the entity to be destroyed without leaving dangling pointers.
- It helps for saving state externally. When the state is loaded again, there is no need for pointers to be reconstructed.
- Data can be shuffled around in memory as needed.
- Entity ids can be used when communicating over a network to uniquely identify the entity.

I always hated how the object pointers would reshuffle in Fallout (I even made an sfall request about that, though now I understand I probably shouldn't have bothered), so this looks very nice.
 
It mostly addresses it, since the scripts will be scripted anyway (i.e., they'll be interpreted by the engine), and should not have complex loops to start. In the engine side, you might want to use recursion or several nested loops, and that's not too good in scripting languages. C++ is good for that.
 
Back
Top