PDA

View Full Version : Phoenix 2.0 Preview version



Andreaz
04-02-2009, 05:18 PM
Hello everyone.

As some of you have been aware i've worked silently on Phoenix since the last release. Researching alot on methods to make API independent renderer and other designs.

Now i feel i have the groundwork made of what will become the next version. The tight coupling to OpenGL is gone, a Direct3D renderer will be written in the future (I'm currently concentrating on getting the OpenGL one rock solid as well as adding more features).

All rendering is done via a common interface, and using vertex buffers, this will make the renderer interfaces alot easier (and hopefully encounter less driver hazzels as the older versions) and faster.

Currently its only tested on Turbo Delphi for Win32 but FreePascal and Delphi 7 support will come if it doesnt work as it is.

There's also a prototype version of the new image editor, basically the same but better interface and, finally with source!

I'd love any feedback and idea's on what you like and what you don't like.

http://www.phoenixlib.net/

(And btw there's some bug with the mouse aiming in the demo if you rotate the tank or world, i havent really gotten around to solving that problem)

jdarling
04-02-2009, 09:13 PM
Downloading now to take a look at it. I'll let you know what I think. Might have to use this for the next version of JumpStart if its as good as previous versions :)

Traveler
04-02-2009, 09:53 PM
Excellent!! I've been looking forward to this news :D
I can't wait to see/play with all the new things.

I saw a couple nice changes to DXinput, great. I also like the new camera system. Personally I dont really see the benefit of an additional Direct3D renderer, though.

Anyway, one of the things I missed in the previous version is a way to change the screen resolution during the game, so it's possible to create proper setup screens. (maybe its already possible, but I couldnt figure out how)
Another rather annoying thing I'd like to see fixed is the issue where the mousepointer can be moved outside the screen when in fullscreen mode.

Keep up the great work!

(ps, wish I could bump to news, but the category prevents me from doing so, I have set it as an announcement though)

arthurprs
04-02-2009, 10:01 PM
great news!

code made for phoenix1 will work in phoenix2?

Andreaz
05-02-2009, 06:51 AM
Downloading now to take a look at it. I'll let you know what I think. Might have to use this for the next version of JumpStart if its as good as previous versions :)
I'ts better ;) But not as feature full, yet.


Excellent!! I've been looking forward to this news :D
I can't wait to see/play with all the new things.

I saw a couple nice changes to DXinput, great. I also like the new camera system. Personally I dont really see the benefit of an additional Direct3D renderer, though.

Anyway, one of the things I missed in the previous version is a way to change the screen resolution during the game, so it's possible to create proper setup screens. (maybe its already possible, but I couldnt figure out how)
Another rather annoying thing I'd like to see fixed is the issue where the mousepointer can be moved outside the screen when in fullscreen mode.

Keep up the great work!

The only thing that is "new" as in not rewritten in this version is the prototype entity engine, it will replace the sprite engine, check the recoil behavior for a small preview of what can be done.

The idea behind the D3D backend is to be able to support lower-end hardware, escpecially laptops with Intel GPUs and in some respect ATI cards even though they are alot better. It's not a prioritized feature as of now through, the framework is there and it will be able to implement it without changing anything else.

It was possible in the previous version; you basically had to do:



Screen.Close;
Screen.Open(new resolution paremeters);
// rebuild all assets
Images[0].Build;


I will add a better variant to change the resolution in this version, as per request =) Rebuilding the assets might be a manual process still, the reason is that it may take forever and you might want to do a progress screen for it, that will be hard if it's automatic.

I wasn't really aware of this mousepointer problem, i'll look into it, through i'm afraid its something burried in GLFW.


great news!

code made for phoenix1 will work in phoenix2?

That depends, the initialization part is very different, you need to create a device, there's no screen class anymore. Othervise alot of stuff is the same, for instance the imagelist has the same functions and names (and a few more), except for the constructor that will need the device as a parameter so anything using the imagelist will work more or less directly.

And theres no automatic event passing anymore, so getting the input to work requires to manually pass all events to the input class, this is done to be able to fully disable inputs and other components, witch i found to be a limitation before.

Thanks alot for you'r feedback and positive comments!

pstudio
05-02-2009, 10:40 AM
Great news. I was wondering what was going on with Phoenix.
I''ll definitely take a look at it when I get home.

Will Phoenix 2.0 contain some new features or is it simply an optimized and better written version of PPhoenix 1.0?

Andreaz
05-02-2009, 04:51 PM
Great news. I was wondering what was going on with Phoenix.
I''ll definitely take a look at it when I get home.

Will Phoenix 2.0 contain some new features or is it simply an optimized and better written version of PPhoenix 1.0?

It will a bit of both, in the first stage I'm converting all old features to use the new internal stuff, after that yes.

I'd really want to make a new flexible entity/sprite engine, possibly with a external editor to make building levels easier. And with the new collision engine using polygon collisons (SAT) and returning correct collisionpoints and normals.

Is there anything in particular you'd be interested in?

pstudio
05-02-2009, 09:01 PM
Is there anything in particular you'd be interested in?
Well I see you already got collisionspoint on your own list :D This was probably the most important thing for me. I missed that in the old engine.

The posibility to add post-processing effects would also be a nice feature imo.

Andreaz
15-02-2009, 09:22 PM
There is a new version of Phoenix over at http://phoenixlib.net/.

Check the updated image editor, included some exporting and importing functions, the possibility to import images using the packer unit from paul_nicholls.

Also check out the collision demo, its a bit to complex for my liking but it works like a charm, what is not possible to visually see in the demo is that you get full details on the collision, contact points intersection depth and collision normals! Note that the collision engine uses Swept SAT, wich means that regardless of the object velocity the collision will be detected. (this has taken forever to get working correctly, theres some not so trivial math behind it)

Any feedback on how to improve and make it easier to use is welcome.

There's also a few more methods in the image list class, as well as a brand new demo, showing some of the features.

Included the gui skin component that is used for the gui, quite useless without the gui engine or skin editor, but you have to start somewhere.

Next theres the particle demo, in a state "working, but not debugged", supporting various billboarding methods, including trailing particles for engine trails etc. Also supports color fading by a custom color list.

The path engine also makes a return, a basic variant using position and rotation only, any feature suggestions and ideas how to extend it is welcome aswell (color paths for instance).

I've refactored some of the device classes, it is a bit more streamlined now, resizing the window is supported aswell.

And finally theres a font demo, showing some basic text formatting functions.




Is there anything in particular you'd be interested in?
Well I see you already got collisionspoint on your own list :D This was probably the most important thing for me. I missed that in the old engine.

The posibility to add post-processing effects would also be a nice feature imo.
About the post processing effects, what do you need? I have planned adding render targets to render the scene to a texture (But probably only using FBOs as a start (Meaning a somewhat modern GPU)

I'm considering adding shader support, wich makes writing fullscreen effects easy to write, but i dont know if its worth the trouble to implement.

arthurprs
15-02-2009, 09:25 PM
Is there anything in particular you'd be interested in?
Well I see you already got collisionspoint on your own list :D This was probably the most important thing for me. I missed that in the old engine.

The posibility to add post-processing effects would also be a nice feature imo.

Andreaz,
it's possible to add effects like motion blur, bloom, etc.. ?

Andreaz
15-02-2009, 09:28 PM
Andreaz,
it's possible to add effects like motion blur, bloom, etc.. ?

That would require pixel shaders as well as the already planned render targets, so guess i'll have to implement shaders aswell ;)

pstudio
31-03-2009, 08:36 PM
I just took a quick look at Phoenix today and I must say that I'm excited about the final release :)
However, when I tried some of the demos (already compiled) it seems the program wouldn't load all images. F.ex. in the Demo.exe app the tank is just to white boxes. I don't know what's wrong. The images are in the same folder.

And shaders would be great to have :D

Will it be possible for a person to write a OGLES 2.0 render for ARM (I'm thinking Open Pandora) to Phoenix? Or is it limited to x86?

Anyway, I hope to write a game this summer and I would love to use Phoenix, so I just want to give you a word of encouragement ;) :D

Andreaz
07-04-2009, 04:17 PM
Well, i think what you saw in the demos with the white images is that the images that some demos are loading arent power of two in size, no big deal really because you can use the texture packer in the image editor to merge them into one image. I will fixx the demos in time ;)

And there's some WOW factors comming along, so stay tuned !

pstudio
07-04-2009, 05:58 PM
Well, i think what you saw in the demos with the white images is that the images that some demos are loading arent power of two in size, no big deal really because you can use the texture packer in the image editor to merge them into one image. I will fixx the demos in time ;)
Didn't think it was a big deal, but if some looked at the lib for the first time they may not be impressed by some moving white boxes ;)



And there's some WOW factors comming along, so stay tuned !

Now you're just teasing us :D Looking forward to see these WOW factors ;D

Andreaz
07-04-2009, 07:53 PM
Didn't think it was a big deal, but if some looked at the lib for the first time they may not be impressed by some moving white boxes ;)

That is so true, but its still in beta so i think i'll get away with it for now, its not the same if you download the stable version ;)

It has been noted, thanks, and will be fixed.



Now you're just teasing us :D Looking forward to see these WOW factors ;D

Hopefully i will be able to finish it up in a little while, its one of thoose things that i missed since i first started writing games in DelphiX ages ago ;)

WILL
08-04-2009, 02:17 AM
Nice job. The new version of the library sounds quite impressive. It's nice to start hearing about updates to existing libraries lately. :)

WILL
11-04-2009, 08:31 PM
Just so you know Phoenix is now listed in the PGD Library: http://www.pascalgamedevelopment.com/PGDLib/Phoenix

Feel free to make corrections or add missing information. :)

Andreaz
20-04-2009, 05:48 AM
Just so you know Phoenix is now listed in the PGD Library: http://www.pascalgamedevelopment.com/PGDLib/Phoenix

Feel free to make corrections or add missing information. :)


Great, thanks. I have changed some of the wrong stuff. I'm currently trying to sort some bugs in the collision code, after that i'd say its about time for a new release ;)

paul_nicholls
20-04-2009, 06:48 AM
There is a new version of Phoenix over at http://phoenixlib.net/.

Check the updated image editor, included some exporting and importing functions, the possibility to import images using the packer unit from paul_nicholls.

Hey, neat!! I'm 'famous'!! :D LOL! ;-)

Was that the partition unit that packed smaller rectangles into a larger one?

I originally got that from Nitrogen, before reformatting and adding to the code.

Nitrogen wrote it for his Font Studio (http://www.nitrogen.za.org/projectinfo.asp?id=12) (Thanks Nitrogen!!).

Or are you reffering to my image packer program I wrote?

http://www.pascalgamedevelopment.com/forum/index.php?topic=4974.msg39565#msg39565

cheers,
Paul