Just to get this settled now: I am sure James will beat me at the Euler contest. Considering that I am having trouble remembering how to properly compute Fibonacci numbers, I feel that my chances are doomed. Add on top of that that I am going to be pretty damn busy for…well the rest of the month (shipping a version release), well…whatever.
So on to my topic for this week –
Software Development: a Super Broad View.
That is probably a horrible title for what I want to talk about, but it’s the best you are going to get right now. My project is supposed to drop in roughly the next four weeks. Our System Integration and Test team still have over 600 test cases to go – these things are anywhere from 20-80 pages (maybe more). We also have a multitude of bug fixes and new features to test, re-fix the ones that break still, and retest. I think System I&T has around seven, maybe eight people working for them. Our software team has nine, including myself. That’s a fuckton of work that needs to get done fast!
My co-worker, K, (on a different project) blames poor project management. “We should not have let ourselves make promises we couldn’t keep”. My other co-worker, C, says “Well, we have to make promises we hope we can keep so we can get the contract”. This game the industry plays depresses me. Here comes the big, bad contractee (in our case the Military, HAH) and so of course we say “Yes oh high and might master, we shalt deliver unto thee supreme software” (hm so I just hovered over the squiqqly in word under thee, expecting an explanation. I am too used to Eclipse). Anyway…we say something like that. But who gets fucked over by this? The workers! They need to bust ass in order to fix the bugs, implement the new features, fix the new bugs that the new features produced, etc.
I understand this is how the industry is; it just makes me sad on the inside. I truly wish for a better world, where people don’t get fucked over by the higher ups, and everyone trusts each other, and is fair and honest, and you can actually be informed of the presidential candidates and still feel good about voting. I know those things will never happen. So we do the best we can regardless. All I know is that I am going to be very busy until December.
-Matt
Wednesday, October 8, 2008
Monday, October 6, 2008
Euler!
Have you ever read the webcomic XKCD? Well, you should. Even if you aren't a fan of computer science and mathematics, there are plenty of comics that you will be able to relate to. And don't forget to read the alt text for each comic, it's like two jokes in one!
The other day, I was informed that the author keeps a blag (that is, a blog. It's from the comic. You should really read it). And after reading an interesting post about jet planes on tread mills, I stumbled across a project that Randall Munroe (the author) is involved in: Project Euler. Unlike the comic, you would probably only care about this site if you are interested in computer science and mathematics.
The idea is simple: there are a bunch of math problems, and the site tracks which ones you have answered correctly. Each problem is well suited to being solved using a computer, and there is an accompanying forum in case you get stuck. The problems range from very simple (10 lines easy) to very difficult (I have no idea how to even start some of these). It's a great way to brush up on coding and math skills.
I've only done the first two so far, and it's nice to be able to work on small, yet interesting problems. After modifying other people's code in a huge code base all day at work, it's nice to sit down and write a small program myself. It also gives me a chance to brush up on my command line skills. I've been too pampered by fancy IDEs for to long!
And now, for the big news: I CHALLENGE MATT TO A EULER OFF!
That's right, I went there. If he accepts, the rules shall be as follows: the person who has completed the most problems by the end of the month with no outside help wins. So what do you say Matt? It's a great chance to brush up on your skills and the problems are all pretty short. You've got to ask yourself one question: "Do I feel lucky?" Well, do ya punk?
The other day, I was informed that the author keeps a blag (that is, a blog. It's from the comic. You should really read it). And after reading an interesting post about jet planes on tread mills, I stumbled across a project that Randall Munroe (the author) is involved in: Project Euler. Unlike the comic, you would probably only care about this site if you are interested in computer science and mathematics.
The idea is simple: there are a bunch of math problems, and the site tracks which ones you have answered correctly. Each problem is well suited to being solved using a computer, and there is an accompanying forum in case you get stuck. The problems range from very simple (10 lines easy) to very difficult (I have no idea how to even start some of these). It's a great way to brush up on coding and math skills.
I've only done the first two so far, and it's nice to be able to work on small, yet interesting problems. After modifying other people's code in a huge code base all day at work, it's nice to sit down and write a small program myself. It also gives me a chance to brush up on my command line skills. I've been too pampered by fancy IDEs for to long!
And now, for the big news: I CHALLENGE MATT TO A EULER OFF!
That's right, I went there. If he accepts, the rules shall be as follows: the person who has completed the most problems by the end of the month with no outside help wins. So what do you say Matt? It's a great chance to brush up on your skills and the problems are all pretty short. You've got to ask yourself one question: "Do I feel lucky?" Well, do ya punk?
Wednesday, October 1, 2008
Oh the MMOs
The thing about updating this weekly, and not really working on any games right now, is that I don’t often have a very complete topic that I want to post on. If I could post about work I would, but I can’t. One little thing which has been wandering around in my noggin the last couple of days has been classes in MMOs. I recently got a friend at work to “rez” my account, meaning I get ten free days of gameplay (designed to lure me back in; it may be working).
Anyway, if you look at the numerous MMOs that are currently on the market, they are all alike in under laying gameplay (except a few, Eve Online comes to mind (I think, I have not played it much)). What you have are tanks, healers, and nukers. It can be in a fantasy setting: WoW, Warhammer Online, Everquest, Age of Conan, just to name the big ones, or it can be in a comic setting: City of Heroes / Villains. What I would like to see is a true break from this core component of someone taking the damage, someone healing the damage, and someone dealing the damage.
I love MMOs because of their social aspect. I really enjoy grouping up with a bunch of people to defeat a hard puzzle or opponent. But this does not need to mean fighting. Rock Band, while not an MMO, teams up four people to defeat a song, per se. What if a game play mechanic was designed that required ten people to solve some sort of puzzle through teamwork in an entirely new way? Someone who was good at math, someone who was good at art, someone who knew how to program…etc. would be required to get to the final solution. What if it actually allowed you to practice your trade, in a team setting, and made it fun? I have not though much about what type of game this would be. Perhaps I shall continue to ponder it. Please give some input if you have any ideas!
-Matt
Anyway, if you look at the numerous MMOs that are currently on the market, they are all alike in under laying gameplay (except a few, Eve Online comes to mind (I think, I have not played it much)). What you have are tanks, healers, and nukers. It can be in a fantasy setting: WoW, Warhammer Online, Everquest, Age of Conan, just to name the big ones, or it can be in a comic setting: City of Heroes / Villains. What I would like to see is a true break from this core component of someone taking the damage, someone healing the damage, and someone dealing the damage.
I love MMOs because of their social aspect. I really enjoy grouping up with a bunch of people to defeat a hard puzzle or opponent. But this does not need to mean fighting. Rock Band, while not an MMO, teams up four people to defeat a song, per se. What if a game play mechanic was designed that required ten people to solve some sort of puzzle through teamwork in an entirely new way? Someone who was good at math, someone who was good at art, someone who knew how to program…etc. would be required to get to the final solution. What if it actually allowed you to practice your trade, in a team setting, and made it fun? I have not though much about what type of game this would be. Perhaps I shall continue to ponder it. Please give some input if you have any ideas!
-Matt
Monday, September 29, 2008
Operating Systems
Seeing as I am not done setting up new computer (I've been pretty busy), I suppose I will post on something else. Operating systems!
While today we only there are only 3 main operating systems (2 as far as most consumers are concerned), there used to be many. Here is an ascii art graph of chart of the decline in their numbers (Please excuse all the `s. HTML and white space don't get along):
```|```/---\
lots|---/````\
```|````````\---\
```|````````````\--\
```|```````````````\
`3`|````````````````\--+
```+----------------------------------
```A while ago```````````Today
I would love to go into the details of the research I did to come up with this scientific looking graph, but I won't... for the sake of brevity... yeah, that's it.
As you can see, OSes have become endangered. Each year there population declines, and there hasn't been a new OS in years. If we aren't careful, we may lose the majestic species forever!
Well, obviously OSes aren't going anywhere for a while, and we probably won't see any of the big three disappear (although it can be argued that Mac's OS is starting to resemble a Linux distro more than a completely separate OS since it is now based off of BSD (to be honest, I'm not really sure what the difference between BSD and Linux is)).
Have OSes really just become so complicated that it's not feasible to build a new one from scratch? Are we going to just continue to add on to what we already have?
Well, I found some people that don't think so: http://www.osdev.org/. I would suggest checking out the wiki, it has everything you could ever need to get started on a brand new OS. Even if you never plan on trying (like me), it is still interesting as a reminder to just how much goes into one of these behemoths. And humbling, to say the least.
So the next time you get frustrated at Vista for being bloated, Linux for being hard to install, or Mac for ever thinking that one button on a mouse is sufficient, and grumble that you could do better, well, now you know where to start. And if you don't think that a small group can put an OS together, check out http://www.menuetos.net/, it's an OS that was written completely from scratch and fits on a floppy disk. I used it back in high school (back people still used floppies), and I'm happy to see that they are still maintaining the project.
While today we only there are only 3 main operating systems (2 as far as most consumers are concerned), there used to be many. Here is an ascii art graph of chart of the decline in their numbers (Please excuse all the `s. HTML and white space don't get along):
```|```/---\
lots|---/````\
```|````````\---\
```|````````````\--\
```|```````````````\
`3`|````````````````\--+
```+----------------------------------
```A while ago```````````Today
I would love to go into the details of the research I did to come up with this scientific looking graph, but I won't... for the sake of brevity... yeah, that's it.
As you can see, OSes have become endangered. Each year there population declines, and there hasn't been a new OS in years. If we aren't careful, we may lose the majestic species forever!
Well, obviously OSes aren't going anywhere for a while, and we probably won't see any of the big three disappear (although it can be argued that Mac's OS is starting to resemble a Linux distro more than a completely separate OS since it is now based off of BSD (to be honest, I'm not really sure what the difference between BSD and Linux is)).
Have OSes really just become so complicated that it's not feasible to build a new one from scratch? Are we going to just continue to add on to what we already have?
Well, I found some people that don't think so: http://www.osdev.org/. I would suggest checking out the wiki, it has everything you could ever need to get started on a brand new OS. Even if you never plan on trying (like me), it is still interesting as a reminder to just how much goes into one of these behemoths. And humbling, to say the least.
So the next time you get frustrated at Vista for being bloated, Linux for being hard to install, or Mac for ever thinking that one button on a mouse is sufficient, and grumble that you could do better, well, now you know where to start. And if you don't think that a small group can put an OS together, check out http://www.menuetos.net/, it's an OS that was written completely from scratch and fits on a floppy disk. I used it back in high school (back people still used floppies), and I'm happy to see that they are still maintaining the project.
Wednesday, September 24, 2008
Rock Band 2 and using Properties
Good Wednesday Everyone,
Unlike James, I did not do a good job of thinking of a topic during the last week, slightly busy and such. I did do a fair amount of Rock Band 2 playing, and I will spend a few moments summing up what the multitudes of reviews have said along with a few pet peeves. I think I will also spend a few words talking about using Properties as a method of potentially fostering easier and quicker game development.
Rock Band 2 is a fantastic expansion pack game. No really, it is more a an expansion pack with a few gameplay tweaks than it is a full sequel, however I have no problem spending 60 dollars on 80 some-odd fantastic songs along with everything else. The song list is pretty damn crazy! While there are a few songs which I am pretty “meh” about in terms of their value as a song in Rock Band (Master Exploder, Visions the sound quality isn’t that far off) in general the track list is amazing. But where I feel Rock Band 2 falls short are in the little itty-bitty details which you often notice when you play a game a lot. How come my previous scores are displayed as they are? Where are the stars I earned, or how about the percentage of the song I was able to complete? Why aren’t these options I can turn on and off? The more I am able to customize my interface, the happier I am. These are not hard things to implement. All of these fields are being stored by the game, and I should be able to tell the game which ones I want to see. Overall Rock Band 2 is very worth the money, I just wish that it was a slightly more polished presentation.
Now, on to using the paradigm of Properties to maybe help develop games quick and easier. Properties are something that I use at work. Essentially I have the ability to adjust values in my program by simply changing them in the property document, and then restarting the program rather than hard coding them in and having to constantly re-compile. What if we wrote a helper class that, at runtime, would read in a text document which had a map of values and used those when running the game? The guy is hitting too hard? Well turn down his damage and restart the game. This allows for quick and easy tweaking without having to go back to the source code. This also allows for an easy way to modify the game if someone wants to make it easier and harder.
Now the system I use at work is incredibly robust, and what I explained here is only a tiny fraction of its power. However, it was designed and written by people with much more experience than myself. I simply think that some of the ideas behind it have a lot of potential.
Anyway…until next time!
-Matt
Unlike James, I did not do a good job of thinking of a topic during the last week, slightly busy and such. I did do a fair amount of Rock Band 2 playing, and I will spend a few moments summing up what the multitudes of reviews have said along with a few pet peeves. I think I will also spend a few words talking about using Properties as a method of potentially fostering easier and quicker game development.
Rock Band 2 is a fantastic expansion pack game. No really, it is more a an expansion pack with a few gameplay tweaks than it is a full sequel, however I have no problem spending 60 dollars on 80 some-odd fantastic songs along with everything else. The song list is pretty damn crazy! While there are a few songs which I am pretty “meh” about in terms of their value as a song in Rock Band (Master Exploder, Visions the sound quality isn’t that far off) in general the track list is amazing. But where I feel Rock Band 2 falls short are in the little itty-bitty details which you often notice when you play a game a lot. How come my previous scores are displayed as they are? Where are the stars I earned, or how about the percentage of the song I was able to complete? Why aren’t these options I can turn on and off? The more I am able to customize my interface, the happier I am. These are not hard things to implement. All of these fields are being stored by the game, and I should be able to tell the game which ones I want to see. Overall Rock Band 2 is very worth the money, I just wish that it was a slightly more polished presentation.
Now, on to using the paradigm of Properties to maybe help develop games quick and easier. Properties are something that I use at work. Essentially I have the ability to adjust values in my program by simply changing them in the property document, and then restarting the program rather than hard coding them in and having to constantly re-compile. What if we wrote a helper class that, at runtime, would read in a text document which had a map of values and used those when running the game? The guy is hitting too hard? Well turn down his damage and restart the game. This allows for quick and easy tweaking without having to go back to the source code. This also allows for an easy way to modify the game if someone wants to make it easier and harder.
Now the system I use at work is incredibly robust, and what I explained here is only a tiny fraction of its power. However, it was designed and written by people with much more experience than myself. I simply think that some of the ideas behind it have a lot of potential.
Anyway…until next time!
-Matt
Monday, September 22, 2008
New Computer
I typically try to think of ideas to post on throughout the week, to give me time to develop them and prevent having to rush one out just to keep up with my (self-imposed) deadline. This past week, however, I was having a bit of trouble. Nothing I came up with really seemed to be of the... caliber that has come to be expected on this blog. But I lucked out as a topic just fell into my lap last Friday morning when I went to turn on my computer: it was dead!
My first thoughts when looking at the black screen were, "Alright! I bet I can turn this into a blog post! Sweet!" And as I spent the next few hours trouble shooting the problem only to find that the problem is either with the video card, motherboard, or CPU, I could barely hold in my jubilation as I began to write the post in my head.
I have decided to go ahead and build a new computer instead of fixing my defective one, as this is not the first major problem that I have had with it. So, Friday night I took my laptop down to a nearby Chick-Fil-A and spent about an hour picking out parts on NewEgg.com. Why Chick-Fil-A? Because the internet in my apartment was out, and you can't really beat the combination of free wi-fi and chicken sandwiches.
Parts in total cost $715, and that's for the case, power supply, processor, motherboard, memory, and hard disks. I'm going to see if the old video card still works before I buy a new one because I would rather wait a year and get a better one for half of what I would pay for a top of the line one today. I can reuse the optical drive, as it is a decent dvd burner, although the IDE cable my be a pain in my new case. (An interesting aside, I found an old newegg wishlist from November 2006 which cost about 700 bucks as well. You can't make a direct comparison since many of the parts are out of stock and my priorities have changed, but I'm looking at roughly 4x RAM, 2.5x HD (only counting one of them), and 2x CPU (well, 2 cores instead of 1))
You see, I decided to go with the micro ATX form factor. These may seem like a really dumb idea for someone who likes to play a lot of games on their computer, but I assure I gave this plenty of though (which I suppose doesn't mean that it's not a stupid idea). I had originally been considering going pico ATX: small, low power consumption, low heat, and little noise. Unfortunately the trade off is in performance. Pico would work for me if I wanted a cheap server running 24/7, but as my main development and game playing rig it just wouldn't have the muscle.
Micro, however, doesn't force you to compromise much more than a few expansion slots that I would never use anyway and only a little in the way of performance. I will share the wish list on NewEgg when they update their public lists, but for now I guess I'll just link to all the components:
Intel Core 2 Duo
ASUS Micro ATX mother board
OCZ 2 x 2GB
Samsung 640GB SATA 3.0G (2 of them)
Athena 470W Micro ATX power supply
Silverstone Aluminum Micro ATX case
Not bad for a computer that will actually fit in my desk. It's not the bleeding edge, but it will get the job done for the next few years. As long as it does what any good collection of hardware should: never bother me. The harder decision here: what OS.
This may seem like an easy question considering the fact that I am working on games in XNA, and XNA means Windows. But windows isn't ideal for me, as I also would like to host files and perhaps an SVN repository. Windows just doesn't have the reliability of a solid Linux distro, and I miss bash (I'm sorry cygwin, but I need the real thing).
Whatever will I do? Find out in next weeks blog (Ha! I knew I could stretch this into two posts)! Will it be Windows? Will it be a Linux distro? Will it be some mixture of the two with the help of some super nifty virtualization software?
My first thoughts when looking at the black screen were, "Alright! I bet I can turn this into a blog post! Sweet!" And as I spent the next few hours trouble shooting the problem only to find that the problem is either with the video card, motherboard, or CPU, I could barely hold in my jubilation as I began to write the post in my head.
I have decided to go ahead and build a new computer instead of fixing my defective one, as this is not the first major problem that I have had with it. So, Friday night I took my laptop down to a nearby Chick-Fil-A and spent about an hour picking out parts on NewEgg.com. Why Chick-Fil-A? Because the internet in my apartment was out, and you can't really beat the combination of free wi-fi and chicken sandwiches.
Parts in total cost $715, and that's for the case, power supply, processor, motherboard, memory, and hard disks. I'm going to see if the old video card still works before I buy a new one because I would rather wait a year and get a better one for half of what I would pay for a top of the line one today. I can reuse the optical drive, as it is a decent dvd burner, although the IDE cable my be a pain in my new case. (An interesting aside, I found an old newegg wishlist from November 2006 which cost about 700 bucks as well. You can't make a direct comparison since many of the parts are out of stock and my priorities have changed, but I'm looking at roughly 4x RAM, 2.5x HD (only counting one of them), and 2x CPU (well, 2 cores instead of 1))
You see, I decided to go with the micro ATX form factor. These may seem like a really dumb idea for someone who likes to play a lot of games on their computer, but I assure I gave this plenty of though (which I suppose doesn't mean that it's not a stupid idea). I had originally been considering going pico ATX: small, low power consumption, low heat, and little noise. Unfortunately the trade off is in performance. Pico would work for me if I wanted a cheap server running 24/7, but as my main development and game playing rig it just wouldn't have the muscle.
Micro, however, doesn't force you to compromise much more than a few expansion slots that I would never use anyway and only a little in the way of performance. I will share the wish list on NewEgg when they update their public lists, but for now I guess I'll just link to all the components:
Intel Core 2 Duo
ASUS Micro ATX mother board
OCZ 2 x 2GB
Samsung 640GB SATA 3.0G (2 of them)
Athena 470W Micro ATX power supply
Silverstone Aluminum Micro ATX case
Not bad for a computer that will actually fit in my desk. It's not the bleeding edge, but it will get the job done for the next few years. As long as it does what any good collection of hardware should: never bother me. The harder decision here: what OS.
This may seem like an easy question considering the fact that I am working on games in XNA, and XNA means Windows. But windows isn't ideal for me, as I also would like to host files and perhaps an SVN repository. Windows just doesn't have the reliability of a solid Linux distro, and I miss bash (I'm sorry cygwin, but I need the real thing).
Whatever will I do? Find out in next weeks blog (Ha! I knew I could stretch this into two posts)! Will it be Windows? Will it be a Linux distro? Will it be some mixture of the two with the help of some super nifty virtualization software?
Wednesday, September 17, 2008
So...Rock Band 2...(and Braid)
Kept my busy all evening, because it is very fun. So I will have a more involved post in the next couple of days about, you guessed it, Rock Band 2!
But in brief I do want to draw your attention to Braid. The child of Jonathan Blow, this is truly an epic platform game. While Blow had some help from other sources for the art (and I assume sound), the incredibly basic game play mechanic of controlling time has never been so fully realized. Imagine the new Prince of Persia games, except now you really do control all of time. You can rewind back to the very moment that you entered the level, or if you miss a jump, rewind to the to before you feet left the ground. You never die, and you never have to worry about saves.
But the game is still incredibly challenging. Some of the puzzles are complete mind benders, and require a good ten minutes of sitting and mentally running through all your options until you get the proper set of moves to accomplish the goal. One of the neatest things, however, is that there are puzzles within the puzzles. You have the over arching story that allows you to really, truly relate to the characters, but throughout each level you battle puzzles to get...puzzle pieces. These can be put together to form 3x3 and 3x4 puzzle images that help deepen the narrative.
Blow did have to sink approximately 180,000 dollars into this project according to Wikipedia. That is a wee bit more than I am willing to put down right now for any kind of game. However, within the first week, Braid sold approximately 55,000 copies. At 15 dollars per copy we are talking about *busts out the start->run->calc* 850,000 dollars. Now I am not sure how much of that Microsoft gets to keep. Lets be super generous to them and say they get two thirds, so that leaves Mr. Blow with 275,000 dollars. Damn. And that was only the first week of sales. So to say that Braid paid off I think would be a bit of an understatement.
So I did not plan to write this much tonight. Rock Band 2 will come on full force next week!
-Matt
But in brief I do want to draw your attention to Braid. The child of Jonathan Blow, this is truly an epic platform game. While Blow had some help from other sources for the art (and I assume sound), the incredibly basic game play mechanic of controlling time has never been so fully realized. Imagine the new Prince of Persia games, except now you really do control all of time. You can rewind back to the very moment that you entered the level, or if you miss a jump, rewind to the to before you feet left the ground. You never die, and you never have to worry about saves.
But the game is still incredibly challenging. Some of the puzzles are complete mind benders, and require a good ten minutes of sitting and mentally running through all your options until you get the proper set of moves to accomplish the goal. One of the neatest things, however, is that there are puzzles within the puzzles. You have the over arching story that allows you to really, truly relate to the characters, but throughout each level you battle puzzles to get...puzzle pieces. These can be put together to form 3x3 and 3x4 puzzle images that help deepen the narrative.
Blow did have to sink approximately 180,000 dollars into this project according to Wikipedia. That is a wee bit more than I am willing to put down right now for any kind of game. However, within the first week, Braid sold approximately 55,000 copies. At 15 dollars per copy we are talking about *busts out the start->run->calc* 850,000 dollars. Now I am not sure how much of that Microsoft gets to keep. Lets be super generous to them and say they get two thirds, so that leaves Mr. Blow with 275,000 dollars. Damn. And that was only the first week of sales. So to say that Braid paid off I think would be a bit of an understatement.
So I did not plan to write this much tonight. Rock Band 2 will come on full force next week!
-Matt
Subscribe to:
Posts (Atom)