FreeOrion

Forums for the FreeOrion project
It is currently Sat May 27, 2017 3:37 pm

All times are UTC




Post new topic Reply to topic  [ 78 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
Author Message
PostPosted: Mon Mar 20, 2017 9:46 am 
Offline
Pupating Mass
User avatar

Joined: Tue Mar 14, 2017 10:47 am
Posts: 96
I suggest implementing universal recursive structures of systems.
Right now it's fixed star->planets one-to-many relation.
A better would be anything->anything relation.
Examples:
star with several planets, one of which also have planet (or asteroid belt) around it
blackhole with 2 stars around it. one of stars also have some planets, some of which (gas giants) also have asteroid belt and some tiny planets around it
huge planet (that for some reason didn't become a star, i.e. due to being populated by mindless ln2 overclockers) with small star around it
Implementation:
show every space object individually on galaxy map. by default only a top object (i.e. star) is seen, and second level objects are shown as pixels, to give a hint that there is something else. Upon zooming significantly (remove zoom cap) these pixels are displayed as planets or stars on galaxy map, with third-level objects as pixels around them. And so on. Player can just zoom in and set specific planet as target. Guardians and fleet can now also be assigned to specific planet and will also cover its child objects. So, if fleet is assigned to planet with asteroid belt - it will defend both planet and asteroid belt. If assigned to asteroid belt - only asteroid belt. To balance stuff out, sublevel combat will have 1 round skipped for fleet that defends parent because it will take some time for it to arrive to child object. So, for example, if fleet defends star system but asteroid belt of planet of this system is attacked - first 2 rounds of combat will go without this fleet because it will take it one round to arrive to planet, and then 1 more round to arrive to asteroid belt. This may result in planetary defences destroyed and 2-round-amount of fighters deployed by attacking fleet by the moment defense fleets arrive, this may or may not make difference. Player may place fleet over important planet to remove these delays, but at the cost of not protecting other parts of system.


Top
 Profile  
 
PostPosted: Mon Mar 20, 2017 9:55 am 
Offline
Programming, Design, Admin
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 11885
Location: Munich
afwbkbc wrote:
I suggest implementing universal recursive structures of systems.
Right now it's fixed star->planets one-to-many relation.
A better would be anything->anything relation.
Examples:
star with several planets, one of which also have planet (or asteroid belt) around it
blackhole with 2 stars around it. one of stars also have some planets, some of which (gas giants) also have asteroid belt and some tiny planets around it
huge planet (that for some reason didn't become a star, i.e. due to being populated by mindless ln2 overclockers) with small star around it
That would be a large increase in code, interface, and user mental model complexity with relatively minimal gameplay / strategic benefit. FreeOrion is a game, not a simulation.


Top
 Profile  
 
PostPosted: Mon Mar 20, 2017 10:15 am 
Offline
Pupating Mass
User avatar

Joined: Tue Mar 14, 2017 10:47 am
Posts: 96
Geoff the Medio wrote:
afwbkbc wrote:
I suggest implementing universal recursive structures of systems.
Right now it's fixed star->planets one-to-many relation.
A better would be anything->anything relation.
Examples:
star with several planets, one of which also have planet (or asteroid belt) around it
blackhole with 2 stars around it. one of stars also have some planets, some of which (gas giants) also have asteroid belt and some tiny planets around it
huge planet (that for some reason didn't become a star, i.e. due to being populated by mindless ln2 overclockers) with small star around it
That would be a large increase in code, interface, and user mental model complexity with relatively minimal gameplay / strategic benefit. FreeOrion is a game, not a simulation.

Code complexity? Nah, I doubt it. I can do it myself when I'll have some free time.
Interface complexity? Nope, it will become simpler, because on right UI panel there will always be just one object. And we can put additional information about it or make current info less compact and more readable (so there will be no need to hover over growth icon to see details).
Zooming in is not hard and is intuitive - we do this all the time in galaxy map. Child object can also be shown on parent's UI panel as shortcuts (galaxy map will zoom in and center on object). Production queue will also be more readabke - upon clicking on item galy will zoom and center on specific planet, not on system with 5 planets so that you need to also search needed planet amongst them (sometimes will also need to scroll).
Mental model complexity? Star->planet->asteroid is intuitive to anybody familiar with how space works. And nobody memorizes galaxy map anyway because it's impossible. Players memorize systems, not planets, so nothing will change for them.
Gameplay / Strategic benefits - I already described increased strategic variability. Also now we are basically limited by engine - we can only add a moon to planet as planetary bonus. It would be much better to add moon as actual object that can have outpost or even be colonized. It COMMON situation in space. Even in our solar system some Jupiter's moons are small planets with athmosphere, alien outposts and even native life. "Resonant moon" "Tidal moon" bonuses doesn't nearly compensate.
Doubke-star systrms are actualky really common. Blackholea with stars too. Gas giants almost always have own planets and asteroid belts. Right now all of this is impossible due to engine limitations.
Yes freeorion is not simulator, but the more realistic it is - the better.


Top
 Profile  
 
PostPosted: Mon Mar 20, 2017 10:23 am 
Offline
Pupating Mass
User avatar

Joined: Tue Mar 14, 2017 10:47 am
Posts: 96
Using proposed recursive zooming we will even be able to implement multiple-galaxy universe - on maximum zoomout individual galaxies will be show with lanes around them (really long lanes, i.e. 2000 or 5000 distances). Upon zooming in, galaxy icon will expand, showing star systems and lanes within.


Top
 Profile  
 
PostPosted: Mon Mar 20, 2017 12:01 pm 
Offline
Pupating Mass
User avatar

Joined: Tue Mar 14, 2017 10:47 am
Posts: 96
I can try to implement recursive galaxy and then test it with teamsmac guys if you give green light.


Top
 Profile  
 
PostPosted: Mon Mar 20, 2017 4:21 pm 
Offline
Space Floater
User avatar

Joined: Sat Aug 13, 2016 4:46 pm
Posts: 40
I give you green light, go implement it.

_________________
Team S.M.A.C.: play multiplayer with us!


Top
 Profile  
 
PostPosted: Tue Mar 21, 2017 2:36 am 
Offline
AI Lead, Programmer
User avatar

Joined: Sat Sep 22, 2012 6:25 pm
Posts: 4209
afwbkbc wrote:
Code complexity? Nah, I doubt it. I can do it myself when I'll have some free time.
You seem to be totally misunderstanding Geoff's comment here. I was wondering if you said this tongue-in-cheek, but from the rest of your comments it seems not.

I suppose I am reading Geoff's comments through the lens of someone already fairly familiar with FreeOrion's design and the team's design vision and so they make a lot of sense to me, which may take some time for a newcomer to pick up. Thoroughly reading the wiki (unlike the forums, the total quantity of info on the wiki is more manageable and is more distilled) and reviewing some of the past discussions on the Design and Programming sub-forums here would probably be the best way to start to get a handle on that.

I would also suggest that you start with some smaller, more focused projects while you are coming up to speed. One issue you mentioned comes to mind for that--

Quote:
Production queue will also be more [readable] - upon clicking on item galy will zoom and center on specific planet, not on system with 5 planets so that you need to also search needed planet amongst them (sometimes will also need to scroll).
This is something I recall being discussed in the past, and if you wanted to pursue this issue you'd need to do some forum searching on those past conversations. Even if we want the plain left click to continue operating the same as it does now (and ctrl-click is taken for deletion), it does seem to me that supporting shift-click to have it not just recenter the map on the relevant system but also select the correct planet could be a helpful feature. (Or maybe we'd want the plain click to also select the planet and have shift-click be for the current behavior). It certainly seems worth some discussion, at least. While you are coming up to speed on contributing to FO this is the general size/scope of feature/issue I'd suggest you focus on.

_________________
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0


Top
 Profile  
 
PostPosted: Tue Mar 21, 2017 8:54 am 
Offline
Pupating Mass
User avatar

Joined: Tue Mar 14, 2017 10:47 am
Posts: 96
But this would be just a workaround for engine flaw. Why not fix engine flaw instead?


Top
 Profile  
 
PostPosted: Tue Mar 21, 2017 9:02 am 
Offline
Pupating Mass
User avatar

Joined: Tue Mar 14, 2017 10:47 am
Posts: 96
Putting everything in star system in some flat pile of stuff is not how the universe works.
Universe is about recursivity - planets have moon and rings, stars have planets and rings, stars are grouped into groups or clusters, clusters grouped into larger clusters, then into galaxies, then into collections of galaxies, then into larger and larger structures.
Now we just replace all that beauty and elegane with flat star->planets relation. Ugh. And you ask me to develop nearly-useless workaround which would result in investing more time in flawed solution.
Can you list specific problems that would arise from recursive galaxy? Code complexity is not an issue because I can do it myself.


Top
 Profile  
 
PostPosted: Tue Mar 21, 2017 2:38 pm 
Offline
Creative Contributor
User avatar

Joined: Sat Sep 13, 2003 6:52 pm
Posts: 1384
afwbkbc wrote:
Putting everything in star system in some flat pile of stuff is not how the universe works.
Universe is about recursivity - planets have moon and rings, stars have planets and rings, stars are grouped into groups or clusters, clusters grouped into larger clusters, then into galaxies, then into collections of galaxies, then into larger and larger structures.
Now we just replace all that beauty and elegane with flat star->planets relation. Ugh. And you ask me to develop nearly-useless workaround which would result in investing more time in flawed solution.
Can you list specific problems that would arise from recursive galaxy? Code complexity is not an issue because I can do it myself.


The code complexity problem is not Having a recursive galaxy... it is how that would interact with everything else. (right now every bit of code can assume each planet is assigned to one "star" and each location on the galaxy map has one "star", and combats all take place at one "location")
Same reason multispecies planets were eliminated

Also, the mental model has the same issues.


finally...
Reality doesn't matter, this is a game, a simplification... the planets don't have continents, and you don't assign each population unit to on of a few thousand jobs and negotiate their salary and benefits.


Making a guardian that only protects one planet is FAR better than making anything assignable to anything.


Top
 Profile  
 
PostPosted: Tue Mar 21, 2017 5:59 pm 
Offline
Creative Contributor
User avatar

Joined: Fri Jun 28, 2013 11:45 pm
Posts: 3091
afwbkbc wrote:
But this would be just a workaround for engine flaw. Why not fix engine flaw instead?

How about it's only you that thinks it's a flaw?

Simplification of galaxy to make a game playable across multiple platforms with vast variety of spec machines is a feature, not a bug.

And it does sound to me like what you want to do would make my system fall over and stop me from playing, I'm currently getting about 30FPS playing FO and I'm happy with that, perfectly playable, why would we ant to have everything accounted for everywhere and make it unplayable on a large number of machines?

_________________
Mat Bowles

Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.


Top
 Profile  
 
PostPosted: Wed Mar 22, 2017 8:48 am 
Offline
Pupating Mass
User avatar

Joined: Tue Mar 14, 2017 10:47 am
Posts: 96
I don't see why FPS would drop. There won't be more objects displayed on screen, because planets and stuff will be hidden until you zoom in on this location (and then surrounding objects will leave boundaries of screen so objectsvnumber will decrease). FPS will even increase in some cases - now if you zoom out enough you will have all objects at once, in recursive universe they would group into cluster or galaxies with just one icon per object. Even you zoom out 100000x in extremely huge map you will still see similar number of objects because they will be autogrouped. This mechanic will allow infinite number of levels WITHOUT hurting FPS, we can even make continents on planets that can be colonized with different species, or even cities on continents.
Let's not discuss code complexity. As I said, I can do all required work myself.
Let's discuss actual drawbacks. Complexifies mental model - what? What model? I don't even understand this point.


Top
 Profile  
 
PostPosted: Wed Mar 22, 2017 8:51 am 
Offline
Pupating Mass
User avatar

Joined: Tue Mar 14, 2017 10:47 am
Posts: 96
And reality DO matter. It's definetely more fun when you feel you are actually doing global important stuff in universe, rather that just treating freeorion as game of chess. And in this particular case, we can get much closer to reality with minor effort and drawbacks. So why not?


Top
 Profile  
 
PostPosted: Thu Mar 23, 2017 1:46 am 
Offline
Creative Contributor
User avatar

Joined: Sat Sep 13, 2003 6:52 pm
Posts: 1384
afwbkbc wrote:
And reality DO matter. It's definetely more fun when you feel you are actually doing global important stuff in universe, rather that just treating freeorion as game of chess. And in this particular case, we can get much closer to reality with minor effort and drawbacks. So why not?


Stars orbiting planets would be Less realistic.

(moons ie "planets" that orbit other planets/GG, might be nice.. but it is important to keep it not too complicated)

That way it is easier to have "globally important stuff" in universe (100s of systems) because you don't have too much detail in any given system.

See my continent/city example.... different parts of a planet are going to have different economies, environments, possibly different empire ownership, etc [for example Earth in 2017 AD]. However FO is modelling each planet as a one species, one focus, one environment, one empire "point" on the map.

Your model would be good if FO was limited to a dozen systems or so... (and my continent/city model might be good if FO was limited to one system) However, too much detail makes the game both hard to code and unfun to play.


Top
 Profile  
 
PostPosted: Thu Mar 23, 2017 2:39 am 
Offline
AI Lead, Programmer
User avatar

Joined: Sat Sep 22, 2012 6:25 pm
Posts: 4209
afwbkbc wrote:
And in this particular case, we can get much closer to reality with minor effort and drawbacks. So why not?
If you really think it will be such minor effort, then go ahead and make a branch on your fork for it and take a stab at coding it up. Perhaps the "Build it and they will come" approach will work for you. I will reiterate, though, I think you would be much better off by learning the FO codebase incrementally while working on a variety of much smaller contributions.

_________________
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 78 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

All times are UTC


Who is online

Users browsing this forum: Bing [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group