Code Hero

January 4 2016: A new architectural style

We've been busy over the holidays integrating the latest functionality and overhauling the architectural style of the hub areas that tie the levels of Code Hero together.

You've seen in previous updates the Mind Map environment inside the brain that ties everything together into a graph of levels. That functions as a conceptual map. But there is still a Gamebridge Unityversity campus to situate all the levels of the game in, and this hub world has changed a lot since the early bright white vector art style of Code Hero 0.35. It's a big art challenge so we won't be showing it until it is more complete, but here is a lititle piece of the hub in the library that links all the different sections together.

The style is influenced by Bioshock's retro-futurism. In Code Hero's case, the architecture of Gamebridge is based on the Greco-Roman motifs but heavily modernized with elements of holographics, interactive displays, colorful LED lighting arrays, neon signage, and more. It is coming together finally in a cohesive way and we look forward to sharing more as it gets more filled out.

 

December 22 2015: Physics-based audio, interactive grass and foliage shaders

The new compiler work continues, and we're working on several upgrades to the control, physics, graphics and audio systems. Here's a clip of some of the work in progress. Things to note: Manipulating objects, foliage sounds, foliage bending, DirectX 11 foliage shaders, foliage rustling sounds, physically-based object collision sounds for slides and impacts of different material types such as the red plastic box and the wooden crates.

Object Manipulation

We've added an object manipulation tool to grab, move and throw things without having to execute code to do it. This is handy for making interesting puzzles, and moving objects make the world feel a lot more lively. 

Object manipulation currently resembles the gravity gun effect with disembodied hands like most FPS systems, but this is planned to be replaced with inverse kinematic hands so that the player's actual character model will reach out and grasp arbitrary objects.

Physics-based audio collisions

Letting the player move and throw things around places a higher requirement for realistic collision effects, which is why we're overhauling our collision system to do physically based audio. Different types of objects make realistically varied sounds when bumping and sliding into each other with different angles and forces.

Physical footsteps are next

Terrain types cause different sounds as well, and we now have to replace our footstep system with the new physically based sound one so that footsteps are just collisions of foot-shaped objects and different kinds of footstep sounds could be generated from different footstep materials and velocities just like any other kind of collision.

Advanced bendable grass and foliage

In addition to hard object and terrain collisions, foliage and grass need to react to character movement and object collisions.

The advanced foliage shader is working now with bendable foliage and large grasses. We're adding sounds to match, and we plan to contribute the resulting integrations between foliage bending systems and physically-based sounds to the asset creators and community.

We have also implemented the Direct X 11 grass shader, which provides incredibly realistic high-performance simulation of each blade of grass akin to NVIDIA Turfworks technology. It takes some tweaking to get the shader effect around each animal to bend the grass correctly, but the result of watching the animals bend grass as they cross a field is worth it. Crushing the grass leaves it bent until it recovers, enabling you to track characters moving through the grass.

Flocking birds and insects

The Search farmhouse already had flightless chickens to interact with, but now the songbird ambiance in the sky is coming from dynamic flocking birds. They perch all over the level, and they'll react to the player.

Character controls upgrades in progress

We've experimented with a new 1st person/3rd person character controller that adds parkour mobility controls to make exploring environments a lot more fun. It has a lot of components, layers and tags that need more work to integrate into our existing main character controller.

Unity needs guides to integrating everything

Unity has a wealth of powerful asset packages to assist in implementing many of the core gameplay and art a game needs, but there is a lack of coherent guides to integrating all the best-of-breed systems together into a complete gameplay experience. We will be sharing how-to guides covering complete game integrations and introducing those integrations within Code Hero's game's levels.

Code Hero will teach not only the programming aspect but also how to integrate the various technical systems with art and audio assets for the best possible effect. Getting these things right in the game has an added payoff when we can teach the players how to achieve the same things in their own games.

Unity badly needs a standard for namespaced multiple tags and layers

Note to content creators out there: Tags and layers should be used sparingly, if at all. They are assigned text labels but stored numerically, and every asset developer that uses tags and layers picks numbers more or less at random hoping they won't conflict with others. You get a maximum of 31 layers and they ought to be used only for rendering and physics discrimination.

Merging different tag and layer number assignments is a hassle, and it makes integrating asset packages needlessly difficult. There are several solutions that add multiple tagging of objects.

We need an extension that adds asset package-definable tags that don't depend on hard-coded numbers that result in conflicting numeric assignments.

December 11 2015: Search level and animal AIs

As C# compiler integration work continues, we're preparing the first levels that will introduce the new systems. The Search level is progressing nicely, with the barn house containing a haystack search challenge to introduce the topic.

We've added a more interesting kind of thing to search for: animals. If you remember the origina GameObject.Find training in the original Code Hero prototype, it had some inanimate tanks as example targets to learn how Find works. The new animals provide a much more engaging subject to search for, and their AI makes them fun to interact with. We based these on the HerdSim system, and added calls and head tracking interactions to make them engage with each other more believably.

 

December 4 2015: Compiler integration and performance manager

This week we've gotten two new features working: the dynamic C# compiler and a new performance manager.

Dynamic C# Compiler Interface

We're working on continuing to integrate the new C# compiler to an overhauled GUI for code editing. The old Unityscript compiler used tricks to emulate how components work in Unity, so its interface was a bit different from regular script editing. This was part of why switching to C# was necessary. The new compiler is capable of exactly the same things as normal scripts compiled by the Unity Editor, so we can overhaul the whole Script Editor interface to edit actual script files now in a way that should make switching up to real Unity development very familiar.

Performance Manager

Many of the graphics features of the new Unity 5 graphics system compete for CPU and GPU cycles. On high-end systems, the frame rate is good, but laptops and the low-cost Atom tablets that are our minimum spec need the detail and effects levels dropped automatically to reach acceptable frame rates.

The first feature to use this is reflection probes, which have three update modes: Awake, Every Frame, and From Script. Every Frame bogs down performance with more than a couple probes rendering cubemaps multiplying the render burden every frame.

Our Performance Manager talks to a component called Reflection Culling which refreshes reflection probes using the mode From Script and ties the refresh rate of the probes to their nearness to the camera and the current frame rate.


We'll put every optional graphics feature on an automated diet so that most players won't have to customize graphics settings to keep the game running smoothly. This is especially important when different areas of the game vary in performance demands. Settings that seem smooth in early areas may prove unplayable in later more complex areas, so automatic performance management should make this less of an issue.


December 2 2015: Dynamic C# compiler working

We're making good progress on one of the hardest technical features of the Code Hero roadmap, switching from player-written dynamic Unityscript to a new dynamic C# compiler. The first build with the new compiler is taking longer than we expected due to cross-platform issues. We have it working on Mac presently. The Windows version is still throwing Win32 exceptions and it is going to take a bit more work to get it working on all three platforms.

With the new compiler, the Code Ray can load new dynamic scripts at runtime. When we attach them as MonoBehaviours in the editor their variables are inspectable just like normal components pre-compiled by Unity itself. This opens up all the language features and patterns without any of the restrictions that most C# REPL systems have. The scripts can link against each other and anything Unity has compiled already. Scripts can be rewritten on the fly and recompiled to replace already running scripts at runtime, and still linked against all the previously written scripts.

Switching Code Hero's code editor and component creation interface over to the new C# compiler has been our top priority and this validates that our approach to implementing the new compiler works. We'll have an update this Friday and continue making weekly updates as we progress.


November 6 2015: Code Hero 0.5 preview

Code Hero is back. We are happy to announce that Primer Labs has moved into a new office space and Code Hero is under full-time development with the first public 0.5 build on track for release soon.

Friday Updates

Every friday we'll share previews of what we're working on as the 0.5 features mature. We are inspired by the innovative development of one of the coolest Unity games developed to date, RustRust's weekly community spotlights and development updates are the bar we aspire to hit on the road from 0.5 to 1.0.

If you want to see what a next-gen survival sandbox MMO that happens to be made with Unity looks and plays like, we recommend picking up Rust on Steam and joining the Rustafied server. We plan to host a community event there in the future to discuss some of the impressive Unity-based tech that Rust demonstrates.

Feature Roadmap

We will be laying out the whole roadmap of what is planned for Code Hero's development. New features will find their way into the game levels of the early builds as we develop content around them but we'll provide previews of each feature from prototype to production-ready.

Mind Map learning navigation system

  • Each level is a neuron on the map and teaches a concept that opens paths to connected neurons.
  • FPS perspective walking through your own brain as you learn.
  • Graph perspective for quick traversal and review.

The mind map is your central navigation system to traverse the neural pathways to each learning level.

DataBoss data structure & algorithm challenges

DataBoss tests your ability to utilize computer science's fundamental data structures in a race against time to search, sort and optimize data to deallocate or be deallocated.

The needle in a haystack problem teaches you search algorithms in preparation for DataBoss.

LightBoss Graphics Challenges

LightBoss graphics challenges teach you to master the effects that a well-tuned Unity pipeline can achieve. 

Credit where credit is how-to: LightBoss teaches you Unity 5's rendering pipeline and the top FX stack: Candela SSRRScion & Sunshine.

Quality 

Learn how to make games with the best visual fidelity Unity 5 can achieve.

  • Physically based lighting shaders that realistically reflect changing lighting conditions.
  • HDR volumetric lighting scattering through visible dust and air particles.
  • Interactive night/day cycle with realistic sun/moon/stars and day/night nature sounds.
  • Interactive dynamic weather lets you summon changes in the skies to create clear, overcast, rain, snow and wind interacting with dust.
  • Relief terrain parralax shaders make every rock and pebble appear to pop out of the ground.
  • Screen space raycast reflection extends Unity 5's reflection probes to produce accurately parralaxed reflections beside objects.
  • Cinematic temporal anti-aliasing provides offline rendering quality in real-time, blurring the visual line between film and games.

Optimization

Learn the performance optimization techniques that allow Code Hero to run well on the lowest-cost devices with maximum battery life.

  • Scion Post-processing pipeline does all effects in a single pass like adaptive eye exposure, depth-of-ofield, color grading, etc.
  • LOD dynamic level-of-detail meshes and culling to support low-quality modes.
  • Streaming Sandbox asset streaming to allow you to roam through open world scenes.
  • Low-power mode conserves battery power and runs on the least expensive 8-inch Atom tablet PCs.

Artwork

Learn fundamental 2D & 3D art concepts as you learn how to create and utilize art assets effectively.

  • Learn the industry-standard asset pipeline from Sketchup and ProBuilder prototyping to Maya/Blender modeling, Mudbox/Zbrush detailing and Substance Painter texturing.
  • Foliage system has dynamically growing trees and individual blades of grass so you won't get that cardboard cutout feel billboard foliage causes when you put on an HMD to do...

Virtual Reality Live Coding

Programming and modeling the reality around you is really cool through an HMD.

  • 3D holographic UI: 
    • UI was originally built on the same UnityGUI system as Unity's editor to be able to recreate the same scaleable widgets.
    • New 3D Unity UI is replacing the 2D gradually and once complete will make the VR mode fully playable.
    • 3D UI can embed in the environment connected to the content it relates to.

Visual Mission Editor

Developing Code Hero's content has been extremely complex, with every step in the game involving event triggers hooking into the editor interface and detected changes in player-written source code. To make content production more productive, we are overhauling the way we develop Code Hero levels.

  • Graph-based mission editor to accelerate content development.
    • Character dialogue lipsync integration.
    • Support for expanding the game with modular content packs.

C# Code Ray Compiler

The new C# code ray compiler replaces the original Unityscript coding system. It's time to just learn C# and let Unityscript fade away.

  • This is the biggest technical change since the original Code Hero alpha.
  • System.Reflection.Emit generates DLLs every time you run code.
  • The new system is much more complete and powerful than the old eval-based Unityscript system.

Mentor AIs

Artificial intelligence is the great frontier of computer science today, and Code Hero relies on a new kind of hybrid mentor AI to teach players game development and how to write your own AI characters. Ada Lovelace and other characters you interact with use a hybrid of 5 different AI systems that players will learn about and hack:

  • Behavior Tree AI manages navigation and interactions with the environment.
  • Finite State Machine AI handles changes in condition and player activities.
  • Chatbot AI lets characters converse with players and each other using natural language processing and speech synthesis.
  • Emotional AI models the way characters feel about players and each other. They observe what you do and word gets around.
  • Neural Network AI uses trainable networks to recognize patterns that can trigger the behaviors, states, chats and emotions.

Unity Universal Character Controller

The character controller is the central component of implementing many types of gameplay and the Unicharacter controller supports a wide variety of perspectives and interactions.

  • Customizable UMA-based avatars.
    • Tutorials on how to create your own avatar clothing using Marvelous Designer.
  • Embodied first-person and third person perspectives.
    • First-person/3rd person embodied inventory system.
    • First-person/3rd person embodied stealth system.
  • Parkour climbing, sliding and wall running.
    • Realistic athletic ability defaults that scale up to superhero-level presets with code hacks.
  • Inverse-kinematic interactions with objects and characters.
    • Pick up and carry arbitrary sized objects to solve puzzles.
    • Character interactions like shaking hands, high fiving

Download Code Hero 0.2

 While we ready 0.5, you can download 0.2. It teaches Unityscript, but most of what it teaches carries over to C#.

Download Code Hero 0.2 for Windows

Download Code Hero 0.2 for Mac

 

Thomas Suarez: The TEDgrader

Thomas Suarez is in the 6th grade at a middle school in the South Bay. And while most of his peers are probably fussing over new soccer kleets or watching the Disney channel, he’s creating iOS apps and giving TED Talks.

Suarez, whose not even old enough to have a Facebook account, has been fascinated by computers and technology since before kindergarten. He’s established his own company, CarrotCorp and has made two iOS apps that are currently in the App Store: Earth Fortune, which displays different colors of Earth depending on what your fortune is and his most successful- Bustin Jieber, a Whac-a-Mole for Justin Bieber.

“A lot of kids these days like to play games, but now they want to make them,” he says. “And it’s difficult because not many kids know where to go find out how to make a program…And not many parents have written apps.” Suarez, inspired by Steve Jobs, started an App Club at school where any student can come to learn to design an app. In the future, Suarez wants to create more apps, more games and get into Android programming and development. He plans on continuing his app club and find other ways for students to share knowledge with others.

Knowing that human beings such as Suarez exist makes me really hopeful and excited for the future. Watch his TED Talk from the recent TEDx conference in Manhattan Beach here:

Source: TheNextWeb

Gamebridge GameDev Club at Noisebridge.net Wednesdays at 8

Gamebridge Gamedev Club is a free open game development meetup with hands-on teaching and collaboration for anyone interesting in learning or advancing game development skills.

We are especially heavily working with Unity 3D so show up and become a game developer or share what you know with your peers!

Unity Devs At Gamebridge Unityversity March 24 2010

Gamebridge was a huge success! David Helgason, Caitlyn Meeks and Justin Kruger from the Unity3D team joined us for our largest Gamebridge meetup yet and we had a good discussion of everyone's game ideas and then broke out into groups to work on our projects. I gave a brief demo of the latest in the Primer project and Caitlyn helped us with porting our work to the iPhone version (which we're working on as we speak for submission to the App store before Friday's iPad deadline).

We look forward to growing Gamebridge in the future to include more beginners and experts alike so we can get more hands-on collaboration and learning happening! See you next Wednesday!

The International Conference on Game Based Learning

The International Conference on Game Based Learning
29th - 30th March 2010, The Brewery, London, EC1

Open Primer

will be at the International Conference on Game Based Learning.

Syndicate content