XNA Screenshots
Shawn Hargreaves has an incredibly nifty and usefull bit of code to allow you to take screenshots of games running on the Xbox:
http://blogs.msdn.com/shawnhar/archive/2007/01/08/capturing-screenshots-from-xbox-xna-games.aspx
When I read things like this I’m just amazed at what people are able to do with XNA and C#. Programming is problem-solving skills + knowledge of what you can do with the language. Both of those things come mostly from experience. I love the fact that there are blogs are over the internet talking about programming and XNA so that I can just learn at the feet of these code masters… One of these days I hope to meet these guys and just say thanks for all the wisdom they are unknowingly passing down.
XNA: For Beginners or No?
Dennis, the senior software engineer for Cecropia, makes any interesting analysis of the XNA tools on his blog.
My young programmer mind boils down his post to two things:
1) He doesn’t like that XNA is a propritary API
2) He doesn’t like that you have to pay to run the applications on a 360
I understand the concerns about XNA being proprietary. Me learning XNA is not going to help me learn a whole lot about C++ in order to later code for Nintendo’s systems. However, me learning XNA is, in fact, helping me learn C# and, to an extent, JAVA. Giving a geek the opportunity to code for a gaming system, no matter which one, is motivation enough to learn.
It works! XNA on the 360
That’s right.
XNA was launched today (msdn.com/xna). I haven’t touched the XNA tools since September, before the second beta went out. I saw all the problems people were having with the transition from alpha to beta, so I didn’t want to get stuck.
Well let me say that XNA rocks.
In about 2 hours I was able to write the neccessary code to place my head on the screen, move it around and, of course, make its mouth open and close. It’s all the first steps of my first real game.
Amidst all the questions of work, career and studies, it was a simply awesome experience to site down for a couple of hours and see something through. And as cool as writing programs on a PC is, there is a huge amount of joy in writing something to run on a video game system.
When I was a young child, my dad tried to learn BASIC in order to make a game for the IntelliVision. He told me once that he was going to make a game for me and my sister. Unfortunately, he never quite got around to it.
But here I am, 20-some years later, and I have the beginning workings of a game. I can wait to see what comes out of XNA not just from myself, but from the whole XNA Community.
Barrier to Entry (Programming Annoyance #1)
The problem with learning to program isn’t that the actual programming is hard. That part’s easy; logical and abstract. As you code more, you learn new tricks and new vocabulary.
The problem is the barrier to entry. It’s not just one thing you have to learn, it’s 25 different things. You have to decide what language to focus in on, and what IDE to use. You have to know EXACTLY where to place files, you have to know what services to download and install, and what plug-ins are worth your time.
I hear and read rumors of things like ANT and Hibernate… but I have no clue if I’ll ever get to them. I’m still trying to learn how to get my system set up right.
This is one of the major differences between JAVA and C#. Microsoft holds your hand almost too much, while JAVA is a wide desert, with each piece of sand representing some other source of information. I applaud you Microsoft, for making such solid product that try their best to break down the barrier of entry.
Tonight, however, I was back in JAVA because, frankly, I know how to do a little more in it right now and have a simple project I want in usable form by Monday. So I’m working away, getting my gui set up and a little ActionListener here and so on, when I get to the point where I need data. A database.
So here’s the first of non-coding language things I need to learn… how to set up the database. Not to big of a problem, get it done (and done correctly). Well, I want to hit the database with my app from across the series of tubes we call the Internet, so then I have to go set up a dynamic dns service.
So I get out the handy dandy MySQL Cookbook, and run some test code to make sure everythings working right… and it is on my Mac (where I have the database set up). I head out to the living room to spend some time with my wife while testing my code on my PC laptop to make sure I can hit the database…. and no success.
Now, I know everything is working correctly becuase I can use a MySQL Query browser to hit the database, so that’s fine. So how in the world can code that worked on one computer in Eclipse NOT work in another computer in Eclipse. I struggle with this idea for over and hour, trying so many changes to the code, when finally I realize the problem.
I have to download the MySQL J/Connector and put it in my javapath.
So, now I’m left with the pressing quesiton before I get some sleep…
How do I find the javapath on a Windows machine..?
Been a Long Time…
So, it’s been a while since I’ve gotten a gumption to blog. Why is this? Because it seems I’m still trying to figure out what I want to be when I grow up.
Recently, I was presented with a couple of different oppertunities at my job… all in different fields I went for them all… and, well, none have panned out just yet. Do what disiciplines did I try my hand at?
1) Marketing & Metrics
2) Programming
3) Motion Media/User Interface (making DVD menus, Flash interactive menus)
And, of course, I’m currently working in the area of Customer Service. So, one might ask… how does that any of that relate?
For me… they all make perfect sense and go hand in hand together, each a part of me and the things I can do. And, they’re all skills I have, and want to continue to develop in myself. So what kind of job am I setting myself up for? What direction am I going in?
At this point, I’d have to say it’s the area of interactive media. Or, as the hipsters call it, “video games”.
To me, it’s not just a chance to make a buck or pretty graphics. It’s about telling a story. It’s about having new experiences. It’s about little victories and it’s about community. It’s about taking someone to another world, and letting them live there for a while. And once they’re in that world? Then maybe everything’s ok for a little while. And maybe, just maybe, life can be good.
So, amidst being in the throws of once of the best story-telling games ever, Zelda: Twilight Princess, I find myself inching back toward XNA & C#, away from JAVA. I hate that I keep bouncing back and forth between languages… but I’m trying to find what I want to do, what language makes sense to me.
Curse you Microsoft for making the Visual Studio products SO amazingly good. Curse you for making available so many programmer tools and great tuitorials. I’m trying hard to learn JAVA, but you and your C# ways just keep pulling me back.
So here’s to going back to C#, back to tuitorials, and back to the Wii and Twilight Princess.
Sigh – I need more time in life.
Aaron’s Head is now Animated
I’m learning that programming as a novice is a whole lot of trial and error, with an akward learning curve.
Today I managed to get my moving sprite animated; if it’s moving right it looks right. If it’s moving left, it looks left. I also got it open and close the mouth from a space bar press! The path to getting there however, was a long one…
The Story So Far…
I do things.
In the past, I was a video producer by trade. I have designed web sites and wrtitten comics. I like to learn; I’m 12 hours in on an MBA.
And then, earlier this year, I heard that Microsoft was going to release a set of tools called XNA. This set of tools was going to make use of the C# programming language to write video games. I decided, fairly qucikly, that I wanted to do this, too. I wanted to learn this, too.
So I stumbled upon a Microsoft contest – “Upgrade Your Game”. Basically… it was tutorials on how to write games in C#. And it was way too complicated for me. So I went and found other tutorials, and began trying to learn C#.
In these tutorials, we were supposed to learn how to write a C# RSS feed reader. I found that I was loving what I was doing. I offhandedly mentioned it to my boss… and found out that my place of employment was actually a JAVA house, and should learn JAVA instead. So I stopped, borrowed a book called “Head First Java,” and continued on.
In the past 8 weeks or so, I’ve now read the majority of:
Head First JAVA
Head First JSPs & Servlets
Database Design for Mere Mortals
Learning SQL
Sams Teach Yourself JAVA in 21 Days
and pieces of:
Head First Design Patterns
Java 2 Primer Plus
MySQL Cookbook
Thinking in JAVA
So I’m learning… learning the hard way. And the kink in all this knowledge?
On August 29th, a beta version of the XNA tools will be made available. So now, my mind is going to be so tempted to flow back and forth between learning JAVA for web development, and C# for game development.
So this blog is here for me to post my thoughts on the programming and learning process. Sure, I’ve read a few books… but I’ve still barely put my toe in the tub of water. I’ve yet to write a program or class that’s not in a book. I’ve not designed anything or made any startling discoveries.
I know this; I’ve enjoyed learning programming. Now if I can just find the time to do it.


