Question: I've been a web programmer for a while and I can also program in Java. I have an idea for a small, multiplayer RPG game that I want to work on. It will be played through a java applet in the user's web browser.

I have written the design document and specifications of the gameplay. What I'd like to know now is how I can develop the game? I've worked only with windows-like business apps in the past, with built-in widgets for textboxes, dropdowns, etc. With game programming it seems that I would have to build my own widget/controls for the UI of the game.

These are the specific questions I have in mind:

1) How to display a 'loading...' message with a progress bar while the game's images, sound, etc are being downloaded. (Using the java applet)

2) How to create the UI of the game with its own menu, controls, etc. Such as by clicking the map icon it would show up a map to them. Clicking the friends icon would let them chat to their friends, etc.

3) And other, general game development issues that i should know about, like whether I should use 2D or 3D graphics, physics in games, etc.

If there's a good recommendation for a book that will help me, do share.

Answer: 
Responding to question 3. If you are really keen to start developing games, I recommend you read this [short article by Jeff Howland](http://www.gamedev.net/reference/design/features/makegames/default.asp).
If you're looking for a gentle entry path to game development and don't mind learning C#, [XNA](http://creators.xna.com/) has an entire community built around learning how to write games. It has samples of all sorts of things -- the [Game State Management](http://creators.xna.com/en-US/samples/gamestatemanagement) sample shows a good way to implement screen transitions and loading, and there's a similar [Network Game State Management](http://creators.xna.com/en-US/sample/network_game_state_mgt_sample) sample for networking stuff. They also have entire games available as source code to download.

Whether or not your long-term goals are to make a Java applet, Flash game, or you want to work in C/C++ with OpenGL, XNA is a great way to ignore all the hairy implementation details of rendering/sound/etc. That's very very helpful when you're just trying to make your first game, believe me.