I don't aim at matching a 10000 developer-hour game. (actually, Crusader Kings 1 had faaaar fewer than that). I'd want to do something smaller in scope, but more flexible in its moddability. And the design work, on an abstract level, I have already. What I want to learn is how to implement it. Even if I'm doomed to fail -which I'm probably am- I want to do it for the sake of learning and fun!
You really think it would take a team of, say, 8 people less than 6 months to churn out a game like CK? Your expectations are far higher than mine, but maybe the developers, artists, designers, writers, QA specialists and managers I've worked with are all generally sub-par in the productivity domain.
Nevertheless, if you've grown past modding you might consider going the browser-based route like Europe1300. That means using something like node.js, Python, or similar to generate HTML. A lot of the enabling technology is already taken care of and lets you develop ideas quickly with rapid turnaround time. You can use it for rapid prototyping and then rewrite in another language when you start hitting walls again.
Alright, I've made a very gross miscalculation there. I apologise, I absolutely didn't mean to disrespect or downplay any developer's work. I can only be humble towards other's work. If I can ever be optimist about any possibilities of success in my project is due to the whole "dwarfs raising atop giants' shoulders".
That said, thanls for pointing to Europe1300, I didn't know of it so I'll have to check it out. It's strange that I can't find any iin-depth info of the game before signing up in it, though. Or it might be just me making a too quick search.
As it'll be my first project, I want it to be wholly 2D. Also, since there is going to be a lot of calculations running constantly, I'd like to be able to get the most efficiency in the programming language as possible.
By all means go for it! But a project like a grand strategy is thousand times harder then creating a game like pong. Don't be disappointed if you won't succeed because something like Europa Universalis IV took a couple years to develop with a huge experienced team working on it. For solo indie developers it's best to create much smaller projects so you can finish it within a year of hard and dedicated work. If you want to finish something a lot bigger you need to be an expert programmer so you can keep implementing small pieces to the game without issues, in other words "you need to know exactly what you are doing". Other then that 2D or 3D has not much to do with the scope of a game, 3D could even cut off production time since animating thousands of sprites could take more work then modeling, texturing, rigging and animating. You can cut a lot of corners with 3D production.
To make a game moddable you have two good options. The first is to make everything you want to be moddable data driven. This means you have your program load in the data from a file, like xml or json. You (or even modders) can create tools to visually change these. Another option is to expose some of your code through an API, a great example of this is Dota2 and I think Oblivion and Skyrim also do this but they call it "Creation Kit". This kind of programming needs extreme planning and adds a lot of time to production, but obviously it can pay off enormously. My advice here is the same, try this in a much simpler game like a arcade game.
It's very noble of you to make the game free but expect a game like this will probably take a quarter of your life to develop. If you are good enough writing proper documented code you can setup a working prototype within a view years and go open source so everyone can jump in to make it a success.
Thanks! I'm starting with making the little games of the Unity tutorials, then "breaking" them apart to see how things work. Since I'm using unity, I'll have to head over to their forums and ask how to leave assets and such exposed to the public instead of being compiled into an exe.
Edit: I could have never thought that animating 3d would be harder than animating 2d, thanks for sharing that tip.
(I finally settled for Unity mainly because my current pc isn't fir tor UE4). For now, I'll be happy to have a map, an interface, and a pausable "clock/calendar" which controls the flow of in-game time. The first two I know how to do conceptually, but the latter is proving a hard nut to crack. I guess if I can't figure it out I'll open a new thread asking for advice on the topic.