Sirrf version 0.2.1 released! (30/08/2009)

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

Post by ZCCdark203 »

christianclavet wrote:Hi, Michael.

I've just finished looking your source. Everything is well written, I really think I will try to merge it in my project.

That look really good!
Regards,
Christian Clavet
Hi Christian,

That's great news. If you need assistance with merging, then don't hesitate to ask for help. As far as I know stripping features should be quite easy, but you never know.

Regards,
Michael
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

Sirrf - Simple Irrlicht Framework - version 0.1.1 released!

Post by ZCCdark203 »

Sirrf version 0.1.1 has been released! See the first post for more details.

And for archival purposes:

---
Sirrf - Simple Irrlicht Framework - version 0.1.0 released!

Today the first official version of Sirrf, the Simple Irrlicht Framework, has been released. After two months of steady development Sirrf has finally reached the initial goals of Sirrf 0.1.0: being an extensive, but simple open source framework to enable rapid game development. In its current state Sirrf is able to do exactly that. That's also the reason why Sirrf has jumped directly from pre-alpha status to beta status.

But what can Sirrf do for you? In it's current state Sirrf offers game logic, graphics, scripting and sound control. Some noticeable features are:
  • Data Store
    The Data Store allows you to store primitive value types such as integers, floats and doubles in a type-independent format. These variables can be accessed from anywhere within the framework, from both native and interpreted code, through the DataStore and DataStack classes.

    Entity Management
    In Sirrf entities are component-oriented. The idea behind Component Oriented Entities is to make entities data-driven. In order to do this the functionalities are split in various individual components. As a result an entity is in fact nothing more than a collection of components. So, what an entity represents, is defined by its components. Sirrf currently offers various components in the fields of graphics and sound. Furthermore Sirrf also provides an Entity Manager which should be seen as the central interface point to all entity related issues.

    Event Management
    Sirrf's event management is build upon sigslot. This means that Sirrf follows an observer model where objects have to subscribe to an event if they want to react to that event. Currently observers can subscribe to game logic events, input events (passed from Irrlicht) and GUI events (again, passed from Irrlicht).

    Game Management
    The Game Manager performs generic game initialization and deinitialization. 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. This class provides various features to this end.

    Scripting
    Sirrf is almost completely accessible through AngelScript, a free and open source scripting language. AngelScript allows users to extend applications on run-time using scripts that follow a C/C++ like syntax. Furthermore it's easy to extend Sirrf's AngelScript bindings even further.
You might be wondering, though, if Sirrf is really something for you. It's obvious that Sirrf is ideal for newcomers to Irrlicht and game development, but Sirrf should also be useful for experts. Especially now experts are more than welcome as Sirrf is still in beta status.

In the coming time focus will lie primarily at adding additional documentation. This will be an crucial step to make the framework more accessible to newcomers. And of course Sirrf will also be extended with new features.


Useful links
Development Hub - http://sourceforge.net/projects/sirrf
Downloads - https://sourceforge.net/project/showfil ... _id=260711
Help Wanted - http://irrlicht.sourceforge.net/phpBB2/ ... hp?t=33606
Sirrf - Simple Irrlicht Framework - version 0.1.1 released!

It is only two weeks ago since the first official version of Sirrf, the Simple Irrlicht Framework, was released. But now it is already time for the next release: 0.1.1. In comparison to the previous release, this new release adds few new features. Yet the new release can be considered as an important one. Sirrf 0.1.1 brings an improved scripting architecture; all AngelScript binding code has been moved into its own dedicated directory. Not only does this tidy up the code, but it also to remove scripting quite easily (if desired). This has become even easier with the addition of compilation flags which can be used to easily enable/disable certain features of the framework. Furthermore the have been various small bug fixes and other improvements. See the change log for more information.


Useful links
SourceForge.net page - http://sourceforge.net/projects/sirrf
Downloads - http://sourceforge.net/project/showfile ... _id=260711 | http://www.ohloh.net/p/sirrf/download?package=Sirrf
Last edited by ZCCdark203 on Fri Aug 21, 2009 2:34 pm, edited 1 time in total.
FuzzYspo0N
Posts: 914
Joined: Fri Aug 03, 2007 12:43 pm
Location: South Africa
Contact:

Post by FuzzYspo0N »

Cant wait to try this out. To anyone else : this is a great framework and its going to get a heck of a lot better. I recommend trying it out.
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Hi, Michael!

Great new release! With that other could look at your code and make bindings for another scripting system (squirrel, python, etc). Very nice.

Do you think that this will also be possible for the audio part in a next release? (I'm not meaning the NEXT one) (I want to try to adapt the code for IRRKDlang)

Very cool framework. I really hope my code will be ready soon to receive the modifications it need to receive your framework.
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

cool one. i'm looking forward to this project.
aanderse
Posts: 155
Joined: Sun Aug 10, 2008 2:02 pm
Location: Canada

Post by aanderse »

I read through the code and like it as well. Multiple scripting back ends (through abstracting the scripting interface) would be awesome.
sio2
Competition winner
Posts: 1003
Joined: Thu Sep 21, 2006 5:33 pm
Location: UK

Post by sio2 »

I'm curious: any specific reason why std::map and std::string was used instead of Irrlicht's core::map and core::string?
FuzzYspo0N
Posts: 914
Joined: Fri Aug 03, 2007 12:43 pm
Location: South Africa
Contact:

Post by FuzzYspo0N »

He didnt know much of the core:: stuff when he started sio2, he has been merging pieces at a time to the core:: stuff.
Multiple scripting back ends (through abstracting the scripting interface) would be awesome.
I think that this would need to be a sort of, compile time option. The reason being that perhaps running multiple interpreters will get a little chunky, but i see other engines doing it too. Its an interesting idea though.
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

Post by ZCCdark203 »

christianclavet wrote: Great new release! With that other could look at your code and make bindings for another scripting system (squirrel, python, etc). Very nice.
aanderse wrote:I read through the code and like it as well. Multiple scripting back ends (through abstracting the scripting interface) would be awesome.
Yeah, this new releases paves the way for the implementation of multiple scripting bindings. Multiple scripting back-ends are possible too, but it will need a good requirement analysis for the scripting interface abstraction. I'll keep it in my mind, but I'm not sure if it will make it into 0.2.0.
christianclavet wrote:Do you think that this will also be possible for the audio part in a next release? (I'm not meaning the NEXT one) (I want to try to adapt the code for IRRKDlang)
Well, you can already disable sound by undefining the __COMPILE_WITH_SFML_AUDIO__ flag. And removing sound completely shouldn't be a big task. Thanks to the compilation flags this has become even easier, as you now know exactly what you have to remove.

But maybe I've misunderstood you. If that's the case, please elaborate. :)
sio2 wrote:I'm curious: any specific reason why std::map and std::string was used instead of Irrlicht's core::map and core::string?
The reason why I decided to use std::map and std::string, is because I'm more familiar with C++'s standard library. As a result I don't know what the advantages and disadvantages are of Irrlicht's core::map and core::string. Furthermore I was worried whether core::string would integrate in a good way with scripting.


As for everyone I didn't reply directly to, thanks for the replies. I'm really happy to receive feedback on Sirrf, and where possible I'll always try to incorporate that feedback. Also, special thanks to FuzzYspo0N. Thanks for answering some questions in advance. :D
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Hi, Micheal.

Took a really long time to think how I would proceed to Integrate SIRRF. I don't want to redo the integration if you improve SIRRF.

So what I've decided to do is create a folder for each "element" that I will use and try to "bind" them.

Anyway my previous code is really awfull (I think it look nice from the outside, but open the "hood" and you'll see a nightmare :D )

Once I've got the framework working "basic", I will re-incorporate one by one the features (and ideas) that I have developped and in a cleaner way I hope.

This would take a long time, I think I can use about 10% (optimistic) of the C++ language correctly. I would like to thank "wITTus", for the kick in the butt. We really don't have the same opinions, but I think I should keep my ideas for myself, do it, and then demo it.

I'm really not a coder (I'm a level Designer), but this will improve my C++ skills. And I like the idea that I could call myself a programmer someday.

EDIT: Tried to make a MSVC++ Express project with SirrF. I'm really not used to this and it's doesnt work (At the moment)

It compile but give a linker error as:

Code: Select all

GameManager.obj : error LNK2019: unresolved external symbol  __imp__createDevice referenced in the function "public: void __thiscall GameManager::init(void)" (?init@GameManager@@QAEXXZ)
1>C:\Users\Public\IRRlicht\sirrf-0.1.1\src\SirrF\Debug\SirrF.exe : fatal error LNK1120: 1 unresolved external
I've removed the scripting and sound, so it be easier to compile, since I would have to download theses components (angelscript and SFML audio)

Got a error that it did not find the path to:
Siglot. In dependancy.h

Was like this:

Code: Select all

#include <sigslot/sigslot.h>
I would like to keep it like that. MSCV tell me if doesnt find it, even if the file is in the project.

Changed it like that:

Code: Select all

#include <sigslot.h>
and adding the path to the project. Now it worked, MSVC found the file, but the source was changed. I would like to keep it as close as possible to the original.

I'm sure it's because I don't know enough MSVC. Someone know of a trick so I will not to change the source and MSVC will find the file correctly?

Got also this on MSVC (Compiler warning)
>c:\users\public\irrlicht\sirrf-0.1.1\src\core\datastack.cpp(177) : warning C4018: '<' : signed/unsigned incompatibility
Here is the line:

Code: Select all

 for(unsigned int i = 25; i < fSize; i++)
Perhaps fSize is a Signed Int?

Once I have the MSVC project working, I'll put it online so other will be able to try it out.
FuzzYspo0N
Posts: 914
Joined: Fri Aug 03, 2007 12:43 pm
Location: South Africa
Contact:

Post by FuzzYspo0N »

yea christian, i fixed the msvc project it should compile out of the box now ;)
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

Post by ZCCdark203 »

Hey Christian,

The problems you encountered were fixed in revision 79. The MSVC project file that FuzzYspo0N created and the additional fixes in order to make it compile on MSVC have been available since that revision. You might want to keep up with the SVN version of Sirrf. That way you can get the latest bug fixes and new features (such as the asset manager).

Regards,
Michael
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Thanks.

The code compile correctly in 1.6SVN but need minor adjustements in 1.5. Someone know the defines for IRRlicht 1.5, we could perhaps add compiler directives in case the user want to compile it for 1.5.

got alway the same linker error:

Code: Select all

1>LINK : fatal error LNK1181: failed to open the file in input 'angelscript.lib'
edit2: Found out why, on the project settings it was named in the:
Link Editor->Input->Supplementary dependancy: irrlicht.lib angelscript.lib. Removed the angelscript.lib from there. Now compiling and building. Got the application running (window with nothing inside)

I've removed the Angelscript and audio. Still it seem to check for Angelscript.

I'll go get it and see if it can build it if I add it to the project.
EDIT: Link to the angelscript (Get SDK 2.16.3), was compiled as default as a static library. In release mode.

Now I get this:
1>LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
EDIT2: Ok. It was forced on console in the project settings (Linking editor->system->subsystem - now is set on undefined)

Then I enabled the scripting, got 15 errors and 12 warnings. Is SirrF is ready to be used, Or I put the wrong version/build of angelscript?
ZCCdark203
Posts: 47
Joined: Fri May 15, 2009 3:26 pm
Contact:

Post by ZCCdark203 »

I've already compiled Sirrf on three different installs and I've always used unaltered versions of dependencies (Irrlicht, AngelScript, SFML-Audio). So, I doubt that the dependencies themselves are causing problems. Besides that I can actually confirm that you can use both AngelScript 2.16.2 and 2.16.3.

Also, I doubt that the code is causing problems. As far as I'm aware it should compile on MSVC. Most likely either the project file or your configuration is causing these problems. But I didn't create the MSVC project so I can't really help you there. Hopefully FuzzYspo0N can shed more light on this problem.
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

Thanks Micheal.

Right now I can't use the console when I build the application or I get this linker error:
1>LIBCMT.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
I've set the project as a Window and it compile and build.
The strange thing, is that the application seem to run (Windows detect it running, but absolutely no rendering is done inside the window, not even a black background). Since I don't have any console output, I don't know what is happening. All the answers I found about this problem talk about a preprocessor directive named _ATL_MIN_CRT from the preprocessor list, but I don't have this in my list.

For the dependancy, I found out about it. FuzzYspo0N use a method I'm not used to:
He put the information directly in the project settings for having the libs in the linker editor option.

I'm doing it like this:
In the code I put this (dependancies.h)

Code: Select all

// Irrlicht
#include <irrlicht.h>
#pragma comment(lib, "Irrlicht.lib") 
With this I don't have to check the project setting to specify library dependancy. (Would be useful to at least do it this way for the Angelscrip library, since it could be removed from the compilation.
I've done it this way in dependancies.h

Code: Select all

// Angelscript
#ifdef __COMPILE_WITH_ANGELSCRIPT__
#include <angelscript.h>
#pragma comment(lib, "angelscript.lib")
#endif
For the error and warnings:
sirrf project - 15 error(s), 12 warning(s)

Here are some basic descriptions:
Warning: asGameState.cpp -> Line 82 convert from irr:f32 to asDword possible loss of data
Warnings in IRRlicht includes?! (vector3d.h, with asVector3d.cpp)
Warnings in IRRlicht includes?! (line2d.h with asLine2d.cpp)
Warnings in IRRlicht includes?! (dimension2d.h with asAabbox3d.cpp)
Detail is: conversion from 'irr:: F32' to 'const irr:: s32' possible loss of data.

Error c2668 'fabs' in IRRlicht includes?! (aabbox3d.h with (VS9 includes)math.h and asAabbox3d.cpp):
Detail: ambiguous call to overloaded function
Post Reply