PDA

View Full Version : Elysion Framework/Library



Stoney
30-04-2011, 02:59 AM
Hey guys,
I'd like to officially release and announce my game development frameworks. It is called Elysion. I've been working on it for almost six years (with some breaks in between) and pretty much everything game- and Pascal-related I did (be it projects at my school, Global Game Jam, Ludum dare, etc.) used an iteration of this engine.

The goal for me was to create an object-oriented game library with easy and intuitive API, so it can be used for rapid prototyping and you can expect to have quick results with little effort.
Other neat things it has: XBox 360 Controller support (also general Joystick/Gamepad support), Animators (similar to tweens in Flash, Sparrow or Cocos2D), Texture manager (which keeps track of all currently loaded textures and if you tell the library to load the same texture twice it knows you already loaded this texture and does not occupy precious memory but returns the ID of the texture loaded earlier), detailed input events (such as MouseOver, MouseOut, DblClick, Click, etc. for visual elements)

The source is hosted on Github: https://github.com/freezedev/elysion
To download the package simply hit the big Download button on the right side of the page and select your package type. There is a wiki and an issue tracker on Github. I have begun to fill the wiki with information, there is already a page on how to set up this framework.
(I am in the process of making a proper web page for this project though.)
One more thing: The download package contains not only the library itself and its documentation, but is also a template for the application/game you would want to create. Take a look at the /source folder of the package.

Supported platforms: Windows, Linux, Mac OS X (all tested and confirmed working :) )

It's currently using SDL for window and input handling, OpenGL for its graphics rendering, SDL_ttf for True type fonts, SDL_mixer for audio and in the future also SDL_net for networking. In the far future you will be able to choose between different "components" such as OpenAL for audio and DirectX for graphics.

This framework should work with everything Delphi 7 or higher (I would recommend to use at least Turbo Delphi 2006) or FreePascal 2.4.0+. Lazarus support is pretty good for Windows and Linux (with code completion and stuff), but I haven't spend much time on getting Lazarus support to work with Mac OS X, so if you want to use Mac OS X with Elysion, you should use the command-line scripts. (The script creates universal Mac OS X binaries with support for Intel x86, Intel x64 and PowerPC x86 architectures if these compilers are installed on your system.)


I'd be really interested in your opinions on this project. Let me know what you think.

BTW: This is the same the engine I used in my Rapid Prototyping Talk.
And yes I know I'm using the terms library, framework and engine very loosely. ;)

chronozphere
30-04-2011, 08:26 AM
Wow.. yet another framework. :) I'll have a look. This can probably help me design my own engine aswell.

Is it completely aimed at 2D or will you also support 3D?

paul_nicholls
30-04-2011, 09:53 AM
Very nice Stoney! I will have to give it a whirl :)

cheers,
Paul

Stoney
30-04-2011, 10:19 AM
Is it completely aimed at 2D or will you also support 3D?
It is 2D only, but you can already combine it with Horde3D and this works quite well. (It also works if you all the 3D stuff yourself ;) )
There will be a unit in the future which will you allow to use Elysion types with Horde3D and wraps Horde3D in a few classes.

Andru
04-05-2011, 10:56 AM
Sometimes when I see glPushMatrix/glRotatef/glTranslatef/glPopMatrix in sprite rendering function, I can't continue assess engine... But I belive that Elysion makes nice job in other aspects :)


The script creates universal Mac OS X binaries with support for Intel x86, Intel x64 and PowerPC x86 architectures
Interesting, SDL 1.2 works via Cocoa?

Stoney
04-05-2011, 12:43 PM
glPushMatrix/glRotatef/glTranslatef/glPopMatrix in sprite rendering function, I can't continue assess engine...
That's one of the parts that exists since the early years, I always wanted to change that, but I never got around to it (it always worked well enough ;) ) and as there are some more pressing fixes and features, it won't probably change it the near future. But you are welcome to fork it and send in a pull request with the fixes. :)



Interesting, SDL 1.2 works via Cocoa?
It always did as far as I remember. But 64-bit support is available since 1.2.14 if I'm not mistaken.

farcodev
05-05-2011, 05:26 PM
cool framework Stoney, especially w/ all platform supported ! :)

Stoney
27-05-2011, 07:04 AM
There has been a new release while PGD was down.

Bugfixes:
- Fixes a bug in which the screenshot was saved inverted (Screenshot saving is a lot smoother now, it saves the screenshot with a timestamp)
- Added a workaround for a rare bug in a which an access violation occurred when closing the game window
- Fixes math calculations in both TelVector3i and TelVector3f
- Some minor bugfixes

New features:
- Added new data type: ElysionTypes.TelSize (will replace TelVector2i in some portions of the code)
- Added dot product calculation for both TelVector3f and TelVector3i
- Shell script is more customizable now (only on Mac OS X)
- Better support for Mac OS X 10.4 Tiger (Shell scripts automatically detects installed SDKs and compiles against the earliest possible SDK)
- Added a key management system
- Added a storage system similar to HTML5 LocalStorage (based on the key management system)

We also extended the wiki a bit. Link to both download and wiki is the first post.

farcodev
28-05-2011, 01:04 AM
keep it up !

mobilus
28-05-2011, 03:50 AM
I've never had to deal with the SDL, but after finding suitable libraries, it works well. Good job!

Stoney
28-05-2011, 03:10 PM
Thanks, guys. :)


I've never had to deal with the SDL, but after finding suitable libraries, it works well.
There is no need to look around for those libraries, the SDL libraries for both Windows and Mac are downloadable in the Elysion wiki: https://github.com/freezedev/elysion/wiki/Setting-up-our-development-environment

Stoney
14-06-2011, 07:36 AM
A new version will be released in just a few days. Just in time if anyone wants to use it for the PGD Mini compo. ;)
It will feature some exciting stuff: You can now add nodes (e.g. sprites, buttons, labels, etc.) directly to a scene in which case the scene automatically handles the Draw- and Update-calls of the added node. If you have some experience with Flash or Cocos2D, this will feel very familiar to you.
You are welcome to play around with the latest development version on Github (http://github.com/freezedev/elysion).

I also put together a custom barebone template in ~120 lines of code (including a lot of comments) for those of you who want a more lightweight template than default one bundled with Elysion: https://gist.github.com/1000772

j.klugmann
30-06-2011, 04:08 PM
The new version isn't released yet, because we are hardly working on building the new physics engine for Elysion. The physics engine comes with support for general forces( drag, spring forces, gravity, different materials for different objects, bouncy materials), impulses for explosions and spring physics. It interacts seamless with scene system and is highly configurable. It's also very easy to extend the physics part with new forces or impulses.

I think that I can finish the physics engine this or next week, but it's up to Stoney to release the next version. We're also working on a new scripting interpreter based on ECMA script 5 for Elysion, the script-interpreter is in experimental stage, but I think that we can show the first running scripts in the August release of Elysion. The announced new and more advanced rendering system will be released this summer, but I can't give an exact date or a release month. The rendering system will feature advanced techniques like shaders and a postprocessing framework, but will also scale to lowspec hardware like Notebooks or old computers. Elysion is growing fast this year, so try it out!

Greetings, Jesse Klugmann

WILL
01-07-2011, 03:51 AM
Welcome to PGD! :)

I must say that I like the direction the Elysion library/framework is going. I've been working with Stoney on our entry and though I've not had too much of a look at the code it's self some of the way it works and the technologies it uses I either already use, such as graphics, or I've been curious about using.

How many demos and example projects is there to show off how the library works and what it can do?

j.klugmann
01-07-2011, 09:15 AM
Thank you!

Simplicity and rapid development were one of Stoney's design creteria when he first started to work on Elysion. The developer should focus on gameplay and not on low-level graphics programming or scene management.

There are a few OpenSource games made by Stoney over at our team-website: http://www.freeze-dev.com/category/games/

j.klugmann
18-07-2011, 07:08 PM
Hi!

The next release will come in the next two or three weeks. Stoney has actually two new features in work, the new spritesheet class and camera management. The announced rendering system is not going to be released with the next release, it's probably more realistic that the new rendering system will come in this autumn, but as an compensation the next release will include the first version of the integrated general purpose physics engine.

cu

paul_nicholls
18-07-2011, 11:34 PM
I just checked out your website and saw the quote at the top:


Freeze Development - Ice-cold software, just the way you like it

Love it! sounds like an ice-cold beer or something hehe

cheers,
Paul

Stoney
25-07-2011, 05:12 PM
Love it! sounds like an ice-cold beer or something hehe

That's what I was thinking ;)
Also I forgot the old slogan and that's what I came up with.