PDA

View Full Version : DelphiX > Asphyre



Steven
02-02-2005, 03:27 PM
Hi,

I'm thinking of moving over from DelphiX to Asphyre and I've a few questions to help make the decision.

a) I'm only interested in writing a 2D tile scrolling game. Pretty simple with DelphiX, how about Asphyre?

b) I want maximum compatibilty. Will Asphyre automatically make use of hardware acceleration if it exists and revert to software if not?

c) I believe AsphyreEx.dll has to be distributed with any game written using Asphyre. What about commercial rights? Am I allowed to sell a game written with Asphyre?

d) Where to start. I'm moving over from DelphiX so where to start. Any sources other than those distributed in the examples folder? I can't get a couple of them to compile either (Delphi 7).

I'd really appreciate your help.

Thanks folks!


Steven

Huehnerschaender
02-02-2005, 11:21 PM
a) I'm only interested in writing a 2D tile scrolling game. Pretty simple with DelphiX, how about Asphyre?
I moved from DelphiX to Asphyre about four months ago. And until now I can only say that it was a very very good decision. If you want to create 2D games using hardware acceleration, Asphyre is the best choice I know, because its made for exactly this purpose.


b) I want maximum compatibilty. Will Asphyre automatically make use of hardware acceleration if it exists and revert to software if not? Asphyre is designed to use the hardware acceleration. If you want to use software renderer, you code a fallback-function to use software mode if hardware acceleration is not present. Hardware mode needs DirectX 9.0c to be installed. Software mode is available for DirectX 7 and 8 (as far as I know)


c) I believe AsphyreEx.dll has to be distributed with any game written using Asphyre. What about commercial rights? Am I allowed to sell a game written with Asphyre?
Yes, Asphyre.dll has to be delivered to make your games running properly. But lifepower announced that he is working on a new version wich needs the DLL anymore.
As far as I know, you can code commercial products without falling into license payment or something. Asphyre is freeware. I remember lifepower said somewhere, that he would like the author to give credit, for example a sentence on title screen saying "powered by Asphyre".


d) Where to start. I'm moving over from DelphiX so where to start. Any sources other than those distributed in the examples folder? I can't get a couple of them to compile either (Delphi 7).
Do you have actual version of Asphyre? There is a demo game called Hasteroids available (including sources) which is the best point to start...

Which of the demo sources were not compilable? I had no problems using Delphi 7.

Hope this helps. I think lifepower can say a little more about the question concerning commercial products.

Regards,
Dirk

Steven
03-02-2005, 07:36 AM
Thanks for the reply.

>I moved from DelphiX to Asphyre about four months ago. And until now I can only say >that it was a very very good decision. If you want to create 2D games using hardware >acceleration, Asphyre is the best choice I know, because its made for exactly this >purpose.

It certainly does look very good.

>Asphyre is designed to use the hardware acceleration. If you want to use software >renderer, you code a fallback-function to use software mode if hardware acceleration is >not present. Hardware mode needs DirectX 9.0c to be installed. Software mode is >available for DirectX 7 and 8 (as far as I know)

This is one of my major hesitations. It?¢_Ts great to have the speed if supported but if my game is a pretty simple scrolling 2d tiled platform game it?¢_Ts likely to appeal to people with less sophisticated graphics cards.

Under software mode it?¢_Ts not going to scroll as smoothly as if I?¢_Td written it in DelphiX then I would have thought.

You?¢_Tll have to excuse my ignorance, but can it automatically detect hardware acceleration and fall back if it can?¢_Tt find it? Is that easy to implement?

>Yes, Asphyre.dll has to be delivered to make your games running properly. But >lifepower announced that he is working on a new version wich needs the DLL anymore.
>As far as I know, you can code commercial products without falling into license >payment or something. Asphyre is freeware. I remember lifepower said somewhere, that >he would like the author to give credit, for example a sentence on title screen saying >"powered by Asphyre".

I?¢_Td certainly need to clarify that. I love what I see but I will want to be able to sell my product unrestricted if possible.

>Do you have actual version of Asphyre? There is a demo game called Hasteroids >available (including sources) which is the best point to start...
>
>Which of the demo sources were not compilable? I had no problems using Delphi 7.

I have Delphi 7 Enterprise and Asphyre installed. I can compile and run :-
Combustion, Landscape, Plasma, Primitives

But I get a compile error with VScreenDemo,
?¢_oThere is no overloaded version of AlignedOut that can be used with these arguments:?¢__
Line 164: ?¢_oAlignedOut('Move mouse here!', 0, 0, taCenter, taCenter, $FFFFFFFF);?¢__
(and elsewhere)

With AsciDemo it informs me it can?¢_Tt find ?¢_orgb-windowed.inc?¢__

With Hasteroids it can?¢_Tt find ?¢_oDynamic_bass?¢__ but I?¢_Tm assuming that?¢_Ts because I haven?¢_Tt installed the sound system.

I will only want to play WAVs in my own game, again because of the commercial aspect.

Since you?¢_Tve recently moved over from DelphiX, can you clarify a couple of points for me?

a) DelphiX has one timer for the game loop. I normally have this running at maximum speed and adjust all my sprite movements accordingly. Is this still easy to do with Asphyre? I notice it?¢_Ts timer appears to have a render and process procedures.
Can I easily stick to my old way?

b) It seems keen on using it?¢_Ts vtDB component for storing data, images etc. I?¢_Td rather control all that myself. Is it easy enough to load my own bitmaps from streams? I?¢_Tve only just started looking but I can?¢_Tt see how to load an image from a stream.

c) The easy of created tiled background in DelphiX is great. Is something similar available in Asphyre?

Are there any other instructions for Asphyre anywhere?

Anyway, thanks for your help. I?¢_Tm getting more and more keen with it based on what I?¢_Tve seen so far.

Cheers,

Steven

Huehnerschaender
03-02-2005, 01:55 PM
Hi Steven,

seems that you don't have the actual release of Asphyre. The VScreen demo runs well in latest version. There was a bug in definition of taCenter which is already defined through Delphis units itself. Lifepower renamed it to taMiddle in the latest version, this tells me you are not up to date with Asphyre.

As far as I know the Hasteroids demo has an exe included, so you can take a look of what the demo does. To compile it you have to install the bass system, which is free to download (but not free to use commercial).

The Ascii-demo is not of much importance to you if you want to create games. It's an addon lifepower wrote to make graphical demos in Ascii-mode. The renderer will convert bitmap graphics (and animations) to Ascii-character colored graphics. Only makes sense for demos (which was lifepowers intention).

Asphyre itself has no sound system available (yet). I remember lifepower mentioned a possible sound system in the future. So you have to use other units or code your own. Wav-playing should be quite simple, though.

To find out if hardware acceleration is available I guess it's only 2 or 3 lines of code, so I don't see a problem there. Just try to initialize Asphyre using hardware and if an exception occurs use software mode.
But be warned: Software mode is quite slow. You would need a fast machine to obtain good fps-results.



a) DelphiX has one timer for the game loop. I normally have this running at maximum speed and adjust all my sprite movements accordingly. Is this still easy to do with Asphyre? I notice it?¢_Ts timer appears to have a render and process procedures.
Can I easily stick to my old way?

Asphyre has only one timer, too. But IMO Asphyres timer is more powerful. Take a look at the demo sources to find out the difference of the three timermodes. I am not sure, but I think the timer is already documented in the helpfile -> take a look at it.



b) It seems keen on using it?¢_Ts vtDB component for storing data, images etc. I?¢_Td rather control all that myself. Is it easy enough to load my own bitmaps from streams? I?¢_Tve only just started looking but I can?¢_Tt see how to load an image from a stream.

I myself use VTDB. But I know that it is possible to load bitmaps from file. I just took a look at images-component, it does not have a procedure to load bitmaps from streams, but hey, the whole system has source code included, so if you need loading from stream, it should not be difficult, since you already have the code for function loadfromfile and so you know how Asphyre needs images to be added.



c) The easy of created tiled background in DelphiX is great. Is something similar available in Asphyre?

What exactly do you mean? I never used tiled backgrounds in DelhiX, but I use tiled background in my project for dogfight compo. Had no problems with it. Is there a component in DelphiX to create tiled background? :?:



Are there any other instructions for Asphyre anywhere?

Unfortunately I don't know any sources or instructions how to use Asphyre and the documentation is not finished yet. It is not easy to find exactly what you need, but I found it not too difficult. Take a good look at the demos. How is this done, how is that done. Then experiment with it. That's what I did and now I am able to write games with Asphyre...

Anything else I can do for you?

Dirk

Steven
03-02-2005, 04:36 PM
Hi,

Thanks for the reply.


Hi Steven,

seems that you don't have the actual release of Asphyre. The VScreen demo runs well in latest version. There was a bug in definition of taCenter which is already defined through Delphis units itself. Lifepower renamed it to taMiddle in the latest version, this tells me you are not up to date with Asphyre.


I downloaded it from http://turbo.gamedev.net/asphyre.asp




As far as I know the Hasteroids demo has an exe included, so you can take a look of what the demo does. To compile it you have to install the bass system, which is free to download (but not free to use commercial).


Yes, but it would be nice to compile so I can make changes and learn like that. So I'll give it a go.

I'd still like to know if there are any restrictions on using Asphyre in a commercial game though.




The Ascii-demo is not of much importance to you if you want to create games. It's an addon lifepower wrote to make graphical demos in Ascii-mode. The renderer will convert bitmap graphics (and animations) to Ascii-character colored graphics. Only makes sense for demos (which was lifepowers intention).


Okay, thanks.



Asphyre itself has no sound system available (yet). I remember lifepower mentioned a possible sound system in the future. So you have to use other units or code your own. Wav-playing should be quite simple, though.


Yes, I think so.



To find out if hardware acceleration is available I guess it's only 2 or 3 lines of code, so I don't see a problem there. Just try to initialize Asphyre using hardware and if an exception occurs use software mode.
But be warned: Software mode is quite slow. You would need a fast machine to obtain good fps-results.


Yes, I understand software emulation would be very slow.




Asphyre has only one timer, too. But IMO Asphyres timer is more powerful. Take a look at the demo sources to find out the difference of the three timermodes. I am not sure, but I think the timer is already documented in the helpfile -> take a look at it.


Look at the help file? Are you mad? :-)

Okay, I will.



I myself use VTDB. But I know that it is possible to load bitmaps from file. I just took a look at images-component, it does not have a procedure to load bitmaps from streams, but hey, the whole system has source code included, so if you need loading from stream, it should not be difficult, since you already have the code for function loadfromfile and so you know how Asphyre needs images to be added.


You're right of course, I'll have to look into that if I decide to start using it.




What exactly do you mean? I never used tiled backgrounds in DelhiX, but I use tiled background in my project for dogfight compo. Had no problems with it. Is there a component in DelphiX to create tiled background? :?:


Only that DelphiX had a nice background sprite class that allowed you to tile images easily. You give it an image containing the tiles and then you can refer to them with tilebackground.chips[x,y] etc. You can then just position the tiled background where ever you like to scroll it around.



Unfortunately I don't know any sources or instructions how to use Asphyre and the documentation is not finished yet. It is not easy to find exactly what you need, but I found it not too difficult. Take a good look at the demos. How is this done, how is that done. Then experiment with it. That's what I did and now I am able to write games with Asphyre...

Anything else I can do for you?


I'm sure I'll have questions if I decide to go ahead!. Glad to know there are a few people here, looked quiet.

Have you had any issues with Asphyre so far? I noticed it didn't like me minimising and restoring one of the demos, nor ALT-TAB at one point. Although it might have been a one off.

I really appreciate the reply anyway, many thanks.


Steven

Huehnerschaender
03-02-2005, 05:55 PM
Hi again,

the release 1.03 is latest as far as I know. Maybe I did the change by myself if it is not included. Just change definition of TTextAlign in AsphyreDef.pas from taCenter to taMiddle and try to compile. On every compilationerror where taCenter the reason for the error, change the code to taMiddle then. After that you should be able to compile VScreen-Demo.


Concerning the background tiles... Asphyre supports patterns within images, which is the same as tiles in backgroundsprite I guess. You can draw every single pattern where you want. All you have to do by yourself is the scrolling or something like that. This is very easy, I do this in my competition entry, so if you want to know more about this or get sticky somewhere, just ask.

To get more info about licensing, just ask lifepower directly as he is the author of Asphyre. Send him a private message for example. He surely will tell you something about this quiet soon.

I had an issue with Asphyre when trying to change single pixels of images while rendering the images. Lifepower tried to solve the problem, but it seems that this issue does not occur on every computer, so it is hard to find a solution.
But normally you don't want to change textures which are already stored in graphic cards memory. Lifepower told me that this slows down everything quiet a lot.
Switching from fullscreen to windowed mode causes some problems on some machines, but normally should work. But in my opinion this feature is not necessary anyway when playing a game. If I want to play, I want to play fullscreen and not to switch every few minutes :wink:
Another thing I recognized is when switching, sometimes the antialiasing is turned off after switching back to fullscreen.
Very important: When you play around with demos and code, try your changings in windowed mode first! If you do something wrong in fullscreen mode and Delphi throws an exception, the only chance to get back to the system is changing to Task-Manager and kill Delphi-process.

Cheers,
Dirk

LP
04-02-2005, 09:15 PM
Sorry for not checking this forum often, we are working on our web site where next version of Asphyre will be available. HTML & Web design isn't my strong part, so it takes ages :(
I'll try to clarify some stuff asked here in this thread and elsewhere.
1) Asphyre used GPL license. AFAIK it can be used for commercial software.

2) New asphyre version (which is ready, although I'm still updating software renderer) is fully open-source and will be distributed under MPL license.
3) Latest available build 0103 had some files missing and that was the reason ASCII demo did not compile (it became a mess as we worked for TMDC compo).
4) Hasteroids demo required Bass headers to compile, however some of these did not compile well (required modifications). I wrote comments on this on the top of the main source code.
5) Software mode in latest available Asphyre can be selected easily, if no hardware was present. Even though I tried to separate both parts, new Asphyre will still have similar option.
6) Apparently, there were few hardware-only known issues which in newest Asphyre I try to "fix" by avoiding some of the options.
7) Asphyre will not have full 3D support (for now) nor it will have major changes in its design - finally, it was made for 2D using improved techniques (hardware acceleration, etc).
8) The major breakthrough in new release will be the networking component, which resembles in design my previous TBlackUDP and PowerNet components, but is way improved and completely independent.
9) This new release will be available as soon as our web site is ready (or at least a working portion of it). The reason to this is that I'll have a faster way to update & upload the files and have better control of what's going on with the components.

Huehnerschaender
04-02-2005, 09:23 PM
Hi lifepower!

Good to hear some news concerning Asphyre. Do you have an idea when the networking component is ready for a first test of mine? :wink: I am progging on the dogfight compo and would like to make my game playable over lan. I am trying to use Indy UDP component at the moment, but its very uncomfortable to do all the synchronisation with it.