Organizing the Units list

Brainstorm ideas of possible additions to the game. Read this before posting!

Moderator: Forum Moderators

Forum rules
Before posting a new idea, you must read the following:
Post Reply
User avatar
Urs
Art Contributor
Posts: 437
Joined: August 11th, 2007, 5:33 pm

Organizing the Units list

Post by Urs »

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:

Code: Select all

Era= Imperial Era
or

Code: Select all

Era= Imperial Era, Feudal Era
or

Code: Select all

Era= Wesnoth Default
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'
User avatar
irrevenant
Moderator Emeritus
Posts: 3692
Joined: August 15th, 2005, 7:57 am
Location: I'm all around you.

Post by irrevenant »

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.
playtom
Posts: 103
Joined: July 21st, 2007, 10:58 pm
Contact:

Post by playtom »

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
User avatar
zookeeper
WML Wizard
Posts: 9742
Joined: September 11th, 2004, 10:40 pm
Location: Finland

Post by zookeeper »

There needs to be some way of choosing to view 1) MP units (sorted by era, then by faction), 2) all units and the ability to sort by race, level and/or something else.
User avatar
Noyga
Inactive Developer
Posts: 1790
Joined: September 26th, 2005, 5:56 pm
Location: France

Post by Noyga »

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
<-Wesnoth Default -
Won't work if we don't allow
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]
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).
"Ooh, man, my mage had a 30% chance to miss, but he still managed to hit! Awesome!" ;) -- xtifr
User avatar
Urs
Art Contributor
Posts: 437
Joined: August 11th, 2007, 5:33 pm

Post by Urs »

Everyone seemed to think it was a good idea, but nothing has yet happened on it AFAIK.
This seems to be happening again. Not good.

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.
MDG
Posts: 378
Joined: June 7th, 2007, 11:18 am
Location: UK

Post by MDG »

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).
User avatar
Urs
Art Contributor
Posts: 437
Joined: August 11th, 2007, 5:33 pm

Post by Urs »

I didn't mean to be whiny or nagging - I just didn't want the idea to die.

And yes, I offer to do bug testing, etc... I should probably get wesnoth SVN, though...
playtom
Posts: 103
Joined: July 21st, 2007, 10:58 pm
Contact:

Post by playtom »

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.
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
Alink
Inactive Developer
Posts: 181
Joined: March 5th, 2007, 6:45 am
Location: Belgium

Post by Alink »

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.
User avatar
Urs
Art Contributor
Posts: 437
Joined: August 11th, 2007, 5:33 pm

Post by Urs »

:D Yay!

Races does make sense, I agree. And the era page sounds like a cool idea, too.

Maybe I should go to the trouble of getting the svn wesnoth...


Thanks!
ILikeProgramming
Posts: 837
Joined: April 14th, 2005, 4:17 am

Post by ILikeProgramming »

Maybe instead we should add code that makes the units only load in the era that uses them. So, instead of:

Code: Select all

#ifdef MULTIPLAYER
[+units]
...
[/units]

[era]
...
[/era]
#endif
have the era define the units it uses:

Code: Select all

#ifdef MULTIPLAYER
[era]
...
[+units]
...
[/units]
[/era]
#endif
Or maybe:

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
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.
User avatar
Noyga
Inactive Developer
Posts: 1790
Joined: September 26th, 2005, 5:56 pm
Location: France

Post by Noyga »

ILikeProgramming wrote:Or maybe:

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
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.
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.
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
Post Reply