Pages: [1]
Print
Author Topic: Important announcement regarding wishlist related features  (Read 1799 times)
bansama
げっ~げろぉ
Administrator
Sr. Member
*****
Posts: 776


...toku ni onna otaku ga kirai desu...


WWW
« on: February 03, 2011, 02:50:38 pm »
0

As you may have noticed the links in the site header have been changed. This change has resulted in the removal of the links to the 'view games', 'my wishlist' and 'my games' options. While these options are still available, the links have been removed due to development of these features having been put on hold.

You can access these features via the following links:
View games: http://didimatic.com/dd/en/wish/
My wishlist: http://didimatic.com/dd/en/wish/me/
My games: http://didimatic.com/dd/en/owned/me/

Development of these features originally halted primarily to concentrate on the sales related features. While I would like to continue developing these features I have hit somewhat of a hurdle in regards to how to automatically add all the game related information for all the sites. Previously, this information was gathered manually, but now that more sites are being tracked, this is no longer a viable option.

Now, the main problems with these features is what to do to ensure no duplicate entries, the handling of game titles and product links that are changed, and the removal of games no longer sold -- all of which need to be handled in a manner that does not break any wishlists or owned game lists.

These problems are compounded with the frequent name changes of games that happens on both Steam and GamersGate (generally to fix typos) and the changes in APP numbers on Steam when a game is moved from pre-order to release/changes in APP numbers on Steam depending on region (some of which don't auto-redirect to the correct APP number for your region) and varying minor differences in game titles across sites/regions (depending on game) and so forth.

So, if a user adds any such game prior to its change, how should this be handled? Remove the game from their wishlist/owned list and force them to re-add the correct one? Leave the incorrect entry in their wishlist/owned list (even though they may no longer point to a product on any site)? Or try to find a way to auto-update the entries?

The last one is what I would prefer to do, but so far have not been able to devise a fool-proof system for that which does not require manual intervention.

So if you have any ideas on how to deal with these, so that these features can be returned, by all means let me know. I'd love to hear them!
Logged
Maighstir
Full Member
***
Posts: 195



« Reply #1 on: February 05, 2011, 04:12:26 pm »
0

Would it be feasible to fetch the games automatically, but manually selecting different entries as being the same game?

I assume you use URLs for identifying each game at a specific distributor, does the games' URLs ever change (barring being removed completely)?
Would different entries from the same distributor need to be selected as the same game?

Also, if your script merely selects removed games as unavailable when they're for whatever reason removed from a distributor, rather than removing them from your database, you could hide them in the main game listing, but ignore that flag for the users' "owned games" listings.
« Last Edit: February 05, 2011, 04:14:37 pm by Maighstir » Logged
bansama
げっ~げろぉ
Administrator
Sr. Member
*****
Posts: 776


...toku ni onna otaku ga kirai desu...


WWW
« Reply #2 on: February 05, 2011, 04:59:57 pm »
0

Would it be feasible to fetch the games automatically, but manually selecting different entries as being the same game?

The problem with doing that is when people add games to a wishlist, etc., prior to me having time to review them. Depending on my work load it could be hours or days before I get review the entries manually.

I assume you use URLs for identifying each game at a specific distributor, does the games' URLs ever change (barring being removed completely)?
Would different entries from the same distributor need to be selected as the same game?

Yes, urls do change. Especially with Steam as they use app numbers for the urls and these can vary between regions and between pre-orders/release.
So in answer to the follow up question, possible. Depending on whether the site can auto redirect. GamersGate, doesn't auto redirect, so with US EA games and UK EA games, the urls change and not compatible with the other site (the games will show as "not priced" when viewed on the wrong site).

Also, if your script merely selects removed games as unavailable when they're for whatever reason removed from a distributor, rather than removing them from your database, you could hide them in the main game listing, but ignore that flag for the users' "owned games" listings.

I tend not to delete items from the database at this time. Although I do plan to eventually purge titles once I've solved this particular problem.

I currently thinking that perhaps I could just store the game titles twice. Once for display, and once internally. The internal title could then be striped of all characters other than letters and numbers and forced into lowercase. That would solve most problems, but it wouldn't solve errors in spelling. So I still need to think of a fool proof way to solve that.
Logged
Maighstir
Full Member
***
Posts: 195



« Reply #3 on: February 05, 2011, 08:13:12 pm »
0

My idea would be that you use one table for all games, one entry per game and distributor (or really, one entry per revision of the game, for when the URL changes) so Abe's Oddysee would have four entries; one each from Gamersgate, GOG, Steam, and Impulse. Then you use another table for to create groups of the same game (one row would then contain your id numbers for all Abe's Odysee entries).

When you then cache the full games list, the script reaches the first entry for each game and checks to see which group it's in (a game should only be allowed to be in one group at a time), it then looks up the information for the other entries in that group (if there are any), and subsequently ignores those entries throughout this run.

As for which title to show in the cache, I would suggest looking up which of the entries is the most recently fetched one, and show that one.

Say, in the "all games" table you have this (with more columns and information for pricing, regional availability, and anything else):
Code:
[row1]
gameid=1
title=Oddworld: Abe's Oddysee®
store=steam
url=http://store.steampowered.com/app/15700/
lastfetched=2011-01-20 12:00

[row2]
gameid=2
title=Oddworld: Abe's Oddysee
store=gog
url=http://www.gog.com/en/gamecard/oddworld_abes_oddysee
lastfetched=2011-01-25 12:00

[row3]
gameid=3
title=Oddworld: Abe's Oddysee
store=impulse
url=http://impulsedriven.com/abeody
lastfetched=2011-01-30 12:00

[row4]
gameid=4
title=Oddworld: Abe's Oddysee
store=gamersgate
url=http://gamersgate.com/DD-OAO/oddworld-abes-oddysee
lastfetched=2011-02-04 12:00

The reason I asked about multiple entries from the same store being the same game was because I was unsure how the "same game" table would look.
Something like this might work, with extra logic to store multiple numbers in each cell and find a number in a cell containing multiples:
Code:
[1]
steam=1
gog=2
gamersgate=4
greenmangaming=null
impulse=3
ea_uk=null
ea_us=null

If you combined the existing entries on the 2nd of february, and hadn't looked through the list since then, it'd look like this today:
Code:
[row1]
steam=1
gog=2
gamersgate=null
greenmangaming=null
impulse=3
ea_uk=null
ea_us=null

[row2]
steam=null
gog=null
gamersgate=4
greenmangaming=null
impulse=null
ea_uk=null
ea_us=null

That would show two rows on the web page (one containing the Steam/GOG/Impulse entries with Impulse's game title, and one containing the Gamersgate entry), combining them later would merely merge the Gamergate info into the first entry, and the title shown would be the Gamersgate one (because that one was fetched last).


I'm not sure if this is comprehensible of if I'm just rambling incoherently. I know what I'm thinking, that certainly doesn't mean others can decipher my wording.
« Last Edit: February 05, 2011, 08:37:38 pm by Maighstir » Logged
Mooninaut
Newbie

Posts: 1


« Reply #4 on: February 15, 2011, 04:20:41 am »
0

Would it be possible to offer the user a list of alternatives, based off some sort of fuzzy matching algorithm and have them pick the correct one?  That takes the burden of manually updating off of you and puts it on the user (who presumably knows what they want).

Another solution would be to recruit volunteers to help you update the database.
Logged
bansama
げっ~げろぉ
Administrator
Sr. Member
*****
Posts: 776


...toku ni onna otaku ga kirai desu...


WWW
« Reply #5 on: February 15, 2011, 04:36:23 am »
0

Would it be possible to offer the user a list of alternatives, based off some sort of fuzzy matching algorithm and have them pick the correct one?

That could work... Thanks for the suggestion.

Snip

Some of that might be usable, but my DB structure is a lot different to how you see it =)
Logged
Maighstir
Full Member
***
Posts: 195



« Reply #6 on: February 15, 2011, 02:52:11 pm »
0

Some of that might be usable, but my DB structure is a lot different to how you see it =)

I do realise that, I was mostly going off how I would begin to structure it if I were to build something similar from the ground up (I'm not, however, so you need not worry about competition - I'm much too lazy and I don't see any personal gain :-P ).
Logged
Pages: [1]
Print
 
Jump to: