[Release] Compo4all MAME - ladder/scoreboard competition for classic arcade games :)


I think I blew 'recent activity' up, but I'm having connectivity issues right now so can't take a look at it .. worst case, will fix it later tonight.

jeff

edit: Connectivity up, put in a fix. It was trying to show the 'testpong' activities, but I'd deactivated that game, and it didn't like it; it now shows 'missing config' type error for that and works :)
 
Last edited by a moderator:
pmprog .. not sure _This_ is the time to tackle such a discussion; ie: once we get into building online chat and game join rooms, teaming up, challenging, guilds, etc etc etc massive integration, it becomes a huge project, that will take months to get anywhere. Maybe lets get things stable here and then move onto that while I sit with this and rewrite ..
Okay, no probs, just thought that whilst fleshing out the scoring system it might have been worth considering the other aspects at the same time.
 
It might well be, just not sure I have the time to sweat it right now :)

I am going to rewrite my server, and I need to re-plan how the message passing is done, make it all more generalized, and un-suck the code a bit. Maybe go through it all then...

jeff
 
Thanks a lot for this :)

Even if I have no chance topping ANY highscore, I am proud enough to have been among the best 4 in Space Invaders - for one night lol.

That´s how it is with highscores : the best are usually in the range of 10 - 20x my average :D

Too bad we cannot read the 100 best scores for any game right in Compo4all, only on the website ;) it would motivate me a little more to know that I can make it rank 20, if not rank 5 ;)
 
I've added the config file for Mini Slug Project; just so you know that right now, this means Mini Slug will show up in the C4A launcher until I release an update so it knows enough to suppress showing games it doens't know how to launch.

So for now.. ignore Minislug in the C4a-MAME :)

jeff

FWIW, this would make Mini Slug our first indie game :)
 
Last edited by a moderator:
I've added the config file for Mini Slug Project; just so you know that right now, this means Mini Slug will show up in the C4A launcher until I release an update so it knows enough to suppress showing games it doens't know how to launch.

So for now.. ignore Minislug in the C4a-MAME :)

jeff

FWIW, this would make Mini Slug our first indie game :)
Interesting question for you - I assume the MiniSlug will still be a PND, that get's it own icon on the main menu. What happens if you launch the game without using C4A?
 
MiniSlug will be in is own PND. So you will always launch the game without C4A. But, you have to have C4A somewhere, as your profile is defined with C4A only.

So basically, you setup your Profile with C4A, and then you launch MiniSlup - Compo4All Edition and then, all your score goes on the Web :)

I'm beta testing (me and my soon) now, I'll release it soon, but there is only the score sending, I haven't implemented the score reading and printing from the Web, it's still the local Hiscore table.
 
MiniSlug will be in is own PND. So you will always launch the game without C4A. But, you have to have C4A somewhere, as your profile is defined with C4A only.

So basically, you setup your Profile with C4A, and then you launch MiniSlup - Compo4All Edition and then, all your score goes on the Web :)

I'm beta testing (me and my soon) now, I'll release it soon, but there is only the score sending, I haven't implemented the score reading and printing from the Web, it's still the local Hiscore table.
So you're going to have two MiniSlug PNDs? One for C4A and one just for offline/non-competitive?

Would it be easier/better to try and add some code in that checks for the presence of C4A, and also confirms with the player if the scores want to be uploaded? or something like that?
 
Same PND, with a special entry named "MiniSlug Project - Compo4All Edition" for it.

For now, there is no confirmation of good or bad sending. I just do a simple "system" call in the C code, and I don't check return code. That's just a quick hack for now, I'll do refinement later, after having some feedback.

@Sqeezix: Can the "sc" command do some selfcheck with a a special command line, so I can warn user that no C4A profile is found for example.
 
Last edited by a moderator:
Wouldn't it be better to make one "Compo4All" PND that deals with the profile creation and score syncing, and then have a mechanism to interact with our indie games as follows: the indie game saves its local highscores in a file in its appdata in a standard format, and the C4A sync procedure checks that file (it only somehow has to know where to look for it) and uploads a new highscore to the global server if needed. It also retrieves and displays the global highscores.

That way, adding global highscores to an indie game just boils down to producing that file in appdata (easy enough to do), and all the rest is handled by the C4A PND. If you don't want to participate in the global highscores, you just don't run the C4A PND. No double menu entries needed for each game, no maintaining nightmare to keep all the duplicate copies of C4A inside other PNDs up to date.
 
Yep, if you read up, that is the plan..

1) Standalone C4A Profile Manager pnd file (I just haven't published it yet.. this week for sure!)

2) C4AMAME will check for existant profile, and if not present pop up a box "hey, download the profile manager and come back"

MiniSlug and others can do a blend of their own thing..

- if user hits C4A, then check for profile presence and warn use to get profile manager?

- run the C4A score push, and ideally check for error code

--> right now, the "sc" client (spaghetti client :) returns -ve exit code for error, but doesn't really say much of anything; I need to verify if the return codes are all -1, or if they're -1, -2, -3, etc for various issues, which would be smart. Likewise, it has a debug-mode that spits out error messages, but I need to flesh that out more so its useful for debugging. In general its a pretty simple app -- it works or it doesn't, but be nice to be able to warn the upstream end user "hey, you forgot to turn on your internet".

Ultimately, it might be nice to offer a lib that does handy stuff, such as toggle on the network, auto-run to the profile manager, or the like, so apps can just link the lib and call some functions. We'll get there...

jeff

As to score submissions .. Its a standard client; for now, bundling it with the app seems okay, though I'm not sure what we 'should' do; I thoguht about having the apps do a search for the profile manager and then invoke the client from there, but that puts a bit more effort onto the devs. libpnd already includes a "pnd_locate()" function which knows how to search a searchpath .. this is in turn how 'sc' finds the profile; it uses /media/*/c4a-mame/c4a-prof or whatever as a searchpath; likewise, someone could do something like /media/*/pandora/appdata/c4a-mame to find 'sc' tool and use that...

note: I'll probably have the profile manager live in c4a-mame appdata, just to avoid any issues that could come up with moving profiles around or copying them from c4a-mame to a specific c4a-prof directory etc; so what if the c4a profile manager live sin c4a-mame appdata, shoudln't hurt, and makes life easier.

.. sorry for rushing posts lately.. last few weeks have been insane, but still trying to put out some goods :)
 
Last edited by a moderator:
Ok, here is a beta of minislug with a simple modif to post HiScore. If some of you what to test it. There is no test for Profile now (not sure on how to do that right now), so please, create a C4A Profile before launching MiniSlug-CA4.

minislug.pnd
 

Attachments

  • minislug.pnd
    5.2 MB · Views: 219
sc shoudl return a -ve exit code on error, or 0 on success; so in theory, just running exec* on it, and checking the retval shoudl let you know if something went wrong.

I can verify and make a build later that has a different -ve code for each possible error, if you like.. plus useful stdout error messages.

jeff
 
As to score submissions .. Its a standard client; for now, bundling it with the app seems okay, though I'm not sure what we 'should' do; I thoguht about having the apps do a search for the profile manager and then invoke the client from there, but that puts a bit more effort onto the devs. libpnd already includes a "pnd_locate()" function which knows how to search a searchpath .. this is in turn how 'sc' finds the profile; it uses /media/*/c4a-mame/c4a-prof or whatever as a searchpath; likewise, someone could do something like /media/*/pandora/appdata/c4a-mame to find 'sc' tool and use that...

note: I'll probably have the profile manager live in c4a-mame appdata, just to avoid any issues that could come up with moving profiles around or copying them from c4a-mame to a specific c4a-prof directory etc; so what if the c4a profile manager live sin c4a-mame appdata, shoudln't hurt, and makes life easier.

.. sorry for rushing posts lately.. last few weeks have been insane, but still trying to put out some goods :)
Just a thought,  but if you can locate PNDs like that and given that these games already get listed in the client,  how about having developers add a C4A runscript to their PND,  (perhaps with a specific name) and then have the C4A client launch that PND with the relevant runscript.   That keeps the c4a  interface central and standard and it doesn't clutter up the user's menu or desktop with double entries for each participating program.

- Neelix
 
sc shoudl return a -ve exit code on error, or 0 on success; so in theory, just running exec* on it, and checking the retval shoudl let you know if something went wrong.

I can verify and make a build later that has a different -ve code for each possible error, if you like.. plus useful stdout error messages.

jeff
I think what I would like is, in the runscript, just launch "sc" and if error code < 0, show an error Dialog with "You need to create your profile with C4A first" and exit. Is it possible with current "sc" version?
 
Last edited by a moderator:
As to score submissions .. Its a standard client; for now, bundling it with the app seems okay, though I'm not sure what we 'should' do; I thoguht about having the apps do a search for the profile manager and then invoke the client from there, but that puts a bit more effort onto the devs. libpnd already includes a "pnd_locate()" function which knows how to search a searchpath .. this is in turn how 'sc' finds the profile; it uses /media/*/c4a-mame/c4a-prof or whatever as a searchpath; likewise, someone could do something like /media/*/pandora/appdata/c4a-mame to find 'sc' tool and use that...

note: I'll probably have the profile manager live in c4a-mame appdata, just to avoid any issues that could come up with moving profiles around or copying them from c4a-mame to a specific c4a-prof directory etc; so what if the c4a profile manager live sin c4a-mame appdata, shoudln't hurt, and makes life easier.

.. sorry for rushing posts lately.. last few weeks have been insane, but still trying to put out some goods :)
Just a thought,  but if you can locate PNDs like that and given that these games already get listed in the client,  how about having developers add a C4A runscript to their PND,  (perhaps with a specific name) and then have the C4A client launch that PND with the relevant runscript.   That keeps the c4a  interface central and standard and it doesn't clutter up the user's menu or desktop with double entries for each participating program.

- Neelix

Yeah, thought about this a little bit. Pretty tempting in a way.. but this also leads to los more work :) I'm trying ot stage out the work in abits, too many little subtopics come up at once.

But adding a 'game page' per game (like it is now, but with more details, and plugin-specific displays of the scoring) .. and then you'd have c4a-client able to do the lobbies and achivement displays and such.

For now though, I figure ultimately some games may want that, others will want their own in-game display; they can pull the JSON data and display it, in the way the game normally displays data, so same look and feel.

Since we likely want both, going the road I've been leaning towards lately suports that approach, while also letting the devs do most fo the work for supporting their titles. Then we can revise a bit down the road.

I suppose I should collect all these ideas into a wiki page..

- how to ___

- roadmap for the future

- FAQ

....

Hmrf.
 
wb sent over the conf for Microbes, so I've added that as well; let me fire up c4a-mame existing launcher, see if it all fits for now ..

Probably release updated c4a-mame tonight/tomorrow that filters out these guys for now until we nail down where we're going.. (ie: for now, let these games manage their own launching, via pnds..)

jeff
 
I can connect to the server (high scores from other people are visible). I can play a game. After a game I press the pandora button and the game freezes. 

At first I thought the issue was my bad WIFI connection, but because the first screen with highscores appears pretty fast I think something else is wrong. Any ideas? 

Tried two games - Space invaders and Galaxian. 
 
Why are you pressing the pandora button?

Try ESCape or something; the Pandora button is the 'kill' button from minimenu environment, and 'bring up a window list' in xfce environment; the way the screen is being handled may mask these or confuse it.. but more to point, it is not generally how you want to exit an application :) (Granted, finding out the natural way to exit an app shoudlnt' be that hard, but such is life..)

jeff
 
Why are you pressing the pandora button?

Try ESCape or something
Probably because I never use the escape button on my pandora :) But indeed, that solved it. Thx! Just tried one testgame (initials TRF) 

 
 
Back
Top