?

Can't find what you're looking for?

This topic might exist in our archive - Try Here

Author Topic: Army List Editor Production Log (ALEP)  (Read 5369 times)

Offline Sorck

  • BBCode glows...
  • Administrator
  • *
  • Posts: 3538
  • Karma 18
  • Kernel Sorck
    • View Profile
Army List Editor Production Log (ALEP)
« on: September 09, 2014, 12:13:37 AM »
Well I'm going to try and catalogue what I do as part of this project here... it doesn't normally work out but hey, I can try again and one day I may succeed. :P

This time around the Army List Editor (henceforth ALE) will not do much talking with the 2S servers. In fact, it's being designed so it doesn't need a remote server at all - i.e. so you can load the editor (download the needed files first) and then you can "open" a file off of your local disk and then also "save" back to your local disk. If you need to then it will offer a method of syncing your army list with the Second Sphere servers. Whether the system will automatically try and sync with 2S, or it will primarily base itself on local files is another story. I'll decide whilst I code...

.ale files
In order to allow the ability to download files we need a file format. I am, rather unimaginatively, going to use the extension .ale for the files produced by the ALE. These files are inspired by the Microsoft OpenXML files... though we're not following their definitions literally. This format should allow a .ale file to also contain extra information such as army definitions. You could also import these files into another application that supported our format.

Army Definitions
When you used the old ALE you would create an army list which would be associated with a given army (say Orks) and you would then be presented with a number of units when you clicked "add unit" e.g. Warboss, Big Mek, Grotsnik etc. These lists could become out of date or may have missed a unit. It was probably annoying if you couldn't add a new unit. Our way of dealing with this is allowing you to create your own "army definitions" which list  properties such as which section of the army the unit belongs to (HQ/Troops/Rare etc), possible unit types (winged, beast, jump infantry etc) and, of course, the unit "title".

Custom Game Systems
Although we will maintain an 'official' 40k and WHFB system, we want you to use our editor for all kinds of lists and rosters. To this end we will allow you to write your own game system definitions - these will include what sections exist in an army (HQ/Elites/Troops/FA/HS for standard 40k old edition), unit types in the game system (infantry, jump infantry, monstrous creature etc) and possibly other information that may be pertinent - suggestions welcome.

To be continued...
I'll finish writing this up when I've had my nap.

Offline Narric

  • Daemon Master
  • Board Moderator
  • *
  • Posts: 5052
  • Karma 12
    • View Profile
    • Blog
Re: Army List Editor Production Log (ALEP)
« Reply #1 on: September 09, 2014, 12:49:44 AM »
Sonds good so far Sorck :)
2016
Models built (by # of bases)=22
Models painting (by # of bases)=5

Offline Sorck

  • BBCode glows...
  • Administrator
  • *
  • Posts: 3538
  • Karma 18
  • Kernel Sorck
    • View Profile
Re: Army List Editor Production Log (ALEP)
« Reply #2 on: September 09, 2014, 11:11:32 PM »
Feel free to suggest better names...

Rosters
I have decided that we need some better terminology in order to define parts of your 'army list'. A roster is your entire 'list'. It might be your 400 point Eldar combat patrol army or it might be your 4000 point force IG army with SM allies using two detachments (2 full FOCs of IG and 2 Allied FOCs of SM).

Detachment
A detachment is a single Force Organisation Chart, in many cases your roster will contain only one detachment for various reasons (e.g. being in a game system where you don't have detachments, or you use a 40k army with no allies). A detachment is tagged as being from a single army.

Section
A section is a sub-category of a detachment. This is HQ/Elites/Troops/FA/HS for 40k.


Small doses of extra information and it will eventually be worth something. :P

Offline Narric

  • Daemon Master
  • Board Moderator
  • *
  • Posts: 5052
  • Karma 12
    • View Profile
    • Blog
Re: Army List Editor Production Log (ALEP)
« Reply #3 on: September 09, 2014, 11:15:14 PM »
Quick idea. As some people would be "Adding" their own game systems to the list, would these additions be shared amongst everybodies copy of the editor?

So say I input the skeleton of a roster for Void, and this allows people afterwards to use the same Roster. And of course if someone inputs the skeleton for Infinity/Malifuax/Warmachine, I see that as a valid framework to work around.

Make sense?
2016
Models built (by # of bases)=22
Models painting (by # of bases)=5

Offline InsaneTD

  • Insanest of all
  • Shas'Vre
  • ******
  • Posts: 1162
  • Karma 3
  • Black Wolf
    • View Profile
    • I did a thing...
Re: Army List Editor Production Log (ALEP)
« Reply #4 on: September 10, 2014, 03:00:42 AM »
Why is this in here and not comments and suggestions?



Edit, you should of deleted this post when your moved the thread.
« Last Edit: September 10, 2014, 01:08:29 PM by InsaneTD »

Offline Sorck

  • BBCode glows...
  • Administrator
  • *
  • Posts: 3538
  • Karma 18
  • Kernel Sorck
    • View Profile
Re: Army List Editor Production Log (ALEP)
« Reply #5 on: September 10, 2014, 10:47:45 AM »
Quick idea. As some people would be "Adding" their own game systems to the list, would these additions be shared amongst everybodies copy of the editor?

So say I input the skeleton of a roster for Void, and this allows people afterwards to use the same Roster. And of course if someone inputs the skeleton for Infinity/Malifuax/Warmachine, I see that as a valid framework to work around.

Make sense?
The idea would be that it would be possible to share a game system definition through some method. This could either be done by exporting the file, or sharing it using the 2S servers (we might have it so that you can tick a box which makes the game system definition you've made searchable on a 2S template library of sorts).

Why is this in here and not comments and suggestions?
:shifty:

Offline Narric

  • Daemon Master
  • Board Moderator
  • *
  • Posts: 5052
  • Karma 12
    • View Profile
    • Blog
Re: Army List Editor Production Log (ALEP)
« Reply #6 on: September 10, 2014, 05:42:17 PM »
Why is this in here and not comments and suggestions?
What are you talking about, its always been in the CS&T board :P

Quick idea. As some people would be "Adding" their own game systems to the list, would these additions be shared amongst everybodies copy of the editor?

So say I input the skeleton of a roster for Void, and this allows people afterwards to use the same Roster. And of course if someone inputs the skeleton for Infinity/Malifuax/Warmachine, I see that as a valid framework to work around.

Make sense?
The idea would be that it would be possible to share a game system definition through some method. This could either be done by exporting the file, or sharing it using the 2S servers (we might have it so that you can tick a box which makes the game system definition you've made searchable on a 2S template library of sorts).
That sounds cool :) I approve :P
2016
Models built (by # of bases)=22
Models painting (by # of bases)=5

Offline Sorck

  • BBCode glows...
  • Administrator
  • *
  • Posts: 3538
  • Karma 18
  • Kernel Sorck
    • View Profile
Re: Army List Editor Production Log (ALEP)
« Reply #7 on: September 11, 2014, 10:40:00 PM »
Attached is an example of how the army list editor may look (shown on a 720p Android device).

The Guard and Sanguinary Allies tabs each contain a list of units that are in those army lists. You can search for specific units using the search box and, if it were a functioning system, you'd be able to download your army list from the editor in either our custom .ale file format or as a formatted PDF.

Ignore the 'Create Message' button... that's not supposed to be there. :P Also, the insert tab isn't used at all because there aren't enough buttons to warrant it's use. The file tab is just for show as well.

Offline Sorck

  • BBCode glows...
  • Administrator
  • *
  • Posts: 3538
  • Karma 18
  • Kernel Sorck
    • View Profile
Re: Army List Editor Production Log (ALEP)
« Reply #8 on: September 23, 2014, 03:09:39 PM »
Here's a prototype army list editor file... this one only specifies the structure of a Blood Angels force (and the required other 40k information such as unit types and basic FOCs).

The code section shows the file contents of BloodAngels.json.

Code: [Select]
{
"schema": "http://schema.lan/2014/09/ale-json.html",
"gameSystems": [
{
"name": "Warhammer 40,000",
"focCharts": [
{
"name": "Standard",
"sections": [
{ "section": "HQ", "min": 1, "max": 2 },
{ "section": "Elites", "min": 0, "max": 3 },
{ "section": "Troops", "min": 2, "max": 6 },
{ "section": "Fast Attack", "min": 0, "max": 3 },
{ "section": "Heavy Support", "min": 0, "max": 3 }
]
},
{
"name": "Allies",
"sections": [
{ "section": "HQ", "min": 1, "max": 1 },
{ "section": "Elites", "min": 0, "max": 1 },
{ "section": "Troops", "min": 1, "max": 2 },
{ "section": "Fast Attack", "min": 0, "max": 1 },
{ "section": "Heavy Support", "min": 0, "max": 1 }
]
}
],
"unitTypes": {
"Infantry": [],
"Jump Infantry": [],
"Vehicle": ["Walker", "Fast", "Tank", "Skimmer", "Open-topped"],
"Monstrous Creature": ["Flying"],
"Beast": [],
"Bikes": [],
"Jetbikes": []
}
}
],
"armyBook": {
"name": "Blood Angels",
"gameSystem": "Warhammer 40,000",
"groupMacros": {
"lightTransports": [
{"name":"Rhino","min":0,"max":1},
{"name":"Razorback","min":0,"max":1},
{"name":"Drop Pod","min":0,"max":1}
],
"heavyTransports": [
{"name":"Land Raider","min":0,"max":1},
{"name":"Land Raider Crusader","min":0,"max":1},
{"name":"Land Raider Redeemer","min":0,"max":1}
]
},
"units": [
{ "name": "Commander Dante", "section": "HQ", "type": "Jump Infantry", "unique": true,
"children": [{"name": "Honour Guard", "min": 0, "max": 1}] },
{ "name": "Chapter Master Gabriel Seth", "section": "HQ", "type": "Infantry", "unique": true,
"children": [{"name": "Honour Guard", "min": 0, "max": 1}] },
{ "name": "Astorath the Grim", "section": "HQ", "type": "Jump Infantry", "unique": true,
"children": [{"name": "Honour Guard", "min": 0, "max": 1}] },
{ "name": "The Sanguinor, Example of the Host", "section": "HQ", "type": "Jump Infantry", "unique": true,
"children": [{"name": "Honour Guard", "min": 0, "max": 1}] },
{ "name": "Mephitson, Lord of Death", "section": "HQ", "type": "Infantry", "unique": true,
"children": [{"name": "Honour Guard", "min": 0, "max": 1}] },
{ "name": "Captain Tycho", "section": "HQ", "type": "Infantry", "unique": true,
"children": [{"name": "Honour Guard", "min": 0, "max": 1}] },
{ "name": "Librarian", "section": "HQ", "type": "Infantry", "types": ["Infantry", "Jump Infantry", "Bikes"] ,
"children": [{"name": "Honour Guard", "min": 0, "max": 1}] },
{ "name": "Reclusiarch", "section": "HQ", "type": "Infantry", "types": ["Infantry", "Jump Infantry", "Bikes"],
"children": [{"name": "Honour Guard", "min": 0, "max": 1}] },
{ "name": "Captain", "section": "HQ", "type": "Infantry", "types": ["Infantry", "Jump Infantry", "Bikes"],
"children": [{"name": "Honour Guard", "min": 0, "max": 1}] },
{ "name": "Honour Guard", "type": "Infantry", "types": ["Infantry", "Jump Infantry"], "children": "groupMacros(['lightTransports','heavyTransports'])" },
{ "name": "Chaplain", "section": "Elites", "type": "Infantry", "types": ["Infantry", "Jump Infantry", "Bikes"] },
{ "name": "Sanguinary Guard", "section": "Elites", "type": "Jump Infantry" },
{ "name": "Furioso Dreadnought", "section": "Elites", "type": "Vehicle", "subTypes": ["Walker"],
"transportSize": 10, "children": [{"name":"Drop Pod","min":0,"max":1}] },
{ "name": "Terminator Squad", "section": "Elites", "type": "Infantry", "children": "groupMacros('heavyTransports')",
"transportSize": 2 },
{ "name": "Terminator Assault Squad", "section": "Elites", "type": "Infantry", "children": "groupMacros('heavyTransports')" },
{ "name": "Techmarine", "section": "Elites", "type": "Infantry" },
{ "name": "Sternguard Veteran Squad", "section": "Elites", "type": "Infantry", "children": "groupMacros(['lightTransports','heavyTransports'])" },
{ "name": "Sanguinary Priests", "section": "Elites",
"children": [{"name": "Sanguinary Priest", "min": 1, "max": 3}] },
{ "name": "Sanguinary Priest", "section": "Sanguinary Priests", "type": "Infantry",
"types": ["Infantry", "Jump Infantry", "Bikes"] },
{ "name": "Tactical Squad", "section": "Troops", "type": "Infantry", "children": "groupMacros(['lightTransports','heavyTransports'])" },
{ "name": "Death Company", "section": "Troops", "type": "Infantry", "types": ["Infantry", "Jump Infantry"],
"min": 0, "max": "[1,100][army.has('Astorath the Grim')]", "children": "groupMacros(['lightTransports','heavyTransports'])" },
{ "name": "Death Company Dreadnoughts", "section": "Troops", "type": "Vehicle", "subTypes": ["Walker"],
"min": 0, "max": "army.numberOf('Death Company')", "transportSize": 10, "children": [{"name":"Drop Pod","min":0,"max":1}] },
{ "name": "Assault Squad", "section": "Troops", "type": "Jump Infantry", "types": ["Infantry", "Jumpy Infantry"],
"children": "groupMacros(['lightTransports','heavyTransports'])" },
{ "name": "Vanguard Veteran Squad", "section": "Fast Attack", "type": "Jump Infantry", "types": ["Infantry", "Jump Infantry"],
"children": "groupMacros(['lightTransports','heavyTransports'])" },
{ "name": "Land Speeder Squadron", "section": "Fast Attack", "type": "Vehicle", "subTypes": ["Fast", "Skimmer"] },
{ "name": "Baal Predator", "section": "Fast Attack", "type": "Vehicle", "subTypes": ["Fast", "Tank"] },
{ "name": "Attack Bike Squad", "section": "Fast Attack", "type": "Bikes" },
{ "name": "Bike Squad", "section": "Fast Attack", "type": "Bikes" },
{ "name": "Scout Bike Squad", "section": "Fast Attack", "type": "Bikes" },
{ "name": "Dreadnought", "section": "Heavy Support", "type": "Vehicle", "subTypes": ["Walker"],
"transportSize": 10, "children": [{"name":"Drop Pod","min":0,"max":1}] },
{ "name": "Stormraven Gunship", "section": "Heavy Support", "type": "Vehicle", "subTypes": ["Fast", "Skimmer"] },
{ "name": "Predator", "section": "Heavy Support", "type": "Vehicle", "subTypes": ["Fast", "Tank"] },
{ "name": "Devastator Squad", "section": "Heavy Support", "type": "Infantry", "children": "groupMacros(['lightTransports','heavyTransports'])" },
{ "name": "Vindicator", "section": "Heavy Support", "type": "Vehicle", "subTypes": ["Fast", "Tank"] },
{ "name": "Whirlwind", "section": "Heavy Support", "type": "Vehicle", "subTypes": ["Fast", "Tank"] },
{ "name": "Rhino", "type": "Vehicle", "subTypes": ["Fast", "Tank"], "capacity": 10 },
{ "name": "Razorback", "type": "Vehicle", "subTypes": ["Fast", "Tank"], "capacity": 6 },
{ "name": "Drop Pod", "type": "Vehicle", "subTypes": ["Open-topped"], "capacity": 10 },
{ "name": "Land Raider", "type": "Vehicle", "subTypes": ["Tank"], "capacity": 10 },
{ "name": "Land Raider Crusader", "type": "Vehicle", "subTypes": ["Tank"], "capacity": 16 },
{ "name": "Land Raider Redeemer", "type": "Vehicle", "subTypes": ["Tank"], "capacity": 12 }
]
}
}

It may be difficult to read if you don't understand JSON. However, it shouldn't be too difficult to pick up. Basically the file starts by defining how 40k works. It says that there's a standard and allies FOC available to use and that there are a number of unit types available (this list isn't actually full but is enough for Blood Angels). This is, I believe, enough to describe how 40k works. The file then defines an army book - in this case Blood Angels. The two "macros" are experimental things that are used to make the rest of the list quicker to type and a bit smaller... so they may not make it into the final file format. They are basically lists of transport vehicles so I need not repeat them multiple times in the list.

The unit definitions here are much more complex than in the old editor - we used to say a unit belonged to an army list section and had a name. Now we give a default section, the default type of unit, additional types (for vehicles) and optional types (e.g. Jump Infantry if you upgrade a captain with a jump pack). If a unit is unique the editor should not allow you to include it twice in a roster. The children of a unit are a useful idea - it says which units are in effect a child of the current unit. For example, a rhino can be a child of a tactical squad - the rhino doesn't take up an FOC slot but still requires the tactical squad to remain in the army. This is especially useful for units such as Imperial Guard Platoons as these need a container unit but a lot of children. This will allow the editor to accurately monitor the number of used army sections (HQ/Elites/etc). Also, children can have minimum and maximum requirements - e.g. a tactical squad can have 0-1 rhinos whilst a IG platoon can have 2-5 infantry squads. Unfortunately the current system would let you have both a rhino and drop pod - I'm not quite sure how to fix this unless I only allow one transport but this may be allowed in some game systems. This could potentially be solved by having a "maxTransports" toggle in the army definition. (A unit is a transport if it has a "capacity" entry).

NB: if a unit has no section then it can *only* be added as a child unit. For technical reasons, you should be able to override a unit section (as long as it had one to start with) in case things such as Dante allow you to have differently placed Sanguinary Guard (troops not elites) or similar circumstances. If you validate your army list it should warn you about any overrides that cause your list not to follow the army definition file.

Hopefully I can push out something in the next couple of days to allow you to edit army definition files.
« Last Edit: September 23, 2014, 03:13:08 PM by Sorck »

Offline Narric

  • Daemon Master
  • Board Moderator
  • *
  • Posts: 5052
  • Karma 12
    • View Profile
    • Blog
Re: Army List Editor Production Log (ALEP)
« Reply #9 on: September 23, 2014, 04:37:27 PM »
Sounds good so far Sorck. Looking forward to the open Beta :)
2016
Models built (by # of bases)=22
Models painting (by # of bases)=5

Offline Sorck

  • BBCode glows...
  • Administrator
  • *
  • Posts: 3538
  • Karma 18
  • Kernel Sorck
    • View Profile
Re: Army List Editor Production Log (ALEP)
« Reply #10 on: September 26, 2014, 01:13:24 PM »
Here are a couple of screenshots showing some basic pages from the editor.

I'm hoping to upload a demo version over the weekend which will allow you to start putting together the "army definitions" - i.e. lists of what units are available in an army along with important information such as unit types, subtypes*, optional types, whether it's a transport vehicle etc. At some point, hopefully not too long afterwards, I'll be completing the actual roster editor to allow you to write your own army lists.

* It occurs to me that you can't manually add subtypes and, to be honest, they are a slightly more complex component to add by software than other things. I will include instructions on manually adding them by manually modifying the ALE files.

Offline Narric

  • Daemon Master
  • Board Moderator
  • *
  • Posts: 5052
  • Karma 12
    • View Profile
    • Blog
Re: Army List Editor Production Log (ALEP)
« Reply #11 on: September 26, 2014, 09:48:01 PM »
Looking forward to these :)
2016
Models built (by # of bases)=22
Models painting (by # of bases)=5

Offline Sorck

  • BBCode glows...
  • Administrator
  • *
  • Posts: 3538
  • Karma 18
  • Kernel Sorck
    • View Profile
Re: Army List Editor Production Log (ALEP)
« Reply #12 on: September 28, 2014, 01:53:28 AM »
The first part of the release is nearly ready. I'm mainly cleaning up interface pieces now (though a couple of bits of functionality are currently missing).

Alpha 1 is not "cloud enabled" so you can't save to 2S using it (it's on the to do list) but you can download a file with your data on it - you could share this file with other people by the attachment feature on forum posts. Also, you can't create a roster in alpha 1 but you can define armys. I.e. you can create a codex with unit details but you can't actually write your roster. My hope is that people will write up a few codices into the system before the rest of the system is released.

-Sorck

Offline Narric

  • Daemon Master
  • Board Moderator
  • *
  • Posts: 5052
  • Karma 12
    • View Profile
    • Blog
Re: Army List Editor Production Log (ALEP)
« Reply #13 on: September 28, 2014, 02:00:46 AM »
I've got a couple Codexi to hand :P I guess I know what tedious little bit fo work I could be doing :P
2016
Models built (by # of bases)=22
Models painting (by # of bases)=5

Offline Sorck

  • BBCode glows...
  • Administrator
  • *
  • Posts: 3538
  • Karma 18
  • Kernel Sorck
    • View Profile
Re: Army List Editor Production Log (ALEP)
« Reply #14 on: September 28, 2014, 11:03:31 PM »
The first preview is here:
http://secondsphere.org/ale

Save to 2S is available ahead of schedule. However, you only get one file at the moment and you have to manually save the file (look at the bottom of the editor). If you load the editor before you  lose a web connection you can continue to edit but you won't be able to save to 2S. However, you can export the file and then manually load it into the editor later on.
Also, don't add excess armies as you can't delete them yet. :P
And you can't edit things. Most data items are small so deleting and re-creating things is often the easy way to do things.

NB: You can't currently add/edit rosters...

-Sorck

 

anything