« Text Rendering in Native Client | Main | Play some indie RPGs at PAX »

August 23, 2011


David Reagan

If you know C# well, then picking up PHP shouldn't be hard.

If you can afford using Windows Servers, I think you can build serverside stuff in C#. I've never done so, the LAMP stack is my preference.

For learning PHP, I'd suggest installing WAMP. That installs Apache, MySQL, and PHP for you on Windows. Then, once you are more comfortable with PHP, use a VM to learn the Linux server stuff.

Max Battcher

Since you have some Python familiarity, I'd probably start with App Engine in Python. The Python App Engine is a rather unique stack at the moment, but it is extremely easy to work with (particularly the whole not-having-to-manage-any-hardware part) and particularly easy, I think, to start with. Although it is a unique stack, many of the lessons and skills do transfer well to "real" Python stacks (like Django) should you ever need it.

Max Battcher

Also, I'll make an honorable mention to ASP.Net MVC 3. Although, I've managed to avoid needing to work with it thus far, the Rails-esque approach to MVC stuff has moved to (plus neat things like "Razor" templates) seem like strong moves in the right direction for making it easier to build good web apps in C# (finally). Azure seems like it's becoming an attractive hosting platform, or so I hear as well.

Jacob Foshee

If you are already familiar with C# I would recommend considering ASP .NET MVC 3. It is approaching feature parity with Rails for most of the common stuff. (My current biggest gripe is the lack of database migrations). While my experience is limited I'd be happy to answer questions.

Jeromie Walters

My first thought is "Don't do it yourself." If you have no experience with server-side development, why do it yourself? I'm a web developer, game hobbyist on the side, but I think the pain of managing your own server and learning tech that's totally incongruent with your normal practices will be a waste of your time.

Consider hiring a web developer to manage the server-side web/database development if you need a high degree of control, or better yet search for online hosts/APIs that handle most of your needs and spare yourself some headaches.

My small team is in the same boat and will likely find something free to use so we don't have to develop our own leaderboards. Hope you find the right balance, let us know what you decide!


since you already know python, i would second app engine. or try something simple like django, to get the hang of web techs :)

Jeremy Wright

Since you are fluent in C# I would stick with that. The MVC stuff in ASP is fantastic. I really enjoy working in that environment.


I gotta add, don't do it yourself. I have no idea what you want to do, leaderboards maybe? but if you do it yourself and your server can't handle your traffic it will be a lot of work for you to deal with. Google App Engine will handle that for you. Don't know about other systems but I assume you really don't want to be the one running the servers, making them secure, adding more if what you have is not enough, backing up, etc etc etc...

Rob Fitzpatrick

Appengine is terrific. You can pick it up relatively quickly, and as mentioned it translates into different stacks (e.g. django). If you need realtime game stuff, appengine's socket equivalent is called Channels. I'm using this for my current projects, and the free-for-a-while plan is a nice starting bonus.

The OTHER option I would seriously consider is node.js. If your game frontend uses javascript, you can get a lot of cod sharing between the client & server. I'm using this setup for my future projects. It's more work to host it and get a database going than the appengine route, but has a lot of perks. If the frontend is Flash/Flex, you still get a lot of code re-use since both AS3 and JS are ecma scripts (they have the same language definition, if slightly different syntax).

Rob Fitzpatrick

One more thing -- server maintenance is a huge drag. Do anything you can to avoid it.

If you use appengine, it's a non-issue, and you're set already.

Django is a bad choice because you need hosting somewhere.

For node.js, try heroku. You'll still have to learn git and do a little command line, but it trivialises the vast majority of the grief.

There are some nice hosted servers with configurations for the various languages, but even those can be a huge pain to deal with. EC2 is a non-starter IMHO because of how much server tweaking you'll find yourself doing (I used that for my previous 2 projects).

The comments to this entry are closed.

Jamie's Bragging Rights

  • Spider-Man 2
    The best superhero games of all time Game Informer
    Top five games of all time Yahtzee Croshaw
    Top five superhero games of all time MSNBC
    Top 100 PS2 games of all time Official Playstation 2 Magazine
    1001 Games You Must Play Before You Die Nomination for Excellence in Gameplay Engineering Academy of Interactive Arts & Sciences
  • Schizoid
    Penny Arcade PAX 10 Award
    Nominated for XBLA Best Original Game
    Nominated for XBLA Best Co-Op Game