User talk:Prock

From FIFE development wiki
Jump to: navigation, search

Interesting articles



Barra mentioned the description of FIFE on SourceForge is a bit clunky. Lets see if we can improve it. Here is the original one.

The mission of the FIFE project is to create a cross platform 2D game creation framework. Games can be created with combination of engine, editor tools, game specific scripts and game content (e.g. maps, graphics and sounds).

Lets try something new:

FIFE is a cross platform 2D game creation framework written in C++ with Python bindings. It's designed to be flexible enough to support a wide variety of 2D game types but specializes in 2D isometric type views.

Engine Specific

  • Model... is Model a good name for Model? The word model can be used in a number of different ways but I'm not sure if it accurately describes what it represents in FIFE and could confuse people. Model currently contains a list of maps, objects, grids, namespaces, pathers. It also keeps track of the time multiplier, updates all maps each frame, and updates each pather every frame (this brings a question to mind.. can there be more than one map on screen at a time? if not do we really need to update non active maps?). EDIT: found the Model Design Documentation which pretty much explains its use.
    • I did more thinking about Model trying to come up with a more descriptive name. Looking at the class diagram it isn't exactly clear what Model actually is. It kindof a place to store a bunch of miscellaneous somewhat related data. Perhaps this is a bit of a problem in itself.
    • From the Model Design Documentation document... "Model contains the essential engine structures that are used to represent the game world.". Why not call it "World"??
  • GUI system should also use "relative coordinates" for positioning GUI elements. This would be useful for games that can use different screen resolutions.
  • Ogre3D uses a scene manager idea which allows clients to override the scene manager to provide their own method of managing the scene. FIFE could provide it's own set of scene types (like RPG isometric, or side scroller, or card game, etc etc). When the client starts their application they would pick the best manager for their type of game and use that. Interesting idea. See the Ogre3D SceneManager documentation for more info.
  • Might be useful to understand the Ogr3D implementation of string->value properties. I can see this as being useful when wanting to store custom property values in a fife instances. In essence the user could provide their own property sets.


Compiler Notes

Here is a collection of handy little compiler specific things that I've come across:

GCC - Display all pre-defined compiler macros/defines

Here's how to see all predefined macros from gcc. Create a file test.c that has one line in it:

 int main(void) {}

Then compile with this command:

 gcc -dM -E test.c 

Even easier (I got an e-mail tip on this)

 echo . | gcc -dM -E -

Website re-launch

We need to move the site to another web-host asap. We will re-launch the website at the same time. Hopefully make it look pretty good. Misc ideas I had for the web-host

  • Debian based Linux
  • LAMP (needed for wordpress and the forums)
  • supybot with a couple plugins
    • SupyTrac (for ticket notifications)
    • MeetBot (for FIFE meetings)
    • Some sort of plugin for IRC logs. Perhaps something with some searching capability and highlighting.

Python stuff

  • Use cProfile to profile python apps. Runsnake to view the resulting profile.

Compiling the Dev SDK for Windows

Building Boost

 boostrap.bat mingw
 bjam --link=static --toolset=gcc stage