Posts Tagged ‘OPENGL’
Unity 4.2 update has been released and includes Windows Phone, Windows Apps for free and also included Blackberry 10 basic exporting.
Many other great features like source control support (text-based assets), realtime shadows and NavMeshes are now mostly available in free versions. Text based assets is the biggest helper when working with teams that use Unity Basic for assets or shared repos for basic/pro versions.
Unity 4.2 comes with three new platforms: Windows Phone 8, Windows Store apps and BlackBerry 10. That’s right, we’ve doubled the number of mobile platforms Unity supports! Now it’s up to you guys to create new games and port existing titles to these platforms so even more people can benefit from your creative talents.
In Unity 4.2, all users of the free version of Unity can publish to any mobile platform they wish, be it Windows Phone 8, Windows Store, iOS, Android or BlackBerry 10 without it costing a dime. In addition, Unity Pro users can use the Windows Store Pro deployment option (which includes the Windows Phone 8 and Windows Store apps platforms) absolutely free of charge.
Plus, Unity Pro users can benefit from advanced Unity features when deploying their iOS, Android or BlackBerry 10 projects by purchasing Unity iOS Pro, Android Pro or BlackBerry 10 Pro Add-On products from the Unity Store.
I like the moves to free for all mobile platforms for basic and the Windows Phone and Apps Pro upgrades for free for Unity Pro users (Blackberry 10 Pro upgrade still is $1500). I was hoping over time the Asset Store and a lower subscription would emerge and the ecosystem would grow. The Windows addition for free is great for Microsoft’s platforms growing like iOS and Android did as Unity is a big push on game content to those stores/markets.
Other great feature updates in Unity 4.2
- Shuriken Particle Collisions
Shuriken Collision Event Callback Scripting Interface: Efficient callbacks on GameObjects and Particle Systems are issued when Shuriken particle collisions occur. Per particle callback data includes collision positions, incident velocities, surface normals and Collider references. Use this feature to can cause damage to GameObjects and apply forces to rigidbodies.
- OpenGL ES 3.0 for Android
ES3 has nicer shadow filtering, ETC2 texture compression, GPU skinning via transform feedback, HDR rendering, multiple render targets, derivative instructions in shaders etc.
Requires an ES3-compatible GPU, for example Qualcomm Adreno 3xx or ARM Mali T6xx.
Note that the official Android version does not support ES3 yet. So to test it you should install ES3 drivers directly from the GPU makers (e.g. Qualcomm).Platform switching, player building and asset importing can now be cancelled! How cool is that?
- Platform Switching
Platform switching, player building and asset importing can now be cancelled! How cool is that?
- 64-bit Mac Universal Exports
Mac OS X: 64 bit standalone player support (x86_64 and Universal).
This would probably never fly on the App Store because it executes code or interprets it but is a very nice experiment. More discussion at Hacker News..
Here’s a look at another interesting flash player implementation by Joa Ebert using Java with OpenGL rendering support. It is at an early stage but has the right idea in hardware rendering to OpenGL which is easily cross platform and mobile capable with speed.
This project is pretty new but there is work to make it web browser capable either in a java applet or a plugin for IE/FF/WebKit/etc but there are also others that are out there using alternative renderers. Most of these are in early development with varying support and do not currently compare to Adobe’s Flash Player versions. However the hardware rendering ones like JITB may beat it fairly quickly once all the other features are added. Complete OpenGL based renderers like Unity or WebGL are fast and can run pretty heavy rendering because of hardware acceleration for all drawing and native support.
Other Flash Player implementations:
- AS3 script via LLVM
- Written in C++ (very portable for native)
- OpenGL accelerated rendering
- limited support
- Firefox plugin
- Early development
- flash 7-9 support
Flash Players that use OpenGL as the renderer are nice because cross platform support is easier. The reason why OpenGL is a great idea is it is so cross platform on desktop and on mobile, it is also coming soon in WebGL for the browser hopefully.
Versions of OpenGL and support
- OpenGL ES
- OpenGL ES 1.1 = OpenGL 1.5 and lower (fixed function)
- iOS devices 3rd gen and lessx
- OpenGL ES 2.0 = OpenGL 2+ (current version 4.1 – shader capable).
- iPhone (3GS or later), iPod Touch (3rd generation and later) and iPad
- Android 2.2+
- OpenGL ES 1.1 = OpenGL 1.5 and lower (fixed function)
There is still a clear open field for an open source player to match something like Moonlight for Silverlight or hardware rendered canvas. WebGL would be great to have in time if it gets support but it is also nice to have a compiled language in the content that works in the player faster than scripting but with the ease of scripting. Plugins are still very relevant if they can address that.
Alessandro Pignotti’s project looks to be the start of something good to come. Lightspark Open Source Flash Player [github]has some really nice features that should influence the Flash Player and maybe even draw some interest from Adobe? Maybe it can be like the Moonlight player for Silverlight only broader.
One such awesome feature is OpenGL GLSL hardware rendered shaders for elements of flash. Flash has Pixel Bender which is pretty nice but having GLSL shaders and the use of OpenGL directly is great.
- JIT compilation of ActionScript to native x86 bytecode using LLVM
- Hardware accelerated rendering using OpenGL Shaders (GLSL)
- Very good and robust support for current-generation ActionScript 3
- A new, clean, codebase exploiting multithreading and optimized for modern hardware. Designed from scratch after the official Flash documentation was released.
A sweet engine for getting started with Android game development is the andengine 2D OpenGL ES engine. This is very simple and compares with cocos2d-iphone for iOS development in 2D with OpenGL ES. They both support a wide range of 2d techniques with an OpenGL renderer. Some great videos are posted on the andengine google code page showing a box2D example, multiplayer example and more.
Mobile games are on slower hardware, similar to later 90′s computers so native is a great way to go for 3d and 2d game development because of this limitation at the current time and well into the next few years. Take this time to learn you some native gamedev. andengine isn’t native directly as it is Java based but compiled with the Dalvik JIT virtual machine. Another way to go native on Android is the Android NDK which allows C and C++.
- andengine download at google code
- andengine examples at google code
- andengine blog
- Mercurial repository at google code
- cocos2d-android port of cocos2d-iphone with BSD license
- rokon android is another BSD licensed android game engine
The engine also has extensions that can be easily added and some great ones exist already.
Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet
Wide industry Support from Major Browser Vendors including Google, Mozilla and Opera; Specification will be Available Royalty-free to all Developers
I think that Google O3D and OpenGL ES success on iPhone games probably combined to get this in motion. OpenGL and very basic video cards are now standard in most machines out there. Unity3D actually published hardware statistics on casual gamers (web-based games) ever so kindly and shows that even though there are some older Intel cards out there, for the most part machines nowadays have a video card capable of supporting at least low-poly 3d and hardware supported 2d rendering in real-time for games, user interfaces and more.
This is exciting news, it appears the movement of the web gaming market is getting much more capable and is accelerating the innovation of hardware accelerating the web.
V8-GL from the author states:
Unity 3D iPhone was updated recently to 1.0.2 and it has been greatly improved in performance and a much more solid 1.0 toolkit. According to Unity 3D information by up to 50% which means much more room for assets to munch memory for us yay!
I updated to iPhone SDK 3 beta 4 and iPhone OS 3 beta 4 and the latest Unity iPhone and things were much better in perception of speed at least in early testing. Not sure if it was more from one or the other but the games I am testing/building so far are quicker and the OS feels faster overall.
Get the latest Unity 3d iPhone dev kit (only for Mac OSX obviously since it uses XCode to compile per Apple licensing requirements)
New Features and Improvements
- Reduced memory footprint for uncompressed audio by 50%
- “Memory usage for textures reduced by 50%. Texture memory is now freed once it has been submitted to OpenGLES on the device. The “Enable Get/SetPixels” flag in the Texture Import Settings lets you disable this feature on a per texture basis in order to access the texture data from a script using GetPixel etc.
- Improved iPhone script call optimization
- Removed unused parts of Mono runtime
- Reduced memory overhead while reading data from disk and slightly improved load times.
- Support for several predefined splash-screens (portrait/landscape) for Indie version. Just rename one of the splash-screens in the output directory to Default.png
- Exported audio session activation/deactivation functions to AppController.mm
- Added Scripting Reference code examples for iPhone specific APIs
- Fixed audio to play correctly after phone call / text message / alarm interruption occurs
- Fixed compressed audio occasionally refusing to play
- Fixed AudioSource.PlayOneShot to work correctly with compressed audio
- Fixed audio to respect Mute switch and background iPod music
- Fixed Pause function and time property for compressed audio clips
- Fixed OpenAL memory leak
- Fixed PhysX memory leaks
- Fixed Audio and Animation assets leaking while loading new scene
- Fixed a crash related to playing compressed audio in a sequence
- Fixed memory leak while updating Mesh geometry data
- Fixed several small memory leaks in rendering module
- Fixed asynchronous .NET sockets
- Fixed .NET threads
- Fixed cross thread boundary calling to the delegates
- Fixed UnityEngine.TextEditor stripping
- Fixed GUI slider stripping
- Fixed GUI scroll view stripping
- Fixed IndexOutOfRange exception checking
- Fixed Boo.Lang.dll stripping
- Fixed occasional crashes of AOT cross compiler
The site mentions that OpenGL source can be converted to run in the engine. You can do this now with Alchemy although it is in very early stages. It is not clear if it is an automatic conversion or if it simply means it is similar in syntax and method signatures, objects etc.
I definitely will be watching and see how it progresses, there isn’t much other than a single post about the engine so far and no info on the api or sample code. Looking forward to seeing more, the z-sorting is quite nice. Doesn’t appear like collisions are there yet but it has a nice look.