caseydunham.net

Laptop + XBox360 + iPhone + Netflix

After putting it off for a long time, I just purchased a new High Definition TV and an XBox 360 over the last month. I finally got around to rejoining XBox Live and downloaded the Netflix app so I can now stream Instant Watch Netflix movies straight to my tv from my XBox. I took a moment after I started watching a show to think about the whole process. Earlier today, my wife updated our instant queue from her iPhone. I setup/upgraded my live account using my laptop and had instantaneous results on my XBox. When I think about it, I can’t get over how cool it is. The amount of technology and how much infrastructure is in place to enable something like this to be possible. Not only am I on a wireless network at my house, but we use 3G on our iPhones. I can’t help but think about how many services had to be used to integrate this, services for account logins, credit card processing and probably many others that are behind the scenes.

I’ve been programming and using computers almost my entire life (as soon as I could move on my own?), but it hasn’t been until about the last year or so have I really felt that technology was really changing the way I live and think about the world and this is a direct result of how much integration we have been receiving over the last few years.  I feel genuinely excited to be living in this time period and can’t wait to see how technology changes my life and how I live it over the next few years. I mean now that the International Space Station is internet ready, what’s next?

Thinking about the whole thing really brings my inner geek out (well..more than it is already)

2 comments

Getting my ass in gear

I have never been someone to set New Year’s resolutions or to really write down my goals. For the last few years, the only goals on my mind have been to finish school, get rent paid and try to have some fun. That isn’t to say that I haven’t had any long term plans, but that my priorities were different. One thing that has always remained constant however, is my love for games and the technical challenges that they present.

Now that school is behind me and I’ve been working steadily since graduating, I’ve started to think again about my short term and long term plans. A friend of mine that I graduated with, (and who were also laid off just before graduating), decided to form an LLC just before Christmas with the intent of creating games and hopefully starting a profitable company. So, in order to keep on track, I am setting the following goals for 2010 for myself:

  • Spend more time with my family
  • Get a game accepted to XBox Live Community Games
  • Participate in every Ludum Dare 48 Hour competition
  • Start keeping a Design / Idea journal
  • Play more games
  • Post at least one blog entry a week

Nothing on this list is insurmountable or too difficult too acomplish over the course of the year. The most difficult part will be balancing my work schedule, since I do mostly contract work and work from home quite a bit, I often work too many hours. Over the next couple of months I am going to have to readjust this schedule and make sure that I am leaving enough time to put into the company and not go insane.

Don't go insane.

Don't go insane.

No comments

Play With Your Peas – First XNA Game

After the XNA talk I saw by Michael Cummings at Code Camp 12, I decided to take a look at the XNA framework.  I picked up a couple of books on it and started taking a look at the tutorials and example code at the Creator’s Club.  I played around creating a few demos and am now working on an actual game. The game I am making is based on the Play With Your Peas game prototyping challenge from Lost Garden. The challenge was originally from 2008, but I really like the art style and the game concept. Here is a screen mock-up of how the game will look when it is done:

Screen mockup

Screen mockup

The basic game mechanic is that you need to build the level by placing blocks to facilitate the Peas desire to jump and bounce off of things. The player doesn’t control the individual peas and must take care that they don’t fall too far.

The design will present a few interesting challenges of which the Physics involved will probably be the most difficult for me as I have not done anything that complicated. The artificial intelligence of the Peas will be another more complicated part but I think I have a few workable ideas.

I may play around with incorporating a 2D physics engine, of which I am looking at the Farseer library to use based on a few recommendations.

I am looking at having most of the basic game play elements in place by end of next weekend. I have a couple of things left to do for my Artificial Intelligence class which ends this coming Thursday.

1 comment

Microsoft Code Camp 12 Review

I know this is a bit late, but I was very busy after Microsoft’s Code Camp 12 last Saturday in Waltham, MA and this is the first chance that I have had to sit down and do a write up on it.

This was the first Code Camp I have attended and didn’t know what to expect. The format of the Code Camps are basically like a mini conference. They consist of a number of presentations packed into about an eight hour day. All the presentations are developer focused so they usually contain a decent amount of code which I wasn’t expecting but was very happy with. Registration is free and for the most part, a community effort for developers, by developers.

Code Camp 12 had about 45 presentations tracked to seven different conference rooms! That’s a lot of information to take in a short amount of time. I am not actively involved in a lot of the technologies that the talks were about, most on the topic of Silverlight, C# and Azure, but it was very interesting to see what everyone else is up too. Now onto some notes about the presentations that I have attended.

Presentation 1: So, You Want to Give a Code Camp Talk?
Presenter: Bill Wilder

Even though this particular presentation wasn’t about programming, I jump at any opportunity to better myself at public speaking. I meet a lot of students in the Computer Science department at my school, both new and old, who don’t quite grasp how important communication really is. Bill Wilder also talked specifically about giving presentations that are code or technology heavy, which was great, because not many books or sites that you read give much thought to it. It definitely changes your presentation style. The attendance was small at this one, which was great because we were able to get into a few discussions that greatly benefited myself and I think the others in the room as well.

Presentation 2: Dysfunctional programming with F#
Presenter: Talbott Crowell

I only had a vague notion of what F# was before this presentation. For those who haven’t heard of it, F# is a functional language for the .NET environment that is inspired in part by OCaml. Talbott Crowell, a beginner in the language himself, talked about some of the differences in F# compared to other languages and most importantly, why use F# at all? One big difference in functional languages is that the functions have no side effects, everything is immutable. In F#, if you want to be able to change a variable after it is created it has to be declared with the mutable keyword. This sounds like a big drawback, but I didn’t realize how much of a benefit this actually was until this presentation. The big gains that F# provides over other .NET languages, is when faced with heavy multi-thread use and multi core, multi processor programming. Anyone who has done a decent amount of multi threaded programming knows how aggravating it can be when you run into deadlock or concurrent variable modifications that weren’t supposed to happen. Even with the new frameworks for C++ and C# designed to make this an easier problem to deal with, it is still very hard to take advantage of.. This is going to get worse as more computers are shipping with quad core CPUS and with operating systems having the ability to offload tasks to the GPU, this problem is going to be a major hurdle to some of these other languages.

Talbot also demonstrated how easy it is to prototype and develop GUI’s in the language. Since the language is interpreted it can be executed on the fly through an interactive prompt just like Python, Ruby and other interpreted languages. This allows you the ability to build a GUI or run other programs dynamically and watch them execute as you code. Visual Studio 2010 is also going to provide even more built in support for F# upon its release, so I wouldn’t be surprised to see this becoming more popular over the upcoming year.

This was a very good presentation and would encourage everyone to check out F# a bit more.

Presentation 3: 7 on 7
Presenter: Jim O’Neil

This was mostly a recap of the entire New Efficiency event that I attended a couple of weeks ago, but I went to anyways to see if anything was explored in more depth. There were a few interesting points about the Federated Search functionality in Windows 7 that got glossed over at the New Efficiency, but for the most part I could have sat this one out.

(Lunch)

Presentation 4: Behavior Driven Development
Presenter: Tom Cooley

This one was a bit over my head as I am still working on developing my Test Driven Development mindset, but Behavior Driven Development is a natural next step for those who have attained a level of proficiency with TDD. While TDD is about ensuring that the code you are writing is correct, BDD aims to make the language that tests are written in as close to the domain as possible, making the transition from Use Cases, or User Stories, to actual code much easier than it can be in real life. The presentation itself was in a small room that was very well attended so I wasn’t able to take part in the discussions too much, but there were a lot of very knowledgeable people in this one. I had a chance to talk to Tom Cooley after his presentation and managed to get good answers to some of my TDD issues.
Presentation 5 and 6:

I skipped the presentations slated for these two slots as I was hanging out talking to some of the other Code Campers and presenters. My one big suggestion for this whole event would be to allow a bit more time for networking and conversation. There was only about 10 minutes or so between presentations and lunch was only about 30 minutes so it didn’t leave a whole lot of time to meet and network.

Presentation 7: Getting your game published on XBox Live Indie Games
Presenter: Michael Cummings

This was probably my favorite presentation of the day. It was very informative and has made me very interested in Indy Game development for the XBox. Michael Cummings talked about the XNA Creator’s Club in general, the review process games undergo and why they might fail or be rejected. He also presented solutions to many of the gotcha type of problems that people don’t think about, but aren’t too complicated to deal with (controller issues, differences between the PC monitors and television screens for starters).

He also presented a statistical summary of about fifty games from various income categories, some barely making any money and others that grossed a significant amount all over the last year or so. I really can’t wait to start working on a few XBox games so I think I might be seeing an XBox 360 in my near future.

Overall I had a good time especially for a free event. The drive down only took about two hours and while I was unable to stay long after the event to go the after party, I hope to make it to the next Code Camp, which I believe is going to be sometime near April since they attempt to do these every six months or so.

If you are a Windows developer or at all interested, I would definitely recommend checking this out.

1 comment

Windows 7 First Impressions

I’ve been using Windows 7 Ultimate for about two days now and have to admit that so far I really like it. It seems that most of the minor nit picky things that have been really annoying to me in prior versions of Windows, have been fixed or at least aren’t as annoying. Some of these things may seem trivial and some should have been in Windows a long time ago, but they are consistent annoyances in my use of Windows and while I use Linux operating systems just about as much as I do Windows, I am glad that Windows is starting to catch up in some areas.

First on the list is the speed. I have it installed on my laptop with 2Gb of Ram and an AMD Turion 64 X2 processor and it is speedy, even with all of the fancy GUI settings.  This most likely has a lot to do with the new Windows 7 graphics stack which has brought with it a much needed drop memory usage in the Desktop Windows Manager (DWM) which I tested by opening a lot of applications, playing videos and watching Syfy in Firefox and IE at the same time. The memory taken up by the DWM was about half that of Firefox while playing an episode of Ghost Hunters (by the way, IE on my setup actually consumed less memory doing this same task than Firefox did). I’ve been watching performance on various applications throughout the last couple of days and most of the Windows processes seem to be well behaved.

Next on my list has been a constant annoyance, probably going back all the way to Windows 95, is the lack of my ability to rearrange the icons on the taskbar that represent open programs. I find myself opening up applications in a certain order, as I usually keep longer running applications, or those that I use a lot throughout my day, to the left of the taskbar and since every Linux window manager I have ever used has allowed me to rearrange where those icons get placed, the annoyance on Windows had grown even more. The ability to do this now, makes me very happy.

Still on the topic of the taskbar is something that I haven’t quite gotten used to yet, is the removal of the quick launch taskbar (it can still be turned back on, directions here). I haven’t turned mine back on even though I have used it for years for my most frequently used applications, because I wanted to first see if the new way had any gain. In Windows 7, the taskbar rolls the quick launch bar along with the running programs into one. The difference now is that the items on the taskbar that are pinned to it (shortcuts that remain there) have jumplists that can be accessed with a right click (or left click and move the mouse upwards) that presents an application defined menu of quick links. I haven’t quite gotten used to the new feature yet but am going to play around with it for a bit more. I think it will definitely be interesting to see how applications take advantage of it (such as maybe providing a list of recent saved games and being able to run the game and load that saved game without having to go through a series of menus).

Another notable and much needed inclusion was native support for burning .iso files. Finally, I no longer have to download another program or switch to my Linux system to burn an image.  All I need to do now is to double click the image file and Windows pops open a small window and I can start burning. I’ve burned a few applications that I needed to install this way and it seems to work quite well.

One last minor irritation has always been the built in calculator. At my last job I often had to do a lot of bit manipulation or masking while programming and I always wished I had a Gnome’s calculator on my Windows box which allowed me to do not only do conversions between different bases, but I also could do right and left bit shifts and rotations. Now I have a built in application to do this.

My only real irritation with Windows 7 right now is the ribbon menu system that they introduced with Office 2007 and is now the standard for Microsoft’s applications on Windows7. I didn’t like it in Office and I am not a big fan of it right now in Windows 7. I am sure to get more comfortable with it over the next few weeks, but I don’t think I am ever going to really like it. I don’t like bloated windows and really don’t like a lot of toolbars and extra things floating around, but we’ll see.

1 comment

New Efficiency Review

A few months ago I was notified of a free Microsoft event for Windows 7 called the New Efficiency in which they were giving away free copies of Windows 7 Ultimate. So without too much thought I sent my registration in and yesterday morning I awoke very early (4am) to catch the 5am bus out of Portland to Boston to see what the New Efficiency was all about. Registration started at 7:30 after which we were provided breakfast. The event was split into two sessions, the morning for Developers and the afternoon for the IT guys. I only attended the morning session so my comments and thoughts (abuses) will be limited to that session. The whole event was geared towards introducing some of the new features in Windows 7 along with a few code examples. All the presentations were done by Microsoft Evangelists, (people who go around talking about the latest and greatest from Microsoft), I can’t remember the last presenter’s name, but the first was Chris Bowen who talked about some of the new features and how to take advantage of them from a developer’s perspective, the second presentation was by Bob Familiar who touted the new graphics stack and the new sensor technology, and the last presentation was on the new touch capabilities that Windows 7 supports.

The whole third presentation was devoted to introducing us to the new Touch capabilities built into Windows 7.  It started with the presenter spending about ten minutes teaching us the gestures to use, “this is a click”, as he touches the screen, “this is how we zoom in” etc… Really? A room full of supposed developers and geeks and you feel the need to teach us this? I suppose they were right since there were a lot of people ooing and aahhing over it all. Oh and the control panel now has Search capabilities. Let me get this straight. Instead of making it easier to navigate and to find settings, you just put in search capabilities? Awesome. I hope it works better than finding files on Windows Vista.

The best piece of news that I heard through it all was the reduction in the Desktop Manager’s memory. I haven’t verified this yet since I have not had a change to install Windows 7 (planning on tomorrow night), but I would be very happy with the 30% reduction that they said they have gotten due to the new graphics stack. On Vista my CPU gets pegged quite frequently while switching windows a lot and the highest amount of memory being consumed is usually by the Window Manager.

One thing that really surprised me was the lack of .NET support for Windows Touch. To take full advantage of it in a .NET application you need to dip down into unmanaged code land and interface with COM. I thought that from pushing .NET so much that they would make sure the latest new technology was integrated. Supposedly it will be coming very soon, but next year’s .NET update will make it all seamless and fully integrated.

Overall, I thought the whole thing was a bit lackluster. It felt a bit short and even though it was a free event I wished that some of the features were explored a bit more since I am interested in them and I am sure we will see applications taking advantage of them in new ways, especially if they are considered from a mobile computing standpoint. For example, Bob Familiar showed an example of how an application on a mobile device could interface with a light sensor and change the resolution, font sizes, contrast or anything else it wanted to make the display easier to read when someone moved from a lighter to a darker area or if they were standing in a lot of sunlight.

Would I go to this event again if it happened next year? Sure, I did meet a couple of new people in the Boston area and if there was going to be a free operating system at the end.

“Go Be One With 7″

1 comment

Ludum Dare 15 Results

Tonight ended the Ludum Dare 15 two week voting period and the results are in! Here is the breakdown of how my entry, Coffee Caverns, did. The categories are scored on a 5.0 scale.

  • Innovation – 1.68
  • Fun – 2.41
  • Theme – 2.0
  • Graphics – 1.77
  • Audio – 1.80
  • Humor – 1.79
  • Overall – 2.23
  • Community – 2.88
  • Coolness -  26%

Overall, I placed 92 out of 107 and won a bronze medal for Coolness.

Looking over the Top 10 entries, there are a few games I didn’t get to play in there and will over the next few weeks, check them out and probably play some of the ones that I already did a couple of times to see what makes them winners in their category. I will also be taking a close look at what was used in the creation of the game and see if I an pick up any interesting ideas through the games’ author blogs.

The next Ludum Dare, is going to be sometime in December, so I am making sure to leave my weekends open!

No comments

Coffee Caverns – Postmortem

This past weekend I took part in my first Ludum Dare competition, Ludum Dare #15. Ludum Dare is a community driven contest where a single developer has to create a complete game within 48 hours.  I have watched the prior competitions, but have never really had the time with family and school, so I was a bit surprised to find that last weekend was fairly open. So on Friday afternoon I decided I would take part.

Each Ludum Dare has an associated theme that the game must be created around that is decided on by community vote. The theme is only revealed at the start of the competition and for LD #15, the theme was “Caverns”. I immediately had a few ideas but nothing that seemed too out of the ordinary. Upon deciding to enter the contest, I also made up my mind that regardless of what the theme was, my goal was to complete a game, no matter how simple, within that 48 hour deadline.  I did complete a simple game, but as usual with these types of competitions, didn’t quite turn out as I had hoped. This is an effort by me to talk about some of the things that I feel went right in the development of Coffee Caverns and what could have been done better.

The Good

Probably one of the best choices was to use what I was already familiar with, C++ and SDL in a Windows environment. I know that some people like to experiment with new technologies during these competitions, but I decided to not risk it, my goal was to complete a game. Along these same lines I also decided that whatever I did would be small. I have started and never finished numerous game projects in the past much like every other aspiring game developer and I also know that one of the things that separates aspiring game developers from game developers is that game developers finish things. I had a decent idea of the scope of what I would be able to finish and decided to stick with it.

I didn’t start coding or designing anything until the Saturday morning after the competition started. I checked to see what the theme was going to be and than went to sleep. In the morning I ate breakfast and started a bit of mind mapping while having some coffee. I started thinking about caverns and I kept coming back to danger and falling, falling objects like rocks, and than somewhere in the mind map coffee came up so I ended up mixing coffee with falling rocks. Awesome, sounds a bit weird let’s go with it. It came naturally that this would be an arcade style game and once I decided on it I stuck with it. The total design of the game was probably about an hour and that was with sketching a bit of a development plan as well.

I also liked that I was able to get a couple of sound effects in thanks to the wonderful program Sfxr. I am glad that I got the title screen in without too much trouble as well. It only took a little bit of trouble and was I think worth it. Although next time, I am going to check for a specific key press to transition as opposed to any key, it made taking screen shots of it a bit tricky.

The Bad

I think that my biggest mistake was not getting the prototype up and playable as fast as I wanted to. My intention originally was to use primitives for prototyping and later put in the graphics. By the time I had the framework ready I needed a break from coding and decided that I would play around with Paint.NET a bit to see what I could come up with. I should also mention that other than SDL, I was using no prior written code, writing everything from scratch. In no time I had created a couple of graphics that I thought would work, so I figured I would just drop them in. It wasn’t a huge time waster since I was going to do it anyways and in some ways did work out in the end.

The Ugly

Easily the worst part about the game and what I would argue is the game, is the game play itself. The game is no where near as balanced as I would have liked it to have been, the scoring is very simple, and there is very little feedback to the player. I spent most of Sunday doing game play testing and bug fixing. I had the majority of the code written by Saturday night and it was a good thing too as I had a few things come up Sunday that might have kept me from finishing otherwise.

The little things that I didn’t fix that were pointed out to me in comments on my Ludum Dare blog are in retrospect what could have made the game better. The player sprite being about a pixel off during the animation would have taken me all of about three seconds to fix. I also never got the score out of the title bar like it should have been. This would have been another easy fix that would have added to the polish of the game.

The other thing that people complained a lot about was my use of an installer. I had mixed feelings about it but I know and understand the irritation I am sure it caused others as I started reviewing a few of the other entries. At a certain point I was annoyed that I had to unzip things and will next time not bother with the setup and provide a straight running executable.

Summary

Overall the whole competition was very rewarding and I learned quite a bit as well and would recommend everyone who is interested in game development to take part in these competitions as often as they can. I am definitely going to!

2 comments

Ludum Dare 15 Finished!

I successfully submitted a working game to Ludum Dare 15. I plan on writing up a post mortem soon but here is a couple of screen shots and download links. The game wasn’t as finished as I would have liked it to have been, especially in the game balance side of things, but I actually spent less than 20 hours total on the whole thing. Overall I think it went well and definitely plan on entering some of the mini LD’s and the next full on Ludum Dare competition.

Title ScreenPlaying
Game Over Screen

Download Windows Executable – coffee-caverns-1.0.zip

Download VS2009 Source- coffee-caverns-1.0-src.zip

1 comment

Entering Ludum Dare 15

I have decided earlier today that I will take part in Ludum Dare 15. I have been following the competition for awhile and have played many of the games that have come out of it and it seems that this weekend just may allow for me to spend 48 hours creating something.

After the competition, I will write up a post-mortem and put what I finish with up here for everyone.

My blog posts at the Ludum Dare compo site can be found here.

No comments

Next Page »