SFML community forums
General => SFML projects => Topic started by: Grimshaw on January 31, 2011, 11:39:24 pm
-
So, i am working in a 2D Game Framework to support my game development. I really think my work means more if i share it with everyone. So i do!
Website: http://parabolaengine.comlu.com/
Forums: http://parabolaengine.comlu.com/forum/
Overview:
Language: C++
Platform: Windows, Linux and Mac planned in the long run
Release: 0.2
Description: Allows you to build games easily, under a controlled environment, that supports multiple games, such as a Android OS. Allows physics simulations(Box2D), HTML/CSS alike GUI(libRocket), Scripting(AngelScript and the intern script tools) and a lot more. Stay tuned!
Samples:
Kinesis sample 1 - http://www.mediafire.com/?p9ct4sa8ycpqp39
The important part:
The engine isn't ready at all, but it should be usable already to make a few things! I am trying to do things the right way. There is a downloadable package with the framework, a website, a forum, a wiki and a api reference. Even though this is all in baby steps, this should be the starting point into turning this into something specially good.
So, i invite everyone and anyone that would gladly pick the engine and try do something with it! If you take a look at it, you don't like anything, but still make a constructive comment on it, it helps. If you can take it and try to make something with it, like a little testbed,
and help me make it grow with the help of your experience, even better!
I will be actively developing it, taking suggestions and implementing new stuff. There isn't a lot of documentation yet, but I am working on it, specially on the WiKi. I am available to support each one of you always i can, so you won't feel abandoned with this! Counting on you guys :)
Any help is appreciated, even discussing the piece of software in the forum!
Thanks everyone!
-
This is intense. I'd be glad to use this. Once you start having the major releases, I can host you at my site. (http://idealphi.com)
-
Thanks man, i will haste in having something to show : )
Last night i finished the first usable version of the localization system, to give an idea of how it works:
You can simply open notepad, and make one or more files with your languages. Just note you should save as a UTF-8 file, for the unicode support.
You write languages like this example:
# test.lang
# This is comment
[Language="English"]
TOKEN="Token Sentence"
MENU_OPTIONS="Options"
[Language="Portuguese"]
MENU_OPTIONS="Opções"
Then it is really use these in the application:
LocalizationSystem::LoadLanguageFile("test.lang"); //read all files you want with this, the engine will even allow you to iterate a directory and load automaticly the found languages files.
LocalizationSystem::SetLanguage("English"); //Can be any language defined in the files
cout<<LocalizationSystem::ToString("MENU_OPTIONS")<<endl; //This outputs Options because the language is English, if i change the language and re-run the function, the output is different.
ToString function will be a normal std::string representation, not unicode, even tough there is a way to do that.
This is an alpha version of the localization system only. More to come later.
-
Update: Today i opened a small website for the project, and its not done yet at all, but the forum is already usable!
Things will start appearing in the website, and it will evolve gradually, but you can just begin following me :)
Website: http://parabolaengine.comlu.com/
Forums: http://parabolaengine.comlu.com/forum/
At least you get a URL you can folow and check for updates :)
I do recommend to begin using the forums, any help forming a community would be great! And i need all the support i can find!
Really hope this project catches your attention and makes you want to use it and follow its progress :D
-
The feature list seems very promising to me and I would gladly use your library once you release it. I have been using the Andorra 2D library for delphi for the sole reason that it has everything in one place since I am not keen on making everything from scratch (so since this will be the first descent engine for C++ I will make a quick transfer). I do have some questions though:
1) Can you give an approximate date on which the first release of the engine will be released ?
2) Will there be an object-oriented sprite engine - say that I want to make 100 sprites, will I be able to make them with one easy "create sprite" call, defining the image, animation pattern, etc. or will I have to make one myself ?
The physics system (which includes collision detection) and language system are a very nice addition to the engine so I hope more people will use it once you release it :)
-
Thanks for the support, it is under constant development, and i can release a really early version in the next days if you want. It is not well documented yet, but i can do it soon enough too.
Since this engine is meant to be developed for everyone's needs, and you NEED that feature, it seems like a good thing to add to the engine.
I would ask you to suggest that in the forums, to see if it starts being a little more active and a community can start :)
Im thinking of implementing that sprite engine as a scene graph node, which you can plug in and out realtime, if that suits your needs!
The main architecture has improved in the last days, considering a few new things :)
Last addition was a new State managing class, which allows you to create your own game screens in the objects to help keep it organized.
Also included a built in state for that classic effect fade in->image->fade out, such as game initial screens for publishers and stuff. It works pretty smooth already. Tested it by loading a directory, and doing a slideshow with all images within it, and it takes few lines of code only :)
Again, thanks for the support :)
-
I have been waiting for a framework like this literally FOREVER.
If you want to make all my dreams come true, please consider adding game-networking support (making it easy to set up servers and clients and synchronize data between them).
So pumped for this.
-
Thats one of the main goals of the engine, to have networked physics working as smooth as possible : )
I will be happy to develop those stuff with your support. Harder to work on something when i won't need it right away, neither will anyone, that is why some support is apreciated :)
Anyway, about networking, there is already a small system for easy communication, on REALLY baby steps yet :)
-
That's even better! I'm looking forward to this.
-
New website ! The first release is approaching :)
-
Nice website :D
-
Thanks :)
Working on documentation and improving the API.
SPARK2 seems to be usable, beggining implementation of Particle Systems as part of the engine.
-
Very nice!
-
Website & Forum & Documentation improved.
A Pre-Pre-Release was added to downloads page. You can now mess with the engine a bit.
It is not stable yet or anything, but should be working. There isnt a lot of documentation to guide you yet, but I can help if something is needed.
use the forums if you can or want ;)
There are a few systems working that you can start playing with.
Thanks everyone and more news soon!
-
How's the next version coming up? :P
-
Time is short, i hadnt much time to work these days, university exams and stuff :)
Still, from what ive been able to do, the engine is getting better gradually.
The way of using the engine is now a little improved. The engine works as a game environment, where multiple games are easily plugged in, run parallel, and changing between the active game, like the windows explorer, somehow
I think this design is clean enough, and promotes an object-oriented design when you make games :)
Something like this would make that engine environment run:
ParabolaEngine *Engine = new ParabolaEngine(argc, argv);
Engine->InitializeEngine()
while(Engine->Running()){
Engine->UpdateCore();
}
Engine->Shutdown();
return 0;
Then, you would need to add a game with a line such as:
Engine->GetGameManager()->AddGame(Game, true, true);
...where Game is an object from the user's class inheriting from GameCore. That class already provides draw callbacks, update callbacks, event handling and more :)
The environment will be fetching the events directly, and dispatching them to running games, making them update in a fixed step, while allowing arbitrary FPS for drawing :)
More news soon, there is more things to say :)
heishe, if you are interested in using the engine, why not add me in msn, i will use all information from you to improve the engine, and make a better release, while allowing you to begin using it right away(or almost) :)
-
This is looking good.
I have planned an engine a bit like that myself, but didn't had the opportunity to start it yet. I will definitely have a look at your code sometime and consider using it and eventually contribute.
Good work!
-
Bump, check first post please! :)
-
I can't find anything new in the first post, what's going on? :_)
-
What do you mean? its completely different : )
Anyway, i am developing the engine actively, trying to fix stuff and improve the rest. The current package available has a lot of things working, but it is in a state for testing features, discussing its design and building demonstrations, rather than already make full games.
I will keep working and publishing new releases, specially if someone is taking a look at it! I know it is not mature yet, but a part of it becoming that is exactly a community to help out :)
Thanks anyway, for the support :)
-
Why not open source? Can you compile for mac?
-
It will be open-source my friend, i just packed the minimum this time :)
It is not tested for mac at all right now, i dont have the means to do that yet, but im sure it can be made with a few changes, all libraries are cross-platform, if im not mistaken :)
-
Excellent, I was just making a game engine because I couldn't find anything I liked. However, your library looks quite promising and will save me a lot of effort (I'm just a hobbyist and really don't have too much time to spend on developing stuffs :) ). Will you put it on github? downloading archive from mediafire made me a sad panda.
-
I will definitely put it in github, as soon as i can, just need to learn a little how to manage it :)
Regarding the previous issue, i will only be able to support Windows for now, but i don't have a problem with fixing the code wherever it needs to, so someone can do the mac build properly.
I am at the moment working in the level editor for the side-view maps, part of the engine's toolset. Building up feature by feature.
-
Can I ask, how did you handle your series of objects within the engine. Such as derived types?
I assume you used a pointer array (which is how I did it in my engine), to a pre-created list of objects, which get put into an "activeArray" pointer array, rather than using new or delete.
-
As for the game logic stuff, it is designed to be all kept in a scene graph.
Every object of your game can and should be integrated in the scene graph, either as a proper node, or as a node's member variable.
This way, you keep a high level of flexibility and logic,and when something needs to be closed, when nothing is using it anymore, it will be able to destroy itself, with custom destruction code for your nodes.
For example, you have your game like this:
SceneRoot -> CustomNodeToHoldStuff
-> WorldMap1 -> Layer1
-> Layer2
There are nodes which have a clear purpose, while you can create other nodes that you use as placeholders for organization purposes.
An example of employing the power of such structure.. Imagine that WorldMap1 is a full featured side view map, with physics and so on, it is normally rendered full screen (as the default sfml view). If you suddenly feel like you want your map rendered in a little frame somewhere in your screen, you just add a SceneCamera configured for that frame, as the WorldMap1 parent, and it imediatly becomes affected, so that all children to the camera suffer from that view, and then it returns back to the previous view.
This concepts are still under progress, the engine base is there, but now I need to prove the design i have planned with demonstrations etc, improving along the way, and even adding stuff (not all of this is 100% working yet)
-
Hello,
I've compiled a little sample showing Kinesis in action, the physics system on top of Box2D, natively implemented in ParabolaEngine.
http://www.mediafire.com/?p9ct4sa8ycpqp39
Not a big deal, but should be fun to play with and give you a little taste of what can be done in the engine :)
Press R to spawn a randomly sized circle or box at the mouse position. You can drag the objects with the mouse.
Feedback always appreciated :)