Posts Tagged ‘3D engine’

Seriously, look all the things we did during 2014! :-)

Wednesday, February 4th, 2015

Flare3D 2014

2014 has gone and this is our yearly analysis so we can enjoy, once  again, all the things we have done together during this amazing year! :-)
Do you remember our last year post “Bigger, better, faster, …. “ ? Yes, I know… that was a long article. The list of new things was incredible and we spent a lot of time writing about the most relevant features. This year is not different, we were thinking about the new things that we made in the last year and we noticed that they are a lot more than the previous period! Keep reading, this will be a wild ride along all amazing things that you are currently enjoying in Flare3D.

Collisions and Physics system

Flare3D 2.7 came with one of the most wanted features in Flare3D. Our own “Collisions and Physics system”. Included into Flare3D’s core, is the fastest and mobile friendly collision’s system that you can find in Flash. We did a small set of getting started examples and we even had some fun doing our own version of the mega-hit Flappy Bird called ‘Flappy Flare’ for you! :-)

To see what’s possible to do with it, check out the following video. All of them are using the new Flare3D Collisions and Physics engine.

if you want to know more about Collisions and Physics,  you can also read this beautiful post.

FLSL and shaders fun!

AGAL2, MRT (Multi Render Target), we added lots of new features and keep FLSL up to date with the latest Flash Player improvements and features, but we didn’t stop there, we’re adding a whole new range of innovation to support impressive rendering pipelines without affecting current workflow and still keep the designers flexibility we’re all used too, which is definitely awesome :)

One of the first examples was AIR Gamepad Demo, which was impressively running on mobile as well!

Walk through demo using Adobe AIR Gamepad

Walk through demo using Adobe AIR Gamepad

Workflow improvements with Flare3D IDE

We have added a new full set of features here, from workflow improvements to a completely redesigned and improved F3D file format (which we’re going to talk about next in this article). This allows for a lot more complex and bigger projects, as well as simplifying tedious and boring optimization tasks for different platforms.

Flare3D 2.8 IDE

The new and improved IDE in Flare3D 2.8

We have also added the new Texture options panel with a nice set of options, and more beautiful and helpful thumbnails and tool tips, and tons of improvements and optimizations to the whole tool. We’ll go in more detail on all these features in a new, coming soon blog post!

F3D binary files are back!

Before Flare3D 2.0 was released, the Flare3D’s files were saved as F3D files. F3D was a binary and compact file containing all the necessary data for each 3D model. Once the Flare3D 2.0 was released, the old F3D was replaced by a new format called ZF3D (which is basically a zip file with a set of files containing all the information 3D models need). ZF3D files use an open and simple structure so that everyone is able to change and mess with it without to too many complications, as well as bringing a friendly format to be exported from different 3D modeling software.

The main problem with ZF3D is that it’s largely based on XML files and its loading process could be slow, as well has having other limitations and less features to keep its simplicity. That’s the reason why we are going back to the F3D binary format. The results are amazing!, F3D not only improved loading times “a lot”, but it also optimizes file sizes depending on each  particular platform, so for example, on mobile you can avoid some compression to be able to load things faster, but on web, you may want the smaller file you can get.

F3D is not only about file size and faster loading times, it also brings a lot behind the scene optimizations, huge memory improvements, and full range of new features like shared packages, embedding any type of assets like xml’s, or sounds or whatever you would like to put inside, easier access to all loaded resources, the ability to upload, download and dispose packages in a more organized way, multiple scenes, and the list goes and goes 😉

So, why not removing ZF3D files then, well, both ZF3D and F3D files have its purposes, it is like having a PSD and JPG, a FLA and SWF files, in the same way, ZF3D files are lossless and are useful when editing / exchange during development. Once you have all set, you can export the final F3D files for shipping your projects.

Holy sparkles Batman!

A new Sprite Particles system was added to Flare3D!, a powerful combination between GPU and CPU, bringing a lot speed and flexibility at the same time.  Differently from the currently fully GPU partciles system, the new Sprite Particles allows to treat each particle individually, and create a lot more flexible visual effects. Since it does not require to pre-compute big buffers, they are fully dynamic, interactive and take a lot less GPU memory as well, still, maintaining full rendering speed trough batching in few draw calls lots of particles together. All this comes with a little cost, in which we need to update particles at CPU side, so depending on each particular case, you may still want to use the old particles for specific cases like fire or smoke…where you don’t really need too much flexibility or interaction.

Since the new sprite particles is more about flexibility, it mostly works from as3 side, so it will require a bit of code to make things work, but while getting a lot more freedom as well 😉

This is what the “boy wonder” said when he discovered the new particles system.

 Added static objects and automatic batching.

Optimizations are always welcomed, and this is not a minor one. We added the option to set objects as static, the engine will internally try to optimize all those objects to reduce draw calls as much as possible, which means, a lot more rendering speed!
How this works?, basically, you set the objects to be static in the IDE via the properties panel, or through the Pivot3D setStatic method in As3, and that’s it. All those objects will be sent to a Static Batch which will do its best to optimize the rendering of those objects.
This of course has some limitations, as you won’t be able to move or animate objects that are set to be static, also some features may be disabled like changing materials or setting objects to a different layers, but as any tool, you just need to use it in the right place 😉

Dynamic Batching.

Static batching is really cool, but dynamic batching is even more than cool :) It only works on specific cases, but it really does a good job!

A dynamic batch (or MeshBatch3D) allows you to groups multiple identical objects (in their geometry and materials) and draw them in fewer draw-calls, which also speeds the rendering time a lot!

It is specially useful in cases where you need to render tons of bullets, trees, game coins or pick-ups, enemies, basically, every time you have lots of identical objects.

And the best part, these objects can be moved, rotated or scaled and support camera culling.

And that’s not all!

Along 2014 we were involved in the development of two amazing projects, pushing Flare3D more and more.

The first one was Lightstorm, a futuristic racing car game that we made to demonstrate the capabilities of Flare3D, the power of FLSL and the new Physics engine.

Lightstorm

The game was inspired by the style of Tron.

The second was Regular Show – Dimensional Drift, a racing car game inspired by the popular cartoon of Cartoon Network. The game can be played in two different modes “Single player” and “Multi player”. Was released in november and until now has more than 2 millions of plays and it keeps in the top five of the most popular games at Cartoon Network.

Regular Show

Regular Show is one of the most popular CN’s shows.

Thank you all!

The latest section is for you guys! For those people that trust in Flare3D, for their commitment with the community and because you make incredible things with our engine. THANKS!

forrest_gump_41885

like a chocolate box…

 “My momma always said Life is like a box of chocolates, you never know what your gonna get”

Forrest Gump

 

“My CTO always said Flare3D is like a box of chocolates, you never know what your gonna get”

Flare3D’s crew member

Flare3D Collision and Physics engine preview!

Monday, November 18th, 2013

A month ago, we showed a first preview of the new collision detection and physics library. We haven’t stopped since then and we are still working hard to include it in an upcoming release! This new engine was to be based on a new and innovative approach and also was to be capable of solving collision and physics behavior as we have never seen before in Flash. If you haven’t seen the video yet and you are wondering if that is possible? You can find the answer bellow. Thousands of objects, all working at beautiful 60 fps.

From the moment that we obtained the first results, a large  smile was put in our faces! 😀

A different approach

Let me talk a bit about the direction we’ve taken. When we looked at some games, we realized that a lot of them, don’t necessarily use physics, or in some cases they just fake it, but most of them have a need for collision detection. That doesn’t mean they don’t use physics, but they may not be simulation games either. Keeping this in mind, we faced the problem from a non-traditional point of view. Just to start, the system must be able to solve collisions in a highly optimized way. And after that, physics behavior may be applied on the objects involved. This approach is far more stable than traditional physics simulations, so it is very important to have a more controlled game environment. What we mean by a ‘controlled environment, is avoiding the unpredicted behavior that you may get in typical physics simulations, but without taking away all the fun :)

classic video games

Only few games needs real physics, but all of them need collision detection!

Collisions and objects (the core)

In your app you’ll be able to interact with collisions between different kinds of objects.

The available kinds of collisions are: ray, mesh, sphere and box collision (coming next: capsule, convex hull), and the objects affected by these collisions can be classified into Static, Dynamic, Rigid Bodies and Trigger, each one with its own behavior.

Flare3D New Collision System

new collision types will be available

New features will be fully integrated with Flare3D (engine and tools) and you can use physics/collision by code or define properties and behavior in a visual way using Flare3D IDE. The whole development was made “in house”, fully made by the Flare3D Team from scratch, which a ridiculously high performance! This is 100% AS3 (No FLASCC or cross compiling)

 

Who will benefit the most from the new engine?

We can say that the obvious answer is Game Developers. Game developers will be the group that will take most advantage of the new collision system (Especially those that are doing mobile apps). But, at this point we are sure that it can be used in a lot of other apps, because it provides a unique real solution for collision detection in low performance devices like tablets and smartphones!

Simple physicsfor game developers

Game developers! This is your lucky day!

The first mobile test

Yellow Planet, our tutorial game that recently was updated to Flare3D latest version, was our first mobile test for the new collisions system. The game is the same, we only optimized the assets to make them “mobile friendly” and we changed the controls to allow game play without a keyboard. In the original version, collisions were the most intensive resource consumer. Now, collisions only take less than 1% 😀

YellowPlanet on Mobile

Yellow Planet running on New iPad and BlackBerry 10

A little help from my (Flare3D) friends

To make your life easier, the new collision engine will be released including a super pack of mini-games showing how to use the new engine in a real project! This will be the ideal starting point for many developers!

 

Do you want more?

Check out our talk in Flash Online Conference #6 where we talked about Collisions and Physics in Video Games (our talk begins at 4:00:30 ).

Remember, this is not another Physics engine. This is a custom and powerful engine that we did it to make you happier! And we think that we did it 😉