The Tournament Hub (Launcher)


pmprog

DNF (Did Not Finish)
Joined
Apr 25, 2011
Messages
4,150
In case you've been living under a rock, the foundations for Compo4All are getting laid, and Jeff is working on updating the backend. So I've offered to help build a new UI.

There's also a kind of temptation to cross in a general PND launcher so it's kind of like the MiniMenu, and possibly some PNDManager style functionality. Basically an all-purpose GUI for the Pandora; but that's a long way off.

https://www.youtube.com/embed/bOoT_o0-wUU?feature=oembed
Some of you might recognise the UI design from traylorpark/Binky :)

First steps will be to interact with the R.O.T. (Compo4All) server, create profiles, log in etc.

My next step will be to try to identify C4A enabled games so I can list them, and allow the user to create a favourites list; followed by launching the games

I've mentioned to Jeff that two things I would like to add in to the framework is:

1. Support of user-content - ie, distributing user created levels etc.

2. A simple messaging system that works kind of like the forum's PM - when you send a message it stores on the server, and the client will poll for messages frequently, so it'll be a type of IM.

The questions I want to ask are:

1. Are people interested in anything more than the a Comp4All interface? (PND Launcher/Manager functionality)

2. Are there any features you'd be interested in seeing?

Regards
 
Last edited by a moderator:
Personally I prefer programs which don't try to be everything to everyone...  

For C4A  I'd want to have an interface that is just about C4A.    Launching PNDs would be part of that but only the C4A versions of them.

- Neelix
 
My next step will be to try to identify C4A enabled games so I can list them, and allow the user to create a favourites list; followed by launching the games


I've mentioned to Jeff that two things I would like to add in to the framework is:


1. Support of user-content - ie, distributing user created levels etc.


2. A simple messaging system that works kind of like the forum's PM - when you send a message it stores on the server, and the client will poll for messages frequently, so it'll be a type of IM.


The questions I want to ask are:


1. Are people interested in anything more than the a Comp4All interface? (PND Launcher/Manager functionality)


2. Are there any features you'd be interested in seeing?


Regards
First, while you application fundamentals could be used for something else than Compo4All, please focus on making this app for C4A only, since it's confusing if it does try to make everything. 

Here are few features I would suggest:

- when you are logged in, have a tab or something where you can review your latest scores, and whether someone passed you recently, kind of notification. 

- separating the C4A supported games that are installed vs the ones that you COULD install. this gives an incentive to install more games if you were not aware of them. 

- favorites so that you can focus on what you play

- currently playing players list (game + nickname + platform). This should be possible to do that with server side interaction. 

- option to send message to a player (so that we dont have to go to the forums for that!)

- most popular games being played (could be simply an option to sort the list of games)

But these are just ideas. 
 
Nice start !

Hum, we defenetly need that need PXML attribute for c4a. What will it be?

The launcher should show only C4A applications (using that future attribute).

The attribute has to be part of applications tag, not the package tag.

Also, maybe your launcher can fetch inside PND for an Icon per application (maybe using a 2 pass process, first fast pass to grab standard icon, second pass to go inside PND), and so Mame can provide one application per game.

Or the c4a tag could be something like the application tag, so the multiple application for Mame has no effect on minimenu and xfce menu.

Just some toughts.
 
Personally I prefer programs which don't try to be everything to everyone...  

For C4A  I'd want to have an interface that is just about C4A.    Launching PNDs would be part of that but only the C4A versions of them.
First, while you application fundamentals could be used for something else than Compo4All, please focus on making this app for C4A only, since it's confusing if it does try to make everything.
Okay, I hear that. Saves me a ton of work too. Jeff also talked about cross-platforming Compo4All, so I guess that functionality would be redundant within the other system builds
- when you are logged in, have a tab or something where you can review your latest scores, and whether someone passed you recently, kind of notification. - separating the C4A supported games that are installed vs the ones that you COULD install. this gives an incentive to install more games if you were not aware of them. 

- favorites so that you can focus on what you play

- option to send message to a player (so that we dont have to go to the forums for that!)
The last one I already mentioned I would like to add, but that would require server support. The others I have already planned, so they will be in (hopefully)
- currently playing players list (game + nickname + platform). This should be possible to do that with server side interaction.
One of my thoughts was for a friends list - so you had to log in and out of the server and you could see when they were online and what they were playing. A bit like Steam. As I doubt, especially if and when this goes multiplatform, you'll want to see every single person on. And it's not like Starcraft where you need opponents.
Jeff has indicated that he's got a seperate app to handle profiles, which I didn't realise he had made (I thought he'd been working on server code), so I guess this changes a bit what my app is capable of too.

- most popular games being played (could be simply an option to sort the list of games)
How would you define "popular"? The one with the most unique players?

Nice start !
Thanks, it uses your Allegro 5.1.6 build. Runs nicely on a Pandora too :) (Vid was taken on my PC)
Hum, we defenetly need that need PXML attribute for c4a. What will it be?

The launcher should show only C4A applications (using that future attribute).
Well, I guess it needs to contain whatever Game ID the C4A server reports back, and maybe which pnd "app number" it is. Although it'd get tough with things like C4AMame, which supports multiple games. Though I guess if they were exposed as multiple "apps", then I could launch the correct one. That said, you'll end up filling your MiniMenu/XFCE Menu, and you wouldn't really need a launcher as you can browse scores on the website.
My launcher will show all games listed on the C4A server, but yeah, it'd be nice to be able to find the PNDs that are installed and related so I can seperate them etc.

Thanks for the feedback

Edit: Is it me, or is the editor on these forums really crap with quotes etc. these days?
 
Last edited by a moderator:
Do we need really to extend PXML? That sems overkill when the existing PXML spec and libPND already give you the tools you need.

How about making it part of the process that the existing unique ID for the C4A  enabled PND  is stored on the server with the game configuration data and is sent to the client when it queries the available games.  The client can then query libPND to check if the PND with that ID exists on user's pandora.   It could even launch it with a C4A specific run script.  That way there isn't even a need to add the C4A version as a separate application within the PXML.

- Neelix
 
Thanks pmprog. 

For the "popular" part there are different ways to calculate it, i guess, but here are a few ideas:

- most popular game by number of hi scores submitted in a given time interval

- most popular game by number of active players in a given time interval

- most popular game by number of unique players in a given time interval

I would go with the number of hi scores submitted in a given time interval, personally, to define popularity. 

For the friends list, a great thing would also be to have a small, separate app that runs in xfce, for c4a, so that you can see your friends when they are actively playing a game - therefore it can be a way to encourage you to start the launcher to fire up a game. I guess your app could also do that, but the fact that it may be full screen and grab all your attention may prevent me from keep it launched the whole time. 
 
How about making it part of the process that the existing unique ID for the C4A  enabled PND  is stored on the server with the game configuration data and is sent to the client when it queries the available games.
Yeah, that would work too. I would also like a field to indicate if it's a MAME game name or PND ID though so I know what to try and launch
 
Yes, keep focused; donmt' try to bite off more than you can chew.. babysteps -- aim for step 1 -- getting somethign as functional as is present now, and then growing it, with an eye always forward so you dont' hang yourself.

Right now, the launcher I have is mostly focused around c4a-mame (at the prototype level of development I'd aimed for); you can do a replacement for that, or the same sort of thing for indie(non-mame) sort of titles, or both.. doesn't matter; as you now know, the profile management side will be separate again.. a C4A Manager that can do general C4A-related configuration stuff (profiles only for now, maybe some more later.) It'll just be the profile-bits from c4a-mame's launcher.. same sort of thing, just cut down the features.

So your focus now is to..

- pull the games list from the server (easy)

- show X+1 tabs (say, whatever you want to do), one per 'field' (arcade, indie for now, could add 'utilities' and more) plus All

- maybe have a drop-down or selector for 'genre', so that if we get too many titles, you can narrow in (shmup, racing, etc)

- I can produce a sort-order for popularity from the server; you should _not_ be trying to think too much at the client; there may be multiple c4ra-launchers, all the intelligence should be server-side; dumb client, just show the list, let peopel launch it :)

- a score preview

---> for that, we should standardize something; ie: you'll notice I have my ghetto text site, and it shows scores one way, slightly differently than milkshakes way; that fine, but ideally if the client is showing scores, they shoudl be same as milkshakes

---> may be wise to have milkshake add a json query interface, so that he in turn queries my site, but you coudl in turn query his site, and thus have his scoring metrics as the default?

btw, the banner artwork is currently satored on milkshakes site; I coudl provide a link to that in the game list pull, or perhaps you want your own size/scale of artwork, thats up to you; but I think milkshake shoudl have a consistent filename (marquee/gamename.png or something), so that you can determine it from the gamename without any real work, and just pull them down and cache them

--> you'll notice I only work in text in current launcher, I didn't have tiem to do pulls and caching of that art :)

So, yeah, anyway, get to the current level of cuntion, plan ahead, and go; but dont' bite off too much, dont' over think it .. all messaging will be done through the server, you will have a json request to post a message, and a json request to ask if any messages are pending and unread (or other status options.)  Your app shoudl be more or less 'stateless' (if it crashes, comes back up .. no biggy, it'll just ask the server stuff.)

If you like, I can build some of the querie sinto the 'sc' client, if it makes your life easy; but using libcurl is very easy (you can have the 'sc' source, so you can see how it does it if you need examples), and then you just need to format JSON and parse JSON, which is very easy.

jeff

It already has the 'field' type, which tells you if its MAME or not. Iv'e thought enough ahead for that :)
 
Last edited by a moderator:
We list the high scores differently; no one uses my /links_1/ page I'm sure anymore anyway, so its moot; but I think it woudl be ideal if your site and anything else that shows scores are consistent.. either the same pruning approach, or pull from you. I leave that as an exercise for the student :)

jeff
 
I would probably do the pruning in the client itself (or skeezix server) as it makes no sense to double the request time (skeezix server - > c4a.openpandora.org - > client) :) probably best just to skip the middle man, plus it's really easy to prune anyway.
 
Yes, perhaps I should apply our finally-agreed-upon filter rules to the json-get for the sorebaords, and then we'd all have the same rules thataway. Save you doing it in the .js you have now.

Summariuze the rules you have in place, and maybe I can do it?

I think the main difference was.. you just show the first occurance of any given person, and thats that?

jeff
 
Might be a good idea to have it only list the games it detects that you have in the target folder - the default being the rom folder in appdata...but it could be pointed elsewhere for other people.  But it would only list the games you have...and you could select from a scrolling screen on the left...the game you want.

You would not even need to change the look of the original much.

I'm not sure how much coding work this would require, or if it could be done...but it seems to me that might be the best approach.

Current MAME programs only list the roms you have, so it could be done.

Perhaps if you had it set up like MAME-EX where it could build a romfile list...
 
We'll leave it to pmprog, see what he comes up with; I'm minimizing the client-side work I'm doing, so I can focus on the server and other parts.

Foir my part, I like listing the other games (or perhaps randomly some of the unfound ones, if not all), to help suprise the player.. 'hey, you coudl be firing up Donkey Kong, go buy yourself a rom' :) But perhaps shoudl be options, so you can turn on or off that sort of thing.

jeff
 
We list the high scores differently; no one uses my /links_1/ page I'm sure anymore anyway, so its moot; but I think it woudl be ideal if your site and anything else that shows scores are consistent.. either the same pruning approach, or pull from you. I leave that as an exercise for the student :)
I hit that page the other day, but only because it's in my history and my fingers haven't learned the new URL yet.  Kill it and I'm sure they'll learn :)   Er, what is the new URL again?

I'm a little confused by the idea behind this UI here - apologies in advance as this is probably all thrashed out in one or two of the other c4a threads, but I've been a little distracted of late.  Is this meant to handle logging in?  If so how does it propagate that login to other c4a compatible games?  Will it act as a launcher a la picklelauncher?  Or will other programs launch this to handle c4a maintenance duties?  Or will it appear entirely separately, but record the login via some sort of cookie on my SD card?  Or is that still to be thrashed out as things develop?
 
Uploading update to the repo now!

Changes listed above, let me crib them:

-- added scrollbar to the game list on left (a lame solution, but enough for now!)

-- filter out non-arcade titles (since it doesn't know how to run them right now anyway, for other homebrew stuff)

-- get rid of empty status dialogs, put a little status line at the bottom of the display instead

-- resize display to fit a bit better (no more clipping off the bottom)

-- sorts the game list alphabetically

I also updated the banner text a little bit.

PLEASE UPDATE. It doesn't change how anything works, but since I'm planning to add a few more arcade and indie games, the older version will start getting the game list clipped off (it doesn't scroll until this new version.) Since that version also doesn't sort the game list, you never know which ones will be clipped off!

jeff
 
We list the high scores differently; no one uses my /links_1/ page I'm sure anymore anyway, so its moot; but I think it woudl be ideal if your site and anything else that shows scores are consistent.. either the same pruning approach, or pull from you. I leave that as an exercise for the student :)
I hit that page the other day, but only because it's in my history and my fingers haven't learned the new URL yet.  Kill it and I'm sure they'll learn :)   Er, what is the new URL again?

I'm a little confused by the idea behind this UI here - apologies in advance as this is probably all thrashed out in one or two of the other c4a threads, but I've been a little distracted of late.  Is this meant to handle logging in?  If so how does it propagate that login to other c4a compatible games?  Will it act as a launcher a la picklelauncher?  Or will other programs launch this to handle c4a maintenance duties?  Or will it appear entirely separately, but record the login via some sort of cookie on my SD card?  Or is that still to be thrashed out as things develop?
So far, the way C4A works is.. you have a profile; one per device really, though I could handle that better.. let you have a few, and set which is active. But traditionally, most people use their device like a phone.. one person, one device. Anyway.. worry about that later :)

So right now, people use c4a-mame to create and manage their profile, and use it with c4a-mame; we've also got a few homebrew titles on C4A now, so they still have to use c4a-mame to manage their profile. There is no 'logging in' per se.. just set an active profile, and all C4A games will use it.

Very soon (tomorrow?) I'll post a C4A Manager tool to repo, which will be the profile management stuff, but without the 50MB C4A-MAME baggage. So if you just want to play the homebrew stuff and not MAME, or just want to fiddle with profile.. just that tiny little 1MB tool, and not suck down the whole MAME thing. ie: We disassociate the profile handling from the emu that started it.

I've got limited time these days, so I've opene dup and said 'hey, if someone wants to write a C4A frontend, they're welcome to it'... takes some of the workload off me; pmprog is one person who has stepped up to write something. (More people can if they want, doesn't matter to the server, we coudl have lot sof different clients, or plug into the launchersmenus, or whatever!)

So if pmprog puts out a frontend, it won't need to handle logins or profiles; C4A Manager can do that (or C4A-Mame); his frontend will be an alternative (and if popular enough can replace the one currently in c4a-mame) launcher for C4A-titles; he may handle the mame stuff, or maybe he'll also or only handle the homebrew stuff; we'll see what directions he runs in :)

So C4A is multiple components.. a server (me), a website (milkshakes), a manager (me),. and the piece you see each day -- a launcher... or two :) (pmprog, myself, and whomever)

jeff
 
We'll leave it to pmprog, see what he comes up with; I'm minimizing the client-side work I'm doing, so I can focus on the server and other parts.

Foir my part, I like listing the other games (or perhaps randomly some of the unfound ones, if not all), to help suprise the player.. 'hey, you coudl be firing up Donkey Kong, go buy yourself a rom' :) But perhaps shoudl be options, so you can turn on or off that sort of thing.

jeff
Well, you know...FBA's game list DOES have that option.  It can show all possible games in the list...and highlights the ones you do have...OR you can toggle this to show only those games you actually have - if you don't feel like scrolling thru about 5500 titles FBA is capable of playing.
 
Kumaki.. be sure to grab the updated C4A-Mame I just posted; not much has _really_ changed, but a few tweaks to the launcher. I'll be adding some more games to it soon, so you'l;l want it.. otherwise, you won't be able to see all the games anymore :)

(yes, adding some good old retro, not just enabling homebrew; trying to please everyone :)

For some reason, I really want to get Burger Time in there. Side news story .. I really want a hamburger right now. Damn :)

jeff
 
Back
Top