Coder Social home page Coder Social logo

gamejolt / gamejolt Goto Github PK

View Code? Open in Web Editor NEW
235.0 30.0 48.0 37.86 MB

This is the whole frontend for Game Jolt. It powers the site and the client.

License: MIT License

JavaScript 0.19% HTML 0.02% Shell 0.04% TypeScript 26.35% Vue 70.24% Stylus 3.11% PowerShell 0.05%

gamejolt's Introduction

Game Jolt

This is the whole frontend for Game Jolt. It powers the site and the desktop app.

We wanted to make it open source so everyone can get visibility into what we are working on. Browse the code to see how Game Jolt is put together. Feel free to offer suggestions on how to do things better, as well as contributing your own code. I'll get a better guide on how to contribute soon.

Requirements

  • Install NodeJS v16+
  • Install Yarn
  • Run in terminal:
    • git submodule init
    • git submodule update
    • yarn
  • Install git pre commit hooks:
    • Windows (from administrator powershell): .\git-hooks\install.ps1
    • Mac / Linux: ./git-hooks/install.sh
  • Add 127.0.0.1 development.gamejolt.com to your /etc/hosts (or C:\\Windows\\System32\\drivers\\etc\\hosts on Windows)
  • Setup local development certificates.
    • Windows:
      1. Run scripts\certs\generate-cert.ps1.
      2. Open gamejoltCA.crt file it generated.
      3. Press "Install certificate" button.
      4. For "Store Location" leave it as "Current User" and hit "Next".
      5. Choose "Place all certificates in the following store" and hit "Browse"
      6. Choose "Trusted Root Certification Authorities" and hit "Ok"
      7. Restart your browser for changes to take effect.
    • Linux:
      1. Run ./scripts/certs/generate-cert.sh
      2. Add the cert to the local trust
        • On Ubuntu/Debian:
          sudo cp gamejoltCA.crt /usr/local/share/ca-certificates/gamejoltCA.crt
          sudo update-ca-certificates
          
        • On RHEL/Centos/Fedora:
          sudo cp gamejoltCA.crt /etc/pki/ca-trust/source/anchors/gamejoltCA.crt
          sudo update-ca-trust extract
          
    • Mac: TODO

Running

  • Website

    Run yarn dev in the project directory.

    It'll set up a tiny server that hosts the website for you on your computer at https://development.gamejolt.com. Open that URL up in a web browser and you should have Game Jolt running!

    • Mac users will also have to forward traffic from port 8443 to 443 to get around a security restriction (see note below)
  • Desktop app

    Run yarn client:dev in the project directory.

    In another terminal run yarn client.

    • Mac users will also have to forward traffic from port 8443 to 443 to get around a security restriction (see note below)

Note: First time running these will take longer than usual.

For more commands see COMMANDS.md.

Translations

Translations are done by the community. If you want to participate, feel free to join at https://poeditor.com/join/project/B4nWT6EgnD.

Notes for Mac Users

Listening on port 443 (the default port for https) requires root privileges, but we want to keep root usage to a minimum.

For this reason, the webserver listens on port 8443 instead, and then in a separate rooted process we can forward traffic from port 443 to port 8443.

There are plenty of ways to do that, personally I like using socat:

  • Install using brew install socat
  • Run the following while developing:
    sudo socat tcp4-listen:443,bind=127.0.0.1,reuseaddr,fork tcp:127.0.0.1:8443
    

gamejolt's People

Contributors

ashleygwinnell avatar hapurubokka avatar hworld avatar luckcolors avatar niksudan avatar nilllzz avatar nilsgj avatar ramagj avatar thecrafters001 avatar truddytheduddi avatar ttbowen avatar ylivay 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gamejolt's Issues

handle disk changes gracefully

currently the client doesnt like when the drives games are installed on or the game installation directory does not exist.

Forum information in profile

This was suggested for the previous forum as a feature. I think it's a pretty cool idea, but I'm not sure if people would want their forum activity on their user profile.

This way you could see what topics other users are following as well as topics they have started - you aren't just limited to your own account. But then there's the question of the privacy or not.

Client Offline Won't Work

On the product page for the client, it said it supports Offline Mode. But when the GameJolt Client is opened without internet, it gets stuck and clicking on the Game Library icon or via the burger menu on the top left doesn't load anything.

Able to create a channel

A logged in user must be able to create a forum channel. They must choose a forum channel category and a name.

Restrictions to the forum channel name include:

  • It must only include lower case letters and dashes
  • It can't already be a channel
  • It can't be a chat channel you are not the owner of

Lag after a while on the program

For some odd reason after a while the client will take a while to click on the site but for some reason it will scroll up and down just fine.

Gamejolt client windows: nw-gyp compile error.

Hello again.
This time i'm tring to build the desktop app but of course it throws an error.
Here's the console ouput (apparently there isn't a way to make gulp more verbose so i'm sorry if there's some lack of info):
Command(all dependencies where installed): gulp --production --client --arch=32
error.log.zip
Note: Mine is a clean windows install.
Also i have set the variable for gyp compiler as follows: GYP_MSVS_VERSION=2015

Chat mentions

When you type @ it should bring up a view with a list of users. Typing additional letters will filter out the list. Should show user avatars.

When you are mentioned, you should get a growl or notification.

These settings should be configurable by users on the site.

Community information in profile

A similar question to #16. This time about having the communities the user is part of in the channel. Maybe the communities the user moderates? This would encourage users to engage in more communities.

Gamejolt Client: The client does not detect when the game closes.

When using the client to play games, the client won't monitor the process and watch for it until it closes. Because of the programming of the client, you won't be able to play any other games, update any games (unless specified in the settings) until you close the client and reopen it.

Steps to reproduce:

  1. Open the client
  2. Install any game
  3. Once installed, play the game
  4. Exit it
  5. See that the client still thinks the game is running.

Crashing on Notifications (Windows 10)

Whenever a notification pops up on Windows 10 (telling me that a game finished installing) Game Jolt Client just stops responding to anything. I can't even close the program unless I use Task Manager!

Unable to locate json-loader dependency

Tried to install and setup locally but couldn't get it working when visiting http://localhost:8080.

ERROR  Failed to compile with 1 errors

This dependency was not found:

* !json-loader!../translations/en_US/main.json in ./src/utils/translations.ts

To install it, you can run: npm install --save !json-loader!../translations/en_US/main.json

I've run npm install --save !json-loader!../translations/en_US/main.json, which just throws an error. I've also installed json-loader into node_modules/ to no avail.

Running node v6.11.1 (npm v3.10.10) on macOS 10.12.4.

Chat game/profile embeds

Pasting a user profile or game link inside chat should render a widget showing relevant info.

Image caching for offline mode.

A local image cache would be a great enhancement. Right now, images are not being displayed when offline. It could also help reduce page load times.

Able to assign forum moderators to a channel you own

Forum moderators should be able to perform the following:

  • Able to sticky topics
  • Able to lock topics
  • Able to remove topics
  • Able to remove topic posts
  • Able to edit topic posts
  • Able to mute a user from the channel
  • Able to invite a user to the channel (if private)

You should be able to mute and mod users in similar fashion to the chat. Only the channel owner can mod/demod users.

Only load chat user avatars when they are in view.

We use angular-inview now. You should be able to attach the scroll container as the user list scrolling thing and then set inview stuff on all the avatars to not show them at all until scrolled in.

Extra points to not even include the user element content at all (ng-if it completely away) if the user isn't scrolled into view yet. Each user in the user-list are the same height. This means we can force the height on the user list item and just not include them in DOM until it's scrolled into view. This may help a TON on mobile.

https://github.com/thenikso/angular-inview

We use the inview directives for forum posts to see if they're in view so we can mark the notification as read. You can see that to see how we currently use it. Or check out devlogs activity feed which its also used in.

Still "playing" a closed game

A closed game is impossible to relaunch from the client because it thinks the game is still running.
It is possible to play a game only if you launch the game from its .exe inside the installation folder.
Take into account that this happens only for those games played at least once: i.e. fresh installed games are not affected (till the first play).

HTPC Options (force full screen, 10-foot user interface, etc)

First of all. Wow. I absolutely love this. I just started using Game Jolt, so I'm excited there is an easy way to side-step having to download zips.

I've noticed that the general design of the client is for use on a desktop, which is great for running on my laptop, but I do most of my gaming on my home theater PC. Is there a way to tweak the display settings to make the client a little more accomadating to this setup? For example, at the moment, I can't figure out a way to get the client to force games to launch in fullscreen. Or for that matter to automatically launch the client in fullscreen mode (maybe a command line option like --fullscreen could be used) Also, it would be nice in general if there were more options for a 10-foot user interface, such as simplified controller input or keyboard shortcuts, and a layout that was more focused on larger menus (In some ways I think the sidebar layout in the browser is actually more easy to navigate from the couch). Also, I can't figure out a way to get rid of the scrollbar on the right hand side.

Thanks again! This is really gonna be awesome, can't wait for the main release.

Able to follow a channel

Users should be able to find an existing channel and follow it.

Upon following the channel may appear on the forum landing, as well as it showing in the followed channels section.

Gamejolt: gulp watch

qvernaut@Linux-Ubuntu:/var/www/gamejolt$ sudo gulp watch
[20:19:32] Using gulpfile /var/www/gamejolt/gulpfile.js
[20:19:32] Starting 'watch:start'...
[20:19:32] Starting 'default'...
[20:19:32] Starting 'clean:pre'...
[20:19:32] Finished 'clean:pre' after 250 ms
[20:19:32] Starting 'pre'...
[20:19:32] Finished 'pre' after 23 μs
[20:19:32] Starting 'styles:app'...
[20:19:33] Starting 'styles:extra'...
[20:19:33] Finished 'styles:extra' after 19 μs
[20:19:33] Starting 'html2js:tooltip'...
[20:19:33] Starting 'html2js:modal'...
[20:19:33] Starting 'html2js:auth:partials'...
[20:19:33] Starting 'html2js:app:partials'...
[20:19:33] Starting 'js:module:vendor-app.js'...
[20:19:33] 'js:module:vendor-app.js' errored after 1.64 ms
[20:19:33] Error: Cannot find module '../../../../../src/bower-lib/moment/.bower.json'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at getBowerComponentFiles (/var/www/gamejolt/src/lib/gj-lib-client/gulp/tasks/js.js:26:24)
    at /var/www/gamejolt/src/lib/gj-lib-client/gulp/tasks/js.js:330:31
    at arrayEach (/var/www/gamejolt/node_modules/lodash/index.js:1314:13)
    at Function.<anonymous> (/var/www/gamejolt/node_modules/lodash/index.js:3355:13)
    at Gulp.<anonymous> (/var/www/gamejolt/src/lib/gj-lib-client/gulp/tasks/js.js:328:8)
    at module.exports (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:34:7)
[20:19:33] 'watch:start' errored after 1.55 s
[20:19:33] Error: [object Object]
    at formatError (/usr/local/lib/node_modules/gulp/bin/gulp.js:169:10)
    at Gulp.<anonymous> (/usr/local/lib/node_modules/gulp/bin/gulp.js:195:15)
    at Gulp.EventEmitter.emit (events.js:117:20)
    at Gulp.Orchestrator._emitTaskDone (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/index.js:264:8)
    at /var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/index.js:275:23
    at finish (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:21:8)
    at cb (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:29:3)
    at finish (/var/www/gamejolt/node_modules/run-sequence/index.js:38:5)
    at Gulp.onError (/var/www/gamejolt/node_modules/run-sequence/index.js:45:4)
    at Gulp.EventEmitter.emit (events.js:117:20)
[20:19:33] 'default' errored after 1.55 s
[20:19:33] Error: [object Object]
    at formatError (/usr/local/lib/node_modules/gulp/bin/gulp.js:169:10)
    at Gulp.<anonymous> (/usr/local/lib/node_modules/gulp/bin/gulp.js:195:15)
    at Gulp.EventEmitter.emit (events.js:117:20)
    at Gulp.Orchestrator._emitTaskDone (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/index.js:264:8)
    at /var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/index.js:275:23
    at finish (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:21:8)
    at cb (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:29:3)
    at finish (/var/www/gamejolt/node_modules/run-sequence/index.js:38:5)
    at Gulp.onError (/var/www/gamejolt/node_modules/run-sequence/index.js:45:4)
    at Gulp.EventEmitter.emit (events.js:117:20)
[20:19:33] 'default' errored after 1.55 s
[20:19:33] Error: [object Object]
    at formatError (/usr/local/lib/node_modules/gulp/bin/gulp.js:169:10)
    at Gulp.<anonymous> (/usr/local/lib/node_modules/gulp/bin/gulp.js:195:15)
    at Gulp.EventEmitter.emit (events.js:117:20)
    at Gulp.Orchestrator._emitTaskDone (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/index.js:264:8)
    at /var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/index.js:275:23
    at finish (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:21:8)
    at cb (/var/www/gamejolt/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:29:3)
    at finish (/var/www/gamejolt/node_modules/run-sequence/index.js:38:5)
    at Gulp.onError (/var/www/gamejolt/node_modules/run-sequence/index.js:45:4)
    at Gulp.EventEmitter.emit (events.js:117:20)
{ lineno: 24,
  column: 33,
  filename: '/var/www/gamejolt/src/lib/gj-lib-client/stylus/common/index.styl',
  stylusStack: '',
  name: 'Error',
  message: '/var/www/gamejolt/src/lib/gj-lib-client/stylus/common/index.styl:24:33\n   20| @import \'./functions\'\n   21| \n   22| // Normalize\n   23| if ( !$gj-exclude-common-normalize )\n   24| \t@import $gj-bower-lib-folder + \'/bootstrap-stylus/stylus/normalize\'\n---------------------------------------^\n   25| \n   26| // Set up our global variables.\n   27| @import $gj-bower-lib-folder + \'/bootstrap-stylus/stylus/variables\'\n\nfailed to locate @import file ../../../../bower-lib/bootstrap-stylus/stylus/normalize.styl\n',
  stack: 'Error: /var/www/gamejolt/src/lib/gj-lib-client/stylus/common/index.styl:24:33\n   20| @import \'./functions\'\n   21| \n   22| // Normalize\n   23| if ( !$gj-exclude-common-normalize )\n   24| \t@import $gj-bower-lib-folder + \'/bootstrap-stylus/stylus/normalize\'\n---------------------------------------^\n   25| \n   26| // Set up our global variables.\n   27| @import $gj-bower-lib-folder + \'/bootstrap-stylus/stylus/variables\'\n\nfailed to locate @import file ../../../../bower-lib/bootstrap-stylus/stylus/normalize.styl\n\n    at Evaluator.visitImport (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:901:21)\n    at Evaluator.Visitor.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/index.js:28:40)\n    at Evaluator.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:156:18)\n    at Evaluator.visitBlock (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:706:39)\n    at Evaluator.Visitor.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/index.js:28:40)\n    at Evaluator.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:156:18)\n    at Evaluator.visitIf (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:789:18)\n    at Evaluator.Visitor.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/index.js:28:40)\n    at Evaluator.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:156:18)\n    at Evaluator.visitBlock (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:706:39)',
  showStack: false,
  showProperties: true,
  plugin: 'gulp-stylus' }
[20:19:33] Finished 'styles:app' after 1.63 s
{ lineno: 24,
  column: 33,
  filename: '/var/www/gamejolt/src/lib/gj-lib-client/stylus/common/index.styl',
  stylusStack: '',
  name: 'Error',
  message: '/var/www/gamejolt/src/lib/gj-lib-client/stylus/common/index.styl:24:33\n   20| @import \'./functions\'\n   21| \n   22| // Normalize\n   23| if ( !$gj-exclude-common-normalize )\n   24| \t@import $gj-bower-lib-folder + \'/bootstrap-stylus/stylus/normalize\'\n---------------------------------------^\n   25| \n   26| // Set up our global variables.\n   27| @import $gj-bower-lib-folder + \'/bootstrap-stylus/stylus/variables\'\n\nfailed to locate @import file ../../../../bower-lib/bootstrap-stylus/stylus/normalize.styl\n',
  stack: 'Error: /var/www/gamejolt/src/lib/gj-lib-client/stylus/common/index.styl:24:33\n   20| @import \'./functions\'\n   21| \n   22| // Normalize\n   23| if ( !$gj-exclude-common-normalize )\n   24| \t@import $gj-bower-lib-folder + \'/bootstrap-stylus/stylus/normalize\'\n---------------------------------------^\n   25| \n   26| // Set up our global variables.\n   27| @import $gj-bower-lib-folder + \'/bootstrap-stylus/stylus/variables\'\n\nfailed to locate @import file ../../../../bower-lib/bootstrap-stylus/stylus/normalize.styl\n\n    at Evaluator.visitImport (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:901:21)\n    at Evaluator.Visitor.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/index.js:28:40)\n    at Evaluator.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:156:18)\n    at Evaluator.visitBlock (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:706:39)\n    at Evaluator.Visitor.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/index.js:28:40)\n    at Evaluator.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:156:18)\n    at Evaluator.visitIf (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:789:18)\n    at Evaluator.Visitor.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/index.js:28:40)\n    at Evaluator.visit (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:156:18)\n    at Evaluator.visitBlock (/var/www/gamejolt/node_modules/stylus/lib/visitor/evaluator.js:706:39)',
  showStack: false,
  showProperties: true,
  plugin: 'gulp-stylus' }
[20:19:34] Finished 'html2js:tooltip' after 534 ms
[20:19:34] Finished 'html2js:auth:partials' after 510 ms
[20:19:34] Finished 'html2js:modal' after 519 ms
[20:19:34] Finished 'html2js:app:partials' after 559 ms

Order bug in old forum, should not "survive" on new forum

image

The screenshot above shows what I mean. One thread was last touched 5 months ago and the next one only 1 day. Such things always confuse me. I deem it likely a spammer tried to spam that thread with a moderator deleting that post, or that the last post may have been marked for review, but that the ordering system still placed it up.

I think it's better that the ordering system actually orders on the date of the ACTUAL last post.

Native Windows back button support

Overview

I often use the GameJolt client on my Surface Pro 4 in tablet mode for convenience reasons, and instinctively use the back button, expecting it to navigate back a page when it does not. This functionality should be included in the GameJolt client

Current behavior

Pressing the back button in tablet mode on the taskbar exits the app

Expected behavior

Pressing the back button in tablet mode should navigate back, just like the in-app back button does.

Additional info

Here are the resources for implementing the back button in UWP apps. This should be adaptable to this app somehow, because much of the UWP functionality is also available to Win32 apps, but I don't know the details. Perhaps something can be found here#

Able to post to a topic

First of all, the user must have permission to enter a post. Reasons why they wouldn't be include:

  • The topic is in a private channel that the member is not a part of
  • The topic has been locked
  • The user has been muted from that forum

Users have the option to reply to existing posts. If this happens, the post should appear normally when viewing the thread chronologically, but you should be able to expand the post it was in reply to, and view all replies to it (similar to Twitter).

My Unity WebGL game is not starting on GameJolt Client

Hi!
I'm preparing my game page for a release on GameJolt. The game has an HTML5/WebGL version made with Unity.

The game runs correctly on browser from the GameJolt Website, both on chrome/safari/firefox, but it silently fails to start on the GameJolt Client.

The Unity loading bar fills completely, but then it just stops working.

I tried to enable the debug mode of nwjs, by editing the package.json:

  "window": {
    ...
    "toolbar": true,
   ...
  }

So I could open the chromium console, and here's the output:

Flushing log file of length 29785 with 265 rows
2blob:http%3A//b-cdn.gamejolt.net/087f662a-eb45-4ad0-b36d-c8f03793783b:1 Uncaught TypeError: undefined is not a function
/Applications/Game Jolt Client.app/Contents/Resources/app.nw/node_modules/client-voodoo/build/commo…:67 Flushing log file of length 29785 with 265 rows
blob:http%3A//b-cdn.gamejolt.net/087f662a-eb45-4ad0-b36d-c8f03793783b:1 Uncaught TypeError: undefined is not a function
3/Applications/Game Jolt Client.app/Contents/Resources/app.nw/node_modules/client-voodoo/build/commo…:67 Flushing log file of length 29785 with 265 rows
blob:http%3A//b-cdn.gamejolt.net/087f662a-eb45-4ad0-b36d-c8f03793783b:1 Uncaught TypeError: undefined is not a function
3/Applications/Game Jolt Client.app/Contents/Resources/app.nw/node_modules/client-voodoo/build/commo…:67 Flushing log file of length 29785 with 265 rows

There are a few TypeErrors during the game load, that seems to be the primary reason of failure.

P.S. I can share the game url privately, if you need it, since the game is not yet out.

rename joltron executable names

people are rightfully wary of the random joltron.exe prompt that pops up when you first launch the client with joltron.

  • should look into detection when joltron is NOT given permission and direct people how to unblock it when it happens

Isolate game processes for security reasons

This is basically a request for what the Itch.io client is doing. They have implemented a sandbox into their client, which "tries to prevent several typical attacks a malicious game could run on a computer." For security reasons, I think the GameJolt client should implement these features as well, to make running unknown games safer. If a game has a virus, and it can very well have one due to the open nature of GameJolt, it shouldn't have access to the system.

Here is the issue and discussion on this from the itch.io GitHub page. There are a lot of security benefits to sandboxing, so I think it should defiantly be considered.

Able to search for channels and topics

Results should appear on the search page. Topics and channels should be apart from each other, like how users and games are with the main site's search results.

Flash + HTML5 Web Builds Game's Iframe Bug

This bug seems to occur when there are 2 web playable versions of the game available, in my case these were HTML5 + Flash. The Play button on the game cover opens an iframe with a broken link in this case and the game can not be played. It can still be played fine using the buttons on the release panel. I tried putting the Flash & HTML5 builds into separate releases but it didn't help. Even if they are in different releases the bug occurs anyway. As soon as I delete the Flash build from all releases, the game cover play button starts working fine.

Here is a screenshot which demonstrates the bug:
http://suntemple.co/gamejolt-html5-flash-iframe-bug.jpg
The game where the bug occured:
http://gamejolt.com/games/basket-ball/99795

Forum topic move requests

Moderators for one channel can request to move a topic to another channel. Moderators of the other channel would have to approve it.

Future feature.

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.