Organizing the Units list
Moderator: Forum Moderators
Forum rules
Before posting a new idea, you must read the following:
Before posting a new idea, you must read the following:
Organizing the Units list
I was going to put this into 'opening advancement lines', but it didn't fit:
Could the unit list be grouped by eras? I mean, if I'm playing Imperial Era, why is there a great mage next to a gelus? This doesn't make much sense. And it gets worse. Suppose there are three units called 'spearman' - the loyalist and the aragwaith - why would they be next to/on top of each other? It just makes an unbelievable mess of things. IMO, it's confusing. All I'm asking is that they be put under different drop down menus, like so:
<-Default -
<-Era of Myths -
>-Imperial Era -
- Bladespinner
- Gelus
- Etc...
Of course, I don't see how this works with the current code, because then Elvish Fighters would be in Default, Age of Heroes, and Great War, which would be three different eras with exactly the same units. So:
<-Wesnoth Default -
(contains Default, Age of Heroes, Great War)
<-Era of Myths -
>-Imperial Era -
(contains Imperial Era, Imperial Era unbalanced, Imperial Champions, etc..)
Or Maybe even by World:
>-Wesnoth
<-Default (contains Default, Age of Heroes, Great War)
<-Era if Myths -
<-Extended Era -
>-Orbivm
<-Ancient Era (coming in the future)
<-Imperial Era
<-Feudal Era (coming *soon*)
<-Spacenoth
A line may need to be added to the unit cfg:
or
or
This line wouldn't actually say what era the unit is in gameplay wise, but rather what era the unit is in list wise.
a campaign only unit would go into the closest one. For example, one from Saving Elensefar would go into Default, while one from Invasion of Arendia into Feudal or Imperial.
The bad part about it? This line would have to be added to every unit cfg. But I am sure some sort of script could do that, right? All units not having this could be put into 'Misc'
Could the unit list be grouped by eras? I mean, if I'm playing Imperial Era, why is there a great mage next to a gelus? This doesn't make much sense. And it gets worse. Suppose there are three units called 'spearman' - the loyalist and the aragwaith - why would they be next to/on top of each other? It just makes an unbelievable mess of things. IMO, it's confusing. All I'm asking is that they be put under different drop down menus, like so:
<-Default -
<-Era of Myths -
>-Imperial Era -
- Bladespinner
- Gelus
- Etc...
Of course, I don't see how this works with the current code, because then Elvish Fighters would be in Default, Age of Heroes, and Great War, which would be three different eras with exactly the same units. So:
<-Wesnoth Default -
(contains Default, Age of Heroes, Great War)
<-Era of Myths -
>-Imperial Era -
(contains Imperial Era, Imperial Era unbalanced, Imperial Champions, etc..)
Or Maybe even by World:
>-Wesnoth
<-Default (contains Default, Age of Heroes, Great War)
<-Era if Myths -
<-Extended Era -
>-Orbivm
<-Ancient Era (coming in the future)
<-Imperial Era
<-Feudal Era (coming *soon*)
<-Spacenoth
A line may need to be added to the unit cfg:
Code: Select all
Era= Imperial Era
Code: Select all
Era= Imperial Era, Feudal Era
Code: Select all
Era= Wesnoth Default
a campaign only unit would go into the closest one. For example, one from Saving Elensefar would go into Default, while one from Invasion of Arendia into Feudal or Imperial.
The bad part about it? This line would have to be added to every unit cfg. But I am sure some sort of script could do that, right? All units not having this could be put into 'Misc'
- irrevenant
- Moderator Emeritus
- Posts: 3692
- Joined: August 15th, 2005, 7:57 am
- Location: I'm all around you.
This has been suggested before (by me as it turns out. )
Everyone seemed to think it was a good idea, but nothing has yet happened on it AFAIK.
Everyone seemed to think it was a good idea, but nothing has yet happened on it AFAIK.
Want to post a Wesnoth idea? Great! Read these:
Frequently Posted Ideas Thread
Giving your idea the best chance of acceptance
Frequently Posted Ideas Thread
Giving your idea the best chance of acceptance
one thing you have to taken into account, any unit you've encountered that's not in the default era won't show up their profiles when you click help and select units. i don't know how this works. but it just seems the game erase non-default units if you haven't played them recently.
evolved around the confined environment, emotions, knowledge and events mixed into my life, mere mortal am i, trying to climb higher up the ladder, time passes, just then i realized, death will part me eventually. - playtom's philosophy
I think it's a very good idea.
The problem is some units might belong to more than one era (Like for example the Extended Era using a large part of the Default unit), so things like
Also some era addons might provide some suberas that are also available as an indepent addon (for example the Kalifa Era also distributed as a part of the Extended Era on 1.2), but i don't think it is a major problem.
IMHO regrouping era in superset entries, is the right way.
We could define WML "world" entitieslike this
Then all the unit unit will appear in the help by world, according to Urs suggestion.
For units that aren't in a era we could either define a default "Others" world or include their ID in a World definition.
Also having a "All" world that containt all the available units might be good.
This would be really useful for the help, but also for the unit type selection, in debug mode, when manually adding a unit on the map (that list is really crowded when you have some non default eras installed).
The problem is some units might belong to more than one era (Like for example the Extended Era using a large part of the Default unit), so things like
Won't work if we don't allow<-Wesnoth Default -
Also some era addons might provide some suberas that are also available as an indepent addon (for example the Kalifa Era also distributed as a part of the Extended Era on 1.2), but i don't think it is a major problem.
IMHO regrouping era in superset entries, is the right way.
We could define WML "world" entitieslike this
Code: Select all
:
# Default eras
[world]
id=world_default
label= _ "Wesnoth standard"
eras=era_default,era_heroes,era_great_war
extra_units=Giant Scorpion,Giant Spider ...
[/world]
# Extended Era
[world]
id=world_extended
label= _ "Wesnoth Extended"
eras=era_extended,era_extended_rpg
[/world]
# Imperial era
[world]
id=world_imperial
label= _ "Imperial Era"
eras=era_imperial,era_imperial_champions
[/world]
For units that aren't in a era we could either define a default "Others" world or include their ID in a World definition.
Also having a "All" world that containt all the available units might be good.
This would be really useful for the help, but also for the unit type selection, in debug mode, when manually adding a unit on the map (that list is really crowded when you have some non default eras installed).
"Ooh, man, my mage had a 30% chance to miss, but he still managed to hit! Awesome!" -- xtifr
This seems to be happening again. Not good.Everyone seemed to think it was a good idea, but nothing has yet happened on it AFAIK.
Basically, are there any major problems with the idea? What Noyga said was good, and I agree.
Other types of Organization would also be fine, such as by faction or race. But something, IMO, needs to happen. It's just a mess. Spearmen and Swordsmen next to Spearmen and Swordsmen. And I don't know which is which.
Yes, quite some coding needs to be done. Maybe more than I think. Probably more than I think. But, in the long run I think it's worth it. You can clean the room now, or later, when it's even messier.
There are a lot of good ideas not being progressed at the moment for lack of code devs and lack of time of the existing code devs (check the frequently proposed good ideas topic stickied in this section of the forum). Even the other developers have acknowledged this elsewhere. You don't see many of the code devs posting up these days (except Sapient maybe). The project goes through lulls in progress from time to time (sometimes only perceived).
As you already no doubt appreciate, it's all voluntary, nagging is not the way to motivate/inspire people to get on with anything. Your best chance is probably to do as much work as possible that doesn't require actual coding. By this I mean, fully specify exactly what you want down to the last detail you can think of and think through all potential scenarios and/or problems as much as you can (the developer is going to have to do this if you or someone else doesn't). Offer to test and fill in bug reports properly and assist with bug hunting and resolution if someone takes up the task. I.e. make it as easy as you can for a code dev then wait and be patient (much like anyone looking for art, do everything you can then hope for the best).
As you already no doubt appreciate, it's all voluntary, nagging is not the way to motivate/inspire people to get on with anything. Your best chance is probably to do as much work as possible that doesn't require actual coding. By this I mean, fully specify exactly what you want down to the last detail you can think of and think through all potential scenarios and/or problems as much as you can (the developer is going to have to do this if you or someone else doesn't). Offer to test and fill in bug reports properly and assist with bug hunting and resolution if someone takes up the task. I.e. make it as easy as you can for a code dev then wait and be patient (much like anyone looking for art, do everything you can then hope for the best).
so many good ideas starved(left) to death(forgotten) because there's not enough workers(dev) to feed(make) them.
you shouldn't be sad if this idea do indeed died or forgotten, it is a harsh era for wesnoth we're living in.
you shouldn't be sad if this idea do indeed died or forgotten, it is a harsh era for wesnoth we're living in.
evolved around the confined environment, emotions, knowledge and events mixed into my life, mere mortal am i, trying to climb higher up the ladder, time passes, just then i realized, death will part me eventually. - playtom's philosophy
The svn-trunk has now races sub-sections for the units list (but it's work-in-progress).
Choose to use race, because:
- it's easier: more code ready to use (a nice unit_type.race() function) and thus no need to also write new era function
- more useful : both for SP and MP
- it seems simpler (races are mutually exclusive). Having a page in different sections is currently supported but it's a bit messy, specially for the use of the "Profile" button. And there is maybe performance issues to solve (but not sure about that)
- it was a more frequent feature request
This is also to start to write/test new help code generating sub-sections, which was the first main step. I continue to think that using races is better and more KISS, but adding eras informations in help is probably a good idea.
A possibility not seen in this thread is to create a sections "Eras" with one page for each era, each page containing a list of links to its units. Seems easier, just need to read the era file for generating this page. We can also add description and factions infos there. Don't have it in the left panel is annoying, but the "back" button compensate the problem (read the list, click on an unit, then click back to come back to the list)
Btw, this last idea is the method used for an other new feature in help (in svn-trunk): ability and special weapon pages have now a list of links to units having this ability/special.
Choose to use race, because:
- it's easier: more code ready to use (a nice unit_type.race() function) and thus no need to also write new era function
- more useful : both for SP and MP
- it seems simpler (races are mutually exclusive). Having a page in different sections is currently supported but it's a bit messy, specially for the use of the "Profile" button. And there is maybe performance issues to solve (but not sure about that)
- it was a more frequent feature request
This is also to start to write/test new help code generating sub-sections, which was the first main step. I continue to think that using races is better and more KISS, but adding eras informations in help is probably a good idea.
A possibility not seen in this thread is to create a sections "Eras" with one page for each era, each page containing a list of links to its units. Seems easier, just need to read the era file for generating this page. We can also add description and factions infos there. Don't have it in the left panel is annoying, but the "back" button compensate the problem (read the list, click on an unit, then click back to come back to the list)
Btw, this last idea is the method used for an other new feature in help (in svn-trunk): ability and special weapon pages have now a list of links to units having this ability/special.
-
- Posts: 837
- Joined: April 14th, 2005, 4:17 am
Maybe instead we should add code that makes the units only load in the era that uses them. So, instead of:
have the era define the units it uses:
Or maybe:
If something like this is implemented, it would also allow an era to load all custom images/terrains/etc without any fear of interfering with another add-on.
Code: Select all
#ifdef MULTIPLAYER
[+units]
...
[/units]
[era]
...
[/era]
#endif
Code: Select all
#ifdef MULTIPLAYER
[era]
...
[+units]
...
[/units]
[/era]
#endif
Code: Select all
#ifdef MULTIPLAYER
[era]
id=era_default
defines=WESNOTH_UNITS
[/era]
[era]
id=era_heroes
defines=WESNOTH_UNITS
[/era]
#endif
#ifdef WESNOTH_UNITS
[+units]
[/units]
#endif
This would need we would need to reload or remake a new cache for each multiplayer era rather than one only one cache for multiplayer mode as it is currently.ILikeProgramming wrote:Or maybe:If something like this is implemented, it would also allow an era to load all custom images/terrains/etc without any fear of interfering with another add-on.Code: Select all
#ifdef MULTIPLAYER [era] id=era_default defines=WESNOTH_UNITS [/era] [era] id=era_heroes defines=WESNOTH_UNITS [/era] #endif #ifdef WESNOTH_UNITS [+units] [/units] #endif
IMHO having a different cache for each MP addons would be a nice thing since we could prevent more easily collisions between addons, but it's not a trivial change to implement, especially since you can use more than one addon for a MP game (for example you can use a MP scenario from one usermade addon together with a MP era.
Since i think wesnoth don't support several WML caches loaded at once and there is really of lot of combinations of set of addons used by a game, this would probably lead to a lot of WML caches, which isn't a good thing (especially under Windows where the cost of cache rebuilding is quite an expensive operation).
"Ooh, man, my mage had a 30% chance to miss, but he still managed to hit! Awesome!" -- xtifr