I am currently teaching myself Java, I would consider myself intermediate having done many tutorials, etc. I want to eventually make a space exploration and trading game. I had always assumed that I would need to create a "map" for the universe, and plan everything out before hand. But as a minecraft player, this got me thinking about making an infinite world that spawns new areas whenever you get close to the edge.
Because I want a trading game, with planets having an economy and some AI (to build up defences and infrastructure, etc), I don't know if an infinite world is viable for the game I want to make?
In minecraft, if you, for instance, plant a tree and then move far away from it, the tree won't grow because the chunk isn't loaded. Is this a CPU constraint or a GPU constraint? Because a GPU constraint doesn't matter as I don't need to have all these chunks rendered at the same time (and anyway my game will be a 2d map, not 3d environment like minecraft). I guess it's mostly a CPU constraint though, processing all the info of all these chunks (plants growing and such in minecraft).
How would it work for a game where I wanted planets to continue to function no matter where the player is? So if a player travels to a far away primitive planet, then goes home, then much time passes and he returns and the same planet is high tec. Would that be feasible? Or would it put too much stress on the CPU?
If the player played the game for a long time, and explored a lot, the game would get really bloated and slow wouldn't it? Or could I sort of stagger and or simply AI development? Like, guestimate what the AI would do in say 5 in game years and process that (for far away planets), rather than having it all process in real time?
I'm still a long way off having the programming knowledge to actually make my game, but I'm just trying to make a design document for it atm and really want to lock in the foundations, ie, 2d vs 3d (almost certainly 2d, but aspirations for 3d -will be map only though, no 3d graphics- too noob to be dealing with the physics of 3d space combat atm), infinite world vs fixed preplanned maps, etc.
What I'm thinking atm is an infinite 2d world, that exists only as a map, with markers that move around like a board game. But that functions in real time. Originally I was thinking Flash, but I'm finding that java has so much more docunmentation that it's so much easier to learn, but what do you reckon is more practical?
ATM it's going to be single player, I'm hoping it could be browser based with a download option (but don't know how big the file would be yet if it's practical for browser, as well as server hosting costs, etc). Perhaps eventually it'll be multiplayer, but this would only be possible with major financial investment so unlikely. I'm just trying to create a game that I really want to play, that I feel hasn't been created yet (played EVE online, star wolves, sins of a solar empire, home world, and many other space exploration/trading games, not happy with any of them).
So, further explanation of idea. Say you start in the centre, with a ship and a planet, player is at X chunk:
Then it will load chunks if when you get close to the edge:
Etc, and possible in 3d, so imagine a layer of O's above and below that also get spawned.
Each O might represent a solar system, or empty space, or an asteroid field, or a space station, etc. Randomly generated with a different % for each, and solar systems with different properties (number of planets, types of planets, type of star, etc).
All the time planets AI will be working, so it can build up resources for the player to trade, build up defense for the player to fight, etc. But will this work if the potential number of planets is infinite? Maybe it would work if it was turn based instead of real time? (But then would the "turns" get too slow that the player would get frustrated?)
And the planets would be doing things such as increasing population, building/upgrading structures, possibly trading with other AI (although this might be getting too complicated), expanding to other planets (again, maybe too complicated), and building up armies (space ships). Chunks that spawn things like asteroid fields, deep space, star stations, etc, don't need to be doing anything though.
What do you reckon? Infinite or non-infinite? Granted this is just for early design phase, beyond theory I still don't know how to program an infinite world, but I want to really try and get an established design document going before I start coding any of this, and I know the design document will take quite awhile in itself.
Infinite or non-infinite, what do you reckon?