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

Open source 2D engine searching for C++ & Python programmers *demo* *screenshots*

Started by mvBarracuda Jun 22, 2007 at 4:04 PM 5 replies 3.3k views
Original Post
mvBarracuda
mvBarracuda
Team name: FIFE developing team. Project name: FIFE - Flexible Isometric Fallout(-like) Engine. Brief description: Just like the name of our project suggests we work on a new open source engine for isometric 2D games. The engine started as a Fallout-related project but we recognized very fast that it offers the potential to be used as a general 2D isometric engine for the development of cross platform games in general and RPGs in particular. The engine supports the assets of the original Fallout games but that does NOT mean you're bound to them in any way. We are focusing on the programming of the engine itself but will bundle it together with an example game. This way developers have a starting point for their own FIFE-based projects. Since we do not focus on the creation of a complete game we're working on comfortable and easy-to-use editing tools. Engine and editor tools are meant to run on all flavours of Linux, Win32 and MacOSX. The FIFE project is over 22 months in development now and we have released five public pre-alpha and alpha versions of the engine on sourceforge / freshmeat over this time. We did recently release our latest stable milestone: FIFE 2007.1. Our last major milestone 2007.1 was released in April 2007 and now we're hardworking to finish the work on the next version of FIFE till the end of the summer. Target aim: Open source GPL v2.0; non-profit Compensation: We are confident that interested developers will find it quite exciting to work on the creation and the design of a whole engine with other experienced and passionate open source programmers. But as we're a non-profit project the only thing we can provide is the actual development experience that you'll gain and the satisfying feeling to work on an ambitious project. Technology: Linux, Windows, MacOSX C++, Boost library SDL, OpenGL (optional) Warning: It seems that we should have stated this earlier as a lot of programmers seem to be overstrained with the undertaking of creating a whole engine. That is not meant to sound rude but FIFE is a quite complicated large-scale project that needs a different working approach compared to smaller projects. We're searching for experienced C++ developers who want to take the challenge and work with other mature and experienced developers. Please have a look at our source code first before you apply for any position. There were several developers who applied for positions in the past who couldn't cope with the task and did leave the team. As this is neither satisfying for you nor for us, the best way to find out if you want to take the challenge is to have a look at our current code base. You can either get the most recent code from our Subversion repository or download a fresh engine snapshot from our homepage (if you're not familiar with SVN yet or don't have the needed tools installed). If you got a Subversion client installed (we suggest to use TortoiseSVN if you're on win32), you should definately go for the SVN checkout. The source packages tend to become outdated rather fast as they're just updated for every major milestone. SVN sourcecode checkout:
Quote:
svn co https://svn1.cvsdude.com/fife/engine/trunk/
HTTP sourcecode download: FIFE 2007.1 src package Talent needed: Engine designer & programmer - position(s) open Advanced C++ skills and engine design knowledge are required for this position as you will need to make design decision about the architecture of the engine. Experience with any of the 3rd party libraries that we're utilizing would be really appreciated but isn't a must. It is far more important that we find someone who can invest a serious amount of time to improve the engine design and give the development a direction. Engine programmer (misc.) - position open We're searching for developers who are able to improve certain aspects of the engine. Possible development areas are: * Audio code development (OpenAL, for a more detailed description, have a look at the following paragraph) * General SDL-related development (e.g. rewrite of the current input manager) * GUI-related development * Map-related tasks (pathfinding, line of sight, etc.) * SDL software renderer development * OpenGL hardware renderer development * Scripting / Python development * Unit test development Engine audio programmer - position open Our audio programmer has been quite busy lately and had no time to work on the engine audio code therefore. We're trying to find a developer who has experience in working with cross platform programming in general and in working with OpenAL in particular. As there is no other audio expert on the team besides this one inactive programmer, there are unfortunately no well-defined tasks for improving the code. Therefore your task would to be to analyze the current audio code that is in place and develope a strategy for improving it feature-wise and bring up refactoring ideas if you think that even the structure of the code should be improved in specific places. Although our former audio programmer is not on the team anymore, our other developers will help you getting into the code and support you with specific feedback about possible feature and structure improvements of course. So no need to be afraid: you'll have full support by the other developers if any issues arise so we're sure that we can tackle all upcoming problems as a team. Python programmer - position open We did recently add Python support to our engine by utilizing SWIG. Python support was just meant to be a proof of concept but as it worked out very well we decided to replace our old design (lua as embedded scripting language) with SWIG (giving us the possibility to extend the engine instead and support a number of other scripting languages besides lua, e.g. python, ruby or even OCaml). You would work on implementing features into FIFE that are not performance-critical and can be written in Python therefore. Basic C++ knowledge will be sufficent; advanced Python experience is more important for this position. Another plus would be if you would have worked with SWIG before and could help out with possible arising issues (e.g. object ownership between engine and script side or exception handling were two of the potential pitfalls we did recently discover). We're using the Python-based SCons tool as build system for our project. Experience with this build tool would be another fantastic additional skill for any interested developer as we intend to improve our build scripts before we ship our next major public release. Team structure: (only currently active members listed!) Jasoka - engine designer & programmer jwt - engine designer & programmer Mutex - engine programmer mortiz - engine programmer mvBarracuda - project manager prock - engine programmer My job as project manager is to keep the team together and to ensure that the communication structure inside the team works so everyone enjoys working on the project. Among other things I'm responsible for the recruitment of new developers, the news updates @ FIFEngine.de, the project wiki and to provide the official and unofficial win32 packages. Website: Homepage Development wiki Getting started guide for interested developers Doxygen code documentation Design documents Developer blog Roadmap for the upcoming releases Current release: Stable: FIFE 2007.1 Win32 (official release based on r1004) FIFE 2007.1 src package (official release based on r1004) Experimental: FIFE r1222 Win32 (SVN snapshot) Ways to contact the team: IRC channel: irc.quakenet.org | #fife eMail: mvBarracuda AT web DOT de ICQ: 98600423 MSN: mvBarracuda AT web DOT de AIM: barrafife Important: You can either use our free XMLmaps with the engine or access the original Fallout maps with it. If you want to use the Fallout maps you will need a legit copy of Fallout 1 or 2. The FO 1/2 maps are far more advanced compared to our own XMLmaps. However the new 2007.1 release ships with our new demo map: official_map.xml. This is the first more advanced FIFE demo map that shows how our map format and specific concepts like archetypes, tilesets and object prototypes work. To give you an impression of the current status of FIFE we took sample screenshots of the current release (The latest two feature customs maps of the 2007.1 release, however the majority of the shots were taken with Fallout maps and older releases of the engine): Official 2007.1 demo map: official_map.xml: Official 2007.1 demo map: official_map.xml. New map with buildings created by wulax: New map with buildings created by wulax. FIFE with real square tiles. Useful for the creation of classical non-ISO 2D games like jRPGs: FIFE with real square tiles. Useful for the creation of classical non-ISO 2D games like jRPGs. Split personality. The new multiple cameras feature: Split personality. The new multiple cameras feature. Welcome to the New California Republic: Welcome to the New California Republic! FIFE offers a console interface to debug your games with: FIFE offers a console interface to debug your games with. One of our first custom XML maps with placeholder graphics: One of our custom XML maps with placeholder gfx. Transparency for roof tiles: Transparency for roof tiles. Feedback: Feel free to add whatever feedback you like :-) Critics will help us to improve the project. [Edited by - mvBarracuda on July 29, 2007 11:18:27 AM]
-----PARPG - open source isometric 2d old school RPG still looking for interested contributors
mvBarracuda
mvBarracuda
Update time :-) Progress was rather slow in the last weeks but there's a bunch of interestings things to report about nevertheless.

So here we go:
FIFE blog update 2007/06/25
-----PARPG - open source isometric 2d old school RPG still looking for interested contributors
mvBarracuda
mvBarracuda
Time for yet another update here :-)

The progress of the last two weeks is quite encouraging. We've decided to give the extend approach for scripting a try in a separate branch but it looks like that this branch will replace our current trunk version quite fast. The work on it isn't finished yet but it seems that the performance drawback of the extend approach should be bearable; some initial tests (although with work in progress code and just on tested a Linux system) did show almost no performance drawbacks at all.

For anyone who's interested to know more about it and is not afraid of playing around with some work in progress code, check out our extend branch in SVN:
branches/active/extend

One major advantage of the extend approach in combination with SWIG is that you'll be able to get FIFE running with bindings for your favourite scripting language quite easily. We do currently play around with Python support and that works quite well. Additionally we'll maintain support for Lua bindings as Lua was our language of choice before we decided to try something different than embedding the scripting language into FIFE. It shouldn't be too hard to create Ruby or OCaml bindings for FIFE either and if we find somebody who maintains these bindings, they'll find their way into our Subversion repository so you won't even need to invest time to generate the bindings yourself (although SWIG makes it rather easy in most cases).

Here is a nice screenshot from one of our recent test sessions. It shows the FIFE console that now can execute Python code e.g. for ingame manipulations or debugging your FIFE-based game:
FIFE in combination with SWIG brings you Python support for the engine console.

Besides the work on the extend branch we're currently trying to fill our wiki with use cases for some possible FIFE-based games. That's because we intend to tackle the design of our scripting API after the work on the extend branch has finished. There is already a pretty small API in place but as it was written as proof of concept and for doing initial scripting tests it is neither consistent nor feature-complete. So we're trying to collect some real game examples first, analyze them concerning their requirements for a scripting API and plan to come up with a consistent design for our API after that.

If you consider to use FIFE for an own game in the future feel free to lend us a hand by contributing to the use cases. And don't be afraid: there are already a bunch of examples listed there that should make it easy for you to get started. If you would like to contribute but don't understand the concept of the use cases or got other related questions feel free to ask them here or at the talk page of our use case wiki article:
Use cases for the FIFE scripting API

And last but not least we're still searching for interested programmers who would like to collect some experience working on a rather large scale group project :-) And we're usually kind guys and don't bite so if you want to find out more about us before you sign a lifetime contract with us feel free to visit our irc channel :-)
#fife @ quakenet
-----PARPG - open source isometric 2d old school RPG still looking for interested contributors
mvBarracuda
mvBarracuda
Yet another FIFE update coming to you :-)

The work on the extend branch is coming along quite well lately and our current lead programmer Jasoka decided to summarize the current status from the developer's point of view. He does comment on the new Python support of the engine and raises some points how the modularization of FIFE should work.

For everyone who's interested in reading Jasoka's full text, feel free to check it out at our developer blog:
http://mirror1.cvsdude.com/trac/fife/engine/wiki/2007/07/11/18.44
-----PARPG - open source isometric 2d old school RPG still looking for interested contributors
mvBarracuda
mvBarracuda
Update: we removed the editor programmer position as our engine programmer jwt decided to start working on the editor tool.

We're now searching for Python programmers who could help out to improve the script-side of FIFE. More detailed information about the position can be found in the updated original post at the beginning of this thread.
-----PARPG - open source isometric 2d old school RPG still looking for interested contributors
mvBarracuda
mvBarracuda
We're still looking for Python programmers who would like to get involved in the project and help out in the scripting area.

If there is something project-related that scares you off let us know :-) We're always interested to improve the project structure so any critical feedback will help us to find out where refinement could be made.
-----PARPG - open source isometric 2d old school RPG still looking for interested contributors
mvBarracuda
mvBarracuda
Update time :-)

We're currently reworking our XML map format as we found a number of inconsistencies that we failed to foresee when we initially designed the first version of our map format :-/

Fortunately (or unfortunately, that really depends on the perspective) there are just two FIFE-based games in development at the moment so we decided to address these issues as soon as possible to reduce the number of affected projects that will need to slightly adjust their map markup to work with the latest FIFE code.

Updated FIFE map format (draft)

The good news is that the reworking of the map format is a first step and part of our strategy to finally tackle the monster that FIFE developers call the "map editor". So there is actually hope that people who start to explore the world of FIFE with our next planned release 2007.2 won't need to worry about these changes at all (if we manage to finish a first version of our map editor tool until then).

Jasoka and jwt did invest a large amount of time to refactor important parts of the engine, kick out singletons and remove bi-directional dependencies between the different engine modules thus leading to a far cleaner engine structure. The whole refactoring process is still ongoing and everyone who's interested in what we're currently working on should check out our metamodel branch in SVN and take a look at the SVN changelog of the last weeks :-)

Metamodel branch @ SVN
SVN changelog

And surprise, surprise: we're still searching for interested C++ and Python programmers who would like to get involved in an ambitious team project. If you're interested to learn at least about the basics of our project and what it would take to join the gang, feel free to check out our (lately slightly reworked) getting started guide for (potential) developers.

Getting started with FIFE

And even if you're not interested in taking part, we would really appreciate some feedback nevertheless :-) I'm a bit puzzled why the thread got quite a lot of views but no replies (besides the ones I'm writing myself *g*) at all :-/
-----PARPG - open source isometric 2d old school RPG still looking for interested contributors

Topic Locked

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

Sign in to reply to this topic.