Archive for the ‘ Tutorials ’ Category

Updates 10/29/2011

UPDATE TIME!

Game updates

So today I just released an update of my game, showing off the keybind system (which still needs some work), a little bit of the gameplay (completely unfinished), and the settings menu in action. This video can be seen here.

The things shown in the video include:

  • Options Menu
  • Saving and loading of options
  • Moving around in game
  • Editor Scene

The music in the video was by Approaching Nirvana.

The things I need to work on next are:

  • Shooting at objects
  • Limits to playing field
  • Keybinds allowing shift, alt, and ctrl modifiers with key presses
  • An appropriate options menu that is a whole lot more useful
  • Editor

Tutorials

This weekend I released 2 tutorials on soldering, where in the first one, I soldered 2 wires together, to teach the basics of doing it, and in the second I soldered together the MakerShield from the MakerShed.

I also plan to put together a few more C# tutorials this weekend, and hopefully upload them all on Monday. There is just one snafu with that plan, which you can read in the next section.

General Life

Tutoring?

That is right, I am getting tutoring from Meredith Scheff in a bunch of different things. We went over soldering these past 2. I already knew how to solder, but I couldn’t figure out why it wasn’t working as well as I had believed it should, and she explained why. This upcoming week, we are going over something awesome! Arcwelding! Yeah, you heard me right! Technically, it is MIG welding, Metal Inert Gas welding. We will be welding a little metal box together, which should be fun.

In my tutoring with her, we will also be working on a costume for next years Burning Flipside Festival, down in Apache Pass. I am making a Time Traveling, Victorian engineer. My Time Travel machine? A backpack! …Wait… wait… Did I say Victorian?! Yes sir I did! We want to make the whole costume be in a steampunk apparel, since I am having a major obsession with steampunk right now…. Ohhh ideas for my game!

Schools

Yep, it is that time of my life…. Applying to college! Finally growing up, eh? Well, I would list all the colleges I am applying to, but I don’t want to bore you, but wish me luck, my readers! I am definitely going to need it for a few of the colleges I am applying to!

Also, Just saying, these college applications take up a LOT of time, so that is one of the reasons I haven’t been around… boy have I been busy…

Schooling! (As apposed to SchoolS)

So yeah, funny heading, but just wanting to let y’all know what else has been taking up my time! I am taking a pile of AP courses this year, and I can barely keep up with them while trying to get all the other stuff done that I am wanting to do, so instead of doing all that other stuff, I spend half my weekend pouring over my course work, while the other half, attempting to have a life. (A life? HA! Right….)

Other fun or not so fun stuff going on

Well, tomorrow (Sunday, 10/30/2011), TotalBiscuit is doing a WTF-a-thon, which basically means, in 12 hours, he is going to try and do the first 15-30 minutes of as many games as he can. He will be live streaming all this, and I hope to catch most, if not all of it, so that basically means I can’t have a life at all tomorrow. That will impeded on my ability to get those C# tutorials done that I promised early, but we will see if I take a break or 3 in watching to get stuff done.

Another interesting thing going on in my life is… Well…. My life has been consumed for the past week by this awesome game by Trendy Entertainment called Dungeon Defenders. It is absolutely amazing, and I can’t get enough of it. Or at least, I couldn’t… I am starting to get bored of random searches, and since I have completed every level, all I have left to complete are challenges and leveling… And then of course Insane difficulty… I am really wanting to play the game with friends, rather than random people, because it is just SO much more fun.

As for not so fun, well… I am in a huge rut right now, and it is kind of a nasty place to be… Just do note, there is some not-fun stuff going on in my life, and that is as far as I want to talk about it on my public blog… Love you guys anyways. 🙂

And lastly, I’d like to conclude with wishing my schools band the utmost luck in the competition tonight in Atlanta! My friends (and enemies) in the band better do excellent tonight, otherwise I will be drastically disappointed!

Advertisements

I am back, with a vengence

Ok, so after having a long break from my wordpress, I am back!

A few things I plan on updating on this blog are these:

  1. My tutorial series
  2. The game I am working on
  3. Anything else I am working on

And to get it all started, here is some little information on my upcoming tutorials:

The reason my tutorials haven’t been coming out very much lately, is because I have been working on a beginners introduction to C# tutorial series, along with being very busy for school. Being a senior, and starting to apply to different colleges, I have lost quite some time to do things, add in the fact that I have quite a few difficult classes that are very taxing, video tutorials are slow coming, but they ARE coming!

In this new series that I am working on, I will go over what a Variable is, what a method is, what a class is, and how you can do a whole bunch of different things in C#. I will be making example applications on different basic features of C# and programming in general, and be making a hopefully easy to follow and understand series on the basics of programming in C#. I know for a lot of my followers, this is pretty useless, but I can’t tell you how many times I have been asked the question, “How did you learn C#? It is so complicated for me!” This tutorial series is designed to combat these questions.

Anyways, that is it for now, and I will be getting back to the people that follow my blog with more things I am working on and any other interesting news.

Unreal videos going unlisted

They aren’t very popular, and as much as I want to make my channel more diverse, the people that come to my channel come to find Unity. Beyond this though, I cannot work in Unreal anymore, as my nFringe install is messed up, so I am just going to stop the series, and focus on the Unity tutorials from now on.

Here is the list of episodes:

  1. Episode 1: Introduction
  2. Episode 2: Gameplan and new classes
  3. Episode 2.5: Importing a model
  4. Episode 3: Character Model and Camera System
  5. Episode 4 – Beginning of Custom Input Class and Flash Mouse Setup

News…. News…. News….

The gameplay is coming along.

You can do all of these things:

  • Move your ship.
  • Bring your custom created ship in game.

Working on firing now.

Editor also has quite a few new features.

  • Drag planes
  • New Duplication Window, including mirroring, left, right, up down, front, back duplication
  • Multiple states of the editor, including attribute/equipment editing.

This is great, however I feel I may rewrite the whole app all over again, with an MVC pattern, as that will probably improve readability and usability of the code.

Tutorials

I have to record a new tutorial for my youtube channel. I think I am going to try and get at least two out this weekend. I feel that these tutorials should be coming out at a higher rate. Maybe 2 a week from now on?
I must say though, UDK tutorials aren’t very popular. I think I may just stop those, even though they are fun and interesting to do. Unity tutorials are more popular. But then again, my latest ones have only hundreds of views. People are getting disinterested. What is the point in these? Meh. I will continue, and if my viewer count drops more, I shall stop making tutorials, or I shall re-advertise my tutorials.

Singularity Particle Emitter

An awesome particle emitter that I am currently working on. Hopefully I will have time to work on it. Ran into some problems though. Going to be problematic. I will get on these later, and post updates at a later time.

Android

Learned some about the Qualcomm AR plugin. Probably going to be doing a tutorial on that. However…. I don’t think that will be as popular as doing a tutorial on game development. Not sure which to do first.

I also have a business venture for my dad, so make an AR app for android. I am not sure how to do everything he is requesting. Where do I start? Must learn Java. That would probably be a smart idea. Then have to learn to write a java plugin for unity. Hmmm… Use unity?

Life

Life is a pain. School is getting in the way. Got into the beta for an awesome game called Rift. It is fairly fun. I may quit WoW for it when it comes out, however I don’t think it will hold me past Guild Wars 2.

Time is getting away from me. I have been more and more disinterested in development, just because of school starting. I have no idea what it is, but my mind just wants to lock up. I think I am starting to become a normal human being, instead of the kind of person that locks themselves in their room for 40 hours straight. Hmmm… Need to fix that.

Anyways….

Enough of my ramblings, I think it is about time I stop typing. At 500 words or more, and I am fairly sure you don’t care about half of what I wrote. Logging off, have a good night to all who may read this.

GUI.Window Wrapper

So, I wanted to make windows that you could close and open, and you could minimize (move to the bottom of the screen), so I made this wrapper.

To download, go here.

Copy and paste that into a new C# script, called “GUIWindow.cs”.

How it works isn’t hard. Make a list of GUIWindow.

private readonly List _windows = new List();

and then, in start, you just add new windows to it, like this:

_windows.Add(new GUIWindow(new Rect(350, 5, Screen.width - 700, 70), 0, "Toolbar") { Minimizable = true, Closable = false, Opened = true, WindowBody = ToolbarPanel });

and in OnGUI() you just loop through all windows, and call their UpdateWindow() method.

Do note: WindowBody = ToolbarPanel means that WindowBody is asking for a function that returns void, and takes 0 parameters.

Joys of Serialization…. in Unity….

So, serialization is super awesome…. Especially Binary Serialization, where you can save a file that cannot be edited outside your Application.

However, when attempting to use Binary Serialization in UNITY, it causes a whole mess of problems. For example, if you want to use Vector3s, Colors, etc., you must create your own float3 (or equivalent) so that you can serialize it, because Unity doesn’t have them as Serializable objects.

 

So, I decided to write up a basic text based tutorial on how I dealt with this:
Note: [System.Serializable] is KEY!

 

[System.Serializable]
public class ship {
[System.Serializable]
public class shipParts {
public string name;
public float3 position;
//…. more position and color data stored here as float3’s
}

public string name; //Information about the ship stored here
public List parts;
}

[System.Serializable]
public struct float3
{
public float3(float X, float Y, float Z)
{
this.x = X;
this.y = Y; // constructor for X Y Zs.
this.z = Z;
}

public float3(Vector3 vec3)
{
this.x = vec3.x;
this.y = vec3.y; // constructor for vector3s
this.z = vec3.z;
}

public float3(Color col3)
{
this.x = col3.r;
this.y = col3.g; // constructor for colors
this.z = col3.b;
}

public float x;
public float y; // variables
public float z;
};

As you can see here, I had to create a custom struct, just to store out the positions, then, when I re-instantiated, I had to create a new Vector3/Color and put in the values the float3.x, float3.y, and float3.z values.

Now, that I got that into place, time to serialize!

//……… code

var parts = new List();

//foreach part in scene, we need to create a part for it
foreach (var inSceneMesh in _inSceneMeshes)
{
var j = new ship.shipParts();
j.name = inSceneMesh.name.Split(‘(‘)[0];
j.position = new float3(inSceneMesh.position);
//more information about the part to store….
parts.Add(j);
}

//create our ship 🙂
var ship = new ship();
ship.parts = parts;
ship.name = _shipName;

//create a directory to save it in, if it doesn’t exist…
if (!Directory.Exists(string.Format(@”{0}\Saves\Ships”, Application.dataPath)))
Directory.CreateDirectory(string.Format(@”{0}\Saves\Ships”, Application.dataPath));

//open up a stream, that allows us to write data
var stream = new FileStream(string.Format(@”{0}\Saves\Ships\{1}.ship”, Application.dataPath, ship.name), FileMode.Create, FileAccess.Write, FileShare.Write);
//create a Binary Formatter, and serialize the data into a Binary format
//then close stream
var formatter = new BinaryFormatter();
formatter.Serialize(stream, ship);
stream.Close();

//……… code

Now that we have it all serialized, we can then go and de-serialize it! Yeah! Almost done!

//…….. more code
using (var stream = new FileStream(shipFile, FileMode.Open, FileAccess.Read, FileShare.Read))
{
var formatter = new BinaryFormatter();
var obj = (ship)formatter.Deserialize(stream);
if (GUILayout.Button(obj.name))
{
ship.currentShip = obj;
Application.LoadLevel(“Builder”);
}
}
//…….. more code

As you can see, de-serialization is much easier, but that isn’t the end of it, that is just making it so that we can load it up in our Builder scene, so that we can take the info and stick it in, but you should be able to figure it out from there. 🙂 All you have to do is instantiate each shipPart, and and set its properties, which are stored in the ship.currentShip static variable, which holds a ship….

Hope this helps all of y’all!