Lobby Announcement Integration

Lobby Announcement Integration

Discuss the source code and development of Spring Engine in general from a technical point of view. Patches go here too.

Moderator: Moderators

Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Lobby Announcement Integration

Post by Tobi »

We (Satirik and I) discussed an idea for a lobby announcement integration. The goal is to make a way for moderators and admins to post "announcements".

This would be short HTML messages that are linked to events like (community) news posts and maybe even forum posts, UF uploads and SVN commits, information about testing of SVN spring, etc.

Examples of possible announcement-worthy events:
"this week BA tourney 1v1"
"SVN test day tommorow's morning be ready"

The most important points that came forward in this brainstorm are:
  • Keep the protocol definition only loosely bound to the announcement type, so don't force lobby devs to implement it using popups.
  • If possible, it should be integrated with TASServer's web interface, since that seems like exactly the right spot to define such messages as it is only accessible by administrators and moderators and runs on the right server already. It is written in PHP.
  • There would be a prioritization of announcements. For example, there would be (not much!) announcements that should always shown (e.g. new spring release), and there would be announcements that are only shown if you don't disable it.
  • Optionally there could be more different priorities for more/less intrusive types of announcements.
  • There's no need to wait on the new site, a community news integration can be made later when the new site is online.
An idea for the possible fields for an announcement would be:
  • Start time (allows announcements to be send out a bit ahead of time)
  • End time
  • (Defined subset of?) Html text
  • Zones/Keywords, e.g. UF_Uploads, SVN_Commits, News, Forum, etc.
  • Frequency (or priority), for example: weekly, monthly, high traffic, low traffic
I think this would allow many different ways to show the announcement. A scroller would be possible, a banner, (non intrusive) popups, "announcements of the day" (like tip of the day), etc.

Since this is far from a complete spec yet, feel free to give input, new ideas or tell why it should (not) be done.

Note: MelTraX and Satirik showed interest to implement this.
Satirik
Lobby Developer
Posts: 1688
Joined: 16 Mar 2007, 18:27

Post by Satirik »

the anouncement design should be attractive, so we could make a bunch of css depending of the way to display it and the lobby would select the good one so we could fix and control the design (Zen Garden style ftw)

it would also be merged with the "community news" part of the new site when it will be done
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

overkill.

Put up a webpage with a formatted version of all announcements. Send a protocol message when this page changes. Lobbies look up and parse the contents of the page and display it how they choose. Protocol has a single command added with no parameters except maybe the url of the page.


However all of this is somewhat obsoleted by the RSS feed of the community news (we have it atm and its planned in the next site too)
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

True, didn't think out of the box enough :-)
Satirik
Lobby Developer
Posts: 1688
Joined: 16 Mar 2007, 18:27

Post by Satirik »

rss feed stuck you to a single design and handled by the lobby that's not the aim and anouncement is not showing the latest news
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

The words are somewhat interchangeable. Think of them as news announcements. Using RSS gives us a nice standards based method of retrieving data that isn't limited in use to the lobby. We can rely on the cornucopia of existing RSS libraries to parse the content too.

If however the rss feed and the community news isn't the latest news then the same problem would apply to the announcement system you suggested. At which point its a community problem not an implementation problem.


On top of that we already have another existing method of doing this. The MOTD used in $local. Simply showing $local first rather than #main would do the job.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

$Local doesn't have formatting or any of the other features mentioned in my original post.

If you look at it that way we can just use the broadcast messages that are already built into the server and work fine...

EDIT:

Announcements is a wider term then community news.

Community news is, within Spring context, considered to be the thing on the wiki (or wherever it is) where you, as community member, can submit news manually.

Announcements on the contrary can also include 'official news', automated reports of certain events, e.g. what CommitBot, FileBot, Forum etc. now do in #news.

Note also that MOTD and server broadcasts aren't optional, they are forced upon users. The first one isn't even live so something like showing commits in it is basically impossible. They both aren't filterable either currently, so making announcements with it that are only interesting to specific groups of people would be kind of useless anyway (e.g. speedmetal ladder, SVN commits).
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

well parsing the contents of #news should suffice for that.

On a side note, perhaps a bot can be put in #news that accepts messages and prints them out so we dont have 2 long messages all jumbled up with 2 bots talking at the same time, or the constant joined left messages.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

Yep could do that too.

I talked with MelTraX about that side note some time ago already, but we didn't consider it important enough to bother about.

(esp. if #news would be parsed by lobbies it would be a waste of time to make a special bot to do something that would almost be done automatically as side effect when lobbies parse it.)
User avatar
SinbadEV
Posts: 6475
Joined: 02 May 2005, 03:56

Post by SinbadEV »

As far as formatting I would say HTML-subset with some XML would probably be best... I would really like to have images as an option (even just the spring logo for new releases) with "float" support instead of just inlining...

<notice
name="spring release"
ID=1000
type="release"
title="New Spring Version 1.0!"
start="1200,09,09,2008"
end=0
>
<contents>
<img src=springlogo1.0.jpg float=right />The <a href="http://spring.clan-sy.com/SpringFullIns ... xe">Latest Version</a> of the <b>Spring Engine</b> is out including custom dynamic soundtracks and full support for JC's <a href="http://spring.clan-sy.com/wiki/Making_Maps">new map format</a>!!! The automated installer should have already posted this new version directly to your brain so enjoy! Full changelog can be found <a href="http://spring.clan-sy.com/changlog1.0.txt">here</a>.
</contents>
</notice>

any notice with the same "class" would replace older ones on display... any other bits could be added to the <notice> variables...

I know you were kinda looking for a full implimentation but this is what I would like to see... I think that's marginally rss complient even.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

I wasnt aware delphi had an html renderer API.

CSS should be kept to a minimum, preferably none at all, its the lobby that displays the content and the lobby developer should decide what's appropriate for them. I don't want to find I have to start spawning mozilla or IE applets to be able to even display these things.

Also atm any bot or person could waltz into #news and say anything which would then be parsed by the lobbies, so its best if only the output of a list of valid bots is parsed.
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

An IRC-like +v would be nice for that, but simply adding it with a suitable default to lobby configuration should suffice I'd say.

+1 on no (complex) formatting stuff in the message
User avatar
Licho
Zero-K Developer
Posts: 3803
Joined: 19 May 2006, 19:13

Post by Licho »

If you look how commercial games do this (steam, supcom, ...) they are all using full HTML and IE component to display it.

If there is similar thing for Linux system I would say its best way to go (what AF originally suggested).

That way server decides what gets displayed and how and lobbies only have to implement web browser window (straighforward especially for delphi). You dont need specialized protocol and complex logic in client, updates, fixes and changes are quick, because you only change stuff on server.
You could even put link to forums into such browser etc.. there are many benefits, only drawback I'm aware of is probably more complex Linux implementation.
User avatar
SwiftSpear
Classic Community Lead
Posts: 7287
Joined: 12 Aug 2005, 09:29

Post by SwiftSpear »

Strictly speaking moderators already have an announcement method... we just never use it for anything because
A: Betalord told us not to
B: It's quicker/easier to just say something in #main.
Satirik
Lobby Developer
Posts: 1688
Joined: 16 Mar 2007, 18:27

Post by Satirik »

i forgot i say that it would also support an integrated download for mods/maps/widgets and a special case for SVN test to make it as easier as possible

and as tobi said, when I say "it would also be merged with the community news" it means that community news will be displayed as anouncement in the lobby not that anouncements will be the community news
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Satirik integrated download dialog is lobby implementation specific and doesnt really fit into the current discussion as such.
Satirik
Lobby Developer
Posts: 1688
Joined: 16 Mar 2007, 18:27

Post by Satirik »

its a lobby anouncement so everything here is related to the lobby and the download part is important because the anouncement need to let the user install new maps/mods/widget and svn version in one click
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

We have multiple lobbies bots and tools that use the server that could make use of this. Such a thing is lobby implementation specific because it cant be standardised across all the programs in the same way.

Also I would like to be able to choose between an inlobby mechanism and a browser based mechanism. That alone undermines the point.

As such its nothing relevnt to the standard as its a matter of opinion based on how the standard is implemented in a program.

Remember, we exist in a server environment shared by 3 main lobbies, at least 2 minor programs in development being tested at any one time, 3 tested and verified autohost implementations (albeit springie dominates this field) in C# python and java, and various lobby bots, banbots, message relay bots, and so on.

We should keep things simple extensible, generic, concise, and to the point.
Satirik
Lobby Developer
Posts: 1688
Joined: 16 Mar 2007, 18:27

Post by Satirik »

blablabla

it needs integrated download so the protocol will have to provide tagged (mod, map widget etc) direct download link and a special case for an easy to use auto latest SVN install, if you don't want to implement it in your lobby that's your problem
User avatar
SinbadEV
Posts: 6475
Joined: 02 May 2005, 03:56

Post by SinbadEV »

based on my definition I would add a "class" tag to the <a> record that would indicate where to open the link, default would be browser, map, mod, update, etc.

so
SinbadEV has released a new map, <a href="http://www.blah.com/SpeedMetalRacer" class="map">download it here</a>, for more information and screenshots check the <a href="http://spring.clan-sy.com/phpbb/posting ... 1">release thread</a>.
The implementation would just ignore this tag if the lobby creator didn't want to use it they just ignore it... see XML is magically deliciouses.
Post Reply

Return to “Engine”