• Home
  • Contact
  • Careers
  • Socialize With Us:
  • Send us Mail
  • Follow us on Twitter
  • Join our Facebook Group
  • /
  • Linkedin
  • /
  • Vimeo Videos
  • /
  • Youtube
  • /
  • RSS Feed
  • Search Site

  • About UsAwards & Bio
  • PortfolioOur Latest Work
  • TrainingTips & Tutorials
  • BlogGreat Articles

You are here: Home / 2013 / July

Archive for month: July, 2013

Unity3D Version 4.2 Released!

Category: Industry News     |     Tags: C#, Flash, Games, Mobile, Unity3D

Learn Unity 3D & C# – From Basics to Advanced

Unity3D is a powerful suite of tools (Project IDE, Code IDE, run-time) for game development. Read my full articles of “Introduction to Unity3D” and “Tutorial Series: Unity3D & C#“.

There is incredible momentum in the Unity3D product and its community. Here is a look at key features of the latest release.

Top Unity3D 4.2 Features

My top 3 ‘Free Unity’ version features per category are here;

New platforms

  • Windows Phone 8 (Yes!)
  • Windows Store (Yes!)
  • BlackBerry 10 (Yes!)

‘Free Unity’ Features (Formerly Pro Unity Features)

  • Realtime shadows (one-directional light only; hard shadows only). (Yes!)
  • Text-based serialization of materials, prefabs, scenes etc. for easier version control. (Yes!)
  • NavMesh baking (OffMeshLinks still require Pro).

Graphics

  • OpenGL for Android
  • Shuriken Collision Event Callback Scripting
  • (None)

Editor

  • Preset Libraries: Create new libraries and save. (Yes!)
  • Platform switching, player building and asset importing can now be cancelled.
  • (None)

See Unity’s official 4.2 announcement here.

Want More Video Tutorials?

We are currently creating tons of new training content for Unity3D.

[polldaddy poll=7125741]

Play For Good: Videogame-Related Charities

Category: Industry News     |     Tags: Business, Charity, Games

Giving & Gaming

Philosopher Albert Schweitzer shows us “No matter how busy one is, any human being can assert his personality by seizing every opportunity [to give back] for the good of his fellow men.  He will not have to look far for opportunities. Our greatest mistake, as individuals, is that we walk throughout life with closed eyes and do not notice our chances.”

Author and video game advocate Jane McGonigal explains her #1 goal in life is to see a game designer nominated for a Nobel Peace Prize. She forecasts that this will happen by the year 2023.

Read the full, updated article at SamuelAsherRivello.com/video-game-related-charities/

 

—

Unity Game Development

Category: RMC News     |     Tags: C#, Games, Mobile, Unity3D

unity_intro_banner_v1

Unity Game Development

This page serves as the main table of contents for all Unity-specific posts, demos, and code samples. Enjoy.


LATEST UNITY FEATURES

  • New Unity UI (4.6.x): Unity UI Part 1 of 3: Overview
  • New Unity UI (4.6.x): Unity UI Part 2 of 3: Demo – Basic UI (Source code + Video) [Coming Soon!]
  • New Unity UI (4.6.x): Unity UI Part 3 of 3: Demo – Combining UI w/ Frameworks/Architectures for scalability (Source code + Video) [Coming Soon!]

 ASSET STORE PACKAGES

 BmAb5uQIgAEuUyM

 COMPLETE GAMES

paddle_soccer_poster_v1 spider_strike_poster_v1
paddle_soccer_poster_v1  

TRAINING

  • BEST TRAINING: Tutorial Series: Unity3D / C#

vimeo_screenflow_video_thumbnail_UWK_poster_v1


ARTICLES

BEST ARTICLE: Unity3D for Game Development

Asset Store

paddle_soccer_poster_v1

  • OVERVIEW: Introduction To The Unity Asset Store
  • BEST: Essential Unity3D Plugins / Packages
  • BEST: RMC’s own Asset Store Packages. Check them out! [Hot!]
  • DEV DIARY (in Progress): uMOM – Unity Manager of Managers, game framework (link)
  • DEV DIARY (in Progress): uEventDispatcher – Unity messaging/observer framework (link)

Architectures

  • Unity3D Game Architectures     [Hot!]
  • Unity3D MVCS Architectures: StrangeIoC   [Hot!]
  • Unity3D MVCS Architectures: StrangeIoC 2 & PropertyChangeSignals 

Best Practices

universal_post_tools_of_trade_450_230_v1

  • Best IDE For Unity C#, Tools of the Trade [Hot!]
  • —
  • Unity3D Unit Testing 1: Overview
  • Unity3D Unit Testing 2: Unity Testing Tools     [Hot!]
  • —
  • Unity 3D Best Practices
  • The Best C# Code Naming Conventions And Standards
  • The ‘Must Have’ Non-Functional Requirements For Every Project.
  • —

Reactive Extensions (RX)

  • Reactive Extensions For Unity / C#: Part 1 – Introduction     [Hot!]
  • Reactive Extensions For Unity / C#: Part 2 – Marble Diagrams

More Training

  • Unity3D & C# Design Patterns
  • Intro To Unity3D and AR (Augmented Reality)
  • Using Symlinks For Unity Game Development
  • Unity C# State Management
  • Unity, Meet Server

Career Advice

  • Find Your Next Unity3D Job / Project
    • Learn where to look
    • Learn what employers want
    • How do your skills compare?

Industry News

  • Unity3D Top 5 News Announcements
  • Unity3D Case Study: Rochard
  • Essential Unity3D Plugins / Packages

Misc

  • See all RMC articles tagged with Unity3D
  • See all ‘Training‘ posts
  • See all ‘Industry News‘ posts

External Links (Mentioned In My HD Training Videos)

  • Unity IDE Keyboard Shortcuts (Link)

We are confident that Unity presents compelling benefits for mobile game development; especially games for multiple-devices (write once and publish everywhere). Contact Us today with any questions, comments, and project quotes.

Unity, Meet Server

Category: Quick Tips     |     Tags: C#, Design Patterns, Experimental, Unity3D

Unity 3D & C#

Unity3D is a powerful suite of tools (Project IDE, Code IDE, run-time) for game development.

As always, RivelloMultimediaConsulting.com/unity/ will be the central location for deep articles and tutorials, Facebook.com/RivelloMultimediaConsulting (like us!) will engage the growing RMC+Unity community, and for the latest opinions and cool links follow me at Twitter.com/srivello.

There is incredible momentum in the Unity3D product and its community. I recently posted “The Best C# Code Naming Conventions” and “Unity Best Practices“.  Here we will explore communication between Unity and the external environment.

Why External Communication?

Unity projects are packaged, by default, into one self-contained file.  This may be an executable for Mac, PC, or Linux, it may be embedded in a supported desktop web browser, or may be deployed to the app stores. While the capabilities of a self-contained project are impressive communicating with the ‘outside world’ still has many benefits.

  1. Persistence – Store state permanently for future use in the same app, on another device, or in another app altogether. Sky’s the limit!
  2. Collaborate – With the containing environment (such as the embedding page in a browser-based project).
  3. Multiplayer – Send data between instances of your game for turn-based (asynchronous) or real-time (synchronous) communication.
  4. 3rd Party APIs – Contact Facebook, Twitter, send email, etc…

Here is a cursory summary of what is possible and relevant references.

What is Possible?

General Data

  • RPC

Load JSON

  • WWW, WWWForm
  • Parse: ?

Load XML

  • WWW, WWWForm
  • Parse: BiterScripting, System.Xml

Load Image

  • WWW, WWWForm
  • Texture2D.LoadImage

RPC Calls

  • RPC with NetworkView

Access Twitter

  • Compare many packages in the Unity Asset Store

Access Facebook

  • Compare many packages in the Unity Asset Store

Unity Web Player <-> Browser Communication

  • Embedding In Browser
  • Application.ExternalCall
  • Unity Manual

Multiplayer

The network view is the binding material of multiplayer games. With this you can define exactly what is to be synchronized over the network and how it should be done. Game objects can have NetworkView components which can be configured to watch other components for the object. For more information see the Network View manual page and the component reference page.

  • Intro To Networking (Video)
  • Unity Documentation: Network, NetworkView, MasterServer
  • Photon Server
  • AppWarp Server
  • RedBedlam Server
  • Tutorial: Unify MMO – Using SmartFoxServer
  • Tutorial: Unity iPhone Multiplayer – While this applies to iPhone development, the networking part of it still applies
  • Tutorial: Unity Networking Example – Using NetworkView
  • Discussion: MMORPG – UnityAnswers forum about multiplayer

Asset Bundles

AssetBundles (a Unity Pro-only feature) are files which you can export from Unity to contain assets of your choice. These files use a proprietary compressed format and can be loaded on demand by your application. This allows you to stream in content, such as models, textures, audio clips, or even entire scenes separately from the scene in which they will be used. AssetBundles have been designed to simplify downloading content to your application. AssetBundles can contain any kind of asset type recognized by Unity, as determined by the filename extension. If you want to include files with custom binary data, they should have the extension “.bytes”. Unity will import these files as TextAssets.

  • Unity Manual
  • Caching
  • DRM for your assets (imperfect)

What Do YOU Think?

Have a comment? Please post below. This is a hot topic and I’ll respond promptly over the next month.

Unity C# State Management

Category: Quick Tips     |     Tags: C#, Design Patterns, Experimental, Unity3D

Unity C# State Management

Unity 3D & C#

Unity3D is a powerful suite of tools (Project IDE, Code IDE, run-time) for game development.

As always, RivelloMultimediaConsulting.com/unity/ will be the central location for deep articles and tutorials, Facebook.com/RivelloMultimediaConsulting (like us!) will engage the growing RMC+Unity community, and for the latest opinions and cool links follow me at Twitter.com/srivello.

There is incredible momentum in the Unity3D product and its community. I recently posted “The Best C# Code Naming Conventions” and “Unity Best Practices“.  I came across one best-practice that requires a bit of setup, so here it is; using symlinks for game development.

What Is State?

As UnityGems points out – Every program you write is a state machine.  The moment you write an if statement you have created code that can be in at least one of two states – the more code you write the more states the program can be in.  An explosion of switch and if statements can quickly get out of hand, with strange bugs appearing for apparently impossible to fathom reasons as the complexity of the solution increases and interactions between components causes unexpected consequences.  Your project becomes hard to extend and even harder to conceptualize.

How Do We Manage It?

You are probably already managing state in your projects; perhaps just with simple conditionals. As your skills mature to match your growing needs you may benefit from some alternative solutions.

Here is a partial list of options (from least to most complex/powerful);

  1. Conditionals (or similar ‘manual’ technique)*
  2. State Pattern
  3. State Machine*

* Full source code and Unity project available. See ‘Member Resources’ below.

State Machine Example

In the following example, imagine a camera and a cube in the scene. The cube has one script attached; StatesByStatePatternComponent. This class holds _stateType as a variable of type StateType. Upon user mouse-click the state is toggled. Toggling updates the iState variable of type IState to either an instance of the class FirstState or the class SecondState. The granular, state-specific functionality is handled within those two classes.

In a more complex use of the State Pattern, such as that of a full game, the state could be used to handle the input and movement. Perhaps a PlayerComponent which controls our hero has a WalkingState, JumpingState, and ShootingState. We would want only ONE of these to be active at a time and the character would behave differently depending on the state. Just like that!

3 Examples are below

  • States By Conditionals– This is the most simple, intuitive approach for beginners with simple needs
  • States By State Pattern – This is more robust. This addresses the typical demands of many projects. For advanced uses, add concepts of actions, triggers, transitions.
  • States By Interfaces – An alternative approach.

 

States By Conditionals

[gist id="813f2d88bd075cc9c9b0e0d0fa534777"]

States By State Pattern

[gist id="6fb85d3298e6e3ddcb9a3857c71d321a"]

States By Interfaces

[gist id="0119d67a4c850d103b1e2c01e456a5b2"]

 


Wait, An FSM?

Finite State Machines (FSM) are as much a style of programming as they are the code that realises them – says UnityGems.  We strongly urge you to consider thinking about your game and everything in it in terms of the states that they can maintain.
What are Finite State Machines?

Want to see my full demo of FSM? It is not yet posted. Please comment below.

The clue is in the word finite – in other words: limited, known and understood.  When you build a finite state machine you define clearly all of the states that an object can occupy and you think about the object being in just one of those states at a time.

Thinking about your project in terms of finite state machines helps you conceptualize your game at a higher level, enabling you to keep more of it in your head at one time and more clearly see the path to implementing the killer feature you just thought up or your play testers demanded.

What Do YOU Think?

Have a comment? Please post below. This is a hot topic and I’ll respond promptly over the next month.

Member Resources

[private_Free member]Enjoy this members-only content!

  • Download the full Unity project with source-code

[/private_Free member]

Game Design Document Templates

Category: Game Design, Quick Tips     |     Tags: Business, Game Design, Game Design Prototypes, Games

Game design is the game development process of designing the content and rules of a game in the pre-production stage and design of gameplay, environment, storyline, and characters during production stage. The designer of a game is very much like the director of a film; the designer is the visionary of the game and controls the artistic and technical elements of the game in fulfillment of their vision. Game design requires artistic and technical competence as well as writing skills.

Game designers will use a Game Design Document (GDD). The GDD will be the bible which your team follows during pre-production and production of the game.

So What Is Inside A Great GDD?

In the Anatomy of a Game Design Document Part 1, Gamasutra explains it all for us;

The purpose of design documentation is to express the vision for the game, describe the contents, and present a plan for implementation. A design document is where the producer preaches the goal, through which the designers champion their ideas, and from which the artists and programmers get their instructions and express their expertise. Unfortunately, design documents are sometimes ignored or fall short of their purpose, failing the producers, designers, artists, or programmers in one way or another. This article will help you make sure that your design document meets the needs of the project and the team. It presents guidelines for creating the various parts of a design document. These guidelines will also serve to instill procedures in your development project for ensuring the timely completion of a quality game.

The intended audience is persons charged with writing or reviewing design documentation who are not new to game development but may be writing documents for the first time or are looking to improve them.

In Part 2 of Gamasutra’s article, we learn that size does not matter;

[GDDs] are often so full of ambiguous and vague fluff that it was difficult finding the pertinent information. So why does this happen? Because the authors didn’t follow guidelines. This article is part two of a two part series that provides guidelines that when followed will ensure that your design documents will be pertinent and to the point. Unlike the authors of those prodigious design volumes, I believe in breaking up the design document into the portions appropriate to the various steps in the development process – from concept and proposal to design and implementation. I covered the first two steps in part one of the article, providing guidelines for the game concept and game proposal. This part will provide guidelines for the two heaviest undertakings – the functional specification and technical specification, as well as some guidelines for the paper portion of level design

References

You can follow Creating a Game Design Document advice or start with an existing GDD template. Here are some great examples. Take your time and look over each. Craft your own template that works best for your needs, and the needs of your client/boss/team.

  • ModDB’s Template
  • LDD Edition of a GDD on Google Docs
  • Runaway Studios GDD
  • Many more Game Design Document Templates

RMC Primer: Game Design

Category: Game Design, Quick Tips     |     Tags: Business, Game Design, Game Design Prototypes, Games

As consultants we choose to do client work. The client has the idea (complete or vague), and the budget, and we help them realize their dream. With game projects, determining what will be engaging and fun is a welcome challenge. Many game developing consultants also create their own internal projects. In both cases understanding the principles of good game design can turn a good idea into a great game.

What is Game Design?

Game design is the game development process of designing the content and rules of a game in the pre-production stage and design of gameplay, environment, storyline, and characters during production stage. The designer of a game is very much like the director of a film; the designer is the visionary of the game and controls the artistic and technical elements of the game in fulfillment of their vision. Game design requires artistic and technical competence as well as writing skills.

Game designers will use a Game Design Document. The GDD will be the bible which your team follows during pre-production and production of the game.

Update: My new article launched on “Game Design Document Theory” and sample templates

Gamification?

Separate from games and game design is gamification. Its a newer buzzword in the industry and many clients, big and small are clamoring for this ‘new shiny thing.’ Gamification is the use of game design techniques, game thinking and game mechanics to enhance non-game contexts.

Update: My new articles launched on “What is Gamification?“.

Have Fun With It!

I am constantly dreaming up new ideas for games. Sometimes I think about it for just 5 minutes, and then the itch goes away. Other times an idea stays with me for years. I’m often just as excited to see someone else create the game (so I can play it!) as I am to create the game myself.

In the near future, I’ll publish a few of my game idea prototypes to share my concise process game game design.

Update: My new articles launched on “Game Design Prototypes“.

Game designer John Adamus describes the The Three Act Exercise For Game Design.

You’re going to want a piece of paper for this. I like legal pads, but you’ll definitely want to see the work outside of a monitor. Divide the paper into thirds (horizontally); Act 1, Act 2, & Act 3. Start simple.

We’re going to chart the basic player’s (ideal) experience in-game.

  • Act 1 – This is all things creation and introductory. Players should in theory develop themselves (conceptually, and mechanically) and learn about the basics of the world. Immersion here is critical, as no one wants to play a game where the rules are either too vague, too restrictive or too discouraging (i.e. railroading). In story context, this is where adventure/campaign plots are hatched and world-base concepts (“the feel of the world”) is born. Act 1 ends when the Players enter the most intense and forward-progressive drive in the plot.
  • Act 2 – Characters by this point are INTO a plot/campaign, and are developing forward according to their brought-in goals (things they brought to the table) as well as open-goals (things the game offers). Combat here is more common, and risk is also introduced. This is also the largest Act of play, generally being 1.5 or 2 times larger than Act 1. Should the game be episodic, serialized or weekly, it will be so because of a long Act 2 that offers either complexity (lots of small steps put together) or intensity (there’s so much to do and it takes time) or potential (lots to do, of mixed length). Act 2 ends when they feel prepared to finish the plot or wrap up significant material in the campaign.
  • Act 3 – This endgame is the shortest but is often the most mechanically driven of all the acts. It begins when the characters make that final push towards resolution, and ends when the conflict(s) introduced in Act 1 are resolved. They may not, and need not be resolved in a way satisfying to the character, (although the player will be satisfied in all but the most power-gamer circumstances).

Like any good creative process, we work iteratively with these ideas. Create TONS of ideas. Some are best fit to stay on the drawing board. Other ideas show enough promise to be prototyped. With limited time budget a small team can communicate the bare essence of the game in a simple, concise, playable demo.

Ludum Dare is a well known incubator for game designers to brainstorm AND implement new game ideas. It is a regular accelerated game development Event.  Participants develop games from scratch in a weekend, based on a theme suggested by community. Ludum Dare was founded by Geoff Howland, and held it’s first competition in April of 2002. Since then the community has run more than 22 regular Events, several dozens of practice competitions, collectively creating many thousands of games in just a weekend each. The event attracts developers from all sides of the industry. Students, hobbyists, industry professionals from many well respected game studios, as well as many independent game developers. For many people, it can be difficult to find or make the time create a game or prototype for yourself. We’re here to be your excuse.

References

Here is an AMAZING COLLECTION of  game design information. It is very thorough. Start there.

And here are some helpful links courtesy of The Upside Learning.

  1. Learning From Game Design: 11 Gambits For Influencing User Behaviour
    Dan Lockton about 11 ways to increase engagement using ‘gamey’ ways.
  2. Katie Salen on Game Design and Learning
    Here is Katie Salen speaking about how game design can be applied in the classroom.
  3. Learning The Rules
    An older but still relevant article about learning curves in games.
  4. Thoughts On Learning In Games And Designing Educational Computer Games
    Again an older but comprehensive article that gives great ideas on where to use learning games. Note the references.
  5. An excellent article on Creating Flow, Motivation and Fun in Learning Games.
    Was printed as a chapter in The Design of Learning Games Springer-Verlag, 2011
  6. Educational Game Design Model (NMSU Learning Games Lab)
    Barbara Chamberlin, with the NMSU Learning Games Lab, shares the Educational Game Design Model developed at NMSU. Addresses various aspects of the process of game development.
  7. Improving The Way We Design Games For Learning By Examining How Popular Video Games Teach
    This paper from UCLA focuses on how to effectively integrate teaching “how to play a game” with teaching an “instructional domain” within a game for learning. Has many interesting details relevant to game design, recommended reading.
  8. ‘Narrative’ in Serious or Learning Game Design Research
    This is a great article on the use of narrative in learning games. Describes narrative approaches, some of which are appropriate to learning.
  9. Feedback Loops in Games and Learning
    This is a nice paper on feedback loops in learning by Bert Snow and Matt Seegmiller. There is a bit of a marketing slant, but interesting points about which technology to support a feedback approach.
  10. Learning Game Design: Lessons From The Trenches
    An interesting presentation from Sharon Boller, great advice from the trenches of gamification.

Using Symlinks For Unity Game Development

Category: Industry News, Quick Tips     |     Tags: C#, Debugging, Project Planning, Unity3D

Unity 3D & C#

Unity3D is a powerful suite of tools (Project IDE, Code IDE, run-time) for game development.

As always, RivelloMultimediaConsulting.com/unity/ will be the central location for deep articles and tutorials, Facebook.com/RivelloMultimediaConsulting (like us!) will engage the growing RMC+Unity community, and for the latest opinions and cool links follow me at Twitter.com/srivello.

There is incredible momentum in the Unity3D product and its community. I recently posted “The Best C# Code Naming Conventions” and “Unity Best Practices”.  I came across one best-practice that requires a bit of setup, so here it is; using symlinks for game development.

Unity’s Weaknesses

The Unity Editor IDE does not facilitate collaboration between developers nor collaboration between projects.

  • 1.Want to use version control? Git? SVN? You can, but it is not easy. While certainly possible I suspect these strategies are purposefully kept difficult to encourage developers to purchase the Unity Collaboration & Unity Asset Server packaged features which are available for sale on the official Unity Asset Store.
  • 2. Want to share your code between projects (local or remote)? You can, and it is easy with custom packages (here is how), but it is not great. You are sharing a COPY of your code. Update your code and you have to re-export and re-import it everywhere. Difficult! I suspect its difficult for the same reason as above.

I’m happily surprised how great Unity Indie (free license) is. I really am. Yet, I’m still disappointed at these shortcomings.

Fortunately there are some free workarounds.

Workaround 1. Version Control

You can indeed use any version control to collaborate with other developers (local and remote). Its a bit tricky to setup (here is how, and here is some GIT advice). Enjoy!

Workaround 2. Symlinks

On Window (here1, here2), MacOSX (here), and Linux (here) you can create symlinks. In computing, a symbolic link (also symlink or soft link) is a special type of file that contains a reference to another file or directory. A symlink is SIMILAR to a shortcut (Windows) or alias (Mac). You click the symlink in Finder (Mac) or Windows Explorer (Windows) and it opens the original file. You’ve probably used them often. The added benefit of symlinks is that applications (most) cannot tell the difference between a symlink and the original file or folder. It is this difference we will exploit here.

Here are the instructions for using Symlinks with Unity on MacOSX to share code between three unity projects. The setup would be similar on Windows/Linux. Give it a try on your platform and post below with any suggestions!

Demo

Create Your Code Library

  1. Open the Unity Editor IDE
  2. File -> New Project… -> “/Users/srivello/Desktop/MyUnityLibrary”
  3. Assets -> Create -> Folder -> “MyUnityLibraryScripts”. This folder (and any subfolders) will be the location of 100% of the code you want to share. Let’s add one file to share.
  4. Assets -> Create -> C# Script -> “MyUnityLibraryScript” with the contents shown below.
  5. Drag “MyUnityLibraryScript” into “MyUnityLibraryScripts” within the Project window.
  6. File -> Save Project
  7. File -> Save Scene As… -> “MyUnityLibraryScene”

[actionscript3]<br />//SAMPLE CONTENTS FOR THE CLASS.<br />//ANY VALID CODE IS A GOOD TEST<br />public class MyUnityLibraryScript<br />{<br />//Test<br />public string sampleVariable = "Hello World";<br />}<br />[/actionscript3]

Create Your Game 1 Project

  1. Open the Unity Editor IDE
  2. File -> New Project… -> “/Users/srivello/Desktop/MyUnityGame1”
  3. Assets -> Create -> Folder -> “MyUnityLibraryScripts” with the contents shown below.
  4. File -> Save Project
  5. File -> Save Scene As… -> “MyUnityGame1”

Create Your Game 2 Project

  • Repeat the same steps for ‘MyUnityGame2’.

And now here are a few solutions to ‘share’ the code between the projects. Ideally A would work in all cases on all operating systems. I’m still working on that.

A. Create Symlink

UPDATE: A) The following fails on mac. Mac does not allow ‘hard links of folders’ which Unity wants. Mac can do soft links but the Unity Editor IDE does not recognize ‘soft links of folders’. Anyone have the following 3 lines working on PC? Share the lines as a comment below. Anyone have a workaround for MAC?

  1. Open the native MacOSX application ‘Terminal.app’
  2. Type “ln -s /Users/srivello/Desktop/MyUnityLibrary/Assets/MyUnityLibraryScripts/ /Users/srivello/Desktop/MyUnityGame1/Assets/MyUnityLibraryScripts” (without the quotes). This creates a symlink from the EXISTING folder in MyUnityLibrary to the NEW (symlink) folder in MyUnityGame1. Use absolute paths as I show here.
  3. Type “ln -s /Users/srivello/Desktop/MyUnityLibrary/Assets/MyUnityLibraryScripts/ /Users/srivello/Desktop/MyUnityGame2/Assets/MyUnityLibraryScripts” (without the quotes).

B. Use Rsync

  • You can download this free Mac App and it works great. (https://www.macupdate.com/app/mac/20983/arrsync) But you have to manually click ‘sync’ whenever you want to refresh the folder across your projects. Not bad. Anyone have a better workaround?

Summary

So what have we done here? Now both MyUnityGame1 project and MyUnityGame2 project have access to the code from MyUnityLibrary. Currently we have just one class in there. ANY of the 3 projects can be opened and you can edit/add new files. They all share a reference to the original MyUnityLibraryScripts folder. No need to COPY scripts! Great. No need to Export packages or Import packages! Great.

Gotchas!

The above workflow solves much of the confusion and problems reported by the community. However there are still some issues with my technique. Here are a few of the issues;

  • Symlinks + Unity ON MAC don’t work together!!! Here is the full story – http://forum.unity3d.com/threads/104374-Using-links-%28Sym-amp-Hard%29-to-create-a-common-folder-for-all-Unity-Projects
  • Prefabs – There are issues with prefabs via symlinks. Link URL?
  • BuildOptions.SymlinkLibraries – This Unity Editor IDE setting (more info) is completely unrelated to my technique above. Don’t be confused.
  • GIT Submodules – This technique may replace the need for symlinks. I have not tried it yet.
  • Feature Request – The community is passionately requesting Unity Technologies to allow ‘soft links’ to be recognized by Unity Editor IDE

What Do YOU Think?

Have a comment? Please post below. This is a hot topic and I’ll respond promptly over the next month.

Essential Unity3D Plugins / Packages

Category: Quick Tips     |     Tags: AssetStore, C#, Review, Unity3D

Unity3D is a powerful suite of tools (Project IDE, Code IDE, run-time) for game development.

As always, RivelloMultimediaConsulting.com/unity/ will be the central location for deep articles and tutorials, Facebook.com/RivelloMultimediaConsulting (like us!) will engage the growing RMC+Unity community, and for the latest opinions and cool links follow me at Twitter.com/srivello.

The Unity IDE offers an Asset Store. If you haven’t yet familiarized yourself with the Asset Store, this is a great opportunity to dive in.  You’ll find nearly everything a game developer could wish for– complete template projects, models of every shape and size, countless textures and materials, an extensive set of code libraries, hours of professional music and sound effects, and a broad selection of editor extensions to bring new functionality to Unity.  Best of all, we’ve gone out of our way to make sure that these offerings are both affordable and covered by a common, easy-to-use license without legal complexities such as royalties.

I think of the store like a free bag of temporary art while I work. More rarely, when tackling a technical challenge I check the store to see if another developer has solved my needs and created a code library. The naming doesn’t seem standardized, but when I say 3rd party code-library, package, or plugin I mean the same thing. I mean a collection of coding classes which augment the IDE itself and/or enable richer development.

Something remarkable, and quite different than the Flash community, is that these packages can actually add functionality to the Unity3D IDE itself. New first-class menus, panels, UI Gizmos, etc… It is truly amazing.

I have asked leading developers and combed hundreds of message boards and forums looking for what the community thinks are the most Essential Unity3D Plugins / Packages. Here is my short list. All are compatible with both free and pro versions of Unity 4.x. Apparently some packages are pro-only. Also I believe all can target any platform which Unity targets (desktop, web, mobile, etc…).

logos2DTookit_v1

2DToolkit

iTween is a simple, powerful and easy to use animation system for Unity. Focusing on the established solutions and frameworks of projects such as TweenLite, Tweener, and other Flash-based tweening and interpolation systems, iTween is a battle-tested solution for streamlining production in the Unity environment. If it needs to come alive; its shouldn’t be frustrating. iTween exists to help you reach your goals without making the journey difficult, allowing polish to coexist in tandem with production.

I have used this on some proof of concepts and love it. The tile map system does not appear complete with a good demo included (as of 2.0), so I’m eagerly awaiting that.

Price: $65

Link: Developer / AssetStore

Alternatives: Ex2D (35$), Orthello2D (Free), Sprite Manager 2 ($45) & Uni2D ($45), & Many more…

Community Buzz: Look, 2D in Unity is both possible and super powerful. Its also a super popular (more than 3D?) type of game these days. So there are many, many packages to help this. I chose 2DToolkit for my work after researching what was out there. I wanted the most powerful, friendly, ACTIVE project.

Features:

  • NEW! The tilemap and UI add-ons are FREE and included with 2D Toolkit!
  • NEW! Platform specific sprite collections.
  • Automatic atlasing system.
  • Pixel perfect rendering.
  • Workflow-centric animation editor – Set up large animations in seconds.
  • Sliced sprites for 9-slice scaling.
  • Automatically generate multiple atlases from Sprite Collections.
  • Create automatic and custom colliders.
  • Create polygon colliders with multiple shapes for one sprite.
  • Static sprite batcher with automatic collider generation.
  • Texture gradient support for TextMeshes
  • Extremely efficient and lean C# runtime code.

iTweenLogo

iTween

iTween is a simple, powerful and easy to use animation system for Unity. Focusing on the established solutions and frameworks of projects such as TweenLite, Tweener, and other Flash-based tweening and interpolation systems, iTween is a battle-tested solution for streamlining production in the Unity environment. If it needs to come alive; its shouldn’t be frustrating. iTween exists to help you reach your goals without making the journey difficult, allowing polish to coexist in tandem with production.

I used this on several projects. I feel like it doesn’t do ‘much’, but it does it great. Perhaps coming from Flash with Greensocks Tween classes I was spoiled. Also, the syntax of this could be greatly improved. The author recently posted that a new version is (slowly) in the works. Still, its great.

Price: Free!

Link: Developer / AssetStore

Alternatives: None

Community Buzz: This seems to be a staple tool of every great Unity developer.

Features:

  • Easily fade audio
  • Move the camera
  • Fade, Move, Scale, & Rotate your GameObjects
  • Update your Vectors!
  • Compatible with PlayMaker (see below)
  • To be most useful I recommend the “iTween Parameter Code Hinting” free add-on.

logosNGUI_v1

NGUI

This is the ‘Next Generation UI Kit’ or simply NGUI. Unity provides built-in functionality for creating graphical user interfaces (GUI) including buttons and text. However the system before Unity 4.0 was pretty poor and the current system leaves much to be desired. GUI allows the user to create.

I have not used this in production yet. Will probably be my next package to purchase and explore.

Price: $95 USD

Link: Developer / AssetStore

Alternatives: EZGUI ($200), iGUI ($95). Great comparison article here.

Community Buzz: There are some compelling alternatives, but also we see a lot of the community using it, blogging about it, and making tutorial videos. There are packages which add functionality to NGUI too (from NGUI developer and others), so there is good momentum on this and it is in active development. This is one of the most often mentioned packages in “Unity3D Developer” job posts. Its a popular skill to have!

Features:

  • Full Inspector integration (Custom Editors)
  • What you see in the Scene view is what you get in the Game view (fully WYSIWYG)
  • Automatic atlasing system.
  • Pixel perfect rendering.
  • Component-based, modular nature: attach the behaviors you want to make your widgets do what you want without having to code.
  • Flexible event system
  • Make complex UIs that take only 1 draw call
  • UI Components included: Label, Sprite, Sliced Sprite, Tiled Sprite, Filled Sprite, Simple Button, Image Button, Radio Button, Checkbox, Progress Bar, Slider, Input, Dropdown List, Scrollable List

logosPlayMaker_v1

PlayMaker

Playmaker is a visual scripting system / state machine manager, which uses states (which house actions, each a snippet of pre-written code) and transitions to develop a game. A highly simplified example: You can attach a finite state machine, or “FSM”, to a character with the states “fighting,” “idle,” and “walking” and setup the rules for when each state occurs. All of it is customizable. You can use PlayMaker along side your own ‘regular’ code too.

Price: $90 USD (on sale for $45)

Link: Developer / AssetStore

Alternatives: EZGUI ($200), iGUI ($95). Great comparison article here.

Community Buzz: ‘Real’ coders might laugh at the idea of a visual scripting tool. It might be easier for a skeptical veteran coder to think of it as a drag-and-drop tool to replace scripting just during PROTOTYPES. But with its power, and ease-of-use you’ll quickly find a way for PlayMaker to have use in all areas of your workflow, from brainstorming through project launch.

image00_sm

What can you make with Playmaker?

  • A.I. Behaviors
  • Animation Graphs
  • Interactive objects
  • In-engine cut-scenes
  • Gameplay prototypes
  • Interactive walkthroughs
  • more…

Features:

  • Visual state machines are intuitive and powerful for beginners and pros!
  • Programmers love visual state machines too.
  • Runtime Debugging lets you watch state machine behavior.
  • Set Breakpoints and Step through state changes.

Intuitive Visual Editor

  • Quickly add States and Actions.
  • Connect States with Transitions.
  • Manage Events and Variables.
  • Save time with Templates and Copy/Paste.
  • Integrated Help.

Highly Extendible

  • Write Custom Actions and they appear in the editor.
  • Custom Actions available for many popular addons:
  • Photon, 2D Toolkit, iTween, NGUI, Smooth Moves…
  • User Community shares actions on the Forums and Wiki.
  • Open API allows you to make FSMs in code.

Honorable Mentions

I have not yet tried these other popular plugins, but the community loves them. Feel free to check them out

  • Ragespline
  • RageTools & RageTools Pro Add-on
  • FingerGestures
  • Prime31 Unity Plugins (StoreKit, Amazon In App, Etcetera for iOS & Android)
  • Shadow Volumes Toolkit
  • Pool Manager 2
  • Shatter Toolkit
  • Mega-Fiers
  • Multiplatform Toolkit
  • Ultimate FPS
  • UScript

What’s next?

I am working on an HD Video tutorial series which will include some of these plugins. Your feedback will help me know which I should cover first. Let me know!

What are your thoughts?

Do you prefer an alternative to the suggestions above? Or do you have an additional recommendation? Please comment below.

[polldaddy poll=7181109]

The Best C# Code Naming Conventions And Standards

Category: Industry News, Quick Tips     |     Tags: C#, Debugging, Project Planning, Unity3D

In this post, I show the Microsoft coding conventions of C#. These are recommended by, but not required by, Unity Technologies for Unity’s C#. I compare those to my own RMC coding conventions (Rivello Multimedia Consulting).

It should be noted that the implementation of C# in Unity is based on Mono. Mono is a software platform designed to allow developers to easily create cross-platform applications. Sponsored by Xamarin, Mono is an open source implementation of Microsoft’s .NET Framework based on the ECMA standards for C# and the Common Language Runtime. As far as I can tell, Unity’s C# is the same as .NET’s C# in its approach to coding conventions.

Read the full, updated article at SamuelAsherRivello.com/coding-standards-csharp/

 

Page 1 of 212

Tag

3D AIR API AS3 AS3.5 AssetStore Augmented Reality Business C# Charity Debugging Design Patterns DevDiary ECS Architecture Experimental Flash Flex Game Design Game Design Prototypes Games GUI HTML5 Java Loom Mobile MVCS Architecture Optimization Project Planning PushButtonEngine ReactiveExtensions Review Robotlegs Smash Testing Unity3D UnityApplicantTest WordPress WordPress Plugin

Brazilean Developers

  • Abendita.com
  • dclick.com.br
  • dm9.com.br
  • Fellyph Cintra
  • IgorCosta.org
  • MonadaSolucoes.com.br
  • PossibleWorldwide.com.br
  • Unit9.com

Developers

  • Adobe Blogs
  • Ben Forta
  • Colin Moock
  • Enrique Duvos
  • Flash Mobile Blog
  • Jess Freeman
  • Kevin Hoyt
  • Lee Brimelow
  • Paul Trani
  • Quasimondo
  • Renaun Erickson
  • Ryan Stewart

Free Assets

  • Free Sounds
  • HasGrafics

HTML5 Games

  • Closure JS Library
  • Eloquent JS Manual
  • Game Framework – CraftyJS
  • Game Framework – EaselJS

Italian Developers

  • alchimedia.com
  • corlan.org/
  • creativesource.it
  • dimix.it
  • fabiobiondi.com
  • gnstudio.com
  • Interpreting-tech.com/bemobile/
  • leonardorisuleo.info
  • lucamascaro.info
  • mart3.org
  • mxml.it
  • nxn.it
  • pirosoft.it
  • Preload.it
  • sonnati.wordpress.com/
  • webgriffe.com

Products

  • Adobe.com
  • Amazon Kindle E-Reader
  • ElectroServer
  • F*CSS
  • Flash Development Toolkit (FDT)
  • O'Reilly PureMVC Book
  • Samsung Galaxy Tablet
  • Unity3D

RMC

  • RMC Consulting

Spanish Developers

  • Flash Adictos
  • HTML Cinqo
  • Tutoriales Flash

Tutorial

  • Active Tuts
  • AS3-to-Unity3D Training Videos
  • Doing 2D in Unity3D
  • Learning C#
  • Unity3D Tutorials

Unity3D Games

  • AS3-to-Unity3D Training Videos
  • Doing 2D in Unity3D
  • Learning C#
  • Matt Eley's Blog
  • Unity3D
  • Unity3D Tools
  • Unity3D Tutorials

Interesting links

Besides are some interesting links for you! Enjoy your stay :)

Latest Portfolio

  • Coins And PlatformsMarch 19, 2014, 6:04 am
  • Paddle SoccerMarch 2, 2014, 9:13 pm
  • Spider StrikeFebruary 21, 2014, 4:19 am
  • Custom Game System APIJuly 8, 2013, 8:05 am

Latest News

  • RMC Primer: Everything Virtual Reality (VR)September 3, 2016, 10:29 am
  • Unity3D Architectures: EntitasJuly 29, 2016, 11:15 pm
  • RMC Primer: Get A Job In Game DevelopmentAugust 19, 2015, 10:18 am
  • Unity UI: Overview – Part 1 of 3December 10, 2014, 9:55 am

Archive

  • September 2016
  • July 2016
  • August 2015
  • December 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • December 2012
  • October 2012
  • September 2012
  • July 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • October 2011
  • September 2011
  • August 2011
  • June 2011
  • April 2011
  • March 2011
  • January 2011
  • December 2010
  • October 2010
  • September 2010
  • April 2010
  • March 2010
  • January 2010
  • October 2009
  • August 2009
  • June 2009
  • May 2009
  • April 2009
  • January 2009
  • December 2008
  • November 2008
  • August 2008
  • May 2008
  • April 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • August 2007
  • May 2007
  • January 2007
  • October 2006
  • April 2006
  • March 1999

© Copyright 2006 - 2023 - Rivello Multimedia Consulting - RMC by Samuel Asher Rivello