Summary: The same way that I continually build complex engines and libraries within a single platform and technology to allow me to build increasingly bigger and better games, how to continue this when development crosses into different platforms? If I switch platforms, how do I leverage past code and experiences?
Games are hard to build. Big games are even harder to build. I've decided that to be able to make big games, I need to start building smaller games, and building up an asset base of code, assets (graphics, sounds), tools, and most importantly, game engines, so that I can eventually get there. One game at a time.
Let me give an analogy. To build an MMO 3D RPG, I would approach this by building and releasing small games with increasingly more features. This could entail, for example:
A simple 2D game
A tile-based game
A game with RPG elements (items, equipment, monsters, battle)
A full-fledged RPG
A 3D RPG
The problem now is if I have to change platforms or tools, I don't know how to leverage past code-bases (and experience) to start with a mature product.
Right now, I'm writing Silverlight (FlatRedBall) games. Let's say I stick with this for ten years, and then suddenly decide to write a PS6 game, which is in a different programming language entirely.
Granted, I have ten years of game-development experience (and correspondingly ten years of professional software development experience from my day job) to back me up.
But I would still like some way to transplant that 2D RPG engine into the new programming language, or else leverage it somehow.
Is this even possible? What are my options?