c4a - now with highest-best and lowest-best support - feel free to test, and devs need to clarify th


skeezix

Internal Development
Joined
Mar 11, 2003
Messages
8,063
Website
www.codejedi.com
This is a small change, but since the existing c4a server codebase is such junk, it took longer than I'd hoped ;) (I'm currently working on the design and features for the new server, and hope to begin work on it relatively soon. I'll open up threads for discussing features, protocols, etc later)

In the existing config examples, I've always just left it as.. order is one of 'ascending' or 'descending'; but since c4a was such a rush at the beginning, its not really well defined so I suspect it confused people; also, most people just copy/pasta the example config, with changing only a few things, so I figured now might be a time to 'break' and use some more well defined values, while defaulting all existing games to the current ordering (highest first) they're getting anyway (since the server only supported highest-first until now anyway.) ie: Did 'descending' mean 'descending order from highest as best' or 'descending values are better' or 'ascending? descending? I'm the guy with the gun! *derp*'

As such, I think almost all the existing config files are 'suspect' with regards to their intention .. to be 'highest is best score', or the reverse. (or something more complex, which is currently out of scope.) I think I confused people, so I'd like to correct it now.

The new feature is the server itself supports 'highest first' (highest is best) and 'lowest first' (lowest is best) scoring, and it sorts based on that. (and eliminates the appropriate extra if a new submission needs to bump off an old one, due to data limitations configured into the system.) highest-first means highest is best, and is shown at the top (and thus is descending order of display.)

The sorting occurs at score submission time (on the server); I forget if milkshake's website sorts on its own or not, so we'll find out soon if things go all haywire ;) (one of the first things on my new design for new server, is proper support for multiple servers, multiple profiles, etc, so we can have test server(s) and private server(s) and such. Lacking a proper test server for people to test, against, is really annoying.)

--> so submit a score to a game, and please check to make sure its still recorded and reported correctly please!

(yes, I took a backup of the compo4all data prior to updating the server; this was mid-day EST Sept 23 2014)

The conf file entry now must be:

ordering: lowest-first            (or)

ordering: highest-first

In the event of an error (ie: all current games, since the conf value has changed ;) , it will assume highest-first (highest is best); ie: like an arcade scoreboard, with entry '30 points' being listed first, and entry '20 points' being listed next. Descending order.

Devs and players-when-dev-isn't-around -- please let me know what setting is appropriate for each game!

The current configs are:

g_a7xpg.conf:    "ordering": "ascending",
g_battlejewels.conf:    "ordering": "ascending",
g_cannonball.conf:    "ordering": "ascending",
g_doublecross.conf:    "ordering": "ascending",
g_flappybird.conf:"ordering": "ascending",
g_microbes.conf:    "ordering": "ascending",
g_minislug.conf:    "ordering": "ascending",
g_notetris.conf: "ordering": "ascending",
g_nubnub.conf:    "ordering": "ascending",
g_parsec47_lock.conf:    "ordering": "ascending",
g_parsec47_roll.conf:    "ordering": "ascending",
g_penguincommand.conf:"ordering": "ascending",
g_puzzletube_points.conf:     "ordering": "descending",
g_puzzletube_race.conf:     "ordering": "ascending",
g_puzzletube_survival.conf:     "ordering": "descending",
g_rescue.conf:    "ordering": "ascending",
g_rickyd.conf:    "ordering": "ascending",
g_shmuppan.conf:"ordering": "ascending",
g_skunks.conf:    "ordering": "ascending",
g_snowman_easy.conf:"ordering": "lowest-first",
g_snowman_hard.conf:"ordering": "lowest-first",
g_spacerocks.conf: "ordering": "ascending",
g_superhexagon2.conf:    "ordering": "ascending",
g_superhexagon3.conf:    "ordering": "ascending",
g_superhexagon4.conf:    "ordering": "ascending",
g_superhexagon5.conf:    "ordering": "ascending",
g_superhexagon6.conf:    "ordering": "ascending",
g_superhexagon.conf:    "ordering": "ascending",
g_testpong.conf:    "ordering": "ascending",
g_tumiki.conf:    "ordering": "ascending",
g_xinv3d.conf:    "ordering": "ascending",
 

Hope everything goes smoothly; if I blew things up, let me know :eek:

I'll now add a couple games people have recently submitted. To those guys, please let me know your games preference .. lowest-first or highest-first :)

squared: "ordering": "ascending",

notpacman: I forget offhand, sorry

trosh: I forget offhand, also sorry :)

jeff
 
@skeezix:

notpacman: "ordering": "descending"

trosh: "ordering": "ascending"

so I guess it's now

notpacman: "ordering": "lowest-first"

trosh: "ordering": "highest-first"

 

But I must say I'm a bit confused with the change? except for the vocabulary.
 
Last edited by a moderator:
oh, fwiw.. the activity log page may not be updating as of now as well, due to how I changed things; if people are still using that, I'd better put that back in ;)

jeff

ptitseb: the change is mostly because the conf files seem all like copy-paste .. ie: msotly right-by-luck and many seemingly wrong; I thought it best to not support 'ascending/descending'; and possible have some games display incorrectly; so change the nomenclature, and so all new submissions can be caught and set corretly, and not break new ones. My point.. 'descending' actually meant 'highest-first', but most peopel put 'ascending' when they meant 'highest-first' :)

*shrug*

edit: changed notpacman and trosh - have to submit a score to kick off a resort though. (or maybe I should add a resort tool, but I'm way too lazy for that)
 
Last edited by a moderator:
oh, fwiw.. the activity log page may not be updating as of now as well, due to how I changed things; if people are still using that, I'd better put that back in ;)

jeff

ptitseb: the change is mostly because the conf files seem all like copy-paste .. ie: msotly right-by-luck and many seemingly wrong; I thought it best to not support 'ascending/descending'; and possible have some games display incorrectly; so change the nomenclature, and so all new submissions can be caught and set corretly, and not break new ones. My point.. 'descending' actually meant 'highest-first', but most peopel put 'ascending' when they meant 'highest-first' :)

*shrug*

edit: changed notpacman and trosh - have to submit a score to kick off a resort though. (or maybe I should add a resort tool, but I'm way too lazy for that)
Thanks.

Don't worry, I'm testing now, so I will resubmit score soon.
 
Offtopic rambling:

Reminds me of a memory from long ago .. one of my very first emus I wrote from scratch was Phoenix; same thing happened with Donkey Kong though.

The emu comes partially alive.. cpu is more or less working, but graphics not even decoded or handled.. Phoenix at first was just an ASCII display using libcurses on the terminal; DK was X11 MITSHM graphics I think, but not decoded anyway.. so just an alphabetic character moving around.. like 'B' for Bird in Phoenix, and M for Mario, that sort of thing; just ascii moving around on an ASCII screen, the barest of emulation going on, but still quite oiverjoyed (it was very early in the emu movement at all.)

I got stuck 'testing' for hours .. the fact it came a live at all; add joysticks, get that working then.. stuck, hours go by.

You know a game is good, when you can't even see it right, but the gameplay grabs you :)

jeff

Which reminds me... I've got to work all night tonight (ugh), but have some downtime in the middle; maybe fire up Civilization IV or V in anticipation of Civ:BeyondEarth next month, or more likely spend a bunch of time building a linux distribution on r-pi, to run on my Picade mini arcade cabinet. Sooooo tempted to use a beaglebone black and the Pandora firmware on there instead ....
 
This is a small change, but since the existing c4a server codebase is such junk, it took longer than I'd hoped ;) (I'm currently working on the design and features for the new server, and hope to begin work on it relatively soon. I'll open up threads for discussing features, protocols, etc later)
I started ~1 year ago to ask you about this. :D However I am glad, you finally found time to do this! :)

We (developer) know, that it may be quite hard to find time to implement such stuff - especially with kids!
 
My time is very thin (like everyone!), so I've found it least stressful to try and focus my attention; ZikZak project took what little time I have and chewed it up good :) But now back to c4a and my robot car pathfinding AI ...

jeff
 
Thanks for working on this!

It's a really cool project for the Pandora comunity.

(Unfortunately my Wifi at home is really bad - so I'm not playing that much C4A - this will hoepfully change soon).

Ahem, what I wanted to say:

"Squared!" will need "highest-first"
 
My ports (below) are all "highest-first".

g_a7xpg.conf

g_parsec47_lock.conf

g_parsec47_roll.conf

g_tumiki.conf
 
So for me:

g_cannonball.conf: "ordering": "highest-first",

g_minislug.conf:    "ordering": "highest-first",
g_notetris.conf: "ordering": "highest-first",

g_rickyd.conf:    "ordering": "highest-first",

for Loic2003:

g_xinv3d.conf:    "ordering": "highest-first",
 
Updated all of the above; keep an eye on them to be sure, but I'm pretty sure all is well.

jeff
Did you get my personal message, that snowman is both "ordering": "highest-first", but Puzzletube Race (and only THIS gamemode) "lowest-first"?
 
In the 'recent activity' everyone's being awarded a gold cup at the moment ;)
 
A feel good mod, at least :)

Will check into it .. I was wondering if I was going crazy or not, in observing that :)
 
The sorting occurs at score submission time (on the server);
I just took a look at c4a.openpandora.org and saw, that the scores were still sorted with highest first for Puzzletube Race.So I had two thoughts:

a) The changes are not in the productive system atm

B) You do an insert sort and when I submit any score better than the worst, it will be shown as first, but the rest will stay highest first, with the worst score second rank.

I were wrong. :D

I made a test game with Puzzletube and after committing just one score, it is sorted correctly!

So you sort the whole list after every commit? Do you use a sorting algorithm, which is fastest if the list is nearly sorted?

Sorting up to 500 entries every submit can use some performance - especially with c4a spammers like flappy bird. :p
 
The sorting occurs at score submission time (on the server);
I just took a look at c4a.openpandora.org and saw, that the scores were still sorted with highest first for Puzzletube Race.
So I had two thoughts:


a) The changes are not in the productive system atm

B) You do an insert sort and when I submit any score better than the worst, it will be shown as first, but the rest will stay highest first, with the worst score second rank.


I were wrong. :D


I made a test game with Puzzletube and after committing just one score, it is sorted correctly!


So you sort the whole list after every commit? Do you use a sorting algorithm, which is fastest if the list is nearly sorted?


Sorting up to 500 entries every submit can use some performance - especially with c4a spammers like flappy bird. :p
*g* It used to sort into the right spot on insert (brute force); now its doing a full sort after each insert (take that big-O!); it'd be easy to switch to some fancier method, but its no performance slouch now, and of course, we're talking not a lot of actions per day; theres no point in pre-optimizing such a thing until we get to hundreds of hits per second :)

I work in environments with hundreds of hits per second on the DB; that makes things interesting, but we're not there yet (sadly ;)

jeff
 
so I take it my opentyrian c4a port isn't a concern if it's not on your list.. 

No one plays it anyway...
 
Last edited by a moderator:
Back
Top