** Disclaimer: This is not meant to be a complete Design Spec. It is meant to provide the read with enough information to follow along with all tutorials. **
Game Description
The game we will develop in this article is a simple, two-player, “Combat”-like game called, well, “Tanks!“ (Combat was that old Atari game, you remember? There was one mode on it that was two tanks trying to kill each other. Yeah, that is the mode we will be building this game (think of it as a 3d version of that Combat mode)). As you’ll see, the layout of the game is not that complicated. The meat of the game takes place within the boundaries of a simple arena. Each different arean will have several “targets” that you can run over to get upgrades that last just for that round, or to earn money in order to buy upgrades after each round. So, you have to make a decision, go for upgrades, go for money, or go for destroying your opponent.
A round is won by being the first player to kill your opponent three times. After each round, both players can upgrade their ship depending on how much money they have earned during the round. Once all upgrades are confirmed, the next round starts. The first player to win three rounds, wins the match. Once a match is finished, the players are presented with a match review screen that will show the breakout of the match (i.e. money spent on upgrades, damage inflicted, # of direct hits, etc.).
There are basically two modes the game can be played in: single player mode, and multiplayer mode. If the player is playing a single player game, they will be playing against the computer. All in all, there are only four screens and two modal forms in the entire game: Main Menu, Vehicle Choice, In-Game, Vehicle Upgrade, Match Review, and Best Scores. The state transition between the various screens is pretty simple and, I hope, self explanatory:

Development
The development of this game will be basically done in two stages. First is a prototyping stage. In this stage, all graphics will be “programmer” graphics (and usually will just be solid-color primitives). This will allow us to focus on the design and functionality of the game. The last stage will be a “Makeup” stage. This is the stage where we will upgrade our graphics, add our eye-candy, tweak the AI, etc.
This series of articles will be done with a focus on object-oriented design. Periodically, there will be references made to existing Design Patters from the Gang of Four. When this is done, a brief explanation of why will be provided as well as a link to learn more. Although we could just throw the game together and call it good, I think it is important to understand how to properly design the game so that future projects will be easier to do. Obviously, since this is not a book, there will be concessions on what we can and can't talk about. As much as I would like to emphasize proper design, I believe it is also important to keep these articles nice and light so anyone reasonably comfortable with OOP can understand them.
In Closing
Overall, “Tanks!“ is quite a simple game. The goal of these articles (and of building the game) is not to learn how to program a blockbuster. The true goal is to learn how to write cohesive, testable, and maintainable code by using a conceptually-simple game as a context in which to learn. Also, as you will notice (it is no secret), this game will be developed using C# and Managed DirectX, although I like to think the architectural lessons learned can be applied to any development platform.
As an aside, why not call these articles "Tanks!" instead of "BooM!"? Well, BooM is the actual game engine that we will be developing. Tanks is the windows application that will sit on top of our BooM class library. I hope that through this process we can accomplish two things. First, develop a game, of course. Second, develop the underlying technology in such a way to be re-usable on future projects.
If anyone has comments on the writing style of the articles, or comments for future enhancements to the game, please feel free to contact me at the email listed.
Prerequisites
It is assumed that you have a strong understanding of OOP principles and a general knowledge of Patterns. Everywhere that a pattern is used, there will be a link to provide you with more information to learn about the pattern. Two patterns books that I highly recommend for any serious developer are:
Design Patterns - by the Gang of Four
Patterns of Enterprise Application Architecture - by Martin Fowler
This is a series of articles that cover the concept of writing a simple game in C# using the Managed DirectX libraries provided in the DirectX 9.0 SDK.
1) The One With The Game Spec
2) The One With The Game Loop – Coming Soon…..
3) The One Where DirectX Gets Initialized – Coming Soon…..
4) The One With All The Input – The Commands – Coming Soon…..
5) The One With All The Input – The Console – Coming Soon…..
6) The One With All The Input – The Keyboard – Coming Soon…..
7) More to come….
A coworker sent this link to me that I just had to share with all of you. If you have ever worked on legacy code before, I know it will all hit home for you like it did for me :D.
It's times like these that I wish my blog was totally anonymous so I could make an incredible ass-clown of myself and not be worrying "Will Bill still respect me in the morning?" Damn!
:: BEGIN_RANT ::
Dear Microsoft,
I fear I must retract my first letter. Apparently, I am a tremendous dumb butt. I TOTALLY forgot that OF COURSE the software would work perfectly within INTERNET EXPLORER but not at all within FIREFOX. I don’t know what I was thinking. For some silly reason, I was thinking that perhaps technology has come far enough that a web browser is a web browser is a web browser. I was wrong. I can see clearly now the rain is gone. It’s gonna be a bright, be a bright, sun-shine-y day!
Now, if you excuse me, I must go cleanse my computer thoroughly from the IE-induced contaminates that have been flooding my box over the last several minutes. Hey, but at least they are MICROSOFT contaminates, I suppose that’s a start. At least then I can install MICROSOFT Antivirus and MICROSOFT Firewall and MICROSOFT Antispyware and MICROSOFT computer condoms to keep myself safe.
Man, what was I thinking?!?!? I can’t believe I could be so dumb. You know, I just thank the good Lord above that .NET and Managed DirectX are both so fun and great that even with all these announces, that you, oh Microsoft, can still be on my good side. But if that changes, so help me…. I’m out of here!! I SWEAR! Well, perhaps not, but there's a good chance!!!!! [Maybe...]
:: END_RANT ::
:: BEGIN_RANT ::
Dear Microsoft, although I have been a loyal customer for several years, I’m finding your latest practices to be fairly annoying. The least that you could absolutely do is ensure that if you tell me to automatically run a program off of your website, that you link me to the latest version of that program. Is that too much to ask? Because if it is above your abilities, I understand and I will waste my time digging around your terabytes worth of web pages in order to find the latest version that you weren’t kind enough to provide me with in the first place.
You see, I face a dilemma now. In order to make this whole situation easier on myself I either: A) Use Google to find the latest version of your “Genuine Windows” program on your mega site or B) Just say screw your “Genuine Windows” and find what I need elsewhere. As you can tell, both options require not USING YOU in the least bit. Now, if your goal in life is to drive away all your loyal customers, than fine I say, I’ll see you on the other side. However, is it too much to ask that you simply make your customers experience less of a pain in the rear than it is today (I realize that you still may have reservations about removing the pain from our ass completely as then we might focus more on you as a business and less on the extreme PAIN IN OUR REAR!)?
Because I am running entirely legal copies of Windows XP, I have absolutely no reservations about participating in your “Genuine Windows” program. However, if you’re going to make me jump through these hoops simply to download the latest DirectX SDK, please stop the bleeding a little bit, okay? That’s all I ask: just beat me a little less, massa; I promise I’ll be good, massa. If I’m having to jump through all your validation hopes, please ensure that when I get to the end, that you don’t slap me in the face, okay? For instance, I went to participate in this program to get the latest DirectX SDK, and what am I presented with when I try to run YOUR application on YOUR operating system? This:
So, now thanks to you, I’m going to be digging around your site just so I can get this stuff working, all because you can’t.
Thanks once again, Microsoft.
Your loyal ass-clown,
Jason Olson
:: END_RANT ::
I came across this comic tonight thanks to a link from David Weller. If the first comic is any sign of where it’s going, I’m already hooked. It even has an RSS feed for you syndication junkies out there like me that need your fix injected directly into your computer’s life-blood pipeline. Enjoy!
Well, I thought since Rory is comfortable posting up his personal writing stuff, I’ll try to get comfortable posting up my music for a change.
This little diddy is one that I just started tonight. Obviously, it is FAR from being finished, but that explains the title of this post, I suppose. The context in which I’m writing this piece of music is the same ol’, same ol’ in the world of game development. The game is a classic console RPG (a la Final Fantasy), and the music is the theme for the “childhood friend” of the hero. You know, the shy girl that turns out to be a lot hotter when she’s older.
Obviously, the exercise doesn’t get much deeper than that since I don’t really have a true story to base this music off of. I’m going for “setting” and “ambience”, more than anything else.
I don’t promise, but I’m thinking of perhaps posting my progress of the song as I go along so all of you can hear how it evolves over time. I doubt any of you will really be interested in this kind of thing, but I’m doing this for my own sake also, so it really doesn’t matter. Enjoy! Or don’t! I don’t care. Just remember, this is something I jotted down in an hour or so and it is just a rough draft of the song. If it were a game, the game would still be in all wireframe, and only half the models would be there (and no controls would work). You get the point!
I realize ranting is pretty juvenile. However, I have proved time and time again that I'm not above juvenile behavior (quite the opposite, I imagine). With that in mind, I have decided to actually post my rants here even though it may mean I get severely flamed and I might look like a tremendous donkey's ass. Oh well, that's the price that comes along with the territory I suppose. "If you can't stand the heat, get out of the kitchen," as my mum used to always say (okay, she only said it once; and in her defense, the house was ACTUALLY on fire at the time).
::BEGIN_OF_RANT::
You know, if I was Microsoft, and I was holding a big conference on Microsoft technology, I, for one, would not want to have one of my public facing portals to be down quite a bit. Of course, by the time you read this, it will probably already be resolved.
I've tried getting on to the site numerous times over the last week in order to prepare and make my schedule for Tech Ed. However, 90% of the time that I try to load the site, I get a big white "Cannot Find Server" page. Not only that, when I can get in, it seems that one out of every five schedule requests time out.
I may be the only one here, but I consider this unacceptable. Especially when it is hosted by the world's largest software company, and built on their own software. Is there a better way to show how absolutely infallible your software is than putting out into the world and having it fall on its face over and over (and it's not like it's suffering from the Slashdot Effect or anything).
For some reason, it brings back memories of dreams of going to school naked and having everyone laugh at me (quite the opposite of the effect that Rory had on fellow schoolmates). Or, if you will, it reminds me of several stupid Adam Sandler skits ("They're all gonna laugh at you, they're all gonna laugh at you!!!").
Please, do me one favor. You're Microsoft. You have perhaps the largest software budget in the world, and technology that I know is fully capable of large amounts of up-time. The last you could do is provide all of us with a site that a) works and b) works most of the time.
::END_OF_RANT::
I never got around to posting this originally, so there's no better time than now to post it!!!
If you've been Hussein-ing it lately (being stuck in a whole) or just bobbing for crawdads (sticking your head in the sand, hardey har har), you probably haven't seen the new Coding4Fun site over at MSDN (not to be confused with "Codeine For Fun").
Even though Scott Hanselman does have a series there, it is not what I'm most excited about. I'm excited about the fact that it appears that we hobbyist game developers are finally going to get some much-needed love spread all over us (and not in the physical sense). In the past, I've complained about how out-of-date the DirectX developer center was and how, even though Microsoft wants to be a major player with Managed DirectX, Microsoft was not producing quality content on its own product. I'm glad to announce that it appears that this has changed.
You see, the new Coding4Fun portal also has a series of Game Development articles and resources (funny I still hear "Codeine For Fun" every time I say it to myself in my head (yes, I talk a lot to myself if you must know)). There is even a "Q&A" section with the ZMan himself. However, this is *still* not the thing I'm most excited about. Nope! I promise! What I'm excited about is the potential that these webcasts show (that reminds me of this really cheesy physics joke (and I may vary well be butchering it here): Why did the chicken cross the road? Because he has great potential! Hardy har har). The webcasts are being done by instructors from the infamous DigiPen.
If you haven't checked it out lately, make sure that you do so. You will not regret it at all!
Are you going to be there? Well, I will. If you're going to be there,
shoot me an email so we can meet somewhere. I look forward to meeting
all sorts of interesting people.
You know what I just realized? This post is dumb. I'm sitting here
right now thinking that I should totally NOT post this and just delete
it. But perhaps that thought itself can salvage this post and make it
at least somewhat useful (although I have absolutely NO clue how that
might happen). The one thing I want to avoid here is not posting
something because I feel it might be pretty lame. Well, the posts might
be lame, but so are all my jokes. And at least people laugh at my
jokes, sometimes... (although I freely admit that they might be just
laughing at me since that was a very common thread throughout my
childhood).
Oh well, anything to get over my blogging hurdle, I suppose. I just
want to avoid becoming a link blog. I just want SOME kind of content
here, even if it is just me blabbering on about myself and my
insecurities for hours on end.
Well, my new baby arrived today (not literally (wow! that's a scary though: fat little jason-babies running around the house)). I'm talking about Garritan Personal Orchestra. When talking with a co-worker a couple of months ago, it came to my attention how cheap it has gotten to setup a good music composition rig.
Before I explain my rig, take a listen to this. I recorded this mp3 live from Cubase. No, that wasn't recorded from live instruments (well, not really but sort of if you want to get picky). This concerto is recorded using the sampling library from Garritan Personal Orchestra. Being able to make music like this anytime now has me totally addicted and jumping up and down with excitement. SOOOO, I just had to post to share it with all of you.
To make the music from above, the entire setup at my home cost me no more than $600. Back when I first looked into this stuff, you had to expect to invest thousands of dollars if you wanted to be able to stuff of the quality above. I was shocked when I found out I could get it for under $600. Here's the basic rundown:
- Cubase SE: $100
- Garritan Personal Orchestra: $250
- M-Audio Audiophile 2496: $100
- MIDI Controller: $100
- TOTAL: $550
Boy, am I giddy. I hope you enjoy the mp3 from above. I might be posting more stuff in the future if I have music to share (you know, Rory has decided to share his writing, so I have decided to share my music :D).
Hello. My name is Jason Olson, and I'm...... a Slacker. I'm freely admitting it here in front of the world. I start things that I don't finish, I bite off more than I can chew, I promise things way too often and hardly ever deliver. You just need to look at my multiple runs at a series of game development articles to realize that. One thing I'm going to do differently this time? First, I'm not going to promise because there might be a good chance that I will personally lose interest in the subjects I'm talking about. Second, I'm going to try to be realistic with myself. What does this mean for you? Hopefully, it means no more sitting around cussing at me because I've dropped something just when I got your attention. I've lost track of the number of emails I've received about "when I'll finish the damn articles already!!!!" So, with this whole move to my new home, I asked myself why I didn't finish those articles. And I think the reason is that I tried to make them more grand than I could really do. For instance, anyone that has hung around the Beginner's Forum on GameDev has more than likely lost count of the number of new developers (not just new to game development, but new to development in general) that have claimed "I'm going to build the best MMORPG EVER!". And this for their first development project ever. Not a good start, that's for sure. Well, although I hate to admit it to myself, I have been one of these very people. I think part of it is just me getting to know myself more. I have flaws (and a LOT of them at that). Well, rather than feeling all pitiful about myself for everything I *haven't* done, I'm going to try smaller things and then be happy for the things I *have* done. Part of this attitude exhibits itself in this very blog. I've owned this domain for a long time now and have been (frankly) too damn lazy to get a hosted solution and make a proper site. The prior version was just a hacked group of static HTML pages and was a pain to maintain. I never got up the energy to get this hosted because it would "take too much work". I would have to build my own solution. I would have to add all this functionality. And after all that, it would still not be nearly as good as I wanted it to be. Well, to counteract that feeling I got off my rear end and decided just to use dasBlog. Why? Because it was extremely easy to setup, and because it has more functionality than I could probably develop on my own with the amount of free time I have. After all, if there are already solutions out there that exist for blogging, why in the world would I develop my own when it isn't the problem I'm solving. It isn't even a problem I'm interested in solving. I just want to deliver content. That's it. So why waste my time developing a home-grown blogging solution when I could be spending that time with my family, or writing games, or writing articles about writing games, or writing music, etc. But, really, what is the payoff? I'm hoping part of the pay off will be immediate. I've realized that the people that liked the game development articles I was writing probably don't care if I was developing a mario-clone, or whether I'm developing a simpler two-dimensional space shooter. After all, I firmly believe that the lessons learned when architecting a space shooter can be directly applied to developing a mario-clone. For me, I think the vision of developing a mario-clone was "more than I can chew". I have to admit something here, I'm not a game development expert. In fact, I haven't developed a single complete game yet (of course, that's probably no surprise to most of you who know me). Because of this, I have decided to fire up the articles again in order to develop a simple space-shooter (the original vision). The first couple of articles that people have read will not change. The good news is that the articles posted already are still relevant. In fact, I will be trying to get around to posting those articles on this site sometime in the near future (no promises though this time :)). Maybe if I actually stop procrastinating and do something for a change, I'll be able to get back on the Z Buffer's linking good side :). Considering how many of you I have probably let me down in the past, let's hope this is different. Stay tuned (or not, whatever).
[ this is an interview I originally conducted earlier this year on the prior Managed World]
Tom Miller Interview
by Jason Olson, 1/4/2005
It is no secret that I love game development. It is also no secret that
I love Managed DirectX (otherwise, this whole site wouldn't be here,
would it?). These are the reasons that I am proud to say that I've had
the pleasure over the last month or so to conduct an interview with
Microsoft's Tom Miller, the "father" of Managed DirectX.
In this interview, we will find out how Managed DirectX came to be, as
well as certain design decisions made while creating it. If you enjoy
this stuff as much as I do or you just wish to get an insight into the
man behind the scenes, I implore you to read on!!
JO: How long have you been working at Microsoft?
TM: I started working at Microsoft in May of 1997, although I
didn't join the DirectX team for a while after that. I worked on small
internal projects for MCS (Microsoft Consulting Services) for a few
months before joining the Visual Basic (6) team later that year. I
worked on various tools that shipped with the IDE. When VB6 shipped I
moved over to the Office 2000 team where I worked in the 'core' office
group (not specific to any one component, such as Word, but components
that were shared). I wasn't in the Office team very long though, and
moved over to the DirectX team in June of 1999.
JO: How did you manage to put yourself into a position to spearhead the development of Managed DirectX?
TM: When I was first hired into the DirectX team, my original
job was to help in the development of the samples for the 'new' DirectX
for Visual Basic (5/6) library we were shipping in the DirectX7 SDK.
That quickly led to writing components for the DXVB library itself,
which in turn led to 'owning' the entire DXVB development. While we
were finishing up the DirectX 8.1 SDK (mid 2001), I began looking at
this 'new .NET stuff' that was brewing over in the developer division.
I recognized relatively quickly the high 'potential' for this
technology and began working on a 'prototype' version of directx
running under this runtime in my 'spare time'. Back then, I was calling
this prototype "DirectX.NET" because everything was being called .NET.
Anyway, I worked feverishly on this prototype (the D3D portion) until I
had a working copy of one of the more complex D3D examples in the SDK
at the time. The performance of the sample was about on par with the
DXVB code we had before, but was still relatively 'slow' compared to
the C++ example it was based on. After showing the demo to multiple
people in the group and implementing the rest of the DirectX API, we
had our first 'public' showing of the technology at GDC in March of
2002.
So I guess a short answer to the original question would be: "I was like Nike. I just did it."
JO: What were your primary concerns when first architecting the Managed DirectX API?
TM: Anyone who saw the initial 'alpha' version of Managed
DirectX at GDC back then (I still have the CD!) would barely recognize
the code that Managed DirectX is today. The *very first* design
decision was basically "Make everything look exactly like it does in
the C++ world". The objects were all named just like the COM
interfaces, the structures were all the same (with all the caps like
D3DCAPS9), and there was essentially a 1:1 correspondence between the
managed function and the unmanaged function. The API itself was nothing
more than a simple passthrough between the 'managed world' and the
'unmanaged world'. It accomplished what it set out to do, but when
compared to the great API work going into the .NET Framework itself, it
looked outdated, and 'hard'..
We made a concious decision shortly after that release to focus on ease
of use, and api consistency with the rest of the framework. The API
matured, and many of the benefits it has built in now came from this
focus early on. That being said, speed was never disregarded. After
all, we're the DirectX team, games are the most common things created
with our API's and games need to be fast. If a situation arose and the
'ease of use' method was simply too slow to be used in 'real time' in a
game engine it wouldn't be used. In these scenarios we would provide a
'faster' alternative.
JO: As a developer, how much do you find yourself using Patterns and/or Refactorings, consciously or subconsciously?
TM: Sure, although I'd probably say it's more 'subconscious' now
than anything. It just comes naturally with the territory for me
nowadays.
JO: I notice that a lot of architectural designs with Managed
DirectX correlate to designs already established within the .NET
Framework. How much effort was put into leveraging the design decisions
already established in the .NET Framework?
TM: If you would have seen the original version we showed at GDC
in 2002 you would be surprised at how much it did *not* follow any of
the guidelines.. After that release though (I essentially now had
everything 'working') we spent a large portion of time updating the
assemblies to fall into the guidelines/designs that the rest of the
.NET Framework was using. The entirety of time spent between Beta1 and
Beta2 was this 'redesign' of the API. It was quite a challenging time
to say the least.
JO: Was a tool like FXCop used to verify the design of the Managed DirectX code base? If so, to what extent was it used?
TM: Yeah, we use all of the tools available to us at any given
time, including FxCop. The 'problem' we faced when using FxCop is the
enormously large number of 'false positives'.. Managed DirectX is
written entirely in Managed C++ and the code that the compiler
generators FxCop doesn't like. For example, when you declare an event
in MC++ it also generates some protected methods like
'raise_EventName'.. That one item breaks two FxCop 'rules' (no
underscores, protected methods in a sealed class). Multiply that by the
hundreds and you can easily have thousands of these 'false positives'.
We find these tools to be invaluable to the development though, even if
we possibly miss some of the 'real' issues amongst all of the false
positives.
JO: What type of testing takes place against the Managed DirectX API before each release?
TM: While I do have much contact with the test team for the
assemblies, I wouldn't be comfortable speaking for them. I will say
that they have quite a large 'sign off' sheet that they must complete
before each release that includes running all of the tests they have
written, all of the samples, etc..
JO: What are your three most favorite things about Managed DirectX?
TM: That could be interpreted a multitude of ways.. For example,
I consider people using (and enjoying) an API that I designed and built
to be quite awesome. It's definitely my favorite thing about Managed
DirectX by a long shot. However, when looking at the API itself, the
"ease of use" built into the API is another one of my favorite things.
Lastly, i suppose it would be the opportunities that doing that work
has afforded me. It's allowed me to write books, which is something
I've always wanted to do, and with game companies now releasing games
using the API, it's a whole other sense of accomplishment.
JO: What area do you feel has the most room for improvement in Managed DirectX?
TM: API clarity. While the API is already 'cleaner' than the
native API, and more inline with the guidelines that the rest of the
CLR uses, it's still not there. There's still quite a few of esoteric
items that could be improved on. That doesn't even consider the new
stuff coming out with Whidbey such as generics, etc.. These are all
things that I have plans on addressing in the near future.
JO: Any last things you would like to say about Managed DirectX for the readers out there?
TM: Well, not that I can think of right now.. =) Keep writing the games and apps.
JO: Thanks for taking the time to answer these questions!
If you would like to read more about Tom Miller, you can find his blog at http://weblogs.asp.net/tmiller.
As usual, if you have any suggestions for DirectX, you can go through
the normal channels either by using the newsgroups or emailing
directx@microsoft.com.
In an earlier post, I mentioned how I will be getting off to a fresh
and clean start here. Well, that was not entirely true. I will be
finding just a couple of the "must haves" from both my old blog, and
the prior version of Managed World, and I will be posting them here as
new posts. Perhaps some of you never saw this stuff. If that's the
case, enjoy :).
Okay, I promise I won't start many posts out with lyrics from
Journey, but I couldn't help myself. Once again, I have shown everyone
how I have absolutely no self control at all (although I'm sure all you
have to do to see that is look at my picture in the upper left of the
website (hey, I can insult myself, I have every right too :))). All I
have to say is that I'm glad I don't live near a Krispy Kreme or I
would become a large, waddling Krispy Kreme on legs, methinks. But
alas, I digress.
I just turned off the lights
at the old blog. It's kind of a sad moment for me. While I loved it
over at GeeksWithBlogs, it definitely had its moments, both good and
bad (as I'm sure this new home will have as well). I must have
become quite attached to my blog because I have that same feeling I had
when I left RMLS to start working for Fios, Inc. It's definitely a
mixing pot filled with mixed emotions. A little voodoo soup for the
blogging soul, if you will.
While I would like to say that I'm going to turn around and post
nothing about thought-provoking, intellectual posts, I know that is
simply not true. I will probably be just as perverted as before, if not
more. I will be just as immature as before, if not more. And I will be
just as loud as before, if not more (okay, I know that last one doesn't
really make sense since the term "loud" is usually associated with
hearing, not reading).
What does this mean for any of you? ABSOLUTELY NOTHING! I will do
nothing for you. I'm here for me. "Blasphemy!" you say? Well, screw off
then (just kidding, I love you all (I don't want you to screw off
(really!!!))). What I mean to say is that I've thought a lot about
blogging recently and, well, up until now, I've been way too worried
about what people would think about what I'm posting. I was always
worried about contributing valuable "technical" content. And then a
thought struck me in my little wet noodle (not that noodle, I mean my
head (other head!!!!)): all the blogs that I absolutely love reading, I
absolutely love reading because you get to see the person behind the
blog. Prime example: Rory Blyth.
Rory is one of my favorite bloggers in my aggregator all because Rory
is Rory because Rory wants to be Rory. Well, one thing is for sure now:
Jason wants to be Jason, nothing more, nothing less.
I need to learn to embrace what and who I am. I don't think I'm a
guy who is going to be contributing golden thought-nuggets to the
society jeweler every week. I'm just a quirky guy is who tries his best
to lighten up people's days by making them laugh (and tend to pole
vault across the line of what "normal" people consider "socially
acceptable"). So, that's who I'm going to be from now on. I'm just
going to be myself. No worrying about whether I'm detracting from the
overall site or not because the site is about ME, and nothing but ME
(okay, that won't certainly always be the case). Of course, people like
Rory have been telling me these kinds of things for a while, but it
took me getting hit over the head with an apple (literally (as in,
literally = not really)) in order to realize this.
So, I can't promise that I will post that often. I can't promise
that my posts will actually have any "content". What I can promise is
that I'm going to be myself and I hope that you find that refreshing
and join me on my long journey.
Now if you'll excuse me, it's quite late (or quite early depending
on how you look at it) and I need to get up in a few hours in order to
work. I'm frankly surprised my eyes stayed open long enough to make
this post. Goodnight!
Ciao!
Scott mentioned how he noticed more people moving to DasBlog. Well, add me to the list, yo! I've been wanting to move my blog off to my own site for a while now in order to let my feet dangle in the deep end of the blogging pool of the world for a bit. I figured it was about time to stop being lazy and to just take the plunge.
Before I get the motor rolling too much, I just want to give a HUGE "Thank You" to Jeff Julian over at GeeksWithBlogs for being such a gracious host while I was blogging over there. I would recommend that site at the drop of a hat for anyone wanting to get started blogging without having to worry about their own hosting/domain situation. Now, on to the new (but not necessarily improved) Dog and Pony Show!
You know what? I can tell I'm getting older (or perhaps just [::GASP::] more mature) when I made the decision at the drop of a hat to use an established blogging application rather than home-growing my own. There are numerous reasons why I made this decision but, alas, that is not the purpose of this post my friends. In order to make the move easier, I have made the difficult decision to leave all my old content over at geekswithblogs. This will also allow me to get a "fresh start" in my new home.
I fully expect that I will lose quite the number of readers by moving here (not that I had that many to begin with). But for those of you that have followed me over here, I want to just say a couple of things (although you should feel free to ask questions if I miss something). The game development articles (and other articles) that I had over at my old blog (and on this site when it was still static html before the move) will be moved over here over the next couple of weeks as regular posts. I figure that a blogging engine is all I really need right now to do what I wish.
As you can tell, I don't have much to say, but I wanted to do more than the "Hello World" thought-turd you see done everywhere else.
Anyways, welcome to my new home :).
|