Archive for the ‘FLEX’ Category
Making great games, applications and tools using flash, silverlight or other tools that are emerging such as Unity3D takes great style, effort and knowing your target. We need to know what the end-user machine has at hand. The Unity 3d guys put together a great post on the capabilities of casual gaming machines. With all the talk about flash 3d, unity3d and silverlight what level are you targeting and what group of people can actually PLAY your games as you envision.
Pretty much everyone knows Valve’s hardware survey – it’s a very valuable resource that shows what hardware the typical “hardcore PC gamer” has (that is, gamers that play Valve’s games).
However, the “casual gamer”, which is what Unity games are mostly targeted at, probably has slightly different hardware. “Slightly” being a very relative term of course.
Lo and behold – we have a glimpse into that data.
How? First time the Unity Web Player is installed, it submits anonymous hardware details (details in the EULA). This happens only once, and contains no personally identifiable information. It’s much like visitor statistics trackers on the websites that gather your OS, browser information and whatnot.
…
Remember, all this data is from people who installed Unity Web Player (most likely because they wanted to play some Unity content on the web). Hardware of standalone game players might be different, and hardware of your game’s players might be different as well. The data set is well over a million samples at the moment.
Check out the full stats here.
The most interesting stats to me:
OS Platforms
Windows 96.8%
Mac OS X 3.2%
CPU Core count overall
1 54.7%
2 44.1%
4 1.1%
8 .1%
Wow this one is surprising, but with the type of gamer that will play and download a quality new plugin to get to a game, maybe not. They need to have the latest and greatest. Multi-core processors have been selling for about 2-3 years so this is a continuing trend that will make Flash 3d and even plugins like Unity 3d better over the short term.
Also when you check it over at Unity Blog note the top cards, it is a bit painful if you are a casual gamer developer. Not a decent card in the top 10-15. But that is changing rapidly over the next 1-2 years in this regard. But this also vyes well for flash based games that rely on dual core software rendered results right now as a decent constraint for developers to keep content painfully accessible to all states of machinery out there.
I wonder if this information is available on the flash player and public? This is specific to the Unity 3D plugin that is also a bit of a different market that is willing to install a plugin for better experiences. With Flash it is usually preinstalled or auto updated for a casual user and might be different as Flash has a 98% penetration rate. Or for that matter the Director users which would be more gaming focused which amout ot about 40% of internet users. But as with the case of Unity it is specific to games right now and a small penetration rate, Flash is also apps, ads, tools, demos, interactives in addition to games. Having this information on Flash or Director would be nice.
I rarely mention stuff I have worked on here but I got a chance to use APE and AS3 on the online Plinko game at the site for the Price is Right videogame for the famed pink Plinko Board. Who doesn’t love Plinko?
I did the programming on this back when I still worked at emarketing/prizelogic.
I will be featuring a small iteration to APE with draggable particles and how I did it. In the end I didn’t use the draggable particles but they are fun (i ended up changing my collision/border particles after testing). I ended up controlling the drop location by swapping out a wheel particle after they dropped it. So that it got the famous Plinko disc bounce and roll.
Why did I use APE? Well it is the least complex physics engine. I started off with Box2dFlashAS3 and will post that one maybe as well but ended up going with APE mainly for integration it was easier that it was a less intensive codebase. Box2DFlashAS3 can scare non C++ coders with it’s style let alone AS2 coders moving to AS3.
It is slower with all the other animation going on in the site but you can also play on my server here just the Plinko part.
Can you get 10,000?
Roxik has a 3d physics engine of his own. This is the same dude that did the well done pictaps site.
Looks like he also recently added an engine for cloth.
Also the bones demo is pretty sweet
UPDATE: See comments and papervision list for revert of this change. You can now use localRotationX, localrotationY and localRotation Z instead. yaw(), pitch() and roll() are back by popular demand.
Hi List,
Sorry for this confusion, but we decided to revert back to pitch(
angle ), yaw( angle ) and roll( angle ) methods.There are three new getter / setters now though:
do3d.localRotationX
do3d.localRotationY
do3d.localRotationZSo:
pitch( 30 ) would be the same as doing localRotationX = 30;
Note that localRotationX / Y /Z are rotations relative to the
rotation as set by rotationX / Y / Z.
Also note that after do3d.lookAt() localRotationX/Y/Z will be resetted to 0Tim
ORIGINAL POST:
Papervision 3D 2.0 Alpha has been undergoing lots of changes and one you might want to know about is the object yaw, pitch and roll change. Thisis changing on how you access them but only slightly. This is good because you an read and write the values on the object not just set them. Per the papervision list from the man Tim Knip:
On many users request:
DisplayObject3D‘s methods pitch(), yaw() and roll() are now getters / setters.
Usage:
do3d.yaw = degrees;
do3d.pitch = degrees;
do3d.roll = degrees;var myYaw : Number = do3d.yaw;
This means these values are now ‘absolute’ values instead of previous
‘relative’ values as in deprecated do3d.yaw( 1 );Let me know any issues (as I’m sure there are…)
Tim
This only affects the latest and greatest revisions of papervision but is definitely a good change. It is good to make changes that make more sense without worrying about breaking changes.
It was announced that Flash content and SWF files are now searchable by Google and Yahoo searching crawlers. This has yet to be really tested but it is good news that flash sites with textual content will be able to be searched like normal websites. This knocks down a bit the “black box” approach to content when it is in flash rather than a HTML/XHTML based website.
Google has been developing a new algorithm for indexing textual content in Flash files of all kinds, from Flash menus, buttons and banners, to self-contained Flash websites. Recently, we’ve improved the performance of this Flash indexing algorithm by integrating Adobe’s Flash Player technology.
In the past, web designers faced challenges if they chose to develop a site in Flash because the content they included was not indexable by search engines. They needed to make extra effort to ensure that their content was also presented in another way that search engines could find.
Now that we’ve launched our Flash indexing algorithm, web designers can expect improved visibility of their published Flash content, and you can expect to see better search results and snippets. There’s more info on the Webmaster Central blog about the Searchable SWF integration.
I imagine that it is still more difficult to index flash content and this opens questions as to what is searched and how as content can be loaded in dynamically and some content might be overly verbose that should not be indexed such as code. Also, the placement of text matters on a regular website so I imagine that it also matters according to what content is in a flash SWF file.
It will be interesting to hear how this evolves but as of right now it is good news that content in flash is searchable. The format is now open and this is probably why the capability is now possible as there aren’t any fees to using the format. So expect more accessibiliy from flash as time goes on like this.
The red and blue, Red5 and BlazeDS are available for push mechanisms similar to what Comet is trying to accomplish with sockets essentially that use the AMF format and AMF3 format with Flash/Flex that is extremely optimized for size and thus network traffic is less bulky.
Welcome to BlazeDS! BlazeDS is the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe® Flex™ and Adobe AIR™ applications for more responsive rich Internet application (RIA) experiences.
The evolution to more engaging RIAs has created the need for better data connectivity options. Remoting simplifies the reuse of existing server logic automatically marshalling calls between the Flash client and the Java methods on the server. In addition, the use of a AMF binary data transfer format increases performance, allowing applications to load data up to 10 times faster than with text-based formats such as XML or SOAP.
Previously available only as part of Adobe LiveCycle® Data Services ES, Adobe is contributing the proven BlazeDS technologies to the community under the LGPL v3. BlazeDS gives the rapidly growing Adobe developer community free access to the powerful remoting and messaging technologies developed by Adobe.
The odd thing about all this is both Red5 and BlazeDS are Java based. The AMF integration with Java is pretty solid with two major push capable servers using that (again with sockets behind the scenes but highly optmized with AMF/AMF3 and in multiuser case with remote shared objects – red5).
Push mechanisms are needed more and more and having this capabilty right into flash with AMF format remoting data proves to be very easy to integrate and if the backend is java then a pretty robust back end as well.
I use PyAMF for Python and Flourine for .NET as well as the usual AMFPHP but the need to push and have more optimization than a basic object socket connection might be in order.
If you ever were a fan of Rebirth and Rebirth 2, this was a music kit that had two 303s, a 909 and an 808 kick drum (beastie says mmmmmm-m-m drop!). Well Andre Michelle has re-ignited that awesomeness and upped it with the Audio Tools from hobnox!.
This not only has the famed 808, 909 and 303 (conveniently covered with stickers of love) but also sorts of channel mixers, pedals and sweet interface that mimics the inputs and outputs as well as customization on nearly every aspect of the audio creation with these tools. Use your mouse to move things around, connect ins and outs and move the whole setup around.
This setup on about 80 bpm and a little tinkering is groovy.
I think I just found my new batcave evil genius code monkey theme music
- Andre Michelle’s Blog
- English version of hobnox Audio Tools Direct link
- Rebirth nostalgia
- Audiotools blog
Apparently Andre and Joa made some noise and now you can too. Also I noticed that some of it is in java for the sound output. I wonder if Adobe missed an opportunity here in audio with flash, which will change probably in Flash 10 due to the Make Some Noise Adobe campaign and Tinic Uro for listening. But for now have some fun. It is hard to find something that doesn’t sound good in the 80-90 bpm range.
The Alternativa Platform has officially launched. It is a 3d engine for Flash/AS3. It has been announced on their blog today and this is an exciting development for 3d in flash, especially if you are a game developer or game company.
They have offered it free for non-commercial use in the form of SWC files. It is well oganized and lots more good stuff to come it seems in the GUI and some information on setting up the gaming platform on the server as well. It looks to be a complete package.
This is not an open source release but the Alternativa Platform is an extremely well done and amazing looking engine. It has configurations for 3d and isometric 3d.
Here is a shot from the engine.

- Announcement on the Alternativa Platform Blog
- API Reference
- Direct link, register and download
- Demos and more info
- Previous post on Alternativa with shots for isometric and FPS demos
Sputnik has been launched!
Here are all the classes in the package (SWC):
All Classes
Tink posted a great library manager for using external assets in your flash projects. When you start getting deep in projects you end up either having to roll your own that might end up being project specific, or you can just grab this from Tink and it is nice and standardized now for you.
Here’s and example of our Library & LibraryManager classes that we use in some of our Flex and AS 3.0 projects to manage our external assets stored in SWF’s.
The classes enabled you to create multiple libraries of embedded (retaining and giving access to code) or loaded SWF’s.
You can create instance of Library wherever you want, but you can also create them through the LibraryManager giving you a single class to gain access to all your Library instances.
As you develop more and more flash/flex projects with AS3 these types of utilities come in handy. Another that comes to mind is Arthur Debert’s BulkLoader and polygonal labs Data Structures for Game Developers that are all great kits.
Add Tink’s Library and LibraryManager to your arsenal today! Thanks Tink.
I have been consuming all the great additions to Flash 10 this weekend and one that really jumps out after you get past the visual, text and sound features (which are spectacular btw and most of what the community was asking for). But one feature snuck by, this is the one that ByteArray (Thibault Imbert) mentions/pointed out for managing files directly within Flash.
File Reference runtime access — Bring users into the experience by letting them load files into your RIA. You can work with the content at runtime and even save it back when you are done through the browse dialog box. Files can be accessed as a byteArray or text using a convenient API in ActionScript without round-tripping to the server. You no longer have to know a server language or have access to a server to load or save files at runtime.
This greatly lowers the bar to using Flash as a photo editor, document manager, customized application experiences, marking up content and saving locally, all without the need for server side script. I am a big fan of server side technologies and develop with them but even for bettering performance this could be huge.
Scenarios where this might be useful is editing applications, note taking (download a book with your notes), editors for docs/games/3d/textures,,, the possibilities are endless really.
Flash 9 just got mainstream and production ready (flash 9 penetration) at the tail end of last year but there are so many great things in the new version that I hope it comes out very soon. Flash it turning into quite a platform.
Alternativa Platform also has updated their engine for Flash 10 already (they must have had some inside early accessibility to it) and there are great possibilities here.
It is only beta (Flash 10) but there are great market opportunities to prepare for when this launches. Keep your eye on where the puck will be, not where it is currently at. I was concerned when Adobe bought Macromedia and the future of Flash but it appears they are taking this bull by the horns.
If you are ready to play with Flash 10 here is Flex and FlashDevelop updates to help you get started.
Also here is some code posted at ByteArray from Pleh for testing the new FileReference runtime access, usage is extremely simple and rests on this
var data:ByteArray = fileRef['data']; /* FileReference Load Example By Pleh 17/05/08 */ package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.net.FileReference; import flash.net.FileFilter; import flash.utils.ByteArray; public class Flash10Test extends Sprite { private var fileRef:FileReference; public function Flash10Test() { fileRef = new FileReference(); fileRef.addEventListener(Event.SELECT, selectFile); fileRef.addEventListener(Event.OPEN, openFile); stage.addEventListener(MouseEvent.CLICK,stageClick); } private function selectFile(e:Event):void { fileRef['load'](); } private function openFile(e:Event):void { var data:ByteArray = fileRef['data']; var loader:Loader = new Loader(); loader.loadBytes(data); addChild(loader); } private function stageClick(e:Event):void{ fileRef.browse([new FileFilter("All Formats (*.jpg,*.gif,*.png,*.swf)", "*.jpg;*.gif;*.png;*.swf", "JPEG;jp2_;GIFF;SWFL")]); } } }












