Git Product home page Git Product logo

ifcomp's People

Contributors

adherzog avatar aeswartz avatar andrewschultz avatar curiousdannii avatar danshiovitz avatar dfabulich avatar isquiesque avatar jmacdotorg avatar jtn20 avatar mjmusante avatar oreolek avatar taskboy3000 avatar unclescientist avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ifcomp's Issues

Suggestion: more visible updates

Currently, the updating system is completely silent; it seems an author can just update at will, and the entry will have a little note saying when the game was last updated.

This works wonders for the casual gamer, but I'd like to keep an up-to-date version of every game, as I have been for a few years now. It's quite difficult to follow as it is - my only option is to, every day, do a Ctrl-F to find the text "Updated: 1" for games updated on the first, "Updated: 2" for games updated on the second, etc.

It's not very nice. :) There are other ways of alleviating this that wouldn't affect the website (like, say, a post on IntFiction saying "New batch of updated games! The following games have received updates since xx/XX", but in-site I can think of a couple of ways to make it better.

  • Maybe if I could sort the games per update date? "Sort by most recently updated"?
  • An RSS feed, maybe? I could open it and instantly see which games have been updated.

Really, anything would work. As it is, it's, hmmm, well, again, just not very nice. :) I mean, it's great for people who just want to come in and play, but not so great for people who want to keep track of the updates and make sure to have an up-to-date version of each game for later consumption.

Add beautiful site design

Add a real site design to the templates (especially the wrapper files), CSS, JS, and so on.

This design should apply itself to not just dynamic pages but also all static ones, including those constructed by the programs that separately generate static pages based on DB content (see #4 and #5).

Transcription functions generate character-encoding errors

Probably gotta work in some :utf8 encoding layers when setting up output file handles.

Lots of these errors:

[error] Caught exception in IFComp::Controller::Play->transcribe "Wide character in subroutine entry at /home/ifcomp/ifcomp/IFComp/lib/IFComp/Controller/Play.pm line 98."

[error] Caught exception in IFComp::Controller::Play->transcribe "malformed UTF-8 character in JSON string, at character offset 747 (before "\x{eb}'s line, and h...") at /home/ifcomp/ifcomp/IFComp/lib/IFComp/Controller/Play.pm line 98."

Initialize the codebase

  • Design an initial database schema draft.
  • Create a Catalyst application skeleton, and populate it with model classes appropriate to this schema.

Add salt field to user table

Each password should have a salt associated with it. Legacy users will all have the same salt. New users will get a random salt.

Import legacy data into the new database

Write a one-off script that will load game, author, and other salient data from the legacy IFComp database into the new one. It will not carry over transcript data for the time being.

Completing this task won't necessarily result in any code change reflected in this repository.

Cover images on ballot page should be optimized

The full size cover images being used on the ballot page are huge, compared to what's needed, causing for a very slow first time load. Also, since the image dimensions are not part of the markup, the page keeps jumping as new images are loaded.

We should shrink or otherwise optimize the images, and add some css/markup to prevent the page from jumping as the images load.

Create a controller to display the comp's current-year summary

This task is similar to the one described by #4, with the following differences:

  • The output is always a single HTML document describing the current competition year
    • We quietly redirect the user if no competition is active at the time it's run
  • The games list is sorted alphabetically, by title
  • If the game uses an author-psuedonym,
    • Display the pseudonym, and not the author's real name
    • Do not link to the author's URL or email

Night House has Web format instead of Quest

The entry "Night House" in the 2016 comp is a Quest game, and one of its files is nighthouse.quest, but it's shown as "Format: Web". There is an index.html file that has a link to the game's page on http://textadventures.co.uk/, but the entry's blurb suggests "Download for best experience". I think ideally it should say "Format: Quest" but also have a "> Play online" button that links to textadventures.co.uk (in the same way that Glulx entries have a "> Play online" button that links to a local Quixe page).

Note that the entry "Eight characters, a number, and a happy ending" is also a Quest game, but that comp entry consists solely of an HTML page that has a link to textadventures.co.uk (where, by the way, you can download the .quest file). I suppose the author might prefer to have people download from that site rather than from the ifcomp site, but I'm guessing they didn't have a preference and it just seemed easier this way?

Twine games have a UTF-8 encoding issue

98388b7 added proper UTF-8 encoding to all individually downloaded games. But then I discovered that this broke something in the JavaScript of many (all?) contemporary Twine games, including several Twine-based entries I tired. Thus did I commit 293a0b3, which preserves the UTF-8 encoding of all game text while preserving the poorly-encoded JavaScript, allowing these games to run as expected.

I would like to investigate the reasons for this breakage, so that we do not rely in this yucky hack past this year. I noted that the JS in question contains various literal strings full of high-bit characters that render as garbage in ASCII (and allow the game to load) and render as other characters in UTF-8 (and prevent the game from loading). So, I don't know exactly what's going on here.

Use links rather than buttons for Download, Play Online etc

The website uses forms and buttons on the entries page, which means that you can't directly access the URLs. Looking at the HTML I can't see any reason why they couldn't be replaced with links instead.

The code in question. I'd submit a pull request but I don't know the templating system and wouldn't be able to test it. But I'd guess something like this:

        <a href="[% c.uri_for_action( '/play/download', [ entry.id] ) %]" class="btn btn-default btn-lg">
            <span class="glyphicon glyphicon-cloud-download"></span> Download
        </a>

Create a controller for the comp's previous-year summaries

Write a controller that, given a comp year, displays a lovely summary of that instance of the comp. This archival information changes infrequently-if-ever, so we should use caching. (See http://search.cpan.org/~ether/Catalyst-Manual-5.9007/lib/Catalyst/Manual/Cookbook.pod#Page_Caching)

Each page should contain:

  • A header section, making the comp's year obvious
  • A list of all entries, sorted by winningness (with the #1 game(s) at the top, sub-sorted by title)
  • Each entry contains:
    • The game's cover art, if it exists
    • The game's title, and how well it placed in that year's comp
    • The real name of the author, and their pseudonym, if they used one
    • The game's subtitle and blurb, if it has them
    • Link to the author's URL, if they have one
    • Link to the author's email address, if they have granted permission to reveal it
    • Links to download or play the game
    • Link to the game's IFDB page

Note that the 1995 comp's page might present special-case oddities due to its by-platform segregation of entries.

The ballot page gives no indication of feelies

The ballot page includes feelies in the download zip, but as many people will just be playing the entries online, it should indicate that they exist. It may also be good to give direct links to them, rather than only the zip.

Let users upload and manage entries

Users can upload entries to the IFComp, and manage their existing entries.

A user becomes an author, as far as the given comp iteration is concerned, if they have at least one entry ready to go in that comp. (This precludes the possible existence of "extant but not actually published" or even "deleted" states that entires might have, if we end up adding such attribute-options to them.)

Move DB credentials to a configuration file

DB creds are in IFCompDB.pm. These should be a conf file. The conf file should NOT be part of the project, but a -dist version of the file should be. This allows for easier local development.

The ballot should never link to IFDB pages

The "download" and "play online" links from /ballot appear to link to a game's IFDB page if a game has a value set in its ifdb_id field.

I am sure this seemed like a good idea at some point in the past, but it isn't now. The presence or absence of ifdb_id should have no bearing at all on anything on /ballot's behavior.

Comp objects need to know what state they're in

Where possible states include:

  • Nascent (hasn't started accepting entries yet)
  • Open (accepts entries and prizes)
  • Begun (accepts votes and prizes)
  • Prizing (judging is done, but not all prizes have been assigned to authors yet)
  • Over (is all done)

Plus these meta-state:

  • Active (in the state of either 'open' or 'begun')
  • Inactive (not 'active')

And there needs to be a "fetch the active comp" method on the comp resultset, which will return 0 or 1 comp objects.

Html playfile selection is incorrect

jmac [12:42 PM]
Eurgh… @danshiovitz, looks like the fix to the broken-web-links issue raised a problem for games with multiple .html files at the top level, even if one is named index.html
In at least one case (Detectiveland) the code now opens the wrong file. In this case the author fixed it himself by moving the not-index file elsewhere, but.

danshiovitz [1:30 PM]
whoops, I guess the rule should be to prefer index.htm(l), then alphabetically first other .html
or it could be that if there's just a single html file, use that, otherwise use index.html whether or not it exists
essentially forcing them to disambiguate themselves

jmac [1:48 PM]
Yeah, I think that’s a good way to appraoch it.

danshiovitz [1:56 PM]
the latter?

jmac [1:57 PM]
Right.

[1:58]
And to be clear, it should consider only HTML files at the top level when it’s making this choice

[1:58]
So if it has /game.html and /extra/hints.html it won’t get confused.

[1:59]
But if it has those two, and also /poster.html, then all bets are off. But /index.html would be fine.

The "welcome" message can mess up the navbar

If the browser window is of middling length and one is logged in, the "Welcome, $name" text makes the navbar appear twice as tall as it ought. This can mess up the format of the rest of the page a bit.

safariscreensnapz029

Judge opt-in mails for daily/weekly update list

Very likely this is a bit too much for this year, but related to Peter Piers's question at http://www.intfiction.org/forum/viewtopic.php?f=32&t=18693&p=98295#p98295

This would be handy for people who want to see what changed. It could take the programmer logs and spin them into an appropriate mail.

Perhaps there could be an option for a big long summary on November 1st as well, so judges could pick off games that they put off due to bugs or whatever?

Allow users to log in

Users with IFComp accounts should be able to log in.

This includes folks with pre-2014 accounts, once they're imported into the new database! (See also #3.)

Interface bug on uploading files

  1. http://dev.ifcomp.org/entry/1325/update
  2. click "upload a new game file" and upload any file
  3. click "upload a new game file" and hit escape

The chosen file is deleted. This might be a minor nuisance if someone hit "upload" twice by mistake. But they can always just re-type the file name in, and with file/tab completion etc. they can recover. So is it worth checking that there already is a filename?

Feature request: send zip file of game transcripts when comp is over

This could be a nice way to encourage post-comp releases. While authors can access it during the comp, it may be useful for us to see patterns etc. Or it's quite possible that authors may give up on updating after a certain point. It is just one less thing to remember to track for those who want to update their game based on criticism, bugs, etc.

Maybe the authors could/should be asked to opt in, but it seems like a great resource.

Recusal option for Miss Congeniality?

I forget if it is there for judges. (I think it was?) But this would be a nice convenience so we have one more buffer to be sure we don't rate games we tested.

E.g.

None/1/2/3/4/5/6/7/8/9/10 becomes None/Recuse/1/2/3/4/5/6/7/8/9/10

It could also serve as a "not planned."

48/72-hour warning

Looking through @ifcomp's tweets, I noticed the one where 37 people didn't vote for 5 games. Is there a (one-time) reminder in place with, say, 2-3 days left? So that if someone has opted in to emails, and they have voted on 1-4 games, they get a poke saying, they need to vote in X more games?

It would also be a neat courtesy to say "Thanks for voting, your votes will count" and maybe have something even more positive if someone manages to finish over half the games (as a competitor who tried to review other games, I believe that getting through half the games to vote for them is a strong accomplishment) or something for, say, <5 left.

Obviously you don't want to get extra oleaginous but I think it is the sort of nice thing that would make someone smile.

Also optional: mentioning you don't have to vote in all the games, if you're close. Some people are uncomfortable with a game or two, and I remember giving one game a very dashed off score in '10. So--this doesn't need to be a huge essay, but something natural and simple will probably work great.

The precise time to send the email is also up for grabs. But definitely give people time to play a few short works.

The schedule needs to be on its own page

And that page should be linked from the top navbar.

The schedule should remain where it is on the About page, as well. Use templates in the obvious fashion to accomplish this.

Use Quixe for web-play of Glulx games

Currently the site throws both Z-code and Glulx games to Parchment. Parchment's Quixe plugin is buggy -- most obviously, it fails to show the status line. Quixe as a separate install works better.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.