Jump to content

how to use it?

Guest anton

Recommended Posts

Guest avenger_work

GemRB isn't a completed product, it doesn't even work on its own, it requires an original IE game installed on your system. If you really only want to play Bg1, you are better off with Wine/Cedega at this moment. If you are still interested, read on.


1. install the original game on your computer.

2. check if it is working


3. download and install the required packages: SDL-devel, OpenAL, Python (2.3 preferably), ZLib (some systems don't need this)

4. download GemRB

5. compile

6. configure

7. test



It is damn hard to give you instructions, since you didn't tell which system you have, and whether you are intending to run the precompiled, or the source version.

Since this is a 'still under development' game, you get better results with the source downloaded from the public CVS. The public CVS is just 5 hours behind what the developers share with each other, and about a day behind the most advanced version residing only on my computer :)


So, rather than giving a step by step instruction, i tell you some facts.

1. The Windows binary version requires installed Python 2.3. It contains all the rest of the packages (i guess).


2. The Windows source version requires MSVC6.0 or better. You will have to download the additional project files from the CVS on sourceforge. You will also have to modify the project files to point to the right Python version and other libraries. You will need to install the OpenAL SDK.


3. The linux source requires: libtool, automake and of course gcc. It also requires the development version of SDL, OpenAL, Python. Optionally Ogg Vorbis.


4. The CVS version is just a very up to date version of the linux source.


5. There is no linux binary at the moment. Some old version built on Red Hat is around.


Once you got a compiled GemRB and have an installed game somewhere, check the configuration samples supplied with GemRB. Alter the paths manually.

If it doesn't run, read the text on the console carefully. If you can't find the problem ask here.


There will be a much better configuration tool and a less complex installation process, but at this moment, GemRB is only 50% done.


I think the most sane approach is to use the CVS version (preferably on Linux). Download it every week, and watch the progress. Believe me, it is interesting to watch how it builds up. If you have Windows only, you are not really the target audience of a half-developed program :)


If you want to help us and come it out faster, you don't just watch, but run GemRB.

Levels of help:

1. Compile/run it once every week, watch for things that went wrong compared to the previous version. Report the bug here or in the GemRB bug tracker. For additional bonus, You compare the two versions and actually try to find what's went wrong. No need to fix the problem, just find the offending code.


2. You can also fix the code and supply a patch in the Patch tracker.


3. You can write GUIScripts to improve the game itself. GUIScripts are written in Python and writing them is about the same complexity as scripting in the IE scripting language. A lot of stuff is written in the Python layer, this makes the engine capable of simulating all IE games from BG1 to IWD2 (with PST in middle).


4. You can contribute to the C++ code as well.


5. Join the developers!



A lot of the above information is either trivial, or could be found on gemrb.sourceforge.net.

Link to comment

:) I have a feeling that the guide above was more aimed at me than at anton ;)


I have already read ~900 pages about C++, and was trying to read a code of gem... I was very suprised that it is written more in poor C that in C++, why is that? e.g. You are more to use structures than classes (but I also found a classes like in Interface.h), so maybe I have to learn c first... (in the book I study c++ from were only mentioned structures, stdio.h, printf(), scanf() etc. but only in order to say how worse they are from classes or iostream.h, cout, cin). Moreover, today i've bought a book about Python :) When I'll know python i should read all docs from gemrb directory? Or maybe study some libraries?

Link to comment

A structure is just a class without methods. (its methods are implemented in its container class).

Sometimes it is inconvenient to have methods spread thin across classes.

This happens mostly when the structure (wanna be class) is contained only in one bigger structure (most likely be eligible as a class).

Otherwise we have classes for very primitive entities, like a Point.


In other cases i'm running rampage against vectors, when the stuff could be allocated in a single run. It is much more economical memory wise and costs less time as well.


If we had an object fetish, we could have written the stuff in Java.


About iostream and co: yeah, what exactly is the difference?

Link to comment
About iostream and co: yeah, what exactly is the difference?


That in iostream the streams are buffered (but it can be also switched off) and in stdio it can't be done... but truly I just read and read about the c++ and don't have any practical knowledge, like in the book is said that if you use goto instruction it means that you are bad programmer, but at one forum I have read that it can be used wisely... I know it'll take me years until I will know all those stuff.

But I think in two years time I'll be able to help you :)

Link to comment
Guest Guest
About iostream and co: yeah, what exactly is the difference?


We use Read/ReadDword/ReadWord/ReadResRef and Write/WriteDword/WriteWord/WriteResRef on the user level.


They are type safe, i guess :)

Error prone: well, they accept only the abovementioned types, so there is no redundancy.

Extensibility: no need, those are the only types IE has. But we could add a new function :D

Subclasses: well, we got DataStream divided into FileStream/MemoryStream/CachedFileStream.


About printf format strings: in the few places where we use them for console IO, GCC checks the types and the format tokens.

I doubt we have to switch over to iostream just for the sake of it.

Link to comment
Guest avenger_work

Well, i have to admit, there is a little problem with %d and 64 bit platforms.

But still, we use printf in debugging only (console output).

Otherwise we use buffered binary output.

Link to comment


This topic is now archived and is closed to further replies.

  • Create New...