20150521

JS Help: Automatically point all external links to new tabs...

I was recently tasked with going through a site with around 50 pages to set a target of _blank to any external URL.  (one page had 240 external links)  Instead of going through the manual work of stepping through each CMS entry and CMS content part to find and change these, I added a short script to the foot of the site.  This is not a perfect duplicate, but its pretty close.

[Copy/Paste slows learning...]

This depends on JQuery and FontAwesome.  

Part 1: 
 - Waits for the document to complete.  (document ready)

Part 2: 
 - get the current URL that is constant to any links within this site.  

Part 3:
 - JQuery gets all the 'a' tags, and for each of them gets the 'href' tag.

Part 4:
 - if the href begins with "http" (an external link) and does not part of this site
 - - Then Add a target of _Blank to that link.  

Part 5: (optional)
 - w/FontAwesome, append an external icon to each link.


20150518

Lynda Course in Design: Unity 5 2D Procedural Terrain and Living AI

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.

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.
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

20141027

Website is Down!

LearnBuildPlay.com has gone down: (temporarily)
 - Emails still work
 - Working on a replacement posting, to be up in the next day or two.

Details:
My apologies, I just received an email from my (X) VM provider, SOMEE.com.  They had a hardware malfunction that completely destroyed all my data.  they say a RAID controller (at the hardware level) broke down, effectively destroying all data on all the Hard Drives under it.  However, I find this difficult to believe considering that a couple hours before that, they sent out an email claiming they were upgrading some software.  (not hardware)  It sounds more like they messed up on the software and accidentally did a complete re-install rather than an upgrade, or some other configuration mistake that wiped the original data.  It could also be exactly what they claim, but I no longer trust them.

Actions Taken:
I have cancelled my service with them.


Action Items:
1) Test a replacement site and post it to azure.
2) Repoint DNS and services to new IP.
ETA 2-3 days.

20140905

The Failure of Colleges and Computer Programming...

I've taught at several colleges, released a book on programming, assisted other teachers, assisted other students, attended classes and interviewed a lot of candidates for senior and mid level IT Roles with great contrasts between those focused on college education and those without.  This may be a rant, but it's intention is to help potential students pick classes and learn, and to help colleges improve their curriculum.

Naturally, I'm open to  debate about any of this.  I want to help out, and I'm not going to help improve things by being close minded.


1) Math is not that important in programming, so why do so many colleges have such hefty pre-reqs?


"Any high school freshman has enough math skills to become a great computer programmer."

I've known brilliant people, with IQ's over 160, who didn't want to go to college, because they weren't that good at the math.  However, they were excellent at taking large complicated business plans and wrapping software and sites around them, exactly what they were and would be doing in the real world anyway.  I'm not arguing against basic algebra and even some minor calculus, but in general, any high school freshmen in the US has enough math skills to become a great computer programmer.

So why do the colleges do this?  I believe this comes from history.  When computer's were first coming to use, they were typically 2 things.  1) was a specialist piece of hardware focused on a particular task, and 2) was a GIANT programmable calculator.  While the study of electricity and circuits already existed, the ability to program these machines would have fallen into the realm of a mathematician.  And since then, colleges have never been able to let go of a strong math background as part of it.

I'd love to hear some feed back on why math is so important here.  Because after 80,000 hours of tech work, I don't see it as a norm.

*Update: From conversations with many other readers, Science in general is very mathematical.  Most people sign up for Computer Science courses, and therefore having a math background is important.  Many college do have more practice oriented degrees available.


What should happen instead?  I believe that most colleges should drop the strong requirements in math when it comes to computers, unless the major somehow focuses on math over all.  The most important thing to most businesses is the ability to apply business logic in applications.  Even in game development, it is common to have a programmer use existing math functions, or stub out the code and let a more math focused individual figure out the most effective way to resolve a math problem.

TO STUDENTSUnless you know your goals will require a lot of math, like 3D Physics Engines, I recommend finding a school that focuses more on patterns than on math.



2) Why are outdated patterns running rampant in professional college courses?


"a good instructor will typically have real world projects and commitments"

Spaghetti code, Hungarian Notation and other terrible naming conventions are still demonstrated in modern courses, and those are just a couple obvious ones.  The real problem stems from instructors who are unaware or unwilling to find out about the changes happening in the world.

Items in a resume are typically obsolete past 4 years in the tech industry, yet many college instructors haven't worked outside the classroom for far longer.  I mean no offense to current instructors.  I've worked with some and helped them improve their classes.  The ones I've worked with have all been very receptive to new coding technology and patterns.  But by the nature of not having deadlines for projects, and not having to work with new technologies every semester, it is harder for many instructors to improve or even see what needs improvement.

I would say that a good instructor will typically have real world projects and commitments relating to the technology they teach.  They will probably have blogs themselves, but will be able to recommend others that they pay attention to about new techs and patterns.  The hardest part of it is that many Instructors don't know when their material is becoming outdated, and most colleges rely primarily on the instructors what is the right material to teach.  In my opinion, a good instructor will probably be split between working on paid contracts or projects for other clients and teaching their classes.  Often getting students involved in the actual work.

TO STUDENTS:  This is a tough one, but find a mentor working with as modern stuff as you can find; heck find a couple.  Ask them to review the required materials, and occasionally sample code and lessons from the instructors and see what they think.  Also make sure your professors are actually still in the modern world or programming.  If they haven't released TEAM projects in a while, don't trust that their training is modern.




3) Why is flash still being taught?

"I was a strong VB6 supporter, but I would never make it a requirement."

Flash will not work on Mac/Tablets/Phones, and in general is no longer accepted as a relevant consumer technology.  Despite that I still see plenty of colleges teaching it, some even presenting it as a highlight of advanced website development, this year.  While this relates to outdated patterns, the point is that colleges are often presenting classes, just because that is what they taught last year, and many students coming in won't know any better.  And these outdated classes are often required in order to pass.

I for one was a strong VB6 supporter, and did not like the fact that .NET required 15 times the resources in memory just to run it.  VB6 is still used by a huge number of companies, despite it being more than a decade old.  VB6 is an effective language, and I know there are plenty of jobs out there for people with good VB6 skills.  But I would never make that a required class for programming in college.  I could see offering it, especially if a considerable amount of local businesses were using it, but that's it.

TO STUDENTS:  Check dice.com for a lot of their required course topics, and see if you can find many jobs in the area you want to live.  Is it used much at all?  If you're not finding many of the required topics, even in the school's home town, it's probably a bad sign

*Update: After speaking with many of the readers, it was pointed out, that many colleges are trying to teach patterns and practices that can be applied to near any language.  Making the student more universally knowledgeable.  Despite that, the major languages of today have been out there for a while.  I still believe that a person can AND SHOULD be taught those principals via industry standards.  


4) College is often harder than it should be.


"It was one of the toughest reads I've ever experienced"


I remember the first book I read on Binary back in the 80's (though I don't recall the name or author).  It was somewhere around 200 pages, clearly written by someone with a strong mathematical background.  It was one of the toughest reads I've ever experienced.  Later in my own teachings, I was able to effectively teach all the same concepts and materials to 7th graders in less than an hour, and have them using it in code as part of a game class.

I also remember taking a course on some development practices that I was very familiar with, but wanted to make sure I had it down well.  The first 6 weeks were easy, all well below my skill level, but on the 7th week we were still doing things well within my skill level but presented in complex ways that made little sense.  I had to decompile the libraries to see the internal structure of the code to understand what on earth was required.  After reflecting on it for a while, I realized the project was simple, and relatively straight forward, it was just the instruction and training leading up to it was poorly communicated and complex to follow.  The students having trouble weren't at fault, the teacher was.  To their credit most of the course was good, but I see that happen all the time; papers and course materials written by people who are clearly brilliant in their professions, but poor communicators.

TO INSTRUCTORS:  You might argue that the real world is complicated and project are not usually straight forward.  The problem is that doesn't help you learn.  It would be far better to present the topics as simply as possible and then provide extra homework that focuses on breaking down more complicated business logic and code.

Tutors and any professionals assisting should be able to help correct and improve these issues in the actual course material.  But it is typically not their place to help.  College curriculum management is often a hidden practice derived primarily from a single mind (The professor) and geared to be unchanged by others unless there is an obvious mistake, and not for improvements otherwise.

TO STUDENTS:  Understand that materials are often taught from one mental perspective.  The fact that you don't get it, doesn't make you stupid, it more often means the instructor didn't present it well. Keep in mind that you might just need a different perspective.  When pieces of it start to click, try to figure out why it didn't in the first place.  Maybe it was a hard topic with no better way to learn it, maybe it was taught poorly, maybe you were missing some small but pivotal piece of knowledge that should have been picked up in an earlier course.  Understanding the difficulty will often help you with improving your learning with that particular teacher or course material.

*Update: from a college instructor at an ivy league university, I've been told that often colleges often like to include a few near impossible, yet required courses at the beginning as kind of a filtering out process.  I.e. if you don't have the determination/experience to figure you way through the course, then you *probably* won't do as well in general, but I disagree with this practice.  I should also include that I have no idea which colleges or how often practices like this are used.



5) So what's holding them back?


"what does it mean for students when the topics covered last year have changed"


Unlike most college majors, computers are changing at an incredible rate.  Medicine, physics and other sciences are seeing significant improvements as well, but they are usually improvements, not so much completely shifting paradigms.  Computers on the other hand, are evolving left and right, and not just in improvements, but significant changes that cause us to adapt different solutions and patterns in every language, not to mention the invention and need for new languages.

Many colleges and professors may approach course restructuring facing great difficulty.  It can be expensive; catalogs, books, accreditation and curriculum's need to be updated.  It can be confusing; what does it mean for students when the topics covered last year have changed?   It can be hard to track student growth; how do you track if minor changes helped when the entire class material keeps changing?  Professors and instructors need to know all these new materials inside and out; to teach it, you better know it.

There are hundreds of difficulties in altering the directions and requirements in courses, majors and colleges.  But this is what colleges and universities are supposed to be doing.  Below are some proactive suggestions.

TO STUDENTS:  Be expressive at your schools.  If you feel the technology is out dated or practices are not relevant, bring this up to your professor, mentors and school directors/councillors.  Schools often have the uniquely difficult task of staying ahead of the curve in technology, and at the same time keeping it stable and valuable.  Its tough, especially if no one is helping them.



6) Here are a few things I think can help colleges and universities.


6.1) Interview the instructors every year.

For real jobs.  There are many companies who would be willing to help out, if you put the requests out.  Let your instructors go out for some significant positions in their fields.  (not to actually find other employment of course)  Don't expect them to always succeed.  The point of the exercise is to start identifying when you are off base with what the real world wants.  The instructors should be taking a strong look at any part they came up weak, and also strongly considering if the courses are preparing the students for positions like these.

*Update, this also helps the teacher focus on preparing students for similar situations.

TO STUDENTS:  Ask your mentors to interview you for mock positions.  Not to get a job, but to get a review of how well you did, weaknesses you can improve and technologies that should have been more common.


6.2) Start Dicing up your required course topics.

Make a list of all the technologies listed in required courses (granted that is not so obvious when it comes to patterns and some other class types), do job searches (like Dice.com) in your area and compare them to other more popular technologies.  If you teach a technology that only has 5 jobs in your state and those are more just footnotes, its a good sign to at least drop it from required courses.


6.3) Have the students make the classes.

Offer extra credit for students to rewrite the training material.  If the students walk into a topic understanding that there is room for improvement, they'll be less apt to put themselves down for being too stupid to get it, and be more apt to figure out why it is difficult to learn, and once understood, be more comfortable sharing their difficulties with others.

TO STUDENTS: If you can, find mentors who are advanced in your class, or have completed it prior, and ask them if they can simplify topics when the teacher or teaching material is confusing.  People will help out more often than not, because it makes them feel more valuable.


6.4) KISS.

Keep It Simple Stupid. Math is not as prominent in computer science as many colleges make it out to be, but adds a high level of complexity that wards off the interests of many young programmers.  I implore colleges to put together groups to determine what is really important to jobs or not.  Around 50% of any interview I do is based on cultural fit.  But seldom are there courses that teach good cultural etiquette in the modern business world, especially in computer science.

The word Job might be too specific here.  Programmers are changing, often telecommuting teams of people who have never met.  And many of the biggest web companies started from kids in their garage (or basement or web team or whatever)  What is really needed?

TO STUDENTS: School Course Counselors can be a great value, but seldom will you find one who has "been there/done that" in your selected field.  I strongly recommend you find mentors willing to review the required classes with you and see it if is valuable or not, especially when selecting a school in the first place.


This isn't that tough, we can do it.

20140718

Creating a new training site. Looking for help.

I have been planning an interactive training site.  I have the skills, but not enough time. I'm willing to train other team members with a passion for learning.

Purposes of the site.
 - Provide training to others.
 - Training will be in *short videos
 - Videos can be added and voted by the community.
 - Forums on the videos with post taxonomy like "comment", "question" and "answer"
 - packs and series of videos covering a topic
 - Online testing and public displaying of successful results.

UX Goals:
 - Responsive Design
 - Easy Access, low registration/sign in requirements.
 - HTML5/JS components for posting video forums on other sites easily.
 - (Most of the statements from GoodUI.)

Income Model: 
 - I'm considering income models for the site, but first I want to get the primary UX goals (site map, general component UI's) out of the way, then figure out how to monetize it.
 - naturally the team would be included in finances, and helping to decide how to split the income.
 - I'm also open to a crowd funding project as well to cover some of the time and resources.

Technologies Planned (Microsoft focused):
 - C#, MVC, Azure, TFS in the Cloud, MS SQL Server
 - Web API (restful services)
 - HTML 5, CSS 3, JQuery, Transitions,
 - SSO, SSL,
 - Agile

How can you help?
If you already have some skills in the area, that is a major plus, but I can take on a couple apprentice type roles for this as well, so long as you have a passion for learning it.  Reach out to me at Dan.Sagmiller@LearnBuildPlay.com

Who am I?
 - My name is Dan Violet Sagmiller.  I have over 20 years and 80,000 hours development experience.  I am a senior level Programmer, Architect, Automator and Designer.  I have worked for Microsoft, Hasbro, Wizards of the Coast and a variety of others.  I have taught game development, business programming, websites, AI, and a variety of others at multiple colleges.  I was flown across oceans to train developers and implement new architectures for clients.  I'm excited about technology, training others and game development.

20140326

Ideas for Tiny games for classes.

I've been teaching game development for a while, and tend to focus on 2 types of games for new developers:  a 2D Space shooter, (as seen in my book) and an RPG/MUD style game typically done in windows forms.

While they cover the basics of programming/OOP pretty well, I'd love to get some fresh ideas in the class room.  I teach on a variety of languages, engines and platforms, so this is mostly a question of genre and key playable features.

I'd really love to hear what you think might be a great game to use for teaching game development.

OR, perhaps a method to build a game.  I tend to have the students create a descriptor engine for the 2D shooter, so they can easily apply physics, AI and other characteristics they want to which ever game object they want, while still learning a lot about Inheritance, overriding and other special features.  (as seen in my book)

Thanks!  :)

20140117

Getting Started with Unity 3D

(Its been a while since I've used this blog for training, but that is its purpose)

Unity is a great 3D and (pseudo) 2D game engine, with many games on the market, support for nearly every modern console and OS.  I'm offering some classes coming up soon, but you have to be near Hartland, WI for them.  The rest of this post gives you a way to get started now.


1) Get the latest version of Unity.  http://unity3d.com/unity/download

2) Watch this 15 minute video, which walks you through the creation of an Island, with a character running around.

Unity can do a lot with out needing to work on code.  Basically you can add existing components (scripts) to objects in the game to give them abilities.

3) Visit the unity store to find all sorts of additional scripts, models, shaders and more.  Many of them cost, but many are free as well.  https://www.assetstore.unity3d.com/

4) To start getting real power out of Unity, you will need to do some coding in your game.  C# and Java both work for it.  I've heard that the Java used in unity isn't really Java, but only very much like it.  C# on the other hand uses the Mono.Net framework, and follows standard C#.  If you want to learn how to program, I have a book available online you can try: http://learnbuildplay.com/Training/IndieGameDevBook

Unity is a great program, free to use and very powerful.  The pro version ($1500 purchase or $75/mo) has many great additional features.

Get started on it today!


20140110

Game Development classes, Hartland, WI, Starts Feb 3rd and 12th.

For ages 13 to 99, we are having Game Development classes in Hartland, WI starting in February.
(2 youth classes, 2 adult classes).   I should also point out that each course (7 classes each) is between $75 and $90.  I used to teach similar classes at Bellevue College in WA for around $800 a course.  This is a great program and a great price.


Screen shot from the actual game we will do in class.

To build video games, you need to know how to program, so the first course is "Learning to Program"
(To Register: Ages 13-17, Ages 18+)

In this course, you learn C#, one of the most popular languages in games and business development.  This first class won't end with a complete game, but it will end with pieces of games.  Whenever possible, all the concepts of programming will be taught as it might be used in a game.

The second class is "3D Game Development", where you will actually work towards a complete 3D video game.
(To Register: Ages 13-17, Ages 18+)

In this second course, you will learn to use the 3D Game Engine known as Unity 3D.  We will first learn how to use the environment without touching programming, in order to build the first parts of our game.  Then we will apply our C# knowledge to give Unity all new abilities and make our games unique.

If you want to try out Unity now, you can download the free version from Unity's website.  Then check out this video I created that shows you how to make a 3D Island Explorer game in 15 minutes.  Complete with Terrain, hills, trees, grass, textures, water, lighting (no shadows in free version though), a character that can run around and jump.  This will be the first half of the first class in the 3D Game Development course, but the course will be a bit more in depth on what the video covers, and naturally include a great deal more.



I hope you enjoy the video!  I promise you will enjoy the classes.

20131217

New Training Site in progress...

I've been getting closer to releasing a whole new video based training site.  It has a few unique features that I haven't seen anywhere else, but before finishing up the development of it, I wanted to hear what people have to say.  This will be for game development, programming, web development, AI, Physics, Math, UI Design and more.


  • What works for you with current online training sites?
  • What would you like to see in online training?
  • What annoys you about online training sites?
  • Any tips or advice?

20131203

Fire...

On Thursday, November 21st, the house I was renting (637 Anderson St, Oconomowoc, WI 53066) burned down.  My wife and I made it out ok, and she also managed to get our dog out, but we lost all our cats.  We also lost the majority of our things, of which nothing was insured.  

While we are ok with the lack of things, (and we will begin replacing what we need over time), I lost most of my computer equipment I use for classes.  I try to offer free education online, but I also teach classes, and provide laptops for students that don't have them available to use in class.  I had to put a pause on my current classes, because the machines have been damaged.

At present, I only have one student who was/is using a laptop of mine and I have already received one laptop from Ian Bestler (An old friend of mine who happened to be out in Wisconsin for the weekend, thank you Ian!) but I have new classes starting in February, and with it, more students.  It is hard for me to cover expenses of computers while we are taking care of everything else.  
If anyone has some equipment they could donate to me, to use for education, I would really appreciate it.  Here is a list of things I'm hoping to get replaced if possible:

  • Laptops, PC typically, though other OS's could work.  2G Ram+, 1.5 ghz+, 60G HDD+, Power Cord
  • Projector screen, I was using an 8x4' stand up screen.
  • WiFi Router, (I use this for networking the laptops in class)
  • Remote Keyboard and Mouse (to keep up mobility in class)
  • Bright Extention Coords, Good Power Strips
  • Printer/Scanner (used for printing materials)
  • LCD Monitor (I have one, but I'm used to two, and the power controller burned out on my second screen)
  • *Other - I did not originally have or use Android in the classroom, but thanks to Ian's contribution of a Nexus 7, I now have Unity 3D games running on it, and can use it in classes as a testing device for students.  If I receive a device I cannot use, I will try to make sure it goes to good use somewhere deserving.  
  • Projector, I have done everything I can to clean out the current one, which sort of works now, but it makes the whole room stink of burning plastics any time I turn it on.  It is a 1080p projector, but lower resolutions can work. --> I spent several more hours cleaning it, then let it run in the cold winter air.  Most of the smell is gone now.  :D  I should be able to start using it for classes again!

If you are sending me something, my friend David Bock, an experienced Aikido instructor with Abundant Joy Yoga Studio and also owning and operating Bock Accupuncture , is letting me use his mailing address until I have a more permanent address setup.  Please send anything to: Dan Sagmiller, Care of David Bock, Bock Accupuncture, 888 Thackery Trail #206, Oconomowoc, WI 53066.

Learn Build Play is *not* a non-profit business, but so far has made no profit.  I teach the classes because this is what I love doing.  If you are interested in helping out, but have no devices from the list, we can accept cash as well.  


20131006

Book Release: Indie Game Development with C# and XNA

I've just released a book that can be found here: http://learnbuildplay.com/Training/IndieGameDevBook

Its part of my (future) series, From Concept to Complete.  It takes you on a journey of making a game, where you act as a team member helping to prepare the entire thing.

  • Game Design (brain storming, defining fun, minimal documentation)
  • Team Management (how to keep people motivated, and the project progressing)
  • Beginning C# Programming (Covers quite a bit)
  • XNA Game Development (Multiplatform, 2D for us, but also does 3D)
  • Game Release (Finances, Marketing, Investors)

I have been teaching Game Development courses at colleges since 2006 and have not found a book that I thought worked well enough with my teaching style, and really covered what I wanted it to cover.  So I kept preparing my own handouts and materials.  This book is based on the materials and training that I have been perfecting class after class and refining based on results.  

At present, most of my work relates to Unity 3D for game development, such as for my project, Warp Wars.  Perhaps in a year I will generate a book on Unity 3D, after I've had a chance to teach it in a couple class rooms.  XNA is not dead though.  It works great, and if you are planning to develop a fully 2D game, XNA is actually a better choice.  Unity 3D can do 2D, but it is not focused on it, and requires some extra hoops to get 2D to work.  XNA is a great place to start, and relatively easy to build games from a programmers mind.  Unity is built more for a Designers mind.

20130515

Dynamic Video Training

A while ago, I had an idea to make interactive video content, that would change the contents of the page based on your location in the video.  Today, its here.  Its very basic in its operations, but related content shows up in time with the video.  I have the first training video on the site as well.  Here's an example of how the content changes over time: (http://www.LearnBuildPlay.com -> Training...)


I plan to have more videos that work with this, and I also plan to create a forum that includes being able to post against a specific time in a video, and not the entire video as most other video sites do.  Its  a work in progress, and will need some considerations along the way.  Please let me know what you think, and if you have any ideas to improve it.

20130501

Training Video 1 complete! How To Get Started in Game Development.

I just completed my first video for Learn Build Play and Pinkie Square, on the current top FAQ from kids, "I want to make a game, how do I start?"  In it, I cover a few key topics, such as trying a tabletop game, experimenting with free game editing tools, finding a mentor and getting more resources.


This is not my first video, but I'm still very new to it.  I'm also very much open to ideas on how to improve these videos moving forward.  The video tool I used is TechSmith's Camtasia.


If you like it, please pass it on.  If not, please comment openly on how it could be better.  

Thanks.

20130412

XNA to ashes, along with my book, but I'm not done yet. :D


After several months with no contact, I have bad news to deliver.  The book I completed, that was in review, will not be published.  In February, Microsoft announced that XNA is done.  It will see no more development, and all official support will end as of March, 2014.  With news like that, no publisher in its right mind would publish a book on it right now.

I had neglected this blog, as this affected far more than just the book.  Most of my game development classes used XNA as a standard for development.  So I had to select a new development engine and get myself accustomed to it.  I'm pleased to say that I'm nearly ready to introduce a new series of classes based on Unity 3D.  I've spent the last two months figuring out a game to build to take advantage of the 3D environment, and at the same time simple enough that it would be a good starter game.  So I chose to make a Real Time Strategy game.

RTS's are not simple, but huge undertakings with a lot of work.  But I'm not actually building an RTS.  Instead, I split the game into its 3 key areas, a City Builder, a Tactical Game, and a Strategy Game.  I spent a while on GameDev.Net's forums talking with other developers and players about what the best parts of RTS's are and what their missing.  In the end I came up with a solution that turned into a project code named Warp Wars.

I started planning it out, created a full GDD (the light type I normally use for Design Classes) and started building.  Since the start of it in January, when it started as a small spark of an idea, it has grown into a project with 10 people offering help on it, a blog with hundreds of views every week, an active User Voice site (where people (and me) are bringing up ideas and bugs) , a public/private development forum, and most importantly, the real website and the Live Demo.

The blog gets regular updates, but here are a few snap shots of the progress in the game:
  


The Live demo has functioning registration, the map is different for every player, scrolling and rotation of the near infinite terrain and in the next two weeks, we plan to add the first in game menus, and the ability for a player to add buildings.  Connect to the blog for regular updates.


Kenzie's Project:

I'm also please to bring up a project on kick starter, about a 9 year old girl making her first video game.  It originally started as a fight between her and her brothers. They said she'd never be able to build a real game.  Instead of get discouraged when things got tough, she got going.  She researched how to do it, found RPG Game Maker and a training course for kids her age, where you end class with an actual game of your own.  The only problem is that the training package and the environment came up to over 1000 dollars.  

She and her mom, started a kick starter project to see if anyone wanted to support the idea, and get a a copy of the finished game out of it.  Kick Starter exploded with responses.  Unfortunately many of them were complaints, even threats, saying the whole thing is fake.  But fortunately, over twenty three thousand dollars in small individual contributions have taken Kenzie's initial hope and turned it to something bigger.


They've created a site called Pinkie Square, which is based on her in ability to say "pinkie swear" when she was younger.  This site is dedicated to helping kids learn to make their own games.  You really should check it out.  And when you do, drop into the Create section, and check out who's going to help them setup training videos and Q&A for kid's game development.  

That's right, I will be.  :D  This is re-igniting some of my earlier plans of Learn Build Play being an online training community.  I'm preparing some videos now that I'll be posting on Pinkie Square, this blog and the new version of the Learn Build Play website that is underway now.  Pinkie Square will be focused on Kids, and Learn Build Play will cover more, but teaching kids is a strong passion of mine.  I had to go through a lot of hurtles in education growing up, so I'm doing everything I can to make those easier for the next generations.

Check back soon for more updates.


20121101

Play Test In Progress...


                I've completed all the chapters in the book, but I still have some cleanup tasks to take care of. 

Remaining Tasks:
Spelling/Grammar Checking, in progress, about 40% done.
Comic Characters will be added to the last two chapters.
Finalize Comic Images.
Comic images will be put in place (many are just stubbed out with the character name)
Hi-lighting changed lines, 10% done.
Index
Covers - Front/Back
Testers/Reviewers (Underway Already)

Play Testing:
                So last night, I had a tutoring session with one of my students.  He usually leaves about 9PM, sleepy, because he gets up early.  Last night, he left far more awake than usual, and with a high level of mental activity. (Determined from his constant suggestions of additional ideas and general energy level)
                Last night was also the first night that I had worked completely out of the book for a class.  I used the first real chapter, which talks about brain storming, and how to keep up creative flow.  It built up quickly when we tried some crazy ideas, which is part of a practice brain storming session to hold at the end. 
                To summarize, the use of the book worked great.  The energy level of the class was higher than usual, and it was fun. 
Considering:
                Now I’m considering producing a Syllabus for others to use this in their classes.  It should work pretty well for 8th grade youth through adults.  I’m looking for some teachers who would be interested in working on that with me. 
                I have free reign over how I run my classes, so I figured it would be good to also get ideas from someone in a more locked down environment.  I’m figuring some video examples would be pretty good to go along with it as well. 

Contact me if you’re interested in reviewing this, either as a reader or a teacher, or both. 

Don't forget you can download a copy of the game at any time: http://sdrv.ms/S618fG  (expects windows)

20121028

Book Complete, First stage of Cleanup in progress...


                I’m nearly done with the book.  All chapters have been written, with one exception.  I’m finishing up a chapter on how to market the game, something many people lack.  You can get the source code with the book, but I’m releasing an installer for the game.  I make no claim that the game is an awesome product, but it is an awesome learning tool, as anyone purchasing the book will learn how to make the whole thing. 

                This book covers beginning programming in general (with C#) but as a separate section, it then shows you how to use XNA.  You’ll learn everything you need, even if you don’t have a clue when it comes to programming. 

                It’s a short game, but the engine was left in a spot where it is easy to add more levels, more characters, more power ups, more menu features etc…  It’s meant to be a good place to pick up when you finish the book.  J
Link to the Installer: http://sdrv.ms/S618fG

If you want to see a video of it, check out the latest video update on Kickstarter.com
http://www.kickstarter.com/projects/1667690760/completing-a-game-development-book

20121003

Book Release Coming Up!


                For the past few years, I've considered writing a book on C# and game development, but I could never get enough into it to be satisfied.  I would complete a large portion of it, or smaller sections that I would use for classes, but for a whole project, I haven't been able to express as much as I wanted to.

                But that changed.  A couple months back, I decided on a way to write it, starting out with Game Design as the first section and including how to keep a development team active.  Then I went into programming, game development and even release. 

                The book has 5 main characters. 
·         The Narrator
o   Me, the Author
·         Kathy Konfident
o   Experienced Game developer, knowledgeable in all areas, ready to dispense tips and advice
·         Daren Donagry
o   Beginner programmer, no real past experience, demonstrates a lot of classic mistakes beginners often do (I certainly am guilty of most of them, early on)
·         Wilma Wannabi
o   Really wants to be involved in the game project but doesn't have any specific trade skill. 
·         Mark Moneybaggs
o   Represents an investor, someone trying to make sure it can make money.
·         Other random characters
o   Others show up from time to time, including Socrates and Space Ghost, to help illustrate certain points.

In a short while, I'm going to be announcing a Kick Starter project about it, so that others can get involved.  At 25$ donated, you get your name in the book on a list of people who helped make the book possible, 75$ donation, and you also get a copy of the book sent to you as soon as its off the presses, and at 150$, I'll have my artist draw up a character of you (real or fictitious), and your character will show up at least once, in a helpful way.

It seems like a great gift idea if you have a family member or friend that has been interested in game development, but just hasn't taken it up.  As long as they have started Algebra (A+B=C) they should be good to learn programming.  Imagine getting them a programming book as a holiday gift, and half way through it, they find themselves in it as a helpful character in the book.

Anyway, I keep working on the book, and its closer and closer to completion.  I'm hoping to finish in late November, run it through testing for a few weeks, and then release before Christmas.  It is a close time line, and it is possible that the dates could slip.  If testers find an area complicated or confusing, I'm not going to release it as is.  I will fix it first.  No good going to the printed word, if it is wrong. 

I'll keep everyone posted with updates as we get to testing, artwork and release, on this blog.