Posts Tagged ‘unity3d’

Saturday, September 26th, 2009

Electronic Arts is using Unity 3D to develop Tiger Woods Online. The game is currently in beta. It was announced that they were using the engine in June on their blog but only on the reposted version here not the original post where the engine was just deemed “new technology”.

This is a major shift in the game industry and how it is being expanded into online properties that rival or better the console and desktop versions through online communities.  Quake Live from id software uses their own system that wraps existing games (originally developed by Gaim Theory then bought by id Software) and instant action technology from garage games that runs instant action.  All these systems have provided us browser based triple AAA style gaming fun.  It looks like that movement will continue as more and more game companies and publishers see the valid capabilities of Unity 3D to deliver when you need really deeply immersive 3d experiences in the browser. Also other systems like Torque 3D, Quake Live technology and more will be seeing this trend continue when it comes to games online. It is also becoming a choice for online web based 3d MMOs such as Fusion Fall and Marvel Super Hero Squad.

Wednesday, August 26th, 2009

Unity 3d iPhone 1.5 is released and has many things that were requested.

A few features really stand out as stuff we need:

  • Automatic batching of meshes to reduce draw calls.
  • Full support for native Objective C and C++ code opens full access to the iPhone 3.x APIs and custom plugins.
  • Introduced thread based main loop – now you can choose between NSTimer, Thread and OS event pump (CFRunLoop) methods. Thread method is set by default now.
  • Added native plugin support (advanced license feature). Just add custom attribute [DllImport("__Internal")] to your native implemented methods in C# and corresponding implementation to the XCode project.
  • Exposed full-screen movie playback support to scripts (iPhoneUtils.PlayMovie/PlayMovieURL).
  • Added support for GPS/location service (iPhoneSettings.StartLocationService / iPhoneInput.lastLocation).
  • Exposed native iPhone keyboard to scripts (iPhoneKeyboard class).
  • Implemented native iPhone keyboard input for TextField/PasswordField/TextArea GUI elements.
  • Exposed all 4 screen orientations as iPhoneSettings.screenOrientation. iPhoneSettings.verticalOrientation is now deprecated.
  • Added support for vibration (iPhoneUtils.Vibrate).
  • Exposed number of properties via Editor Player Settings UI (including bundle version and UI interface orientation).
  • Implemented support for up to 8 texture units in shaders for iPhone 3GS. Added iPhone 3GS emulation in the Editor.
  • Introduced automatic batching for small (less than 300 vertices) dynamic objects if they share same material. Reduces OpenGLES draw-call overhead.
  • Unity respects your XCode project now. It is not overwritten anymore by default. You can safely add new files, modify project itself or AppController.mm file, Unity will append its things as necessary. Note however that some folders like Libraries, Data, root project folder are always overwritten.

Wow!  See the full feature update and the blog announcement.

Thursday, April 30th, 2009

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)

This build fixes many issues and makes some great optimizations for speed as listed here:

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

Bug Fixes

  • 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
Tuesday, April 7th, 2009

A quick roadmap was posted by Unity3d.com blog on the immediate future of Unity iPhone.  Currently I am developing two games for the iPhone OS 3.0 and these are welcome updates.  We are really looking forward to items not in the hard version just yet but we are looking forward to terrain support and downloadable content support in iphone sdk 3.0.

 

Unity iPhone 1.0.2. Based on custom builds we’ve been sending to devs in need, this release will address engine memory leaks and fix other outstanding issues:

  • Physics and audio related memory leaks
  • Asset leaks while reloading scenes
  • .NET sockets and threads
  • Compressed audio related issues
  • Stripping away too much of GUI components
  • Occasional crashes in AOT compiler
  • Support for both portrait and landscape splash screens 

Next will be Unity iPhone 1.1. Since the release of 1.0.1 we’ve been working on a number of performance and memory optimizations. Most of the work on 1.1 is finished already and we’re doing an internal bug fixing round before it goes to beta testers too. Along with optimizations this release will include number of important features such as:

  • Binding custom ObjectiveC/C++ functions to C#/Javascript
  • Native on-screen keyboard support and interoperability with Unity GUI
  • Movie playback support
  • Performance optimizations:
    • significant C#/Javascript performance improvements
    • general rendering loop optimizations resulting in less OpenGLES state changes and less CPU work per object
    • number of internal routines were rewritten using VFP coprocessor assembly
    • way much faster mesh skinning utilizing VFP
    • batching small objects, given that they share same material, into single draw call
  • General distribution size optimizations which allows applications below 10Mb
  • Number of significant memory footprint optimizations

 
We don’t have strict versioning past 1.1 yet. Some of the following features will end up in the next big release and some might find a way to sneak into 1.1:

  • Compressed audio streaming directly from disk
  • Support for 3.0 SDK
  • 3.0 downloadable content
  • 3.0 bluetooth networking
  • GPS/Location support
  • Vibration support
  • Post-processing and render-targets support
  • Terrain support
  • Per-pixel DOT3 lighting support for skinned meshes
  • Reduce load times
  • Reduce distribution size even further
  • Improve GarbageCollector collection patterns to reduce spikes
Tuesday, March 24th, 2009

AngryAnt brings us a nice library for pathing and behavior trees in Unity3D with excellent editor integration. Path library I reviewed and is an extremely deep and complete library with autocomplete node collections from colliders, ability to connect different networks and detection from mesh as well as GUI tools using Unity3D editor scripts. The release is solid with documentation, video samples and is very easy to integrate. If you have a need for AI, bots, scripted animations or other madness in your game be sure to check out the pathing library and or the behave library from AngryAnt to implement or research.

Path Features

Specs:

  • Available for unity indie as well as pro licensees
  • Can run in webplayers as well as stand-alone
  • Requires no additional installations

Features:

  • Easy to use editor interface
  • Navmeshes
  • Waypoint networks
  • Cached pathes
  • Distributed processing using coroutines
  • Tag-filtered pathfinding
  • Hierarchal “grid network” pathfinding
  • Auto-recalculate on runtime network changes

Tutorials

I recommend you study the “Editor demo” unity project available on the Path download page. This project will be used in the tutorials below and contains an example Path setup.

Tutorial 1 – The basics

Runtime reference

The Path project comes with a small, but effective runtime API. The following links list the classes herein and their methods / properties.

Path unity package

Path package
The Path package contains all you need to start using the Path editor and run-time components in your project.

Demo unity project

Demo project
The Demo project is a complete unity 2.5 project with Path already added, a sample Path collection set up and example scripts requesting path calculations and following them.

Behave Features

Specs:

  • Available for unity indie as well as pro licensees
  • Can run in webplayers as well as stand-alone
  • Requires no additional installations at runtime

Features:

  • Implements behaviour trees
  • Re-use common behaviour by reference
  • Drag and drop editor interface inside the unity editor
  • Simple connection to character actions via C# interface
  • Designed trees are built to .net assembly code for maximum performance
  • Runtime debugging features
  • Powerful stand-alone editor – including web version

Behave unity package

Behave package
The Behave package contains all you need to start using the Behave editor, compiler and run-time in your project.

Behave 0.3b hotfix

Behave 0.3b hotfix
This hotfix solves a few critical issues with Behave 0.3b and unity 2.5. It’s still quite buggy and I’m working on a more extensive rewrite. Stay tuned.

Demo unity project

Demo project
The Demo project is a complete unity 2.1 project with Behave already added, a sample behaviour tree designed and compiled plus an example script showing how compiled behaviour trees are integrated with unity MonoBehaviour scripts.

Behave builder application

Behave builder
Behave builder is a stand-alone application offering the behaviour tree editors (excluding the compiler) outside the unity editor. It is currently OS X only. This application is also available in an online version – check it out in the “Preview” section of this page.

Example library

CitySimulation.behave
CitySimulation.behave is the library used in the demo project – saved as a Behave builder file. You can use this file directly in the online and offline version of Behave builder or import it to a unity project via the Behave “Assets” menu.
Tuesday, March 24th, 2009

It appears Torque3D is going to compete with Unity3D in a browser based 3d plugin front with a Torque3D toolset and pipeline that target the web.

They announced this on gamasutra recently on how instantaction and torque3d technology is similar yet different. InstantAction is an engine wrapper where the web plugin for Torque3D is more tighly coupled with the Torque3D engine. Instantaction.com technology allows you to wrap an existing game engine for the web which is a competitor with the gaimtheory engine that is used on quakelive.com.

I have been a garage games torque developer and member since 2003 and worked/bought with each engine they have put out from the old school Torque Engine, to Torque Engine Advanced for various game development projects and now they are throwing in on what appears to be based on their instantaction.com technology but using the Torque3D engine. This is very interesting, they might even have a channel/appstore to release games on instantaction.com?

Unity3D has recently taken my time in the full immersion 3d for the web space, the mono engine that runs the scripting is a huge feature. Coding in C#, Boo and javascript is great, and the pipeline for Unity3D is unmatched.

A bit of history, I have been interested in this since Director introduced 3d in director 8.5 in 2001 (how was that not a major revision I don’t know) and the killer Havok 3d physics engine within it. Way ahead of its time. But Director 3d was extremely limited with w3d (not even a decent blender exporter) and it literally has not advanced since that time in terms of ability to develop better for it and the IDE. It was trapped in this little IDE and quirky Lingo language. They tried to save it with javascript, a valiant effort but it still withered due to lack of openness of development for the player (a mistake they aren’t making with Flash now at Adobe). So making full immersion 3d games was not really ready for the web, Director was notorious at crashing browsers and took way too many broken plugins to get a basic engine.

So I went to mods in HL (quake 2 engine), Unreal and when I realized there was no way me or my friends could foot the license fees of either engine we went to Torque in 2003. It was great, large terrains and highly compact engine because it had to run Tribes with 64 players years before anyone else approached 64 players and arguably still played better than 64 player fps now. It was affordable. I have been interested in the movements to make torque an active x control in 2005/6 and Think Tanks did just that. It was very nice, I thought soon after it would be everywhere. But it has taken until now and a new engine called Torque3D before this has been realized years later. This is hard stuff to get right creating a plugin that works cross browser and performs well (browsers had to catch up as well). The culmination of that technology progression has happened and 3d on the web for game development appears to be bigtime in 2009.

Unity3D meanwhile since 2005-6 has gotten it nearly all right so far for a few years now, especially the pipeline and the webplayer. Torque has always had an poor pipeline, not as bad as writing your own engine from scratch and all the tools but in the early days pretty close. Proprietary formats like dts for models made finding the right exporter tasking. There were just so many walls in what was supposed to be a pipeline, largely due to support for formats that were small enough for slower networks and machines of the past. Unity3D gets all this right from the start, pipeline is not an issue. Torque3D seems to address this with their new tools, support for Collada, but unfortunately still scripted with TorqueScript. If Torque3D could wire in Mono and the capability to code in Javascript, C#, Boo or other Mono languages this would have been cool, or at least a semi-standard scripting language like Javascript, Python etc that would be great. TorqueScript was a big feature and UnrealScript is very similar in how it interacts with the engine, but these days we want standard languages that have engine features built in. Maybe this will happen down the road, but the format support is very nice.

For 3d, prior to Unity3D, the web was still owned by Director but that has changed in the last few years. It won me over for immersive 3d games that are web capable and able to port to other platforms and markets. Casual is still done with Flash and mobile space is targeting iphone. Unity3D can run on web, iPhone, Wii, desktop. Torque3D can run on web and also has paths to desktop, iPhone, Wii, XBOX360. You see what is happening here? It is very cool indeed. No doubt the competition in this area is getting to a point where some good innovation and happenings are taking place, what are you going to do with it?

Wednesday, March 18th, 2009

This is fantastic news!  Unity3D 2.5 has been released a bit early before GDC and it includes the game changing windows build environment and IDE.  This now opens up the Unity 3D market by a huge factor and Unity3d will find its way into many gaming companies that are heavily invested in Windows. We should see the amount of unity 3d players and content ramp up quite a bit this year.

Dont’ get me wrong I love my Mac Book Pro and continue to use it for development in Unity3D, iphone sdk etc.  But being able to use my windows machine as a dev box is great and I know this will be huge for many windows users not wanting to shell out the $1500 for the unity license AND $3000 for a decent macbook.  The cost wall has been lowered and it is a great investment if you are an indie game developer or a large game developer.

I usually only get excited about open source tools on this blog because they help everyone with skills have access, I hope one day there will be an open source 3d browser based engine as well.  Right now though there is nothing price competitive other than maybe torque instantaction plugin or the gaim engine (quakelive) that comes close with hardware rendering and none of them beat Unity in ease of pipeline.

One thing about Unity3d is it was a game engine from day one, it is only a game engine.  It isn’t like Director or Flash that are also application development kits, rich internet application kits etc.  This is pure game engine baby with hardware rendering for the win. Also, if you want to make 3d games for the iPhone without going hardcore OpenGL ES you can do so with an additional license that opens up your distribution channel to the iphone, flash can’t do that currently unfortunately.

And so it begins… GAME ON!

Thursday, February 19th, 2009

The guys over at Flashbang Studios, a web game development studio in phoenix, az, and some of the most visible developers in the Unity3d space with Blurst, released something that may interest both FlashDevelop users and Unity3d developers.

UnityDevelop was released by Flashbang Studios recently and it is a modded version of FlashDevelop (originally from SharpDevelop a really nice open source .NET and mono IDE) and it supports intellisense for Javascript or Unity3d’s use of Javascript which is called UnityScript much like ActionScript.  UnityScript can be a little more strict and has access to all of Unity3d’s API calls just like C# and Boo in the mono based virtual machine that Unity3d uses.

FlashDevelop, is by far the best Flash / Flex /haXe IDE in my opinion so it is really great to release this for Unity.  I hope one day I or someone has the time to port to Mono so it can be used on Macs even with the 140 pinvokes, it would be a good spread mechanism for mono.

With Unity3d coming to windows soon, UnityDevelop could be a good go to IDE for unity if you aren’t using solely C# with VS.NET. Currently this is based on FlashDevelop2 source code.

Video Overview of UnityDevelop


UnityDevelop Walkthrough from Flashbang Studios on Vimeo.

Downloads

Thanks flashbang!

Wednesday, January 21st, 2009

The unity3d platform is about to realize about 900% or 9x more possible market for selling their wares and I believe will blow up with unity 2.5.  Unity3d 2.5 will bring a windows IDE and development environment to unity3d developers. Many game companies are heavily invested in Windows and having this option is breaking down a huge wall to get this development platform and engine into many new hands and companies.

The best part about unity 3d development is the hardware acceleration, the fantastic pipeline, the ability to publish desktop, web, mobile (iphone) and console (wii) is pretty amazing.  All using the powerful mono open source .net framework as a base.

Full update list:

Windows Editor Support

Unity 2.5 adds full support for Windows Vista and XP, with 100% feature parity and interoperability with Mac OS X. The Unity Editor has been rebuilt to look, feel, and function identically on both operating systems, each running the same underlying engine. The best part? Unity on either platform can build games for either platform — cross-platform in the truest sense.

A Whole New Look

Find the tools you need quickly and easily. The Play buttons are front and center, clearly visible and inviting you to play, test, and improve your work. And when you do, they light up, dimming the rest of the application, drawing your attention to the most important things in the play experience you’re creating.
Precise Navigation and Placement Tools

Improved Usability

Snap any object to customizable increments of position, scale, and rotation values. Drag objects around, clamped to any surface collision. Manipulate objects in local or world space. Use the new flythrough controls to get around easily. And did we mention the completely redesigned rotation tool?

3ds Max Importing

Drag and drop your .max files right into the Editor, including support for all skeletal based animation, multiple UVs, and vertex colors. Autodesk 3ds Max now joins the existing support for Maya, Blender, and all other 3D applications that integrate with the latest FBX plugin on the Windows platform.

Completely Customizable Editor

UnityGUI, Unity’s own GUI creation system, now powers the entire Editor and allows you to integrate your own unique level design tools, AI control tools, debugging tools, difficulty tuning tools, or anything else you need. Over 130 new API entry points enable you to create specialized, customized editor tools and build them into the existing Editor interface.

Tabbed Interface

We took cues from the best designed applications, and the rewritten editor has received dozens of improvements. The most visible change is the tabbed interface, where every part of the interface can be moved, undocked to a secondary monitor, and even stacked to achieve logical grouping.

Information at Your Fingertips

We’ve gone to great lengths to make sure that you always have the info you need, when you need it. Model files have previews right inside the inspector. Audio Clips show their waveform with click-to-play behaviour. Meshes show the detailed rendering stats – and that’s just scratching the surface.

Tuesday, December 23rd, 2008

I have mentioned before that flash to unity3d communication is a key part of game development for the web now where you are using Unity3D as a higher end renderer and some of your other page elements might be flash. Now there is a new open source kit for this called u3dobject.

To get Flash and Unity3D to talk to one another in an HTML/XHTML page is pretty simple with javascript and with the internal Unity3D Application object and the ExternalInterface in Flash.  But there are lots of elements of that communication that can be consolidated and reused so you don’t have to recreate that over and over.  Various studios and programmers come up with their own kits but when it becomes a shared activity to get the best integration and make it more of a platform that is where things like swfobject, swfaddress and u3dobject come in.

So far swfobject is the standard for flash html embedding and unityObject is a similar take (but a bit dated) on that but now we have u3dObject that is open as well and a more official open source project for unity3D <–> flash integration and test harnesses for development when those two technologies are used together.

Unity3D <-> Flash Embedding Info: