Play Now Login Create Account
illyriad
  New Posts New Posts RSS Feed - Illy Text Markup Language (ITML) explained
  FAQ FAQ  Forum Search   Register Register  Login Login

Illy Text Markup Language (ITML) explained

 Post Reply Post Reply
Author
GM Stormcrow View Drop Down
Admin Group
Admin Group
Avatar
GM

Joined: 23 Feb 2010
Location: Illyria
Status: Offline
Points: 3234
Post Options Post Options   Thanks (0) Thanks(0)   Quote GM Stormcrow Quote  Post ReplyReply Direct Link To This Post Topic: Illy Text Markup Language (ITML) explained
    Posted: 28 Apr 2016 at 00:28
As per Dal Rath's request for a breakdown of what the parameters mean in (eg) a parsed notification XML.

INTRODUCTION TO THE ILLY TEXT MARKUP LANGUAGE (ITML?)
We have marked-up data that we present to the front end of Illyriad.  To all users, this data doesn't appear visibly, as the front end UI parses it and turns it into something human-legible.  

This is markup data that looks something like this:

[@ps=GM Stormcrow|1|DEVS|18|1|0|740-746-755-0-0-0-0-0-0-0-0-0-0|Illyriad Dev Team|Game Master|10-456-294-72] Spearsmith L3 completed at [@t=Stormont|1|383|-1815|12944|1|1|1|51|1|GM Stormcrow|DEVS|1|5-4 wall]. Your building queue is empty.

If you have never seen this, and this has never troubled your thoughts in any way, you do not need to read on.  It's not important.

WHY ON EARTH DO YOU HAVE YOUR OWN MARKUP FORMAT?
The reason these artifacts exist at the front end is pretty simple.

We wanted to provide a single front-end interface where pop-ups did not have to go back and talk to the server.  

We already have to display player information onscreen, so why go back and ask the server for new information when someone clicks a popup?  Simply put, the way we've structured the extraordinarily database-driven Illy infrastructure means that it's far more efficient for us to present mostly redundant information to the front end up-front... than it is for us to ask multiple questions of the data on player demand. 

Each descriptor of (eg) a player, town or location would contain, hidden in the UI, everything that the pop-up window needs onclick to display further information.

GOSH, THIS ALL MAKES AMAZING SENSE.  WHAT ARE THE DIFFERENT DESCRIPTORS?
I'm glad you asked.  

There are a number of different formats used, depending on purpose.

The most common ones (and probably the only ones that need explanation) are:
  • [@p=] PLAYER
  • [@t=] TOWN
p=player, t=town.

Pretty straightforward, huh?  

TOTES AMAZEBALLS INNIT.  DOES U HAZ GRAMMAR?
There's a difference on the demarcator for 'owning' objects such as player and town.  

You may get [@ps=] or [@ts=].  

The additional 's' marks a grammatical possessive that, when displayed, marks the content as being used in the context of a genitive rather than a nominative, locative or accusative case.

So:

[@p=GM Stormcrow|1|DEVS|18|1|0|740-746-755-0-0-0-0-0-0-0-0-0-0|Illyriad Dev Team|Game Master|10-456-294-72]

will return on ingame display:

GM Stormcrow [DEVS]

But:

[@ps=GM Stormcrow|1|DEVS|18|1|0|740-746-755-0-0-0-0-0-0-0-0-0-0|Illyriad Dev Team|Game Master|10-456-294-72]

will return on ingame display:

GM Stormcrow's [DEVS]

... indicating that this specific grammatical usage of my playername is contextually genitive.

So, from the example at the top:

[@ps=GM Stormcrow|1|DEVS|18|1|0|740-746-755-0-0-0-0-0-0-0-0-0-0|Illyriad Dev Team|Game Master|10-456-294-72] Spearsmith L3 completed at[@t=Stormont|1|383|-1815|12944|1|1|1|51|1|GM Stormcrow|DEVS|1|5-4 wall]. Your building queue is empty.

Because it's using the -s genitive indicator, will return on display:

GM Stormcrow's [DEVS] Spearsmith L3 completed at Stormont. Your building queue is empty.

GOSH, THIS IS AMAZING. RUN ME THROUGH THE PLAYER MARKUP!
They're all pretty simple, and - as said - are focused on what appears in the popup window if you click on the link associated with the markup.

All the markup formats are pipe-delimited for the different categories, and hyphen delimited for the sub-elements.

Example:

[@p=GM Stormcrow|1|DEVS|18|1|0|740-746-755-0-0-0-0-0-0-0-0-0-0|Illyriad Dev Team|Game Master|10-456-294-72]

This breaks down into PURPOSE (DATATYPE): EXAMPLE as follows:
  • PLAYER NAME (VARCHAR): GM Stormcrow
  • PLAYER ID (INT): 1
  • ALLIANCE TICKER (VARCHAR): DEVS
  • ALLIANCE ID (INT): 18
  • RACE ID (INT): 1  
    1 = HUMAN
    2 = ELF
    3 = DWARF
    4 = ORC
  • AVATAR GENDER ID (INT): 0
    0 = MALE
    1 = FEMALE
  • ACTIVE MEDAL COMPONENTS (INT), delimited by hyphen:
    Medal Base ID: 740
    Medal Edge Component ID: 746
    Sigil Component ID: 755
    Embellish Center Left Component ID: 0
    Embellish Center Right Component ID: 0
    Embellish Left Component ID: 0
    Embellish Right Component ID: 0
    Embellish Center Component ID: 0
    Gem Center Left Component ID: 0
    Gem Center Right Component ID: 0
    Gem Left Component ID: 0
    Gem Right Component ID: 0
    Gem Center Component ID: 0
  • ACTIVE MEDAL NAME (VARCHAR): Illyriad Dev Team
  • ACTIVE MEDAL TITLE (VARCHAR): Game Master
  • AVATAR HEADSHOT COMPONENTS (INT):
    Background ID: 10
    Body ID: 456
    Face ID: 294
    Hair ID: 72

WOW SC, YOU'RE THE BEST!  BUT YOU'D BE EVEN BETTER IF YOU RAN THROUGH TOWNS!
Well, you're very kind indeed.  But sure, here's the [@t=] breakdown:

[@t=Stormont|1|383|-1815|12944|1|1|1|51|1|GM Stormcrow|DEVS|1|5-4 wall]

This breaks down as follows:

  • TOWN NAME (VARCHAR): Stormont
  • TOWN ID (INT): 1
  • TOWN LOCATION X CO-ORDINATE (INT): 383
  • TOWN LOCATION Y CO-ORDINATE (INT): -1815
  • TOWN CURRENT POPULATION (INT): 12944
  • PLAYER ID WHO OWNS THE TOWN (INT): 1
  • RACE ID (INT): 1 (see above for details)
  • DOES THE TOWN HAVE A WALL PART ONE? (BOOL): 1
  • REGION ID (INT): 51
  • IS THIS TOWN THE CAPITAL? (BOOL): 1
  • PLAYER NAME (VARCHAR): GM Stormcrow
  • ALLIANCE TICKER (VARCHAR): DEVS
  • UNDER NEWBIE RAINBOW PROTECTION? (BOOL): 1 (yes, yes I am.  Bad things happen when I'm not)
  • TOWN GFX STYLE 1-4 are default racial types, 5 onwards are custom gfx types (INT): 5
  • TOWN POPULATION SIZE DISPLAY STAGE (INT): 4
  • DOES THE TOWN HAVE A WALL PART 2? (BOOL VARCHAR FOR SOME REASON ONLY TC UNDERSTANDS): wall  (or blank if not)

TLDR;
There's some stuff that does some shizzle somewhere in the game that's hidden from view for most all players.  It doesn't have anything earth-shattering in it; though my understanding of what some players think about handling "sensitive" data has been somewhat astonishingly amended as of late Wink, so maybe what medal you display publicly is actually a closely-guarded military secret - I don't know anymore Big smile

If you skipped to this tldr; then you *really* didn't need to know.

Regards,

SC



Edited by GM Stormcrow - 28 Apr 2016 at 03:45
Back to Top
Tensmoor View Drop Down
Forum Warrior
Forum Warrior
Avatar

Joined: 07 Apr 2015
Status: Offline
Points: 307
Post Options Post Options   Thanks (0) Thanks(0)   Quote Tensmoor Quote  Post ReplyReply Direct Link To This Post Posted: 29 Apr 2016 at 00:22
Thanks for that SC. I'd managed to work most of that out but confirmation is always good Smile
Back to Top
Rill View Drop Down
Postmaster General
Postmaster General
Avatar
Player Council - Geographer

Joined: 17 Jun 2011
Location: California
Status: Offline
Points: 6785
Post Options Post Options   Thanks (0) Thanks(0)   Quote Rill Quote  Post ReplyReply Direct Link To This Post Posted: 29 Apr 2016 at 00:47
/me switches out medals and looks around suspiciously

Thanks for the info, Stormcrow.
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 11.07
Copyright ©2001-2016 Web Wiz Ltd.