irrlicht the gane engine
Thanks for reply. XML export is good issue. About idea for new GUI classes, this sounds so promising. The one example that I know about is a IrrTreeView, and I like it. I have been ideas about some classes like spinEditBox gui control , but have not many time to do it, and as you know I'm still non started using gui in my apps. But was found 2 bugs in ListBox and ComboBox. But now I'm bussy with memory managment. Maybe this problem appears only for me..?
-
- Posts: 98
- Joined: Mon Dec 13, 2004 11:47 am
- Location: Japan
I quite like the sound of the idea someone had a little way back of a catalogue of code snippets and subsystems that we can pick and choose from. We don't want to start adding components in permanently, because we'll just end up with confusing feature bloat - Irrlicht is so nice and clean and accessible as it is it's much easier in my opinion to put your own stuff on top of it than to try and start cobbling things deep into the guts of it.
One thing we do have at the moment is the wiki - maybe we could start having a more specific code snippets area on that where we can store small self-contained components which do certain things, such as AI or pathfinding or something? Let's face it: other people's code is never plug-and-play for your own projects, you always need to tweak it a little to marry up with everything else. I've personally made a lot of progress out of seeing how people build up their systems and as long as you comment it well and make it clear how the system fits together then I think it's usually pretty easy to understand what's going on and to adapt it for your own work.
One thing we do have at the moment is the wiki - maybe we could start having a more specific code snippets area on that where we can store small self-contained components which do certain things, such as AI or pathfinding or something? Let's face it: other people's code is never plug-and-play for your own projects, you always need to tweak it a little to marry up with everything else. I've personally made a lot of progress out of seeing how people build up their systems and as long as you comment it well and make it clear how the system fits together then I think it's usually pretty easy to understand what's going on and to adapt it for your own work.
I think that it's right that Irrlicht should not be a game engine like Quake II engine, because it would reduce Irrlicht possibilities.
But we could add a lot of features to set irrlicht bigger and simpler. For example sound : there is no sound in Irrlicht features. We could add sound support, using Audiere or OpenAL, and add new classes to Irrlicht using this. Like other people said, there are many other good ideas like that : artificial intelligence, collisions, network, video support, ...
And if some people are not agree with this point of view, we could create two different Irrlicht releases : a small release, with only Irrlicht current features, and a big release, with all the things people would have added.
Another idea is to do like bitplane said : create a lot of addons for Irrlicht (many of them are already done), and add it in a project whenever we want to.
In concrete terms, what can we do :
- Ask Niko to do a page in the wiki where all the people could say what addons they have made. And arrange them with a hierarchy. I think the "links" page in Irrlicht web site is now far from enough. There are already too many addons to mail to Niko every time.
- Ask people who create the addons to create them in the same way (for example always a zip file, with one README.txt in the zip root directory, and an example in the example folder, etc ...) In order to be more easy for the people who will use them.
And sorry for my terrible english.
But we could add a lot of features to set irrlicht bigger and simpler. For example sound : there is no sound in Irrlicht features. We could add sound support, using Audiere or OpenAL, and add new classes to Irrlicht using this. Like other people said, there are many other good ideas like that : artificial intelligence, collisions, network, video support, ...
And if some people are not agree with this point of view, we could create two different Irrlicht releases : a small release, with only Irrlicht current features, and a big release, with all the things people would have added.
Another idea is to do like bitplane said : create a lot of addons for Irrlicht (many of them are already done), and add it in a project whenever we want to.
In concrete terms, what can we do :
- Ask Niko to do a page in the wiki where all the people could say what addons they have made. And arrange them with a hierarchy. I think the "links" page in Irrlicht web site is now far from enough. There are already too many addons to mail to Niko every time.
- Ask people who create the addons to create them in the same way (for example always a zip file, with one README.txt in the zip root directory, and an example in the example folder, etc ...) In order to be more easy for the people who will use them.
And sorry for my terrible english.
I agree with all of you that irrlicht must be just a Graphic Engine.
BTW, I want to see a Game Engine easy of use like Irrlicht, and of curse "Free".
I'm designing a game engine that look like this below.
Maybe it can be a good starting point to make an easy and powerfull IrrlichtGameEngine.
Example code:
This example load a complete scene, set a function to control the player, and run the game.
I hope you like the idea.
BTW, I want to see a Game Engine easy of use like Irrlicht, and of curse "Free".
I'm designing a game engine that look like this below.
Maybe it can be a good starting point to make an easy and powerfull IrrlichtGameEngine.
Code: Select all
GameEngine
Core
Engine States, graphic settings, game data, etc.
Objects
List GraphicNodes
List PysicObjects
List Sounds
List data
List PrefabEntity
...
SoundMngr
Functions to play 3d Sound, doppler effect, etc.
ScriptMngr
Functions to run Scripted Based Functions.
PhysicMngr
Functions for real physic simulation.
TaskMngr
Execute tasks in the game.
MAPMngr
-Loading and saving map functions.
Libs i'm currently using:
- Irrlicht
- Audiere
- Newton
- Raknet
- ToLua
Tools (Wysiwyg)
GUI Editor
Features:
-Easy as a drag and drop editor.
-Built In Dialog Editor.
World Editor
Features:
-Add/edit Graphics, Physic, sound, objects data, and more.
-Open/save all scene in/from a file.
-Built In Particle Editor.
-Built In Sequence Editor.
Code: Select all
/* Setting graphics... */
Engine->InitGraphic(800,600,"Direcx9",FULLSCREEN);
//you can load this and other stuff from config file using:
//Engine->InitFromConfigFile();
/* Loading map. */
Engine->MapMngr->LoadMap("MAP1.MAP");
/* creating objects */
ObjectMngr* Object = Engine->ObjectsMngr;
PlayerEntity* Player1; //built in class... you can create your own with many properties and methods...
Player1->setName("Soldier1");
Player1->setnode(Object->getGraphicNode("Soldier1"));
Player1->setBody(Object->getPhysicObject("Soldier1Body"));
...
Object->RegisterEntity(Player1);
/* add to task list */
//call updateplayer each time object need to be updated.
void updateplayer(void* data){
//update using a built in update function
BuiltInUpdatePlayer(DataToPlayer(data));
//DataToPlayer is like (PlayerEntity*) Player1
/*
or
PlayerEntity* Player1 = DataToPlayer(data);
if (keypress("SPACE")) Player1->Jump();
*/
/*
or update from script
Engine->ScriptMngr->RunScriptFunc("UpdatePlayer", data);
*/
//you can write here AI functions when controling NPC character.
}
Engine->TaskMngr->addTask(updatePlayer, PlayerToData(Player1));
//we write PlayerToData instead of (void*) Player1;
/* running the game */
Engine->DoGame();
I hope you like the idea.
@etcaptor:
When you say 'spinEditBox' you didn't happen to mean a box with a caption (eg. Renderer) with a value (eg. OpenGL) and 2 arrows either side which when clicked cycled backwards or forwards to the next or previous option? (eg. DirectX, Software)
I made one for my project under the name of 'cGUIRotateText' (its doesn't spin as such but just cycles through the options)
If you need i'll send it, or when i get some free time i'll put it on the wiki with a tutorial.
When you say 'spinEditBox' you didn't happen to mean a box with a caption (eg. Renderer) with a value (eg. OpenGL) and 2 arrows either side which when clicked cycled backwards or forwards to the next or previous option? (eg. DirectX, Software)
I made one for my project under the name of 'cGUIRotateText' (its doesn't spin as such but just cycles through the options)
If you need i'll send it, or when i get some free time i'll put it on the wiki with a tutorial.