SFML community forums

General => SFML projects => Topic started by: Grimshaw on January 31, 2011, 11:39:24 pm

Title: ParabolaEngine - 2D Game Framework
Post 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!
Title: ParabolaEngine - 2D Game Framework
Post by: ideal phi on February 01, 2011, 07:50:30 am
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)
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on February 01, 2011, 11:15:02 pm
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:


Code: [Select]

# 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:

Code: [Select]
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.
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on February 06, 2011, 03:27:25 am
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
Title: ParabolaEngine - 2D Game Framework
Post by: Alejandro on February 23, 2011, 06:30:10 am
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 :)
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on February 24, 2011, 01:31:07 am
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 :)
Title: ParabolaEngine - 2D Game Framework
Post by: heishe on February 24, 2011, 11:11:58 pm
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.
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on February 25, 2011, 02:03:53 am
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  :)
Title: ParabolaEngine - 2D Game Framework
Post by: heishe on February 25, 2011, 02:45:07 am
That's even better! I'm looking forward to this.
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on February 28, 2011, 11:09:23 pm
New website ! The first release is approaching :)
Title: ParabolaEngine - 2D Game Framework
Post by: Oneiros on February 28, 2011, 11:53:44 pm
Nice website  :D
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on March 01, 2011, 12:15:19 am
Thanks :)

Working on documentation and improving the API.

SPARK2 seems to be usable, beggining implementation of Particle Systems as part of the engine.
Title: ParabolaEngine - 2D Game Framework
Post by: heishe on March 02, 2011, 12:37:59 am
Very nice!
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on March 07, 2011, 03:36:19 am
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!
Title: ParabolaEngine - 2D Game Framework
Post by: heishe on March 30, 2011, 03:06:00 pm
How's the next version coming up? :P
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on March 30, 2011, 09:01:20 pm
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:
Code: [Select]
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:
Code: [Select]
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) :)
Title: ParabolaEngine - 2D Game Framework
Post by: gsaurus on April 01, 2011, 10:01:27 am
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!
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on October 16, 2011, 01:16:45 am
Bump, check first post please! :)
Title: ParabolaEngine - 2D Game Framework
Post by: heishe on October 17, 2011, 09:55:47 pm
I can't find anything new in the first post, what's going on? :_)
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on October 18, 2011, 01:19:15 am
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 :)
Title: ParabolaEngine - 2D Game Framework
Post by: sbroadfoot90 on October 18, 2011, 02:22:27 am
Why not open source? Can you compile for mac?
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on October 18, 2011, 10:32:55 am
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 :)
Title: ParabolaEngine - 2D Game Framework
Post by: sbroadfoot90 on October 18, 2011, 11:29:11 am
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.
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on October 18, 2011, 11:52:48 am
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.
Title: ParabolaEngine - 2D Game Framework
Post by: MrHello on October 18, 2011, 12:02:15 pm
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.
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on October 18, 2011, 12:21:09 pm
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)
Title: ParabolaEngine - 2D Game Framework
Post by: Grimshaw on October 30, 2011, 04:42:12 pm
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 :)