First off, thank you for your ramble. You bring up a lot of important points, and I agree with virtually everything you say. We have to solve all of these issues before tiggit can really evolve and grow to its full potential.
(04-24-2012 02:03 PM)Talon Wrote: Alright, so unfortunately I'm not very experienced with C++ but I know Java extremely well (Swing/Servlets/pretty much anything), C# reasonably well (not quite as much as Java but I'm productive with it), and Python reasonably well.
This may be the project to motivate me to learn C++ more though, but currently I'm a little clueless on how to even setup a proper environment (I'm running windows), let alone the build steps and whatever else.
Sounds great, you are very welcome to join in on the coding!
The current codebase is a kinda prototypish though, and perhaps structually isn't a great C++ example to model after, but it's improving. Also I'm actually doing most of my coding on Linux, and my own Windows build environment was hastily put together in MinGW (a Windows port of the GNU gcc compiler) with the minimum effort necessary to get it to compile. I even had to compile some of the dependencies manually since they didn't have pre-built MinGW-compatible binaries. I don't recommend repeating this approach
So the first thing to figure out is how to set up a sane build environment on Windows. I will help out with this anyway I can. We should start a separate thread for this.
Also BTW, if you have web coding experience that can probably come just as much in handy as app development! Some of the things you propose below (like user-moderated game submissions) are after all server-side project.
Quote:However, I feel as though I could still be of some help. Some of the few things I've noticed so far that could use improvement (forgive me if some of these are known and already have plans, I just got Tiggit yesterday)
No forgiveness necessary
I do have plans for most of these, but I've been pretty lousy at sharing them publically. I've been a bit preoccupied with IRL stuff for the last few days since this forum was created.
Quote:-Submitting New Games
It appears as though nico has to manually add entries to the all_games.json file and create the respective tig file. I can only imagine how tedious this must be getting, especially with an increase in popularity and desire for more games.
It's not quite that tedious - I've built scripts to take care of most of the tasks, and a GUI frontend that mostly lets me just copy-paste in info and publish with one button. The all_games.json file is generated live from a database via PHP code. However it's still a bit of work to find everything, and adding hundreds (or potentially thousands) of games this way isn't something one person should be doing.
Quote:One solution that may be worth exploring is if the developers of a game are willing, have them host these json files on their server and then the client only needs to hold the url to the json file for a game and the rest can be downloaded. A benefit to this is it shifts the burden from nico to the game developers and essentially solves the issue of link rot.
This was actually my original idea for tiggit. The idea was to have tigfiles as a sort of RSS-like format that publishers could update, and the Tiggit launcher act sort of like an RSS reader for games.
Like you say though it's only good for the devs we can get to agree to do it. Having been in contact with a few devs now, I can say that most (understandably) aren't that interested in doing more work, and especially not for freeware games they are no longer working on and which aren't bringing them any income. And for disappearing games / linkrot it wouldn't help much at all, since the tigfiles would just disappear with along with the rest, actually making matters worse.
I would still love to have this as an option
for those that want control. But IMHO that's something I think we can add later.
Quote:Another solution is to use the Tiggit community to keep everything fresh. Not only would users be allowed to submit new games, but update the information for current ones.
IMHO this is the solution I think we should go for. I would love to create some sort of open web-based database for games, that is integrated with the Tiggit launcher.
Actually what I would love is something like a wikified TIGdb
, where anyone can add and update info. The launcher integration doesn't have to be direct (and for security reasons it shouldn't be), it just has to provide all the info needed through some open protocol. So when games are added or updated, we are notified and can review the info, before automatically updating our own records and sending it out to end users.
This could be run as an entirely independent project, on its own domain with its own open codebase, since we'd only fetch data from it through an API. It's quite a big side project though, but for the time being we could get away with just a small prototype, so people can start submitting games.
Anyway, this is all just an early idea of mine. I'm open for all input or other alternatives.
Quote:It appears that nico is running the installers and zipping up what they extract and uploading the zips to a sourceforge project which is where the Tiggit client grabs the game from, and as a result, does not stay up to date. This will become increasingly difficult to manage as Tiggit becomes more popular and gets more games.
That's pretty much exactly what I've done for a lot of the games. Others are hotlinked directly from the author's zips. Not that this is much better - and has its own problems, not least of which is that I haven't asked many of them for permission to hotlink their stuff.
Quote:This could possibly be alleviated by adding users to Tiggit (I'm not sure if nico wants to keep it a user-less system) which would allow select people from the community (essentially mods) that would help maintain all of the game's data.
IMHO I think it should remain user-optional for players
. Some tasks are impractical to do without some sort of login (be it just with a facebook login or whatever), and I'm sure more seriously involved users won't mind registering anyway.
Quote:Some random quick ideas:
-Periodically have the server check all of the download links and in the case of an error, update the json file with a link back to a page on tiggit.net explaining why it's broken and have the client detect this link and launch the browser when a user attempts to download a game with a broken link.
I'm currently working on an update system for tiggit, which also hashes all downloaded files. This way we can detect not only broken links, but also changed/updated downloads. There's no automatic error correction, but I did intend it to automatically report broken/changed links back to the server.
Quote:-A lot of people want to be able to change where games are installed (rather than /data).
This is by far the most popular feature request I've gotten, so I'm planning on doing this next. I'll post another thread about that soon.
Quote:-Show the download count to the user.
Agreed. My tentative plan is to add columns for downloads, vote count and add-date, and to implement sorting (another popular request) in the next update after the installer stuff.
Quote:-http://db.tigsource.com/browse has an api that returns game data in the form of json or xml.
You can get the json or xml for each game page by adding .json / .xml to the url, just as for the browse page. I've already scraped their database for every single game page, and sorted it by platform, freeware status etc.
Phew, a long reply to a long post. You don't have to reply to all of it