APOCALYX is a...

free Game Engine based on OpenGL (MAIL) (SITE) (FORUM) (BLOG)

Thursday, July 31, 2008

Explosions Generator

Yesterday I have described a program that generates images of animated caustics. Today is the turn of a program that generates images of explosions. You can download it here.
You know the importance of explosions in games. Often they are realized through the particles system, but also a simple square textured with an animation is good enough in some situations. For example, such are the simple explosions in "Urban Tactics".
In the case of this program, each frame of the explosion is drawn in a sector of the texture, so one can immediately use the APOCALYX AnimatedTexture class to render the animation on a transparent billboard and simulate an explosion.
The author says: "As a side-effect of working on a shootemup game I have a small program that generates sprite animations of explosions. Because there aren't many easy ways to get textures like this if you aren't an artist (without stealing them from other games) I thought I would do the decent thing and generate a few spare free textures that anyone can use, anywhere for anything, royalty free. If you are doing 2D or 3D games, you might find these texture helpfull in rendering explosions in your games.
You can download the program and configure lots of different variables to output your own unique texture pages of explosions. Happy exploding!
"

Wednesday, July 30, 2008

Caustics Generator

Textures are fundamental for games. Nowadays the fragment shaders add a lot of versatility and realism to game scenes, but also a good animated texture may be enough sometimes. Hand drawing textures is an art, use and modify real photos is easier, but there is a third way: use texture generators.
In a past post (read it) I talked about the procedural texture generator included in APOCALYX. There are also programs that generate procedurally animated texture to recreate effects like caustics, the characteristics light-games under the sea surface. One of these program, devoted to caustics, is available here.
The author says:"Caustics can be described as the light pattern you see at the bottom of a pool on a sunny day.
This tool will let you render such caustics patterns. The rendered images can be animated and used for realtime graphics and are tileable in both space and time.
Caustics are a bit more than just the pattern seen on the bottom of the pool. Caustics is the name for the light phenomenon of converging light. Caustics are caused by the fact that light is reflected or refracted one or several times before actually hitting a surface. The more light that is refracted to the same area on a surface, the brighter the area will be lit.
The patterns rendered by this program are calculated by simulating the effect of light refracting through water. The water surface is made tileable in both space and time in order to make the rendered images tileable.
The rendered images can for example be used as realtime textures for games and animations.
"

Tuesday, July 29, 2008

Banners in Flash

Let's start a new topic a little off-topic for the main line of discussion of this blog: Utilities.
I had to write the flash-banner for a free game in development, the banner that you can see today on the left, and I never created one in the past (in fact, as you can see, the final result is not so professional). Anyway, I tought that some complex and expensive tools were necessary to put together things like that, but I was wrong.

I've found a simple program called PowerBullet, that in its 1.35 version is free to use. It can create flash presentations in a few clicks, in fact built-in buttons to advance presentations are already available, but it is useful also for create simple banners.
I promise that my next attempt will be better, but I think that the beginning is not so a bad.

Monday, July 28, 2008

MDL smooth transitions

I received questions about the smooth transitions between different animations in MDL models. AS explained yesterday, they are only available in the preview of the next release. There are 3 additional functions:
  • number MDLModel:setTransition(number duration, number index, boolean looping = true, boolean reverse = false)

    This function starts the transition from the current frame of the current animation to the first frame of the specified animation. 'index' is the index of the next animation, 'duration' is the time necessary for the transition.

  • number MDLModel:getTransitionTimer()

    This function returns the current transition time, so one knows between 0 and 1 which portion of the transition was already completed.

  • number MDLModel:getStoppedTransition()

    This function returns the last stopped transition (-1 if no stop was reached yet). It is useful during the update() callback to know if the transition is terminated, so the programmer can start the new animation (in fact, the next animation does not start automatically, but on request).

Unluckily there is no demo yet that exemplifies the subject, but I'll include one when the next release will be published. Feel free to ask more explanations.

Sunday, July 27, 2008

APOCALYX 0.9.3 alpha3

Yesterday I posted a link about the new preview of the next release of the engine (download the new executable here)
Apart the bug related to eSpeak that I discussed yesterday, the preview includes some improvements as listed in the history document:
  • Added MDLModel functions: setTransition(), setTransitionTimer(), getStoppedTransition()
  • Added IM (Imaging Toolkit) support in IUP GUI
  • Added primitives: Cylinder, Disk, PartialDisk, Sphere
  • Added setPointerVisible(), isPointerVisible()
  • Fixed bug in collisions between ODE objects and BSP geometry
  • Added support for SQLite and MySQL databases
  • Removed AngelScript, SMALL and CSL language support
These are only some of the improvements fully available when the next release will be published.
For any question, feel free to post on the forums.

Saturday, July 26, 2008

eSpeak: bug solved

Thanks to Nout (the author of NsEditor), I discovered that the current APOCALYX implementation of eSpeak had a design flaw. eSpeak is an open source library useful to convert text in several languages is fluent audible speech. Since the output of the library is a sound, I had to interface the output to a sound source and, because of their versatility, I had chosen a 3D sound source. This way the sound of the spoken text can be attached to a object in movement, a NPC for example.
This idea had a flaw, in fact what happens when the 3D sound is not attached to an object and the camera is moved around in the scene? The 3D sound remains stationary in the origin, while the camera (and the ears of the player) move away, thus the sound may become too far to be heard. A 3D sound is versatile, but its default behavior is not intuitive.
To solve the problem, it's now available a new preview of the next release of engine (alpha3). The solution is simple, when the speaker is static, the programmer can use an old good 2D Sound instead of a 3D sound located at the origin. This preview includes also the MySQL and SQLite support, so the users that need those database interfaces can download it without fear of losing them.

Friday, July 25, 2008

City tour

Finally, the end of the screenshots tour. Let's come back to an urban environment. The buildings are just made of simple blocks, but enough to represent the town of "Urban Tactics". All the lightmaps applied to the walls are generated by the raycaster included in GtkRadiant.

A few buildings

A flat wall: the windows are
drawn in the applied texture

The main street