bummer.. there were 3 options and i chose Photon after noticing the 50 free ccu version since its definately all i'll need to play with implementation right now... Why is it hard? It's recommended on the Unity website.
For now the game i have in mind is pretty simple, start with a space station, a location in the universe and a ship. For now I just want to create something functional where I can fly my spaceship around and blow up other brainless spaceships with a simple AI that attacks you if you're in range (or whomever is doing the most damage and in range). The enemies give XP, drop loot/salvage and you use that buy junk for your ship, ie new weapons and shields from your space station.
Eventually I want a view where you can enter the station in an RTS setting and build or upgrade buildings and purchase buff items but thats on the backburner since i want a working foundation first of course.
I want it to be a locked 3d isometric view with a radar minimap locating enemies, allies and other space stations as simple ping dots from your current position. In the future I'd like to get creative with level up perks, different commanders for your spaceship, guild/team/alliance setups for players and all that jazz but.... my main target is getting the ship gameplay working and connecting players and giving them relogging abilities with retained data on the server.
in a nutshell
(1) 3D isometric view
(2) Super simplistic AI script for npc's
(3) Minimap / Radar
(4) Interchangeable item system that affect your damage, health, and other defined attributes unique to each player
(5) Small galaxy area to begin blasting away, all space views, starry background.
I'm not too concerned with proportions and stuff, for instance when you fly up to a planet its really only 4x the size of your graphical ship... i'm going for ideas and principles right now.
Any help is really just super appreciated, I'm running through the Unity tutorials right now and it seems perfect if i can make it do what i want. I know what my scripting and programming feats are but im not sure how to approach and tackle them yet and that is whats consuming most of my time at this point.
Ok, well, you are starting with unity right. Let's say for now that you view the spaceship from behind, outside. Here is a list that you should try to tackle in-order:
1) Build a spaceship/placeholder
2) Create a script that moves the spaceship with the mouse/keyboard
3) Create a script that lets the camera follow the spaceship.
4) Create a projectile, like a missile
5) Create a script that fires the projectile from the ship in the direction the ship is facing
6) Create a target, for example space debris, make sure it has a collision component around it
7) Make sure your projectile has a collision component
8) Add a script to the missile that it detects collision with the object, just detection at this point
9) Adjust this script so that the missile blows up.
10) Write a script that add properties to the space debris, so the space debris needs to get a variable for life, a method to reduce this life when it is hit, and a method to die when life is 0 or less.
11) Adjust the projectile script that it detects what it is hitting, and triggers the Hit() function on the space debris when it is hitting the space debris. Various ways to do this, one easy way is to call the component script on the space debris Hittable. Then check from the projectile script if the Debris has a hittable component, if it does, you can get that component and call the Hit method on it.
Ok, so at this point you should have a spaceship that you can move around, you can shoot and blow up space debris. As for the loot. I usually write a lootable component, the enemy has some basic properties like enemy type and level that function as a lookup in a loot table. I can explain it in more detail when you get to this point. The same idea for XP. When an enemy dies, look up the XP in a XP table for the XP/Enemy type and add it to a character class. It is really easy to code.
When you can drop some loot it is time to write a basic inventory system to store loot, this is really just a matter of managing and viewing some lists of data. Don't do anything fancy at this point, just have some item icons, reserve the fancy stuff for later.
So at this point, you just have a space debris, you can shoot it, destroy it, add loot and xp, and you have a basic inventory. Then after that is done, then I would start worrying about the enemy AI. I have pushed this to the back, because it ican be the toughest part to program depending on your needs. You will need to find a way for the AI to navigate the world first, so maybe they fly between waypoints or something first. Then they need to be able engage you without bumping into everything. Last they need to fire at you and prioritize between their weaponry, fleeing, etc. This could be one of the reasons to start out in a 2D space, instead of 3D space, it makes the spaceship navigation much easier, although a lot less cool.
AI is basically divided in a couple of parts.
You need sensors, for example checking if something is in a spherical range
you need actuators (as in, the ai can move the ship),
You need AI memory, so some place to store what the current state is of the AI(idle, attacking, etc), what the current AI goal is, etc.
You need a brain that looks at the sensors, ai memory, and the actuators, and determines the best course of action.
You can read up on the subject on AIGameDev.
As for the MMO part, that is something you would start adding at this point. Don't wait any longer than this, or it might become too hard to do a good integration. I can't help you with this part because I have never coded anything bigger than a simple multiplayer game. Basically you will want your object states and actions to be efficiently serializable and then find a way to transfer these serialized object and action between clients and server. It gets more complex when you need to cull and optimize this data, but the possibilities depend on your middleware.
As for minimaps. There are probably some tutorials. But it is quite easy if you have some central list with enemies, objects, and friendlies in a sector. You just pick positions from these lists and draw the location in a reserved part of your screen, or you could create some fancy 3D minimap, but personally I hate those.
So yeah, that is how I would do it. But I really advice you to find a coder on the unity forums to help you out along the way. Mabye someone who is available a couple of hours a week for questions, help with some basic code, etc.