Tag Archive for: Games

GDC 2014 – San Francisco

Category: Corona, Current & Past Events, Events, RMC News     |     Tags: C#, Games, Mobile, Unity3D

GDC_banner_v1Game Developers Conference 2014

After years of consulting success, I am shifting goals for the next phase of my career.

I am now actively seeking a full-time position as a Unity3D Game Developer. 

I have deep experience in game development; more than 13 years of professional work. I absolutely live and breath gaming. I love it. I have much to offer my next team — everything from game concept creation and development, through to launch — and I am very excited! Here you can learn about my skills and experience ( RivelloMultimediaConsulting.com/forecast/ ) and contact me ( RivelloMultimediaConsulting.com/contact/ ) to setup a time to talk — before, during, or after GDC.

1. GDC Goals

  • Geek Out! – As a lifetime video game fantastic, I am incredibly psyched to see some great sessions about my favorite games of 2013/2014.
  • Promote New Opportunities — I am seeking a Unit3D Game Developer position. There are so many bright teams creating with passion and innovation.
  • Connect to the community — While American, I have worked internationally for many years.
  • Plug-in to the presenter-scene – I’d like to get a feel for who is talking, how, and about what subjects. My focus is mobile. And the mobile space, while growing, it is still marginalized at GDC. As an experience public speaker (360|Flex, Adobe Max, Adobe Camp Brazil, FlashForward, FITC, LA Games Summit, Montreal Game Summit, RIA Adventure Cruise, Rich Media Institute, … ) I would like to speak at GDC 2015 and Unite 2015 next year. There are some session I will attend — more to experience the speaker himself/herself than to see the content.

2. GDC Social Schedule

I’m excited to meet new contacts and reconnect with old friends during GDC. Outside of the conference sessions, I’m excite to block out time for more fun.

Are you hiring? Want to to talk about great video games? Or just explore amazing San Francisco?

Update: The event has ended. Thanks to all the great people I met.

Suggested Meeting Places GDC is huge and it can be hectic to meet on site. Here are a few nearby locations within walking distance of the event’s Mosocone Center. Note that 20,000 people attend GDC and everyone needs to eat. Long delays! Also, some of these businesses have multiple locations, so the address is included.

3. GDC Maps

GDC_Moscone_MAP_v1

Figure 1. Moscone Street Map

Figure 2. Moscone South Hall Map

Figure 2. Moscone South Hall Map

Figure 3. Moscone North Hall Map

Figure 3. Moscone North Hall Map


4. GDC Session Schedule

This year’s conference is full of great sessions about AAA and mobile gaming goodness. Here are some topics of special interest.

Play For Good: Volunteer Teaching

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

Giving & Gaming

People volunteer for a wide variety of reasons, especially wanting to help others. But it’s also OK to want some benefits for yourself from volunteering.

Susan J. Ellis, President of Energize, Inc explains that some people are uncomfortable with the notion that a volunteer “benefits” from doing volunteer work. There is a long tradition of seeing volunteering as a form of charity, based on altruism and selflessness. The best volunteering does involve the desire to serve others, but this does not exclude other motivations, as well.

Instead of considering volunteering as something you do for people who are not as fortunate as yourself, begin to think of it as an exchange.

Consider that most people find themselves in need at some point in their lives. So today you may be the person with the ability to help, but tomorrow you may be the recipient of someone else’s volunteer effort. Even now you might be on both sides of the service cycle: maybe you are a tutor for someone who can’t read, while last month the volunteer ambulance corps rushed you to the emergency room. Volunteering also includes “self-help.” So if you are active in your neighborhood crime watch, your home is protected while you protect your neighbors’ homes, too. Adding your effort to the work of others makes everyone’s lives better.

videogames_sam_volunteering_charities_1_v1

Figure 1.

Education

Through my world travels for work and pleasure, I have been exposed to the amazing beauty (and challenges) in the world. I’m so inspired by what is going out outside of my native USA. While I have not directly experienced too much poverty and sadness — my increasing circle of concern in the world gives me much more to think about and care about. Education is of particular interest to me.

Author Jeffrey D. Sachs, called by Time Magazine as “the world’s best-known economist” has advised an extraordinary range of world leaders and international institutions. In his book The End of Poverty, his focus  is on the one billion poorest individuals around the world who are caught in a poverty trap related directly to their lack of access to capital, technology, medicine, and of course education.  His fundamental argument is that “[W]hen the preconditions of basic infrastructure (roads, power, and ports) and human capital (health and education) are in place, markets are powerful engines of development.”

As the UN’s Poverty And Education study shows the advantages that education provides both improve the living standards of communities and contribute to the social and economic development of countries. The education of girls has a further strong and very important effect on the role of women in society. Some of my personal hopes for global change are equal access to education and equal treatment of woman.

Malala Yousafzai (Born 1997) is a Pakistani school pupil and education activist from the town of Mingora in the Swat District of Pakistan’s northwestern Khyber Pakhtunkhwa province. She is known for her activism for rights to education and for women, especially in the Swat Valley, where the Taliban had at times banned girls from attending school. On 9 October 2012, Malala was shot in the head and neck in an assassination attempt by Taliban gunmen while returning home on a school bus. In the days immediately following the attack, she remained unconscious and in critical condition, but later her condition improved enough for her to be sent to the Queen Elizabeth Hospital in Birmingham, England for intensive rehabilitation. Through her long recover and after, Malala inspires (see video below) children, adults, and governments alike with her message of equality in access to education for girls and boys around the globe.

Teaching English In Indonesia

While finishing a fruitful consulting project I saw an opportunity to block out time to volunteer. The needs for the Live Streaming Media Web Application project were clear and the end-date well-defined. I winded down some other projects too. In addition to searching for my next consulting project I looked for volunteering opportunities with an ideal fit. I knew I wanted to teach, work with young adults, and stay in Asia where I was living. There is abundant need for talented teachers; especially those with computer skills. I interviewed with several engagements and ultimately chose to teach English during 8 weeks in Indonesia.

videogames_sam_volunteering_charities_3_v1

Figure 2. Me, Playing games in the classroom

My students were age 13 to 18 with advanced (level 4 of 4) English skills. We met 5 days per week. There was no provided curriculum — a quality I was seeking in the position. I reviewed what they had been learning ahead of me to plan. Then I added in ‘teaching prep’ as a project within my weekly schedule until the day I began. The first day or 2 we broke the ice. The kids are shy, but enthusiastic. Their interest to learn English is genuine. One of the challenges was that students attend irregularly — on a given day the class filled with only about 8 of the 25 students. I learned during my first week that lessons must be modular, so students can participate fully even if they were not present the day before. Our lessons included travel, art, art history, agriculture and more.

Some other lessons;

  • Friend Interviews: Students divide into groups of two. Each student interviews the partner and presents to the class. (Download)
  • Super Heroes: Students learn about famous superheroes, talk about the extensive vocabulary related to powers and abilities. (Download)
  • Game Show: We learn about the basics of game mechanics (a preview to our talk about video games). The students play (once per week) game-show styles games like ‘Family Feud’. That game is a great example of learning vocabulary, team work, and culture (the question-set is very ‘American’).
  • Geography: We discuss Indonesia’s place in the world, Asia, and major continents. Each student chooses a country and completes internet research (and maybe interviews foreign teachers). (Download)
  • Music & Lyrics: Each week we discuss one pop song. Students listen and write any words they hear. Then with the lyrics in hand we listen again 2 times to review new vocabulary. Finally students debate on the meaning of the song. (Downloads)
  • Jokes: The students each told a joke (they are very shy) and I read some from a list. We discussed humor in books, TV, and films. (Download)

I included downloads to some of the curriculum I created. It is all very basic, but perhaps it would be useful to generate more ideas.

Q. Why is 6 afraid of 7?  A. Because 7 8 9! (seven ate nine!) — Probably my only joke that got students laughing.

Videogames

I love games. Playing and making videogames! All students have access to internet and computers at the school as well as basic computer literacy. Because of my background and profession the school facilitators requested some computer-specific lessons. While I have taught game development at weekend courses, universities, and corporate training gigs, I hadn’t taught a group so young. I decided to build a few lessons around theory and then make a practical lesson focused on visual arts. My students love to art and are very proud of their creativity. Creativity is an outlet that the (otherwise quite timid) Balinese society really evangelizes.

Some computer-themed lessons;

  • Computer basics: The Bahasa Indonesia language borrows heavily from English for all technology terms. Students are familiar with most of the key terms. We reviewed web browsing, web searches. Most days we dedicated some time to searching Google and Wikipedia for some light research too.
  • Videogames 1: I created a concise outline based on my Adobe feature article “Intro To Gaming With Flash“.
  • Videogames 2: In groups students created new game art on paper. We scanned the work and added into an existing game engine which I used previously for more advanced programming classes. See video below for a completed game example. Very cool!

 

Balinese Culture

The teaching opportunity in Bali, Indonesia opened me up to the complexity of the Balinese people. The culture of Bali is unique. People say that the Balinese people have reached self-content. It is not an exaggeration that when a Balinese is asked what heaven is like, he would say, just like Bali, without the worries of mundane life. They want to live in Bali, to be cremated in Bali when they die, and to reincarnate in Bali.

It does not mean that the Balinese resist changes. Instead, they adapt them to their own system. This goes back far in history. Prior to the arrival of Hinduism in Bali and in other parts of Indonesia, people practiced animism. When Hinduism arrives, the practice of Hinduism is adapted to local practices. The brand of Hinduism practiced in Bali is much different from that in India. Other aspects of life flow this way. However, more modern cultural changes are more controversial. Changing too fast, locals fear that something special may be lost.

Traditional paintings, faithfully depicting religious and mythological symbolism, met with Western and modern paintings, giving birth to contemporary paintings, free in its creative topics yet strongly and distinctively Balinese. Its dance, its music, and its wayang theaters , while have been continually enriched by contemporary and external artistry, are still laden with religious connotations, performed mostly to appease and to please the gods and the goddesses.

videogames_sam_volunteering_charities_4_v1

Figure 3. Children painted for a local ceremony

Win-Win

The lessons learned in and out of the classroom will be with me for a long time. Overall the experience was amazing and I already have plans on how to contribute next.

Teaching abroad offers many benefits to the teacher as well of course. A few that come to mind are.

  • You can be a student in your own classroom.
  • It’s a crash course in cultural sensitivity.
  • You’ll get an instant network of local acquaintances.
  • You’ll be tapping into an excellent grapevine. The other teachers and facilitators you meet are amazing people with amazing stories and aspirations.
  • Travel is simple with a great home base.
  • It’s a career builder, even if you don’t want to teach long-term.

References

Find Your Next Unity3D Job

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

Announcing…

At my company Rivello Multimedia Consulting (RMC) I provide great consulting services for applications and games. Well, after 7 years on the founding team of an amazing gaming startup, and then 7 years with RMC, I’m ready for my next challenge;

I am actively seeking a full-time Unity3D Game Developer position. Opportunities? RivelloMultimediaConsulting.com/forecast

During this thorough exploration I am continually encouraged by the health of the gaming industry. Its a developer’s market. No doubt — and Unity3D’s momentum is clear and well-defined. Here are tips that will help you find your next Unity3D job or project.

Finding Your Next Job

As game developers we have complete freedom to choose the tools and teams with which we work. Unity is of course a fantastic tool-set for game development and the industry is hungry for talent. Over the last months, I have researched literally thousands of full-time and freelance job postings for Unity game developers. To more deeply understand what are the most popular requirements for prospective employees, I’ve put together information on where to look for your next job, and what employees value in prospective employees. Take a look!

Where to look

Employers looking for Unity3D Developer talent post job listings on a variety of locations. Unity-related job listing sources;

Unity Job Position Titles There is quiet a variety of job titles which focus on Unity-focused game skills. Often the job list title does not include ‘Unity’ in the title, and you may get more results by omitting ‘Game’. However to focus the search results I include this list;

  • Unity (Game) Developer
  • Unity3D (Game) Developer
  • Unity (Game) Engineer
  • Unity3D (Game) Engineer

What Employers Want

Amount of Experience

Prospective employers like to see you have a few ‘shipped’ (launched) games in your portfolio.

  • 3-5 years for senior positions (0-2 for Junior)
  • 2-3 shipped game titles for senior positions (0-1 for Junior)

IMHO, this requirement is an vague predictor of value. Just like ‘years’ of experience. I have hired dozens of employees as well as subcontractors, and for me it is a far more effective indicator of future efficacy to discuss with the candidate his specific experience with ONLY the areas of the Software Development Life-Cycle (SDLC) which are germane to the role. This list includes; project planning, systems analysis, systems design, implementation (i.e. coding), integration and testing, installation/deployment, and maintenance.

Requirements For Senior Positions

The skills, responsibilities, and requirements of a position obviously depend on the company who lists the position, but here are some of the most common items. I’ve divided the skills among basic ‘employee‘ skills, positions with some manager responsibilities, and then between various programming disciplines. Each discipline is pretty separate – for example a job positions may require ‘game’ skills but not any ‘multi-player’ experience. All of these items are taken directly from real-world Unity-related job posts I have found. I included a short explanation for each item too.

Employee

  • Self-motivated: This is probably the #1 thing I see. Companies are trying more and more to be ‘flat-hierarchies’ where both power and responsibility are spread more evenly across all staff. You may see the management approach as ‘Kanban’, ‘Agile’, ‘team-based’, ‘cell-based’, ‘a studio of studios’ or something similar. Flat encourages each team-member to feel more ‘close’ to the project and ostensibly contribute more. I think it is a great philosophy. In my experience the ‘flatness’ is more ‘talk than walk’ – but that is ok. To fit in – be proactive, transparent, and communicative. If you ask AND answer your own questions, manage your own tasks, and speak before spoken-to about the challenges you are facing, you are on the right path.
  • Passionate: This is probably the #2 thing I see. I consider passion one of the most powerful things in life. Intrinsic appreciation brings intrinsic motivation. However, it is unfortunately rare that a company really cultivates passion in those who they don’t think have it.
  • Team-player: I feel item is most important for two reasons. One programming is a very personal, cerebral process. It is akin to putting ones thoughts into code. The same left-brained personality that is drawn to programming is NOT drawn to interpersonal communication and the vast challenges that exist there. Communication and empathy favor the right-brained. As the internet success bubble was building 10+ years ago, it was feasible to market your experience as a ‘rock-star’ programmer. This is someone who can come in and kick ass (as an individual). Rockstars contribute well to a management-less regime, and there were plenty of those. However, the HR & PM atmosphere has matured and we already see a more team-based approach. So because team-work is rare among programmers its important. Secondly, I am a strong believe that (especially in flatter hierarchies) we are all managers — meaning as super employees we all exist to leverage the skills of those around us in addition to our own direct contribution. As teams adopt more flexible, iterative development (see ‘Agile’) each team member is more of a thought-leader than just a ‘doer’. I feel strongly that it is the collaboration between those who are genuinely interested in excelling at collaborating which creates the virtuous cycle that turns good game projects into truly great ones. Can you amplify the effectiveness of your coworkers?
  • Excellent written, verbal communication: For the reasons just stated, programmers are not always good communicators. Besides the interview process (which is a historically horrible predictor of job performance), how can prospective employers evaluate the communication skills of an employee? That is indeed a challenge — and a great subject perhaps for another article. As a worker, it is recommended to educate yourself on communication as much as you do on technical skills. This requires an honest look inside at gaps in interpersonal skills. We all have them. At larger companies the HR department may have free resources on this; books, workshops, lectures. Your communication (emails and public speaking at meetings) should be honest, compassionate, and concise. At smaller companies it takes discipline and a champion – like yourself – to make the time for growth in communication skills.
  • Interested & capable to learn quickly: For any type of employee in any field, self-education is and will be increasingly valuable.  However, in technology this is paramount — especially as languages, platforms, devices, and consumer expectation are growing so rapidly.
  • Ability to work under high pressure deadlines: This is very common. Also is ‘we have a start-up like atmosphere’. I would call this ‘emergency preparedness’ as emotional IQ skills. I think indeed that it is important. However it is trite (meaning-less from overuse) and it shouts ‘our management is disorganized’. Applying for a position listing this, it is recommended that you ask thoroughly about the expectation on utilization (expected hours per week) and access (emergency ‘work’-calls on nights and weekends) of employees.
  • Agile/Scrum project management experience: Instead of traditionally documenting 100% of a project and calendar upfront, teams are embracing a more realistic, ‘wait and see’ and ‘just-in-time’ organic process. Agile is not a match for all employees, and is certainly not a match for all (most) companies either. In the 7-8 years since this buzz-word as been mentioned to me in consulting projects, I have not met one team that FULLY embraces Agile.

I have found that my self-motivation and desire to learn voraciously to be some of my strongest attributes. I have found getting ‘out of my own head’ and bringing truer empathy to workplace dynamics to be an ongoing challenge. I have worked hard to add team-work and communication to my repertoire through intensive study and driving my experiences toward growth. At one large employer I was lucky enough to sponsor a 12-month team building program for me and my staff of 12 programmers. Not everyone loved it. It is hard to do ‘extra’ things at work when deadlines loom. However respecting the soft-skills (everything that is not technical) will come with the employee’s maturity.  

There is a very real chasm between programmers and designers. There is a chasm too between goals of making the game ‘fun’ and making the game ‘profitable’ (e.g. monetization and monetization metagames). Any employee who can bring efficiency and maintain morale between these groups will shine to upper-management. I’m very lucky to have a University art degree which gives me compassion for the challenges of artists working within increasingly technical workflows. On the fun-vs-profit I have learned hard lessons to defer-to and support whatever is the mission statement of the team/company. While I choose to be a programmer, my background brings a little more peace to my teams, I think.

Manager

Management responsibilities vary greatly between personnel management or project management. The trend of ‘flat hierarchy’ organization we see today often spreads these responsibilities to ‘normal’ staff and gets rid of dedicated management. So the normal staff (i.e. artist or programmer) who is ALSO handling management duties. While employees may embrace the theoretical meritocracy (anyone can be a leader), the loss overall from lack of academic management understanding (ostensibly lost because dedicated manager roles are lost) should not be underestimated. Also solitary team members, talented but socially awkward may not be compatible with such teams. Another potential loss. Position listings which require leadership of people or projects may include the following;

  • Conflict resolution: Foster a spirit of teamwork and unity among department members that allows for disagreement over ideas.
  • Plan Staffing Levels: Assess man-power vs work-load, assist HR in recruiting, interviewing, hiring.
  • Effective performance evaluation: Provide feedback through employee recognition, rewards, and disciplinary action.
  • Experience mentoring/coaching: A good manager leads, a great manager creates leaders.  Recognizing and allowing subordinates to flourish is critical. Guiding and cultivating requires maturing and generosity. This leader may champion other employees’ causes to upper management and HR too.
  • PM Software Expertise: Knowing the most common 20% of functionality in any one PM software (e.g. BaseCamp, Unfuddle, MS Project) is sufficient. However, I’ve seen managers that are so familiar with PM they can offer flexible per-team and per-project changes to the workflow. One size does not fit all in PM.
  • Agile/Scrum: Increasingly common. See ‘Agile’ above.

Programming – General

  • Write clean, documented code and also Employ object-oriented programming (OOP):  These are both legitimately vital and top the list of the most commonly required skills. If you are a best practice champion ( I absolutely am, but often waiver to the (lack of) seriousness of my clients), investigate your prospective employers techniques to establish (coding standards bible) and police (mandatory code reviews) such clean code. If the team does not make time for best practices, and most (especially in ad-agency based work) do not, then such practices will not be done.
  • Programming Language: The majority emphasize C#, some mention C# & JavaScript*. I have not seen any that mention Unity’s only other coding language — Boo. While rare, it is worth mentioning that positions specifically related to rendering disciplines may also ask for experience with Unity’s ShaderLab language. ShaderLab’s style it similar to CgFX and Direct3D Effects (.FX) languages and it is used to describes everything needed to display a Material.
  • Use version-control (GIT/SVN): Any mid-sized or larger team is using version control. I must assume. Smaller companies may not have the technical know-how to require it of you. In all cases use it! In my experience there are 3 levels of version-control experience; 1) you can update/commit fine but must call over a coworker for assistance on code-conflicts or other tasks, 2) You can handle all of that and you can ALWAYS fix your own mistakes, 3) You are the person who sets up build automation and answers other peoples git problems. Admittedly I my level is somewhere between #1 and #2. GIT is awesome, and scary.
  • Experience in AS3/Flash: This is VERY common in the listings and I believe this is for 3 primary reasons. First, the Flash has a very strong history in the casual game market starting around year 2000/2001. Second, the skills of a Flash game developer are directly relevant to a Unity game developer position. Lastly, due to strategic changes by Adobe, and the community’s reaction, many Flash game developers are looking for non-Flash jobs. Employers are smart to tap into the Flash game developer market. The ‘death’ of Flash was/is/and-will-be strongly exaggerated. As of 2014, really talented Flash developers still have their pick of top jobs in casual game development — including to a lesser degree in cross-platform mobile.
  • Experience in iOS/Android SDK: Unity teams deploying to these devices may need your native coding skills to create plugins for C# to speak directly to ‘hidden’ features in the device. Also, it is correctly assumed that if you know these platforms, you have experience creating for mobile (and handling some of the related challenges below).
  • Use test-driven development (TDD) practices:  While this one listed, I’m curious if the job really requires it and doubtful the team leaves time for it. Test-driven development is a strategy of creating unit tests ‘as you go’ for your work, rather than later or never. It is proven to yield less breakable, less bug-prone code, but it is FAR less practiced than listed. Kudos to prospective employers who dreaming big and list this in the job post, but it is trite. The best code I have written (with respect to stability) has been on TDD teams, however some of the most frustrating projects have been where such best practices are required but not allocated for (expertise, time, workflow, accountability).

*JavaScript and UnityScript are synonymous here

Programming – Game

  • Passion for games: EVERYONE lists this. Trite. Obviously important.
  • Mobile: Handle device-specific features (accelerometer, camera, etc…), mobile api’s (Ad integration, in-app purchases, etc…), and mobile development workflow (app-store submission, etc…)
  • Cross-platform: Handle multiple screen resolutions and cross-platform workflow
  • 3D: Knowledge of 3D-specific math (Vector, matrices, etc…) provides value to working on core game mechanics and camera (following, avoiding, line-of-sight) systems.
  • AI: Chain of command algorithms to patrol, seek, attack, the player, etc…
  • Rendering: Experience creating shaders allows you to shape the way the game is rendered, creating unique looks like we see in Limbo and Geometry Wars.
  • GUI: Handling input and layout of buttons, text, and overlays. On your team, this worker may be the artist with the most programming skills or the programmer with the most art skills.
  • Prototype creation: Some developers like working with established, proven API’s and common mechanics. Those who demonstrate incredible creativity and communication and also favor more experimentation, hacking, and are at-home with loose requirements/documentation can excel at the earliest stages of pro-typing new game and app concepts.

Programming – Cross-device

  • Mobile: Working on mobile presents many, many challenges. Small screen-size, multiple-screensize, touch input, device-specific features, and more…
  • Ability to optimize: While always important in software, and increasingly important for games, optimization is of paramount importance on the resource-starved mobile devices. Knowledge in optimizing rendering for fast and stable frame rate as well as optimizing for low file-size and low ram-consumption are most commonly requested.
  • Multi-screen: The business requirement to launch on computer, phone, and tablet requires games to be flexible and (asset) workflows to be well-organized. While primarily important to UX and UI experts on your team, these concerns will touch your life too.
  • Multi-platform: With middle-ware tools like Unity, game developers are both blessed and cursed by the write-once-deploy-everywhere paradigm.  Your game projects can do more for more potential game players, but this often requires (figuratively) forking your code to handle the various deployment paths. Team leaders with good solution/design patterns should set the tone, but each developer must be cognizant of the readability and flexibility of her code.

Programming - Tools / Systems

The workflow of every game project includes making some tools to assist the development process. Unity’s incredible editor scripting together with the Asset Store marketplace, make tool-development skills even more relevant and marketable. While on small teams these responsibilities may not be expansive, larger teams often dedicate one or more developers exclusively to the creation of tools.

  • Tool/API design for coworkers: Very very different than traditional end-user-focused development, designing and developing systems with your fellow coworkers in mind has its own batch of challenges. Analyzing upfront what the needs of your team will be requires both experience and technical know-how as well as excellent leadership and communication skills to discuss needs with your team. Unity is so very friendly at tool-creation even one-man-teams need tools. When your team size is 5 to 8 (very common today), a proactive developer can save precious resources with intelligent work-flows and tools. A few examples include level-editors for in-IDE level generation and well-designed API’s to send high-scores from the game to your companies back-end systems.
  • Extend Unity: Knowing the UnityEngine and UnityEditor API’s related to creating custom inspectors, custom windows, gizmos — all greatly expanding what you and your team can do with the Unity IDE is of critical importance. This is the ‘how’ which correlates to the last bullet item.
  • Knowledge of CMS: Your Tool/API may very well speak to a back-end for level-data, user-data, or more info. Knowing how to use a Content Management System (CMS) is a no-brainer requirement, but mastery on CREATING them and setting up easy to use workflows for technical and non-technical team members is really valuable.
  • Knowledge of back-end/database: You may need to program server code or collaborate with those who do. Knowledge with common languages (PHP, .NET, etc…) and tasks (database setup) are important.

Programming – Multi-player

  • 3rd Party Multi-player API Experience: Knowing the Xbox Live, PSN, Steamworks…
  • Good knowledge: of contemporary competitive and cooperative multi-player gaming paradigms
  • Latency/Lag-Hacking: Handling client-prediction algorithms to minimize loss of perceived world-sync for end users.

Programming – Unity Specific Stuff

In addition to the requirement of ‘must know ‘UnityEngine API’ we also see…

  • Must have Unity-Pro License: This requirement is listed in freelance jobs (I have no problem with that) and also (surprisingly) in full-time jobs. It reeks of an employer that does not provide you your computer workstation and the software on it — which is a very real red flag. In a way this is a indirect requirement that you are familiar with the few (honestly) critical pro-only features, but I find it to be a sloppy investigation.
  • Knowledge of Packages: The most common 3rd party libraries I see mentioned are NGUI (easily the most common), 2DToolkit, and surprisingly Playmaker. I think PlayMaker is great and has uses on nontechnical and expertly technical teams, but I’m very surprised its greatness has bubbled up already to job listings.

Unity3D & C# Design Patterns

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

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.

Design Patterns Defined

As BlackWasp explains, Design patterns provide solutions to common software design problems. In the case of object-oriented programming, design patterns are generally aimed at solving the problems of object generation and interaction, rather than the larger scale problems of overall software architecture. They give generalised solutions in the form of templates that may be applied to real-world problems. Design patterns are a powerful tool for software developers. However, they should not be seen as prescriptive specifications for software. It is more important to understand the concepts that design patterns describe, rather than memorizing their exact classes, methods and properties. It is also important to apply patterns appropriately. Using the incorrect pattern for a situation or applying a design pattern to a trivial solution can over-complicate your code and lead to maintainability issues. A group of developers, the Gang of Four, publicized these 23 design patterns.

Creational Patterns
1. Abstract Factory Creates an instance of several families of classes
2. Builder Separates object construction from its representation
3. Factory Method Creates an instance of several derived classes
4. Prototype A fully initialized instance to be copied or cloned
5. Singleton A class of which only a single instance can exist
Structural Patterns
6. Adapter Match interfaces of different classes
7. Bridge Separates an object’s interface from its implementation
8. Composite A tree structure of simple and composite objects
9 .Decorator Add responsibilities to objects dynamically
10. Facade A single class that represents an entire subsystem
11. Flyweight A fine-grained instance used for efficient sharing
12. Proxy An object representing another object
Behavioral Patterns
13. Chain of Resp. A way of passing a request between a chain of objects
14. Command Encapsulate a command request as an object
15. Interpreter A way to include language elements in a program
16. Iterator Sequentially access the elements of a collection
17. Mediator Defines simplified communication between classes
18. Memento Capture and restore an object’s internal state
19. Observer A way of notifying change to a number of classes
20. State Alter an object’s behavior when its state changes
21. Strategy Encapsulates an algorithm inside a class
22. Template Method Defer the exact steps of an algorithm to a subclass
23. Visitor Defines a new operation to a class without change

Design Patterns for Unity 3D / C#

C# is a robust language, and all popular design patterns are possible. However, which design patterns are most appropriate to Unity3D and game development?

1. Which patterns above are ‘built-in’ to the Unity3D experience?

I’m curious of your help here. Please add a comment below.

2. Which patterns above would you like to see in my training series?

My Unity3D & C# HD Video tutorial series will feature sections about architecture and design patterns. What would you like to see covered?

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.

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 through out 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. Of course, it’s not enough to just forecast the future — She’s also actively working to make it a reality. (And you can too — join Gameful, the Secret HQ for Worldchanging Game Developers.) Her best effort so far? SuperBetter, a game that has helped more than 250,000 players so far tackle real-life health challenges like depression, anxiety, chronic pain and traumatic brain injury.

Figure 1.

As a professional game developer with 13 years experience (2013) I am regularly involved in charities through donations mostly. With the flexibility offered by owning and running my own consultancy, I can occasionally take time out for volunteering too. This year I taught English (and some gaming too!) in Indonesia (See Figure 2). The experience left me positively (changed and) charged. Back in the office, more research has led me to write this article on the many ways we can all give back using skills from game development. I’m very excited for the possibilities. I have already contacted many companies to ask how I can be of service. I’ll provide an update in the future with new discoveries.

Figure 2. Me, Teaching English (And Videogames) In Asia

As individuals we can all give a bit more to help the issues we care about. But the issue of course is not just individual. Companies can build their charitable concerns to augment business objectives including of course public relations and to attract proactive new talent. As I recently announced, I am actively seeking a full-time position as a Unity3D Game Developer. Corporate charity is an important part of my evaluation of successful fit within company culture.

Game Companies Doing It Right

The Humble Bundles are a series of collections (“bundles”) of digital creations that are sold and distributed online at a price determined by the purchaser. The bundles are typically offered on a semi-regular basis during a two-week period; sales often include bonus games or media offered mid-week through the sale for those that have already purchased the bundle or otherwise pay more than the average.

As GuardianLV explains, there are two aspects of Humble Bundle that separate it from the conventional retail model. The first one is that the buyer can determine the price of the product they buy. One would think that this would drive the price down; but Humble Bundle has already thought of that. The consumer must pay above the average price in order to get the bonus, most coveted games in the package, among other benefits. This prevents buyers from lowballing the price too much, as many of them primarily purchase the bundle specifically for those games. Also, only those that pay over $1 will get keys to Valve’s Steam client. This is significant because Steam sometimes holds contests allowing players to win prizes by accomplishing certain achievements within the games offered in order to enter a raffle. This became a problem with Humble Indie Bundle 4, as many gamers were purchasing multiple packages for the minimum price of one cent in order to enter a concurrent Steam contest multiple times, and that is why this policy was put in place.

As of September 25, 2013, our customers have given more than $25 million to the many great charities associated with Humble Bundle. The generosity of Humble Bundle customers has benefited many vital charities. It recently closed with over 2.1 million bundles sold and $10.5 million in sales. The portion of that given to charity was significant.

The other aspect that sets Humble Bundle apart is that gamers decide how much of their money goes to what end. Buyers can choose what percentage of what they pay goes to the game developers, to Humble Bundle, Inc. itself, or to the charities corresponding to that particular package, which vary from bundle to bundle. Furthermore, the consumer can choose how much of their charitable donation goes to what specific organization.

Figure 3. Consumers select how much of the purchase price goes to charity

Charity Organizations

videogames_charities_gamesforchange_v1

Games For Change

The mission statement for Games For Change (G4C) isCatalyzing Social Impact Through Digital Games”. Since 2004, they facilitate the creation and distribution of social impact games that serve as critical tools in humanitarian and educational efforts.

President of G4C Asi Burak is an award-winning game creator, tech executive, and social entrepreneur. He is the Executive Producer of the Half the Sky Movement games, he orchestrated partnerships with Zynga, Frima Studio, some of the world’s leading NGOs, and Pulitzer Prize-winning authors Nicholas Kristof and Sheryl WuDunn.

Unlike the commercial gaming industry, G4C aims to leverage entertainment and engagement for social good. To further grow the field, they convene multiple stakeholders, highlight best practices, incubate games, and help to create and to direct investment into new projects.

videogames_charities_gamesforgood_v1

Games for Good

Games for Good leverages game mechanics for social benefit. Games created for this segment of the industry hope to teach, train or simply generate awareness of a topic, an issue or a societal problem, therefore creating change – in thinking, actions or attitudes.

Examples of Games for Good

  • Games that teach young people to become globally conscious citizens, contributing their own solutions to social issues
  • A game that focuses on the moral challenge of oppression of women around the world, with content designed to teach young women how to unlock their economic power
  • A title that helps people form good savings habits, avoiding the pitfall of too many credit cards and debt
  • Games that help players think more critically about complex issues like race, religion, nationality, class and culture

Games for Good brings together leaders from non profits, government, corporations, academia and the gaming industry. This game category often provides an entry point for public sector entities new to the field, introducing a new way for these organizations to get their point across.

The Serious Game Association is building a directory to make Games for Good accessible to more organizations and people.

videogames_charities_extralife_v1

Extra-Life

Since 2003, Extra-Life has set up and organized Child’s Play, a game industry charity dedicated to improving the lives of children with toys and games in our network of over 70 hospitals worldwide. Over the years, you as a community have answered the call and come together to raise millions of dollars.

Child’s Play works in two ways. With the help of hospital staff, they set up gift wish lists full of video games, toys, books, and other fun stuff for kids. By clicking on a hospital location on their map, you can view that hospital’s wish list and send a gift.

Child’s Play also receives cash donations throughout the year. With those cash donations, they purchase new consoles, peripherals, games, and more for hospitals and therapy facilities. These donations allow for children to enjoy age-appropriate entertainment, interact with their peers, friends, and family, and can provide vital distraction from an otherwise generally unpleasant experience.

videogames_charities_gamesthatgive_v1

Games That Give

GamesThatGive was founded in 2008 by Adam Archer and Kris Goss, great friends and self admitted geeks. GamesThatGive was built around the belief that great companies, and their customers, want to make a difference. Even beyond that, they want to help others make a difference.

While many companies engage in charitable activities, they are rarely effective at involving their customer base in these efforts. That’s why GamesThatGive combined gaming with charitable giving to create the leading platform for engaging brands’ customers in charitable activities.

And so far, the results have been exceptional. GamesThatGive’s clients now include many of the biggest brands in the world. These brands have built trust and loyalty with their customers, and at the same time have helped make the world a better place.

When companies and customers play games to help others, everyone wins!

Please email us today. A real person will always respond, and we’d love to hear from you.

videogames_charities_iggg_v1

IGFG

Indie Games For Good is a marathon event. It is about encouraging people to donate to Child’s Play while generating exposure for independently developed games. We’re going to run a live stream of us playing indie games, and we’ll keep playing for as long as people keep donating. Unlike other gaming marathons, which only play a predetermined list of games, the games we play during IGG Marathon will be determined by requests from our donors, so our viewers will be directly involved in the experience. Last year we raised $12,856.76 for Child’s Play, and played for 76 hours. The year before that, we played for 79 hours and raised $6,816.40.

videogames_charities_specialeffects_v1

Special Effect

SpecialEffect is a registered UK charity which helps to find ways for disabled people, unable to use a standard video games controller, to be able to enjoy the interaction, fun and many other benefits of playing video games.

They set up, create, lend and support the use of specialist games controllers from our library of equipment. Everyone they work with is different. Some of the people they work with find it difficult or impossible to control parts of their body other than their eyes. In these instances SpecialEffect uses computers which are controlled just by moving their eyes.

The demand for this work is growing all the time, so they are asking you to help to meet this need and help us purchase this very special piece of equipment which will add an additional eye-controlled gaming system to our library.

By pledging and spreading the word to your friends and fellow gamers, they can help more people, more quickly together.

How You Can Help

Checkout great charity organizations that mix gaming with a cause you care about. You can make a donation and perhaps volunteer your time.

In a larger way, consider how your current company and your game projects affect others. Not every game must ‘give’ or ‘teach’, but the impact we each have on the world is big and can always be bigger and better.

Watch the great video below. It is fantastic.

References

Unity Game Development

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

unity_intro_banner_v1

Unity Game Development

Since 2006, as Principle of Rivello Multimedia Consulting  (RMC), I have offered four key services; software architecture, consulting, complete development of games and applications, and training. Fortunately we at RMC have thrived and are highly effective — profitable since year one. I have worked in many exciting cities on 5 continents which has given me gifts of cultural knowledge & skills with spoken languages. Consulting offers many unique opportunities and challenges which I enjoy, however there are benefits to being part of a team which I miss too.  To satisfy my career forecast I will be changing gears and announce that;

I am now actively seeking a full-time position as a Unity3D Game Developer. 

I have deep experience in game development; more than 13 years of professional work. I absolutely live and breath gaming. I love it. I have much to offer my next team — everything from game concept creation and development, through to launch — and I am very excited!

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


 ASSET STORE PACKAGES

 

 COMPLETE GAMES

paddle_soccer_poster_v1 spider_strike_poster_v1
paddle_soccer_poster_v1  

TRAINING

vimeo_screenflow_video_thumbnail_UWK_poster_v1


ARTICLES

BEST ARTICLE: Unity3D for Game Development

Asset Store

paddle_soccer_poster_v1

 

Architectures

 

Reactive Extensions (RX)

 

More Training

Best Practices

Career Advice

Industry News

Misc

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.

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.

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.

Intro To Unity3D and AR (Augmented Reality)

Category: Industry News, Quick Tips     |     Tags: Augmented Reality, C#, 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. 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. Here is more information on using Unity3D with Augmented Reality.

Augmented Reality

Augmented reality (AR) is a field of computer science that involves combining the physical world and an interactive, three-dimensional virtual world. I originally wrote a complete demo, source code, and article for my client Adobe – “Augmented Reality With Flash“. Now I’ve updated the information regarding Unity3D. In a future article I may make the full Unity demo source code available. While mainstream audiences are now becoming aware of AR, it is not new. Its background is intertwined with decades of computer science development. Virtual reality (VR), AR’s more familiar counterpart, is the replacement of the user’s physical reality (particularly that which is experienced through sight and hearing) with a computer-generated reality. The idea of a virtual experience is exciting — creating entertaining and educational sensory encounters that do not exist in our everyday lives.

From a consumer standpoint, it seems that AR advances have come out of nowhere to surpass VR advances. The acceleration in AR technology is due to two major factors: First, users are still experiencing reality, so believability is easier to achieve. Adding simple graphics (such as text or simple shapes) and color effects (such as night vision or thermal vision) to reality creates a better user experience. The user is still seeing a mostly familiar world. Second, this more subtle use of computer graphics is less expensive with today’s technology, making it more feasible than VR. Let’s take a look at augmented reality, its current uses, and its future potential.

Practical Uses of AR

The video game industry has released major augmented reality products for more than a decade. The Eye Toy for Sony PlayStation 2 and 3 takes input from an inexpensive video camera and composites the live video feed with CG onto the TV screen. This toy detects the user’s body position in front of the camera as an alternative input method to the typical joystick or gamepad, deepening the user’s immersion into the game world. Detection schemes continue to advance, allowing for more engaging interaction.

There are AR applications outside of console games, including military and consumer products, too. Night-vision goggles and targeting-assistance technology help marksmen in battle, and children’s stories come to life with AR-enhanced books. The uses are vast. With AR-enhanced books, each page of a real-world book is outfitted with a marker — a pattern that is detectable by AR. As the child turns each page, a computer is able to place a virtual 3D animation on top of a physical image printed on paper. While the marker is often an image as in this example, it could also be the user’s face.

Basics of AR

  • Marker Detection – The marker is located by the application. Typically the device webcam is used. The webcam inspects the physical reality near the user to find a predetermined marker (image or the users face).
  • Transform Mapping – The transform (position, rotation, scale) of the marker are interpreted. Move the marker and the transform updates.
  • Rendering – Now the 3D model is updated to rendered to the screen.

Essential Libraries

Because of the growing popularity of AR, many platforms have 3rd party packages (free and premium) to facilitate development. Unity too. While you could create you own system from scratch, it is highly recommended to find the best 3rd party library and use it. Your end product will be higher quality and you will save greatly on time to market. You can choose any one from this list; Unity3D Packages for AR

*Seem to be popular

Vuforia is the best and free to use. I tried with Metaio, it’s easy to use than Vuforia, but the tracking quality don´t convince me. Vuforia handles the pattern occlusion is robust, and it’s framerates are high, much higher than Metaio and NyARToolkit. – 3rd Party Blog Comment

There are pros and cons to each. In a future article, I may evaluate each of these options. Some of the key differences are cost, ease of use, completeness of documentation, breadth of features, and accuracy (speed) of tracking the marker from the camera and transforming the model. Each package surely has its own workflow and API, however the major concepts are the same. So once we choose a package, we follow this the basic setup.

Developing Augmented Reality

Marker Setup

Figure 1. Marker Image

Figure 1. Marker Image

The marker image is a graphic drawn, printed, and shown to the end application as it runs. Your AR package, with help from the marker data file and parameters file, will detect this shape via webcam. To design a graphic, fit the desired shape within a white square that is centered within a larger black square. Keep your shape simple for best results. Note the sun shape in the graphic. This helps the application detect which way is up for the marker and assists its angle and rotation detection. Your design doesn’t need to have this shape per se, but it should be asymmetrical in some way for best results. Webcam Setup Unity features webcam support. As the application runs and a camera is detected, Unity will show the video onscreen. This functionality may or may not be included in the AR package you choose. AR Package Setup

Figure 2. Marker Detection

Figure 2. Marker Detection

A cornerstone of this project is marker detection. As the marker graphic is detected via webcam, its position, rotation, and scale in the user’s physical space are calculated. This calculation will be used in the next steps. The AR package will search each still-frame of webcam footage for the predefined marker graphic (Pattern object). The detection scheme uses just the latest still-frame of video at any given time. Model Setup

Figure 2. 3D Model Setup

Figure 3. 3D Model Setup

The 3D model is loaded and inserted into the 3D scene, and the view into that scene. Luckily 3D is a strength in Unity and much of this work is all done for you. In the final project, this view is layered on top of the 2D webcam Video object shown earlier so the composite (See Figure 4.) of 2D and 3D will look believable. Repeated Loop: Detect-And-Update

Figure 4. Complete Process

Figure 4. Complete Process

Generally speaking your loopToDetectMarkerAndUpdate3D function will be called 60 times per second. Each frame the latest frame of the webcam footage is grabbed. The AR package runs detection on the frame. If the marker is detected the AR package will update the position, rotation, and scale data. This modifies the 3D model so it appears to be at the same position in the user’s physical space as the marker. The resulting effect is nothing short of amazing for first-time viewers.

Great Slideshow on Unity3D & AR



Want More Video Tutorials?

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