Stuff Under the Header

4/05/2013

Progress Comes With A Voice


The birds are all back. My 3 birds that usually hung around my work are all running about their daily routines and periodically stopping by to ask for food. Even the bird that ate from my hand is back daily now, so that's really nice to see again. One of them doesnt approach too often, but she's often seen collecting materials for building a nest. Most of the times that I see her on the ground, she's got a beak full of grass. Even one of the males have opened up to me and been closing the distance.

DT3 Progress
Gate 5 development has started recently, and like the times I started other gate levels, I actually put the progress on hold for about a week to address other problems with the game or just things that have been settling for awhile. On the Gate 5 stuff, I've had a lot of help from Ano0maly on making the Samus set more interesting, but without overpowering it compared to the Megaman set. He's been a lot of help and I'm sure his input will be great for the rest of the gate level.

Acapella
I don't really like it, but like all things, there are a few exceptions. A youtube user who goes by SmoothMcGroove does acapella for video game music and it sounds really good. For me, the best goes to his parody of a song by Fall Out Boy. This is something pretty awesome and fun to listen to. I guarantee it'll bring you a smile.

Something I've Been Asked on Occasion
Has been about my background with game development or multimedia in general. My first 'real' dive into games was with C++, which after having messed with quite a handful of languages, I feel it is a horrid language to start someone with. The progression the class went was:
- Hello World
- Variables, Strings, Input, Output
- Structs
- Classes
Compress this all into about 6 weeks in a class intended for people who have never seen a line of code. There's a few small details mixed in the list above, but those are the main points. For people this class was intended for, it went far too fast for most of us to understand what we were really doing. Going into object classes, it wasn't explained well what that was really doing or the power behind object orient programming. Having taken a look at the curiculum at a later date, I realized it wasn't the instructor who was giving us hell.

Visual Basic, or even Javascript, (to me anyway) is a better language to start someone with.
[/randomstuff]

After that, I went into art... yep... It was world modeling and texture painting. I really enjoyed texture painting, though this was before the days of normal mapping, parallax mapping, and all the millions of other layers we have today. I enjoyed painting the diffuse map. A lot of my 3D days were spent in Unreal, making maps and scripts for that and trying to make the Karma math engine not suck. (Unreal Engine 2.5) I enjoyed making maps that featured a series of Tomb Raider like traps, one leading into the other. I'd upload those maps with the associated scripts here, but those have sadly long been lost into digital nothingness.

After that, I discovered the magic of frien scripting. And that's where we are now.

17 comments:

WhattayaBrian said...

Oh, codez. :)

So, I'll start by saying that every computer scientist has their own opinion about "how to teach programming" that's usually very similar to their own.

Long story short: If you want to get into the commercial (or not) game development business as a programmer, start with C, then learn C++. This is what I did.

If you want to program for utility for some other thing, just learn Python/Ruby, and move on to C# if you need something more robust. This is *also* what I did.

Those are my viewpoints, nothing more.

However, what I really think the problem is, is that no one teaches people "How to Program". They only teach people "How to Program in C++" or "How to Program in Java", etc. If we draw a parallel to art, then these are the "How to Draw with Acrylics" and "How to Draw with Colored Pencils", but there's no parallel for "Basic Shapes 101".

We haven't internalized the need for Fundamentals programming classes. So we get first lessons that go like this:

#include
using namespace std;

int main()
{
cout << "Hello World!" << endl;
return 0;
}

"Well, that first line...just sort of ignore it for now. It lets us use 'cout' and 'endl'. And the next line makes it so we don't have to write 'std::' in front of those keywords--it's great! Um, main just returns an int, don't worry about why for now. Now, the '<<' operator is normally the left-shift operator, but here, just remember that for cout it means 'print me'. String literals are enclosed in double quotes. 'endl' prints out a newline. See how you can chain '<<'s together? And then we return 0. main always returns 0--don't worry about it for now. In fact, if you don't write return 0, it'll do it implicitly!"

UGH.

My first lesson was something very similar to this. It is USELESS.

Obviously, you need some sort of language to teach fundamentals. I think C is good, but there're a lot of choices. But the class shouldn't be about C, it should be about programming. The reason people say "once you've learned one language you can pick up the rest quickly" is because there are a bunch of fundamentals that are shared!

/rant

Gate 5 yay. :)

WhattayaBrian said...

Also I guess this happened.

ZephyrBurst said...

Ooh, a DT3 demo LP. Looks like I'll add that to the LP list. Just cause.

And what you said is exactly the problem with first level programming classes. (Or whatever they're called.) None of those operators or commands are really explained, they just say, "Use them!".

And I agree with moving to C# for that reason. C# is amazing. It combines a lot of things that I like about the C language and scripting.

ano0maly said...

My first programming class was a 10-week C++ class that spanned from variables, loops, arrays and strings, pointers, and classes at the end. I don't think the classes are necessary for an elementary C++ class. You can learn an object-based C++ later if you want to.

Basic parts of C++ is readily usable for the beginning programmer, because of the simple iostream and because of all the overloading. But I can see that it gets confusing later on. The book I used was great; it illustrated the purpose of different code elements, and had a lot of examples I could follow. That's really how I learned. It's like a puzzle where you piece things together and test it to see if it works.

WhattayaBrian said...

@ano0maly

I agree, you can mostly ignore the minutia if you just want to "get things done", but then you have to ask yourself: why are you using C++?

C++ is a tool, and its purpose is "I need extreme control over every aspect of my program." Games need this because they are often intense graphically and physically. These things need to be very efficient, or the play experience will be affected. In this sense, from an educational standpoint, you *can't* simply ignore all the fine details.

But say you want a program to organize some files for you. Then by all means you don't really care about efficiency, you just want it done (touching the hard drive is going to spike your framerate anyway). In that case, it's best to use something made for that: Python, Ruby, C#, etc. Hell, even Batch/Bash would be a better choice in a lot of situations than compiling a C++ program. Especially for throwaway stuff.

In the end, I just don't want people hurting themselves unnecessarily. I say this as an avid lover of C++. It is a beautiful monster, and it requires a large amount of experience to be about to take advantage of its capabilities.

I also tend to think it's bad to start out with because it will teach you bad habits. C will teach you what ugly but good code looks like. C++ lets you make it pretty and maintainable, but if you're not careful, it'll stop being good code.

If you don't mind my asking, why did you take that C++ course?

WhattayaBrian said...

MORE SPAM

Zephyr, feel free to replace my let's play link with this since that will autoupdate and stuff.

ZephyrBurst said...

It is done.

ano0maly said...

It was required for my curriculum.

Though now that I've learned Java, it looks cleaner and more consistent.

Kurtis Haren said...

I started out with a set of books I got for my birthday. They came together as a set, but one went over BlitzBasic, and the other was a Visual Basic book that assumed you already knew what you were doing. I tried taking a Java class during Running Start (college classes at high school), but they didn't have a class to follow the initial one where I live.

Right now, I'm trying to teach myself ZScript (scripting language used for a game making program called "Zelda Classic") because it's supposed to be very similar to programming languages like C++, and I was told that it was a good place to start and learn the basics on how programming works. The only real complaint I have is that it's kind of difficult to try and learn this by myself. It's a lot easier for me to learn something if I have somebody else learning with me so I can ask questions and get help when I need it. That was the problem I had with the college course as well. It was an online class, so I didn't get to have any time to ask the teacher questions or get any useful help.

Kurtis Haren said...

I'm watching that LP on the DT3 demo, and I wanted to ask something. You said that you're making it so that an upward-firing Bullet Bill will be killed if it hits you from below in a standing position, right? Doesn't that mean that you can just stand on a block where you auto-kill Bullet Bills, walk away from the game for a few hours, and come back to a huge boost in points? Probably a stupid question since you've probably already thought of that, but I just wanted to ask anyways.

ZephyrBurst said...

That's a good point, and an easy thing to counter.

Kurtis Haren said...

Saw your video on the DT3 LP the other day. It was really cool getting to hear about the development process and what went through your head while making the game alongside Brian's gameplay and commentary.

You ever consider doing videos on your own games? I mean, you could show off what you're always talking about with DT1 being intended to flow quickly with the combat system, and you could talk some more about how you made the games. I know you've said that you consider yourself fairly boring on video, but having seen you on the LP video, it was actually really entertaining.

ZephyrBurst said...

I've toyed around with the idea, which is really the best answer I can give right now. I think I just don't know what direction to go with it while keeping it entertaining.

WhattayaBrian said...

Just swear a lot.

Works for me.

ZephyrBurst said...

But think of the children! D:

Kurtis Haren said...

I have six younger siblings. A bit of mild swearing doesn't bother them too much. As long as you're not saying things that would have made George Carlin blush, you should be fine.

ZephyrBurst said...

I miss George Carlin, he was awesome.

But anyway, I don't swear often in my public stuff. In my apartment around Jerry, that's another story.