I bit off more than I could chew for my first project.
What was it?
3d aim-to-hit, multiplayer RPG combining Ultima online progression, Darkfall online character controller/gameplay, and League of Legends style multiplayer matching system. Both FPS and 3rd person camera angles. This would be 9 or 12 player co-op where 3-4 teams of 3 spawn at a different holdings, kill surrounding monsters nearby to acquire gear and skill up. At any point they could try to rush another team, or skill up and spend more time preparing ahead of time. I really wanted to add chariots with a driver and teammates could ride along and shoot bows/spells.
At the char creation screen the player gets 200 points they can put into skills/stats, then in game based on what they use it raises the relevant skill, and monsters drop items related to their type, but the player is free to do whatever mix of skills they want. If you want to train magic, hunt magic monsters as they drop reagents and mage staffs/armor. Similar if you want to raise archery, fight rangers who will drop arrows and good bows/armor for rangers. I made stats affect armor as well, so mage armor was magnified by intelligence, ranger armor was modified by dexterity, and heavy warrior armor was utilized better by high strength values.
I roughed out mechanics for mounts, even could ride a pig:
hahaha sorry it's a really short clipping plane on the camera I should have changed it before making that video. Also gave the pig a huge jump modifier so he can fly. The mounting is buggy, you have to run into the pig and it just childs the player to it, needed build a seat and mount the player to the seat.
How did that game idea evolve as it transitioned into reality or fell short of being completed.
I eventually realized the networking was over my head, especially at that time, and stopped developing.
What lessons did you learn on the way.
I learned a ton along the way, state machines, singletons, coroutines, as well as performance/optimization related concepts for both design and assets. Also to start smaller with a game I'm more likely to finish.
What would the game be, if you revisited the original idea now and built the game with your current ability/knowledge.
Well, the networking options have become better documented, easier to use, etc for the engine I'm using. If I were to do it again, I would start with a fully networked example as a base, and work from there. Also I learned to use triggers instead of spawning every NPC/monster in the world on start, so as you move around it spawns/despawns models at spawn points.
As I had it, you could login multiple players, but I was stuck synchronizing animations, projectiles, and just moving my working code to a server instead of being processed on the client. I assume I use RPC calls to communicate input but never was able to build a framework between the client/server other than instantiating the players in the world and updating transform positions. I made the mistake of building the game, then trying to network all the components from scratch and it killed morale big time.
This was an early example of some basics:
This is another example in the browser:
Luckily I've been able to use the code in other games/prototypes after the first one
Now I'm making a mobile, hack n slash, single player, RPG as my first mobile game, it's full of learning experiences.
Edited by lmbarns, 01 June 2012 - 11:03 AM.