What is “SSAO”? Screen space ambient occlusion is a post effect which shades pits, folds and corners.
We didn’t made the release which includes SSAO yet but you already can try it.
The core features of SSAO post effect were implemented quite some time ago. The problem is the effect does not fit in current engine architecture and was attached with duct tape. This doesn’t mean that SSAO or the engine is bad. They just don’t fit well enough to each other. Connecting them produces dependencies which would interfere with future development. Therefore, we decided that in this form we would not include the engine into the main version; first the engine would need to be reprocessed so that the SSAO and other post effects connected with it harmoniously. As this would take a while and as we can use the current version of SSAO as it is, we have decided to release a special version of the engine, known as “SSAO edition”. API in this version will not be supported in future and as soon as the engine is ready, we will implement the SSAO with the new API. The Alternativa3D “SSAO edition” is available through GitHub in a separate branch so you will able to keep it up to date by merging from the master.
Per our recent post, Software Developer’s Journal has published our article about shadows and transparency in Alternativa3D 8.27. Now we are sharing both parts of the article on our wiki as well.
Since the article was written, the engine has grown to include omni light shadows, in addition to directional light shadows. Omni light shadows are not covered in the article, but they are very similar to directional light shadows and you are welcome to learn more here.
FlashPlayer 11.4 was released recently and now many more users will be able to use hardware 3D-rendering in Flash. Earlier versions of FlashPlayer 11 support hardware rendering for devices manufactured after 2008. The constrained mode extends this support to all devices released since 2005. For example, almost one third of TankiOnline players will be able to use GPU rendering thanks to the constrained mode support. (Around two third of the players already have GPU support and less than ten percent still use the old version of the Flash player that doesn’t support hardware rendering at all) Incidentally, your application should be ready to work in constrained mode as well as FlashPlayer on the user side. This is easy to achieve with Alternativa3D 8.32.
Hello there, let me introduce myself.
My name is Leonid Gaev and I am working on developing the Alternativa3D 8 engine. We already have some accomplishments to show you and that is what my post today is going to cover.
Just recently, Media Pillar LLC, a company from the Russian city of Perm, released Combat Sector, an online game developed on the Alternativa3D 8 engine. Even though the developers say that the game is in alpha testing, it is already interesting to play. The players have access to a wide range of options: they can build up their character, upgrade armor, weapons and devices, and buy boosters. They also can access different gameplay modes: Deathmatch, Team Deathmatch, and Domination. But what is really cool is that these guys have no intention of stopping there. Even more modes are in the pipeline.
The game drew me in because I can rather quickly evolve and progress as a player, even as I’m loving the weapons-blazin’ action (which is why the game was created in the first place).
I should warn you that this post is written for game developers and those who want to get ahead in the gaming industry. I will describe how Media Pillar achieved its success, more specifically: which capabilities of our engine fuelled their successful efforts to make their project.
This is one of the key features in the engine. The benefit of shadows is that they automatically make the picture more appealing and three-dimensional. This 3D-ness is achieved because with shadows, the eyes can more easily evaluate the distance between an object and the surface on which that object is located. In other words, if you look at a character without shadows, it looks like it is floating in the air. But with shadows, your eyes can definitely see that the character is standing on the ground.
This is the cornerstone of the engine. Some games pass up lighting. Those games use one of the most simple types of materials, what we call TextureMaterial. Objects made from that material don’t react to light. Combat Sector uses dynamic lighting and StandardMaterial, one of the main types of light-reactive materials. Light sources contribute to the intensity and color of each pixel in the object. In practice, the intensity depends on the angle at which the light from the source hits the object. Glare is an intense reflection of light from the object on the camera. In shaders, it is calculated as a separate component of lighting.
Lightmaps are the light “baked into” textures. This is a way of displaying static lighting and saving CPU cycles. Lightmaps are also good because they don’t require high-resolution textures. They are frequently used on ground surfaces and other objects with tiled textures, when a single texture is repeated over the object. Lightmaps were originally designed in order to save CPU time.
Media Pillar didn’t spare efforts to create animated vegetation, either. Even though it doesn’t impact gameplay, earth vegetation creates the pleasant feeling of a live picture. What is really cool is that this vegetation interacts with the characters when they run on it.
These are low-poly models with transparent textures. This approach is often used for implementing vegetation objects. They appear as highly detailed objects, but this is actually thanks to using transparent textures and alpha testing.
By using a relatively inexpensive technology (animated sprites), you can achieve good results in making pictures interactive and lively. In essence, sprites represent a flat object that is always facing the camera. If you remember such standard-bearers as Wolfenstein 3D (1992) and Doom (1993), they were the first to implement characters by using sprites. Remarkably, such old technology is still effective and is used to create various effects. For example, in Combat Sector, these are effects for fire, bullet holes, lighting (emphasis) around first aid kits and armor, sparks of electricity, and more…
Alternativa3D allows displaying objects with skeletal animation. Most frequently, this technology is used to animate characters. This type of animation is efficient because instead of animating the vertex of the object, you can animate only the bones, and vertexes will become animated because in the bones you specify the impact on the vertex of the object. In Alternativa3D, this is done by the Skin class. Cheap and with good results: just what is needed for browser games.
Animation With Blending
A couple of words about this technique. In addition to skeletal animation, Alternativa3D includes animation of objects with blending. By applying it to Skins, you can make smooth transitions between any pair of animations. Blending is used a great deal in slashers so that players don’t notice any jerks between blows. Cool way to switch between animations.
This is a mechanism for creating sophisticated special effects. For those who remember the demo of the Tank i 2.0 prototype, it used a particle system for gunfire, fire, and smoke. Media Pillar used a particle system to implement smoke from fire and fumes from lava.
With Combat Sector, Media Pillar set out to create a dynamic game. The core of gameplay is hacking-and-slashing action between gladiators in arenas of the future. That’s why Media Pillar was looking for a high-performance engine. And for us, performance is one of the foremost product requirements. We use simple and efficient algorithms where they are necessary. For historical reasons, the performance of browser games is lower than desktop games. So we try to squeeze out the max.
Media Pillar achieved excellent results, I think. They took advantage of almost everything available in AlternativaPlatform products. In addition to Alternativa3D, this was AlternativaGUI, AlternativaCore, and AlternativaPhysics.
I also want to congratulate the users of our engine: the browser game industry has now come out with full-fledged projects. Today we can proudly recommend the top five projects created with our engine to you. Many of them will soon approach the release version stage. I will write about them in due course.
After a long break we present release 8.32 in the form of SWC. All this time we have been committing changes on GitHub and have placed intermediate releases there. However, updating through GitHub does not suit all cases and now you can receive new version of the library in the form of a habitual archive with documentation and examples. You probably will want to update your projects right now and there are at least 7 reasons for doing this:
- StandardMaterial has no more restriction on the number of light and shadow sources wich are visible on the object
If there is a big number of light sources, the object will be automatically drawn in several passes.
- Shadows from OmniLight
Apart from DirectionalLight shadows, the OmniLightShadow class that projects a shadow from a point light source will now be available. You can manage quality and border smoothing options on all kinds of shadows.
- Disabling of the light source impact on an object
You can disable the impact of a light source on an object or a hierarchy of objects using the Object3D.excludeLight() method.
- Rendering optimizations and materials efficiency
Due to more optimal caching of resources, we have managed to increase our performance up to 30% on difficult scenes.
- Mouse events disabling when they are not required
Now you can expect a performance growth in projects that do not use mouse events or use only clicks processing. Only those types of events will processed on which listeners was added.
- Constrained mode basic support
The Flash Player 11.4 uses hardware acceleration on a much bigger number of videocards in this mode. For more details please read announcement FP 11.4.
- Handling of the right and middle mouse buttons while interacting with objects
The possibility to subscribe to events of the right and middle mouse buttons appeared starting with the Flash Player 11.2 version; now this feature is also supported in Alternativa3D.
Our examples have their own repository on GitHub now – Alternativa3DExamples!
Subscribe to our Facebook group and you will get all news regarding the engine development.
Repost it on social networks and on Twitter: let more people know about the release!
Adobe published a detailed plan of the entry into force of its licensing policy for game developers creating projects for Flash Player 11. The policy covers products using so-called “premium features” of FP11 with a net revenue of $50,000. The owners of such products will have to give 9% of their revenue to Adobe. But who shall actually be doing the sharing and in what cases?
Premium features mean the simultaneous use of the Stage3D hardware acceleration and the “fast” domain memory. It is noteworthy that separately both can be applied absolutely freely. Therefore, the new license policy first of all covers the projects built in complex development environments, such as Unity or ShiVa, as well as projects compiled from C/C ++ by means of flascc (code name: “Alchemy”). In this case the executable file for the Flash-platform obtained by non-ActionScript3 code compilation will depend on the domain memory.
However, all this does not concern AlternativaPlatform-based projects. Neither the Alternativa3D 8 graphic engine, nor the AlternativaPhysics physics library use the domain memory, so they are not covered by the policy. At the same time they allow the use of all the capabilities of the Stage3D hardware acceleration and the creation of a complex physics simulation on Flash Player 11. Nothing will change for companies that have chosen our technologies. AlternativaPhysics and Alternativa3D 8 are distributed free of charge, and, moreover, the Alternativa3D 8 source code is open.
Note. Adobe intends to monitor the observance of its rights in technical terms. On 1 November 2012 projects covered by the license policy requirements but not licensed will be forcibly switched to the Stage3D software rendering instead of the hardware one.
Alternativa3D 8.27 was released a long time ago. Many commits were made after that to our GitHub repository but we have not yet explained how to use the most important features of this release. The newly released issue of Software Developer’s Journal has an article about these features. This article contains a detailed description of how to use shadows and describes the basis of the problem with sorting of transparent objects.
We want to share our latest achievements in our current work.
We recently finished the “soft” particles effect for Tanki Online MMO-game. This effect reduces sharp edges in places where particles cross level geometry and improves their appearance.
I think the best way to understand the benefits of this effect is to look at these screenshots and video.
It’s been long since we have written, and yet the work on the platform, including the Alternativa3D engine, is in full force. Now, for example, we are working on SSAO.
Screen Space Ambient Occlusion – this is an post-effect, increasing the visible detail of the scene due to shading of those places which are expected to have poor light penetration.
The screenshot below shows how it will look like at “Tanki Online.”
The aim of the algorithm is that we draw the scene in several different buffers – the color buffer, depth and normals. In the future we can in the post-effect shader (in the space of the screen) to restore the three-dimensional coordinates of the visible points and calculate their average shadowing neighboring points.
Shading is defined by two parameters – the distance between the points and the angle between the normal and the overlapping point of the object at a given location.
We were able to achieve high performance of this algorithm with good quality. This algorithm was realized in the experemental branch on GitHub and we plan to merge it to the master branch in the future.