[HELP WANTED] Sirrf - Simple Irrlicht Framework

Announce new projects or updates of Irrlicht Engine related tools, games, and applications.
Also check the Wiki
Post Reply
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

[HELP WANTED] Sirrf - Simple Irrlicht Framework

Post by ZCCdark203 »

Team name
The Sirrf Project


Project name
Sirrf - Simple Irrlicht Framework


Brief description

Sirrf, the Simple Irrlicht Framework, is an extensive, but open source and simple framework for rapid game development. Sirrf provides end-users a game skeleton which implements concepts such as states, component-based entities and a datastore. Newer hobbyist game developers will probably benefit most from the project, but hopefully Sirrf will also be useful for experienced developers.


Target aim

Long term

Making a game isn't a simple task. The goal of the Sirrf project is to create an extensive, but simple framework to enable rapid game development. Furthermore, Sirrf is aimed for as broad of a target audience as possible. Sirrf hopes to accomplish this by maintaining a cross-platform nature and a lack of genre specialization. Additionally, the framework is not-for-profit and open source, licensed under the zlib/libpng license.

Short term

At the moment the main priority is to finish the core, which will form the base for future releases. The first release is expected after Irrlicht 1.6 and AngelScript 2.17.0 are released.


Compensation

Sirrf is open to donations, but this doesn't guarantee regular financial compensation. So expect to work largely without financial compensation.


Technology

There are no requirements for developers to use specific tools; developers are free to choose their own tools. Please note that Sirrf currently uses the following languages and APIs:

Programming Language: C++
Scripting Language: AngelScript
Rendering: Irrlicht
Sound: SFML-Audio


Talent needed

C++ Programmers

Sirrf is looking for additional programmers. Moderate knowledge of C++ is required. Knowledge of other components, such as AngelScript and Irrlicht, is preferred. You'll work with other programmers over the SVN of Sirrf. As programmer you'll be working on multiple different areas of the code, but it's possible to specialize on one part of the code. Additional programmers on the following topics would be much appreciated:

- Core Development (graphics, scripting, I/O)
- Physics

Windows and Mac OSX Maintainers

Sirrf is currently only supported on Linux; maintainers for Windows and Mac OSX are needed.


Team structure

Michael Bartsch

In the past I've worked on several projects. The smaller projects nearly always involved some implementation of Irrlicht. My bigger projects, however, are mostly unrelated to Irrlicht. My latest project was the Aia-project, a project with the goal to create a small artificial intelligent robot. And before that I worked on Entwined Worlds, a 2D Action-RPG, that has never been released. Furthermore, I'm one of the editors of .simplicity.


Contact Information

Contact me via PM or SourceForge.


Additional Information

Links

Development Hub - http://apps.sourceforge.net/trac/sirrf/
SourceForge Project Page - http://sf.net/projects/sirrf/
Subversion Repository - http://sirrf.svn.sourceforge.net/viewvc/sirrf/
Sylence
Posts: 725
Joined: Sat Mar 03, 2007 9:01 pm
Location: Germany
Contact:

Post by Sylence »

devsh, your IQ is seriously missing a - in front of it.

He says it currently the only supported platform because there are no developers for the others so they need them to make it compatible for other platforms as well
Software documentation is like sex. If it's good you want more. If it's bad it's better than nothing.
devsh
Competition winner
Posts: 2057
Joined: Tue Dec 09, 2008 6:00 pm
Location: UK
Contact:

Post by devsh »

im not retarded thank you,

I was happy cause its linux only ATM
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

Post by ZCCdark203 »

FuzzYspo0N wrote:So, what has been done so far?
This is the state of the project, as of this moment:

Game Manager
The Game Manager performs generic game initialisation and deinitialisation. It also provides functions to access sub-systems of the framework, such as the Event Manager and the Entity Manager. It's main function, though, is to control the flow of the game through game state management. The GameManager class isn't done yet. It's already able to deal with single states created within C++, but I also want to load states from AngelScript files and it should be possible to have multiple active states.

Entity Manager
The Entity Manager takes care of the entities. To this end the Entity Manager provides functions to add, create, get and remove entities. This manager is completely done and it's also accessible through AngelScript.

Entities and Entity Components
In Sirrf entities are component-oriented. This means that functionality isn't added by inheriting from the base Entity class, but by adding components. The interfaces of both the Entity class and the EntityComponent class have been finished and exposed for scripting. I expect that they might be slightly changed, though, to integrate them with the game states.

The first batch op specialized Entity Components are also available.

Data Store
The Data Store manages the Data Stacks that are being used by the framework. Data Stacks provide an interface for storing (and removing) variables that can be accessed from anywhere within the framework. Furthermore it's also possible to save these variables into files.

An example:

Code: Select all

DataStack *stack = pDataStore->createDataStack("savegame1");
stack->setVar<int>("foo", 123);
stack->save("save1"); // Saves all the data within the Data Stack in a b-encoded file.
The DataStore and DataStack classes are as good as finished, but I'm planning to change the way the DataStack class uses to save and load data. I want to implement the file system of the upcoming Irrlicht.

Sound Manager
This is actually something I'm currently working on. The goal is to integrate SFML-Audio and to create components for sound management.

Script Manager
The Script Manager deals with anything related to scripting. At the moment it does nothing else, but exposing the interfaces of various classes to AngelScript. This is another work-in-progress.

But maybe you can get a better idea of the project by examining the SVN repository of Sirrf.

Sylence wrote:devsh, your IQ is seriously missing a - in front of it.

He says it currently the only supported platform because there are no developers for the others so they need them to make it compatible for other platforms as well
Exactly. At the moment Sirrf is Linux-only, because I don't have access to the resources to develop for other platforms.

Still, it's nice to see that people are interested in Linux-based solutions.
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

A small update

Post by ZCCdark203 »

It's already about two weeks ago since my last post regarding Sirrf. Unfortunately there was little interest. That probably means that the first stable release of Sirrf won't support any physics API. That's too bad, but it's not the end of the world. Since my last post here Sirrf has seen 18 revisions. Of those revisions almost all of them added new functionalities to Sirrf.

SFML-Audio has been integrated as the primary sound back-end. Besides that integration (as a separate add-on) of irrKlang is planned for those who don't mind working with proprietory software. The integration of SFML-Audio also came with several new entity components which allow the end-user to add sound data to entities. On top of that Irrlicht's event management has been integrated with Sirrf's EventManager class (which I somehow forgot to mention last time). Also, almost every part of the framework is now accessible through both native and scripted code. This allows people to extent the behaviour of the framework on run-time. Currently my main focus lies here. Scripting works pretty well, but not good enough for my taste yet. I expect to achieve the desired scripting behaviour this week, though. After that I only need to document the framework and add a cross-platform build system before I can release Sirrf.

Also, for those who're interested in Sirrf. You can now track Sirrf via Ohloh.net. And I also added the IdeaTorrent Hosted App where you can leave feature requests for Sirrf.
FuzzYspo0N
Posts: 914
Joined: Fri Aug 03, 2007 12:43 pm
Location: South Africa
Contact:

Post by FuzzYspo0N »

It looks like there is some steady progress, thats good to hear. Check your PM's if you havent already.

Keep it up
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Post by MasterGod »

How do you deal with the creation of the level?
1. How do you, the user, create and place the world objects in their places?
2. How do you, Sirrf, manage the memory of the level?
3. How do you, the user, use GUI? Through Irrlicht API or you wrap it or something?

P.S
Sounds good so far.
Image
Dev State: Abandoned (For now..)
Requirements Analysis Doc: ~87%
UML: ~0.5%
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

Post by ZCCdark203 »

MasterGod wrote:How do you deal with the creation of the level?
Sirrf defines a GameState class. In order to create a level one has to derive from this class. Currently this can be only done with native code. But soon this will also be possible through scripted code, which means that new levels can be added at run-time.
MasterGod wrote:1. How do you, the user, create and place the world objects in their places?
The user can add objects to their virtual world by adding entities. These entities can be further defined by adding components.

Example:

Code: Select all

Entity *player = GameManager::Instance()->getEntityManager()->createEntity("player");

AnimatedMeshComponent *mesh = new AnimatedMeshComponent(player, "player.md2");
mesh->setMD2Animation(EMAT_RUN);

new SoundListenerComponent(player);
MasterGod wrote:2. How do you, Sirrf, manage the memory of the level?
States are managed by the GameManager class. This class provides three functions to this end: changeState, pushState and popState. changeState replaces the currently running state with a new state. So, the old state is deleted. pushState adds a new state to the internal array within GameManager. In this case the currently running state is not deleted, but paused. And popState deletes the currently running state and resumes a previously paused state.

This of course also affects all available entities. But because all entities have to take a state-bound entity as parent, the correct behaviours (change, push, pop) are also passed to the entities and their components.
MasterGod wrote:3. How do you, the user, use GUI? Through Irrlicht API or you wrap it or something?
I honestly didn't put a lot of thought in this part of the framework, yet. There are two possible options, though. The user would have to use the Irrlicht GUI directly, or it would be wrapped into entity components. Currently you're stuck with the former option.
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Post by MasterGod »

Cool.
Ya know its funny cause the GUI thing I asked was because I'm at the exact same position as you with it. I didn't pay too much attention to it and for now I'm not gonna wrap it or anything.
Edit: Besides, Irrlicht GUI system is pretty damn good. Maybe forcing the user to learn Irrlicht's GUI API isn't such a bad thing, taking into consideration you don't have a full team of programmers at your door step to wrap it all..
I'm working on a similar project as you..

Oh and I have another question if I may ask:
Q: Do you use multithreading? Cause I saw sigslot header..

P.S
My project is at DOC/UML stage.. no code yet. (except for pretty old experimental bad version)
Image
Dev State: Abandoned (For now..)
Requirements Analysis Doc: ~87%
UML: ~0.5%
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

Post by ZCCdark203 »

MasterGod wrote:Cool.
Oh and I have another question:
Q: Do you use multithreading? Cause I saw sigslot header..
Well, I don't rely explicitly on multithreading. With that I mean that I'm not really using multithreading, aware. The only parts which probably run in a separate thread are the input-based event slots of the EventManager. These slots are closely bound to Irrlicht's event management.
MasterGod wrote: P.S
My project is at DOC/UML stage.. no code yet. (except for old bad version)
That's cool. I've actually seen your project before. I didn't put much time in it, though, as I saw that you were redesigning it.
MasterGod
Posts: 2061
Joined: Fri May 25, 2007 8:06 pm
Location: Israel
Contact:

Post by MasterGod »

Are you sure you need multitasking for such purpose? Wouldn't it be better making it to work with one thread?

P.S
I've edited my post up there in case you didn't noticed.. :wink:
Image
Dev State: Abandoned (For now..)
Requirements Analysis Doc: ~87%
UML: ~0.5%
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

Post by ZCCdark203 »

MasterGod wrote:Cool.
Ya know its funny cause the GUI thing I asked was because I'm at the exact same position as you with it. I didn't pay too much attention to it and for now I'm not gonna wrap it or anything.
Edit: Besides, Irrlicht GUI system is pretty damn good. Maybe forcing the user to learn Irrlicht's GUI API isn't such a bad thing, taking into consideration you don't have a full team of programmers at your door step to wrap it all..
Yes, that's true. I actually thought the same thing about it. That's another reason why I haven't wrapped Irrlicht's GUI system. Irrlicht's GUI environment is pretty good.
MasterGod wrote:Are you sure you need multitasking for such purpose? Wouldn't it be better making it to work with one thread?
Well, I only meant that I'm using Irrlicht's event system in combination with sigslot. But I'm not really using multithreading. I'm sorry if my previous post was confusing about that aspect.
m_krzywy
Posts: 133
Joined: Sat Nov 04, 2006 2:05 pm

Post by m_krzywy »

devsh wrote:im not retarded thank you,

I was happy cause its linux only ATM
It's not really good. For me Linux is't really good OS. I had once installed Ubuntu 8.10 but lack of apps make me use Windows all the time.
Post Reply