So I've recently been approved as an instructor for Lynda.com, and just had my initial course syllabus approved. A 2D Infinite terrain AI. I've worked with a variety of terrain systems, both 2D and 3D, limited to singular maps, and infinite expansions. Back when I worked with XNA, I developed a terrain engine that requires very little work, no tileable textures, and develops rich terrains.
I did a few experiments to import the engine into Unity's 2D tile system, and had excellent results. I'll be building the class around it.
The smooth infinite terrain is only the first 30-45 minutes. Then we'll also cover biomes, cities, caves and building interiors. We'll also cover techniques for balancing and managing the expense of saving vs the expense of AI processing. I'm still working out some of the details now, but so far, I'm pleased with how easily everything is applying in Unity.
Anyway, this probably won't be ready to record for another month, and possibly another month of editing after that. So hopefully by August it will be ready.
20150518
20150220
Unity3D - Swirl Demo
I'm working on a demo video, where I want to show how the lack of co-routine makes the web freeze up the game. To do that, I just needed something smoothly moving around.
The code gives room for variation, to allow different angles, and the cubes use trail renderer.
The code gives room for variation, to allow different angles, and the cubes use trail renderer.
using UnityEngine;
using System.Collections;
public class Orbit : MonoBehaviour {
public GameObject Target;
public Vector3 direction = Vector3.left;
public float Speed = 0.1f;
public bool Randomize = false;
public float RandomizeMin = -0.5f;
public float RandomizeMax = 0.5f;
public float MaxDistance = 5;
public float MinDistance = 1;
void Update () {
this.transform.LookAt(Target.transform);
var shift = Vector3.zero;
if (Randomize)
{
shift = new Vector3(Random.Range (RandomizeMin, RandomizeMax),
Random.Range (RandomizeMin, RandomizeMax) * Time.deltaTime,
Random.Range (RandomizeMin, RandomizeMax));
}
this.transform.Translate ((shift + direction) * Speed * Time.deltaTime);
if (Vector3.Distance(Target.transform.position, transform.position) > MaxDistance)
{
Debug.Log ("To Far");
this.transform.position = this.Target.transform.position + Vector3.ClampMagnitude(
this.transform.position - this.Target.transform.position,
this.MaxDistance);
}
if (Vector3.Distance(Target.transform.position, transform.position) < MinDistance)
{
Debug.Log ("To Close");
this.transform.position = this.Target.transform.position + Vector3.ClampMagnitude(
(this.transform.position - this.Target.transform.position) * 100,
this.MinDistance);
}
}
}
20150208
Humming Bird AI
Hummingbird is an AI I've been working on that learns how to fly a ship on its own. Starting with the engines, which try to determine a force to keep themselves afloat. (at a particular altitude) Then it uses a stabilizer to manage the ship over all. Then the stabilizer will reduce and strengthen the engines at various positions to tilt and move the ship to target locations.
Additionally, I felt inspired by http://BoxCar2D.com, which creates cars from random geometric shapes and attempts to drive them through random terrains. Its travelling is simply based on spinning wheels that allow the vehicle to progress on a terrain. A difference between our AI's, is that Box Car looks at the creation of the the vehicle, while Hummingbird looks at the control of the vehicle. Here is an example of BoxCar2d:

I found Box Car almost mesmerizing, as you watch it randomly construct vehicles and try to get farther and farther with them. I intend Hummingbird to also have this mesmerizing feel. So far, its ship generation has been getting there, but it needs work still.
I've been working on raising community interest by running a kickstarter. Keep in mind that this is still being shaped. There are some basic pieces, but the end goal is not complete yet. The kick starter has been 100% funded as of yet, and completes in 2 days from this posting.
https://www.kickstarter.com/projects/1667690760/creating-a-3d-flying-version-of-boxcar2d/
At present, one of the difficulties I'm facing is aligning the parts of the ships, so my next test scenes will be focused on improving the ship construction dynamics, so the ships are less of blobs, and begin taking on more meaningful shapes.
20141223
Unity AI Programming Essentials
This book shows how to quickly apply a variety of existing AI technologies for Unity, some free, some not, so you can make your games smarter from day 1.
But on a personal note:
I'm officially published! This second book I've authored, (technically the third, my first was a novel that I never released) my first programming book on XNA is available freely online, and has not been professionally edited, but this one is published by Packt Publishing.
There were complications during the creation process, and I can only take claim for a few of the chapters. The chapters I wrote were dealing with multiple pre-existing AI's, and while talking with some of the developers of them, I was pleased at how receptive they were to recommendations. That however, created the issue that the code base would keep changing. Keeping updated in the code was a real night mare.
But kudos to the AI developers for constantly improving and moving forward. And kudos to Curtis Bennett, for grabbing the remnants of the book when I no longer had the time to work on it and finishing it. I can't wait to read what he put into it. :D
Published via Packt Publishing here:
https://www.packtpub.com/game-development/unity-ai-programming-essentials
Also available for purchase from Amazon:
http://www.amazon.com/Unity-Programming-Essentials-Curtis-Bennett/dp/1783553553
But on a personal note:
I'm officially published! This second book I've authored, (technically the third, my first was a novel that I never released) my first programming book on XNA is available freely online, and has not been professionally edited, but this one is published by Packt Publishing.There were complications during the creation process, and I can only take claim for a few of the chapters. The chapters I wrote were dealing with multiple pre-existing AI's, and while talking with some of the developers of them, I was pleased at how receptive they were to recommendations. That however, created the issue that the code base would keep changing. Keeping updated in the code was a real night mare.
But kudos to the AI developers for constantly improving and moving forward. And kudos to Curtis Bennett, for grabbing the remnants of the book when I no longer had the time to work on it and finishing it. I can't wait to read what he put into it. :D
Published via Packt Publishing here:
https://www.packtpub.com/game-development/unity-ai-programming-essentials
Also available for purchase from Amazon:
http://www.amazon.com/Unity-Programming-Essentials-Curtis-Bennett/dp/1783553553
Subscribe to:
Posts (Atom)


