Learning to Program vs. Learning to Write Software

By Shamus Posted Monday Jul 11, 2011

Filed under: Programming 251 comments

There’s a book called Teach Yourself C++ in 21 Days, which can be read for free online if you have the inclination. When people have come to me asking for suggestions about where to begin with C++, that’s usually where I send them. Looking back, I’m not sure that was the best move. Although, I don’t really know where else to send them. College maybe? That’s an excruciatingly expensive and time-consuming way to learn, and probably not a good choice for the curious person looking to test the waters. Even that might be a bad idea. A lot of people seem to read books and take courses and emerge on the other side having no idea how to make useful software.

Imagine a book titled, “Become a novelist in 21 days.” There’s also a college course that purports to teach you novel-writing skills. Inside, you will be instructed in grammar, spelling, punctuation, proper capitalization, and page formatting. Afterward, you march out into the wide world calling yourself a “novelist”. I mean, that’s what writing a novel is, right? Putting words together? And you totally know how to do that. You got an A and everything.

I’ll admit I’ve never seen the inside of a university as a student, and I’ll freely admit Ive got shameful gaps in my knowledge as a self-taught coder. But the way C++ is taught seems to have the most alarming omissions. For example, I know people supposedly educated in C/C++ who have never had to:

Continue reading ⟩⟩ “Learning to Program vs. Learning to Write Software”

 


 

Blip.Tv & Producers

By Shamus Posted Sunday Jul 10, 2011

Filed under: Rants 77 comments

splash_tv.jpg

I was planning on going back to Blip.Tv after a few weeks and re-visit the service, but there’s one point about my original tirade that’s been eating away at me. I want to set the record straight, and I don’t want to wait a few weeks to do it. While the over-saturation of ads on Blip was really aggravating, it wasn’t at all fair to heap the blame on them the way I did. We talked about this in the comments, but I want give this correction its own post where everyone can see it.

Continue reading ⟩⟩ “Blip.Tv & Producers”

 


 

Hitman: How to (Pretend to) Kill the (Fake)(Vice) President

By Shamus Posted Friday Jul 8, 2011

Filed under: Spoiler Warning 86 comments

The old saying is, “If you can’t play golf well, learn to enjoy playing it poorly. ” Substitute “golf” with “murder hundreds of people”, and you have Rutskarn’s Hitman series.


Link (YouTube)

“Oh God! Oh God, what have I done!?!?!”

“Somebody, eventually has to go to this bathroom.”

“Yeah, I’m not seeing a whole lot of compelling reasons not to kill that dude.”

“Damnit, I didn’t want THAT one. I wanted the naked one.”

 


 

Project Frontier #14: Import Models

By Shamus Posted Wednesday Jul 6, 2011

Filed under: Programming 166 comments

So I have an animation system that works. I also have a system to import animations from bvh files. Now all I need is a figure to animate.

frontier13_2.jpg

I have a look at the various file formats available to Blender. There aren’t many. (The previous version of Blender had a LOT more file formats, but I didn’t know about that when I was working on this.) The Direct X format, creatively named “X”, is a likely candidate.

I would like to meet the guy who chose the name “X” for their file format, so I can thank him with a surprise elbow to the face. Do you know what a pain in the ass it is trying to search for information on “.X files”? I want to know about the file format, and most search results are focused on Mulder and Scully. Even when you search for “.X 3D file format”, you’re still going to find your results sprinkled with stuff about the Smoking Man and aliens.

Still, you can go a long way to figuring out X files (see?) by just reading the file itself. It’s a parser’s dream: A unique word (like “Mesh” or “MeshMaterialList”) marks each part of the file. Then there’s a number, saying how many things it’s about to list for you. Then it lists them. Example:

Continue reading ⟩⟩ “Project Frontier #14: Import Models”

 


 

Project Frontier #13: An Animated Topic

By Shamus Posted Monday Jul 4, 2011

Filed under: Programming 86 comments

Heads up, I did a weekend post on project frontier, so if you’re one of the many Monday-Friday readers (aren’t you supposed to be working?) then you might have missed it. In that post, Reader Jordi asks:

Hi Shamus, why don't you make your own file formats that are maximally efficient for your situation? Although writing a compiler/converter from a third party file format to your own takes some extra effort (although I imagine this would be fairly easy), I think it has 2 major advantages:
1) You get to select the third party format purely based on what modeling/animation tools you want to use, or how easy the format is to parse without having to worry about efficiency (both in terms of extra data/memory and parsing speed).
2) In your game you get to use maximally efficient and flexible file formats because you can custom tailor them to your own unique situation.

Ah. I really wanted to take this route. But my art path begins with Blender. (I’ll get into why later. I’m not planning on using it myself, I’ll tell you that.) If I knew Python and knew how to make Python talk to Blender, then I’d do this in a heartbeat. But I don’t and “learn a new language so you can avoid learning a new file format” isn’t really the most efficient way of doing things. Particularly since I’d still have to write the Python scripts, and then write C++ code to read the resulting files.

Continue reading ⟩⟩ “Project Frontier #13: An Animated Topic”

 


 

Project Frontier #12: Character Building Exercise

By Shamus Posted Sunday Jul 3, 2011

Filed under: Programming 91 comments

No pretty screenshots today. Just long walls of densely-packed text. Suck it up. We can’t work on bling-mapping every day.

I’ve mentioned that this was the big hurdle in my project. This is where I’ve been planning to run aground and give up. Two two or three times in the past I’ve tried to nail this down, only to get lost and frustrated, and eventually give up.

An animated character is a seriously complex beast. There are a lot of steps, all of them are hard, and a mistake in any of them will mangle the end product. The process goes something like this:

Continue reading ⟩⟩ “Project Frontier #12: Character Building Exercise”

 


 

Project Frontier #11: Bug Hunt

By Shamus Posted Friday Jul 1, 2011

Filed under: Programming 83 comments

I don’t have a proper post to cap off this week. My attention is elsewhere right now. To placate you, I thought I would show you my mistakes and let you point and laugh at my folly. This is a collection of screenshots I’ve collected over the past month. These are moments when something has gone horribly wrong and I’ve smacked the screenshot key instead of (or just before) cursing.

frontier11_1.jpg

This happened when I was working on the river system. I was working on making the rivers bend, instead of doing a hard turn. This is done by hooking the river around one of the four corners of the region. Obviously, I chose the wrong corner.

Continue reading ⟩⟩ “Project Frontier #11: Bug Hunt”