I remember making a 2D Mario Platforming game in 2 weeks.
I'm just now finishing a 4-player Everquest (MORPG style) game in 1.5 years.
Sadly, I doubt my 2D platformer will never get old. and the joy of knowing it only took a few weeks. and a small amount of code. You might want to aim lower if this is your first game. If you start smaller, you can reuse your code and it might help before going into an RPG. (And by lower, it doesn't have to be pong.)
That's what I did, since I am the only one in my hobby projects (programmer, designer, artist, musician). But I started with smaller projects and gradually finished my goal (RPG). Though I wanted one that required no server, so 4 Player LAN setup to play with friends, or solo.
I progressed in difficulty by making the following games in order
3D Arcade style game (Guide a rocket through a level) (C++ DirectX)
2D Platformer (c++ direct X)
2D Tower Defense (C++ DIrectX)
3D Fleet Battle (strategy, C++ DriectX)
3D RTS (XNA C#)
3D 4 Player Action Pirate ship Simulator/battle ( C++ DirectX/HLSL)
3D 4 Player MORPG ( C++ OpenGL/ GLSL)
Notice that I started small, learned things, and general each new game added a new programming concept. Be it tiling in 2D, or A* pathfinding in Tower Defense, or Networking in my pirate game.....
Now to answer your questions.
Choose a language everyone is comfortable with. XNA and C# was really easy. You might want to look into that as a choice, i've never used python.
But now I'm going to share a lot information, sorta a post mortem on my 4 player RPG i just finished. I understand yours will be easier as it's 2D, but a lot of this applies.
Obviously the fun part is making classes, spells, enemies, designing the game. But Soon when you want your game to have a good amount of gameplay and reatures. There are a lot of subsystems you need to implement in an RPG. I'm going to blast a ton of questions relating to these subsystems so you can start thinking now.
How are you going to render terrain (probably a tile map). How are you going to make the tiles and design the world? You will probably want a tool for that. Some world editor that lets you paint maps and export them into the game. That's work to do.
How are you going to handle Quests, Loot, Dialog? Well it sounds like you have a database in mind, which is similar to what I did. But then I made a tool to generate and edit items. One that can create Quests or edit them. Assign loot as rewards, Assign dialog to the start and end of the quest. Having a tool made it easy for whoever was DESIGNING the game to just use the tool. It connected to the database, so everything was content driven on the game. How do you map dialog to NPCs (maybe tool)?
How are you going to handle combat? Is it real time? If so, how to you handle Groups. How do you update only the players you care about as a server when someone makes an attack. Can your server handle updating all the AI for every enemy? and for ones that are fighting players? If someone casts a spell, you need to alert every player where that spell might exist so they can render it. How do you display the damage? do you show other players damage? Do you animate sprites if someone is attacking? what if they miss? can they miss? What if they are in casting state? what if they just got hit? or finished casting a spell? These are all events you need to handle for all connected players. And handle any lag if this is all real time as well. Combat was not a trivial system and I limited my game to just 4 players! How do you handle Agro so that the monster will attack the correct person. Do you impliment some sort of holy trinity (tank , DPS, Healer) paradign? What about buffs? ist there a time limit on buffs? who can give who buffs? do they scale? do you have special buffs like HOTS? or Torns(attacker recieves damage)? Do you have stealth? What about Bladeturn to absorb damage/ buffs that remove after use?
How to you handle the merchant. Querying available items for sale. Implementing some sort of economy system with buy/selling. I didn't even touch crafting lol. Is there trading? How to you stop people from equipping powerful items and breaking the balance of a game.
Moving your character around can be a challenge in a network game as well. How do you get the character to move fluently, with minimal ruberbanding for both the user, and other players. Handling collision detection with the world (terrain tiles). Maybe handling collision detection with players/enemies/spells (up to you)? Is it a persestant world like WoW, or instanced like Guild Wars? (obvsiously 2D).
What if a high level helps kill with a low character. What if this happens when they are in or not in a group. How do you stop griefing? How is exp Awarded? What defines "progress" in your game to keep someone from not playing. Is there Raids or group only content? Guilds? What kind of Social Interaction are you expecting in your game
Then the subsystem that threw me for a loop. I didn't realize 50% of my time would be programming the UI!: What are you displaying on the vitals (hp, mp, xp)? Do you have a group window? a Cast bar? A spell bar for spells? How do you handle mouse clicks? How do you handle targeting (Both UI and click on the model)? What menu system do you have? I had lots of tabs like: Personal infomration about their stats, Equipment menu, Inventory menu, group menu, spellbook menu, trading menu, a WOrld map, Game settings. Do you allow them to change game settings (size of screen) sound ? (for me it was also optimizations like shadows, adv water reflections, render distance, but maybe not needed in 2d). How do you program the act of someone moving things around in an inventory? How do you program equiping items? How do you handle Assignign skill points or spells? Do you have a Quest menu? How to you show the statuses of quests? which items they need to collect or enemies they have to kill or what reward they will get, or how much exp they will recieve. UI was the longest part, and I never realized how much of a chunk RPGs UI is.
What happens if someone disconnects or dies. do you have a bind system? are they penalized? How do you handle respawning enemies if its a persistant world. Are there zones?
.........................
.........................
I'm not trying to put you down, I just want you to be aware of all these situations you need to program and take care off. Of course you can always simplify your game, but I was just relating my own experience. I thought it would be as easy as :
Implement Chat system - > Network host/join code -> move character -> combat.
An RPG is really a lot of work. And I spent a good 3 to 4 hours a day for a 1.5 years coding tools, making the game. My game has content enough for 60 hours of game play, but it probably couldn't handle Massive players. It was built and designed around 4.
Hopefully you don't take this the wrong way. But damn, was it a lot of work. I'm not saying you can't do it, I'm saying I could not do it if I started even 4 years ago, not knowing much game programming experience.
Sorry for long post.