Crystal Space
Welcome, Guest. Please login or register.
October 23, 2017, 07:28:27 am

Login with username, password and session length
Search:     Advanced search
9063 Posts in 2051 Topics by 77796 Members
Latest Member: Tochukruolan587
* Home Help Search Login Register
  Show Posts
Pages: [1]
1  Crystal Space Projects / WIP Projects / Re: My first game: Crystal Space Monopoly on: December 14, 2007, 01:16:45 pm
thanks a lot! let me know if you'd like to get involved!
2  Crystal Space Projects / WIP Projects / My first game: Crystal Space Monopoly on: December 13, 2007, 09:13:04 am
Hi guys,

Allow me to introduce my first WIP game: Crystal Space Monopoly (csmonopoly).


CSMonopoly is a free monopoly game based on an 8-year old commercial game called Richman-4 which was developed by Softstar. This game vastly differs from traditional board or electronic monopoly games in 4 ways.

Firstly, this game is semi-3D. The environment of this game is fully 3D, but the characters are restricted to moving on a 2D surface. The characters themselves are fully animated 3D avatars with a few built-in animated moves. The buildings in this game are also fully 3D.

Secondly, the fate of the players now depends much less than the throwing of the dice. On top of money, players can also acquire "street credits" on various spots of the map. The street credits allow a player to buy magic cards and tools which they can use to provide additional aids to themselves, or impede the progress of other players. For example, you can use the hibernation card to cause all the other players to sleep for 5 days while you paint the town red, or you can blast a player with a missile and send him to the hospital for 3 days.

Thirdly, there are also a dozen types of non-traditional locations available on the maps. These locations can generate different types of random events that can affect some or all the players in the game. For example, the Luck square will generate a random event for the player on it, and could send him/her to jail or award him/her lots of money. The lottery square allows you to buy a lotto ticket which could translate to a big fortune. You could also buy and sell stocks from the stock market, or borrow money from the bank.

Finally, there are some additional non-player characters randomly distributed on the map. These include gods and street gangs. Players that stop at the square of a god would have the god attached to them for 7 days, and that could be 7 days of fortune or 7 days of bad luck. Street gangs tend to beat up and rob players who are unfortunate enough to cross paths with them, however, they could also be hired to do your biddings.



This game follows a similar production pipeline as the newly announced Apricot project. In other words, the code is written using the Crystal Space game engine, but the contents are created with Blender and converted to CS data using b2cs. Furthermore, the actual code is written in Python using CS's python bindings.

Additionally, I have written a map editor for creating maps of the monopoly world, and this editor is written in Jython code.

Here is a screenshot of the map editor:

Here are some screenshots of the game, note that the map is really at its bare bone stage and looks rather unimpressive. All the buildings are fillers generated from Blender geom primitives.


As the screenshots indicate, the game is in its early stages of development. I've solved most of the CS related hurdles for the most fundamental aspects of the game, and I will be starting to work on the GUI interfaces and actual game logic soon.

The project is now hosted on sourceforge, here is the project website:

You are free to use svn to check out the code to have a look.


I hope to release this game under GPL license, and make it a package for Linux. The first major milestone is to finish the local player game and have 3 maps. The second major milestone is to finish the network player game and have 5 maps.

What you can do ...

Any help would be greatly noted and appreciated. As I said, this is a free open source game, and any contribution is welcome. However, as you can see, this is a rather small game and its success would ultimately be determined by the artwork. Since I have absolutely no artistic bones in my body, I'm hoping that people from this forum would be able to provide some help, and this may also be an opportunity for you to gain some experiences in game development. In particular, the following types of talents are mostly needed for now:

    * 3D artists who know how to use Blender
    * 2D artists who can draw stuff
    * Musicians who can compose game music and sound effects
    * Python coders who have some experience in Crystal Space

Anyway, thanks for reading, and please let me know if you are interested in getting involved.

3  Crystal Space Development / Support / Which shoud I use for the python binding? on: November 19, 2007, 06:47:26 am
Hi guys,

I compiled crystal space version 1.2 from source a while ago, and I found that there are in fact 2 files for the python binding of CS. These two files are actually different.

The first one is found at the root directory of CS, i.e. in the same directory as the "configure" script, and its size is 819731 bytes, and it seems that it was created on the same day that I compiled CS from source.

The second one is found at scripts/python, i.e. in the same directory as the 3 tutorial python files, and it's size is 767901 bytes, and it's date is about a month before I compiled CS from source.

I'm currently using the first one, but could someone please tell if this is correct?

Thanks a lot.


Update: Eric from the mailing list told me that the more up-to-date one is generated by swig and that's the one I should use. Thank you Eric!
4  Crystal Space Development / Support / Is this python code equivalent to this c++ code? on: November 17, 2007, 03:21:59 pm
Hi guys,

I've been following the user's manual and there is something I don't get.

The online user's manual for creating an iThing mesh (
has the following example code:

csRef<iMeshWrapper> walls = engine->CreateThingMesh (room, "cube"));
csRef<iThingState> ws =  scfQueryInterface<iThingState> (walls->GetMeshObject ());
iMeshObject* walls_object = walls->GetMeshObject ();
iMeshObjectFactory* walls_factory = walls->GetFactory();
csRef<iThingFactoryState> walls_state =  scfQueryInterface<iThingFactoryState> (walls_factory);
walls_state->AddQuad (
  csVector3 (-.5, .5, -.5),
  csVector3 (.5, .5, -.5),
  csVector3 (.5, .5, .5),
  csVector3 (-.5, .5, .5));

Now, could someone please tell me whether the above c++ code should do the same thing as the following
python code:

walls = engine.CreateThingMesh(room, "cube")
ws = cspace.SCF_QUERY_INTERFACE_SAFE(walls.GetMeshObject(), cspace.iThingState)
walls_object = walls.GetMeshObject()
walls_factory = walls.GetFactory()
walls_state = cspace.SCF_QUERY_INTERFACE_SAFE(walls_factory, cspace.iThingFactoryState)
walls_state.AddQuad(cspace.csVector3(-0.5, 0.5, -0.5),
cspace.csVector3(0.5, 0.5, -0.5),
cspace.csVector3(0.5, 0.5, 0.5),
cspace.csVector3(-0.5, 0.5, 0.5))

I'm asking here because that the 5th line of the python code:

walls_state = cspace.SCF_QUERY_INTERFACE_SAFE(walls_factory, cspace.iThingFactoryState)

would return a None object.

Furthermore, if the function cspace.SCF_QUERY_INTERFACE was used instead of
cspace.SCF_QUERY_INTERFACE_SAFE, I would get an immediate segfault.

So ... what am I doing wrong?

Any help would be greatly appreciated.

Thanks a lot.

5  Crystal Space Development / Support / Help a newbie please! on: November 17, 2007, 01:06:18 pm
Hi guys,

I'm reasonably familiar with computer graphics technology, but totally new to crystal space (CS).
I've been trying to do something very simple with CS but have been totally unsuccessful.

I'm a python lover, so I will be accessing the CS library only through its python bindings. All I want
to do for now is display a single mesh loaded from the HD on the screen, and I haven't been able to do so.

I have successfully followed the code from scripts/python/, and my code can do exactly what
the the example script does, but no more.

In my code, I use iThing to load my mesh, I can load the mesh, I can query the mesh from the iSector object it's
displayed in, I can get the radius and center of the mesh, but I just cannot see the mesh because as soon as
the mesh gets into the view of the camera, the program would segfault!!

There really isn't that many python examples around. So, could you guys please have a look at my code and let
me know what I'm doing wrong?

The main python script is called

The customized mesh file is called cube.mesh.

The data and code can be downloaded from:

Once you untarred the file, it will create a directory called Monopoly, you need to go into that directory to run the code. If you have the python bindings installed, you can run the script using the command:


The functions that I use to load and display my own customized mesh are:


The custom mesh is a python pickled object and it's just a cube with 12 triangles.

I'm running linux, and built CS from the source v1.2.

Any help would be greatly appreciated.

Thanks a lot.


Pages: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Page created in 5.16 seconds with 17 queries.