Tuesday, July 29, 2008

Obligations and Pleasures

As the saying goes, "No Good Deed Goes Unpunished."  I've offered my services to the local coffee shop I frequent, now realizing just how much of my free time I'm sacrificing when I could be working on more rewarding endeavors.  D-Roc will undoubtedly take this as some sort of excuse for why I'm not getting work done, which I will combat right this instant by saying that I need no excuse; I fully admit that I am a slacker and often have a hard time finding motivation, and I never claimed otherwise.  He can continue to boast his glossy screen captures with pride, and the straw man he's attacking will continue to tremble in fear.

image

Anyway, I found myself buried in WPF books and articles just to accomplish a simple customer management app.  Don't get me wrong; I intend to continue learning WPF but I'd rather devote my work time for this as opposed to my free time, which is better spent exploring XNA Game Studio

To this end, I've reduced the scope of my customer management app from a WPF app with databound database, to a Windows Forms app with a DataSet serialized to and from a big-ass XML file (though in fairness, given the size of the coffee shop, it's a relatively small-ass XML file).  These are all familiar technologies to me, so I shouldn't have to spend much time in R&D.

On the topic of obligations versus pleasures, as I mentioned before I'm also continuing with XNA Game Studio.  I realize that I could reach a broader audience with a web game, but I just don't care.  The type of game I'd enjoy making is better suited for XNA GS.  And as Jonathan Mak would say, if you're creating a game for someone else, how can you call yourself an indie?  (But let's be honest, I always have a mix of the player and myself in mind.)  Plus, the new Xbox LIVE Community Games system could, at least in theory, easily offset the lack of PR I'd suffer from if I tried to launch a web game from my own site.  Perhaps if a major web portal starts supporting Silverlight, it'd be a different story.

My next post will cover some of the decisions I (or any indie dev) has to make when deciding on a technology.  Until then, not to be outdone by D-Roc, allow me to meet the bar by posting a screenshot of an all-but-empty window:

image

Sunday, July 27, 2008

DotNetNuke and Silverlight Chatter done!

I finally have a framework up for logins and other mundane albeit necessary web things. Using DotNetNuke, I will be having an optional login for my silverlight games. You can check out how to plug silverlight modules in DotNetNuke right here:
http://dnnsilverlight.adefwebserver.com/Silverlight20/tabid/65/Default.aspx

I wanted to take a very minimalist approach, deferring most of the page space to the hosted silverlight module, rather than slamming my viewers with clumsy div boxes that seems to be standard for enterprise web pages. You can check it out below (ignore the placeholder silverlight button):



I custom skinned the Dnn portal which was extremely easy. Don't fall for the lazy trap and buy off-the-shelf skins, they tend to be garbage anyways. Here's a great site to learn how to skin Dnn sites:
http://www.dotnetnukerocks.com/tabid/3167/Default.aspx

If you are just starting off, remember, only edit the .htm files. The "parse skin package" will generate the .ascx file for you to manipulate later. You'll know what I talk about after reading / watching the tutorial linked above.

To get my silverlight app to benefit from the user login received by DotNetNuke, I pass the information as InitParams to the Silverlight module. I leaned away from marshalling data back and forth between JavaScript and Silverlight because of the added difficulty of doing this inside a DotNetNuke module. I might exploit that capability in the future, but for now, I'm just happy with a unique username that I can plug into my own database to create a personal gaming experience perhaps even across multiple games.

As for my associate Vargo, he's been silent lately, probably waiting to have something substantial to show in his next post. Don't wait up.

Saturday, July 19, 2008

Indecision in Game Design

Every week my game changes. This week, we're looking at Civilization meets Supreme Commander with a dash of Wall Street (in game stock ticker reflecting the game economy, stock purchasing incorporated in full force!). A game will be played simultaneously by at least ~40 players in their browser and last around a month. They log in every day or so and spend 30 minutes managing their country/state/corporations. The first chapter will be titled "Secession" and only contain the United States. I'm trying to limit the scope for the initial release while keeping the environment interesting. I don't know about you, but I've always wanted to invade Jersey.

Keep posted for progress reports! My alpha will most likely by a single player game with no ai but a real time version of the game described above, to test out physics and game mechanics.


I would like to take a moment to apologize for the ramblings of Vargo. He's spamming his own blog with gibberish and making the whole site look pretty amateur. Maybe after he reads this, he'll clean it all up. I wish there was an option to view posts by author, if there is let me know. For now, to save you time, just look for posts by d-roc. Vargo's posts combined might produce one with substance. I hope this doesn't continue and again, sorry.

Monday, July 14, 2008

My First WPF Application

While slowly trudging through Windows Presentation Foundation Unleashed, I found a (hopefully) simple application that I can practice with.

About a year ago I offered my programming services to a local coffee shop owner in order to practice my ASP.NET skills and hopefully score a lifetime supply of free coffee. Unfortunately (or in hindsight, extremely fortunately), the owner wasn't very interested in a web site.

Fast forward a year later, and the owner is interested in a tool to manage his customer credits/tabs and punch card status (i.e. number of purchases until the next one is free). This sounded like a perfect opportunity to over-engineer and practice some real-world application of WPF.

I will be creating a simple GUI app with a SQL Server 2005 Compact Edition database back-end to accomplish this goal. I want to also experiment with minimalistic UI, trying to borrow from examples from Apple and counter-examples from Microsoft. I want to try to minimize the "signal to noise ratio" of the app, if you will. I still have a lot to learn about WPF, though.

Sunday, July 13, 2008

Reading Comprehension and Beyond

You can clearly see from D-Roc's prior post that he missed the entire point of my previous post. Namely, the blog was contingent upon his participation, and his willingness to participate (or in D-Roc's terms, his willingness to "take the first step"), was non-existent.

His reading comprehension may need work, but despite this it's good to see D-Roc finally making blog posts, even if it took him a couple weeks to "take the initiative."

Edit: I welcome the opportunity for this blog to serve a selfish secondary purpose of exposing common logical fallacies used in everyday life. I expect D-Roc to be a veritable treasure trove, and he's off to a good start. In D-Roc's last post, for example, we saw a clear example of a Straw Man:
"The Straw Man fallacy is committed when a person simply ignores a person's actual position and substitutes a distorted, exaggerated or misrepresented version of that position".
Examine the following paragraph:
My cohert, Vargo, spoke endlessly of the ultimate blog, with promises of tutorials, vlogs, discussion boards, and the community that would come with it. What was the result, months after the vision? Nothing. The first step is the hardest, is this why he never takes it?
The underlying argument D-Roc is making: "Vargo promised a blog, etc. but didn't deliver, probably because he wasn't willing to take the first step." Notice the false premise that D-Roc sneakily inserted. He implies that I had intended to create a site independent of his participation, but as I blatantly spelled out in my previous posts, that was never the intention. Thus he's attacking a false argument, or... that's right, "straw man". Here is where reading comprehension would have come in handy.

Edit #2: Just to be clear, I never implied that I'm not lazy and unmotivated; just that D-Roc's argument holds zero weight. You'll hear him criticize my lack of future action as evidence that he was correct, when in fact he's only verifying his straw man. Common, tired tactic. Move along, nothing to see here...

Saturday, July 12, 2008

Initiative and Beyond

There's a lot of talk out there with the promise of rich internet applications. Let me add to the pile of e-promises and tell you all right now what my purpose is: To put the BLING in rich internet applications. That's right, Bling. This blog will serve to document my adventures with Silverlight, something I'm equally excited and frustrated about. Excited, because it's a subset of WPF, and frustrated, because it's a ridiculously SMALL subset of WPF (No triggers! Seriously). There is already a very clean application that can be used with the Silverlight 2 beta 2 that you can find here:

http://www.farseergames.com/

My cohert, Vargo, spoke endlessly of the ultimate blog, with promises of tutorials, vlogs, discussion boards, and the community that would come with it. What was the result, months after the vision? Nothing. The first step is the hardest, is this why he never takes it? As is the norm, I took the liberty of relieving him of that step and created the page you are looking at now. Wow, action! Imagine that. I remember the last idea we had, another great one. Behold the glory of an internet multiplayer 3D platformer featuring shader instancing, shadow mapping, etc, which was code named Project Earnie:



Who's idea was it? His. What did he do? Nothing. His sermons only yield inaction. But there is a hidden fruit to all this malice: He inspires me to be different. And so my disposition towards development has been cemented as: Don't talk, Do. I'll be sure to deliver something tangible within the next few months, mark my words.

d-roc

Monday, July 7, 2008

Blogs, Tutorials, and Beyond

As part of the grand blog idea, I wanted to include various coding tutorials, with the selfish goal of testing my own understanding and forcing me to learn things I don't (but want to) know.

I've never been a fan of tutorials via blogs, though. Don't get me wrong; if I Google a coding topic and find a blog post providing a tutorial, I'm certainly appreciative, but what if I want to browse all available tutorials by this person? What, am I supposed to scroll through every story about this person's dog or new baby in order to find the occasional how-to article? Of course not. It's like we've taken a step backwards with this trend of tech professionals providing tutorials in blog posts. What ever happened to the ability to browse?

This is one of the reasons I didn't want to limit this site to a simple Blogger blog; I wanted to potentially have a browsable page of tutorials, vlog "episodes", or whatever the case may be. Blogger may provide functionality to add widgets or whatever -- it seems to allow a lot of customization -- but then this brings up the issue of which web technology to use. As far as I know, Blogger is based on PHP, and I'd rather Dimitri and I use ASP.NET (and I'm sure he'd agree). I was researching several ASP.NET blogging/community site options prior to Dimitri "taking the initiative" and creating this site, and we may make the transition to one of these at some point in the future.