Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: greggman/HappyFunTimes
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.0.46
Choose a base ref
...
head repository: greggman/HappyFunTimes
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing 398 changed files with 8,440 additions and 37,338 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -3,6 +3,10 @@ public/games
public/examples
docs/hft
docs/relayserver
docs/**/*.html
!docs/**/toc.html
!docs/unity/install.html
!docs/unity/samples.html
images/src
.DS_Store
*~
6 changes: 3 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
sudo: false
language: node_js
node_js:
- "4.1"
- "6"
script:
- grunt eslint
- npm run check
- npm run build
- npm test

before_install: npm install -g grunt-cli
77 changes: 73 additions & 4 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -33,11 +33,48 @@ module.exports = function(grunt) {
'docs/dotnet',
],
},
sass: {
docs: {
options: {
sourceMap: true,
outputStyle: 'compressed',
},
files: [{
expand: true,
cwd: 'docs/assets/scss',
dest: 'docs/assets/css',
src: ['**/*.scss'],
ext: '.css',
}]
},
},
uglify: {
docs_js: {
files: {
'docs/assets/3rdparty/jquery.js': ['node_modules/jquery/dist/jquery.min.js'],
'docs/assets/3rdparty/require.js': ['node_modules/requirejs/require.js'],
},
},
},
watch: {
docs_sass: {
files: ['docs/assets/scss/**/*.scss'],
tasks: ['sass:docs'],
options: {
spawn: false,
},
},
docs_md: {
files: ['docs/**/*.md', 'docs/**/toc.html'],
tasks: ['builddocs'],
options: {
spawn: false,
},
},
},
eslint: {
target: [
'cli',
'lib',
'management',
'public',
'server',
'test',
@@ -51,10 +88,14 @@ module.exports = function(grunt) {
});

grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-jsdoc');
grunt.loadNpmTasks('grunt-eslint');
grunt.loadNpmTasks('grunt-sass');

// WIP!!!
// Docs
grunt.registerTask('unitydocsgen', function() {
var done = this.async();
var foo = require('./dev/js/dotnetdocs');
@@ -71,6 +112,16 @@ module.exports = function(grunt) {
{
filespec: "docs/*.md",
},
{
filespec: "docs/making-games/*.md",
mainURL: "/docs/making-games",
toc: "docs/making-games/toc.html",
},
{
filespec: "docs/setup/*.md",
mainURL: "/docs/setup",
toc: "docs/setup/toc.html",
},
{
filespec: "docs/unity/*.md",
mainURL: "/docs/unity",
@@ -92,6 +143,24 @@ module.exports = function(grunt) {
});
});

grunt.registerTask('default', ['eslint', 'clean:docs', 'jsdoc']);
grunt.registerTask('docsassets', [
'sass:docs',
'uglify:docs_js',
]);

grunt.registerTask('docsdev', [
'clean:docs',
'builddocs',
'docsassets',
'watch',
]);

grunt.registerTask('docsbuild', [
'clean:docs',
'builddocs',
'docsassets',
]);

grunt.registerTask('default', ['eslint', 'docsbuild']);
};

82 changes: 69 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,77 @@
HappyFunTimes
=============

> ## **DEPRECATED**
>
> I'm deprecating happyfuntimes. I'll keep the rendevous server running for a while
> longer but I think it's unfortunately time to mostly depreciate this project
>
> i'll consider accepting PRs still if you want to fix something but otherwise just
> fork it if you want to keep using it
>
> ## Issues
>
> There are a few major issues on why
>
> 1. **device orientation is no longer usable**
>
> Both Safari and Chrome have made getting device orientation require HTTPS
> which is something HFT can't provide at the moment. It would require
> $$$$$$$. If a end-user friendly solution comes up maybe I'll revisit
>
> 2. **Browsers break stuff**
>
> Every year or so a browser changes something or breaks something. Over the course
> of HTF browser broke fullscreen support, audio support, touch support, orientation support,
> and other things. It's no fun to keep up on that
>
> 3. **OSes break stuff**
>
> For whatever reason networking that work before stops working. HFT has to do
> some things to find out all the ways your phone might connect to the game
> and that stuff seems to break every 2 years or so
>
> 4. **Offline Support breaks**
>
> Using HFT without internet breaks every few year and will likely eventually
> be unfixable. Both iOS and Android ping Apple and Google respectively when you
> connect to WiFi to check if you're acutally on the internet. HFT tries to send
> them *fake* data so they believe they are, otherwise they'll stop using the WiFi
> and switch to mobile.
>
> How they do this changes every few years so HFT has to figure out how to change its
> faking. It is within Apple and Google's power to make this faking impossible and
> I supsect they might at sometime which is scary because if they do then there is
> no solution (well, short of acutally providing internet access)
>
> 5. **More browser features require HTTPS**
>
> This is really #1 and #2 repeated but more and more browser features require HTTPS
> and as it says above there is no way for hft to provide HTTPS at the moment.
>
> ## Good news
>
> If you don't need device orientation and you have no need for offline mode/installation mode
> then HFT still works. Write your own controllers to keep up to date with the latest changes
> in the browsers.
>
> ## Bad news
>
> I don't really have time to keep it running.
[![Build Status](https://travis-ci.org/greggman/HappyFunTimes.svg?branch=master)](https://travis-ci.org/greggman/HappyFunTimes)
# Want to play?
* [Install HappyFunTimes](http://docs.happyfuntimes.net/install.html)
* [Try a few examples](https://itch.io/games/tag-happyfuntimes)
# Make games with Unity?
* [Getting Started with Unity](http://docs.happyfuntimes.net/docs/unity/getting-started.html)
# Make games with HTML5?
* [Get started with a single line script](http://greggman.github.io/hft-gamepad-api)
* [Make custom controllers](makking-games.md)
* [Making games](docs/making-games/index.md)
# Docs
@@ -28,34 +85,33 @@ HappyFunTimes
# Support
* [Developer Mailing List](https://groups.google.com/d/forum/hft-dev)
* [Blog](http://blog.happyfuntimes.net)
* [Facebook Group](https://www.facebook.com/groups/timesfunhappy/)
<img id="test" src="images/scene-00-jumpjump.jpg" width="782" height="441" />
<img id="test" src="http://docs.happyfuntimes.net/images/scene-00-jumpjump.jpg" width="782" height="441" />
[HappyFunTimes](http://greggman.github.io/HappyFunTimes/) is a system for playing party games that are meant to be
played with a bunch of people in the same room and 1 ideally large display.
<img id="test" src="images/scene-04-boomboom.jpg" width="782" height="441" />
<img id="test" src="http://docs.happyfuntimes.net/images/scene-04-boomboom.jpg" width="782" height="441" />
People participate in the game using their smartphone by going to a webpage
provided by the game. The webpage lets them use their phone as a controller.
This lets you make games that support more than the typical 4 players.
<img id="test" src="images/scene-01-powpow.jpg" width="782" height="441" />
<img id="test" src="http://docs.happyfuntimes.net/images/scene-01-powpow.jpg" width="782" height="441" />
I suppose theoretically there's no limit to the number of players.
<img id="test" src="images/400-player-bombbomb.jpg" width="782" height="441" />
<img id="test" src="http://docs.happyfuntimes.net/images/400-player-bombbomb.jpg" width="782" height="441" />
It also lets you make games with unique controllers.
<img id="test" src="images/scene-02-jamjam.jpg" width="782" height="441" />
<img id="test" src="http://docs.happyfuntimes.net/images/scene-02-jamjam.jpg" width="782" height="441" />
There's a Unity3D library if you'd like to make the game in Unity3D.
<img id="test" src="images/scene-03-unity.jpg" width="782" height="441" />
<img id="test" src="http://docs.happyfuntimes.net/images/scene-03-unity.jpg" width="782" height="441" />
* The smartphones end up just being smart controllers.
@@ -169,10 +225,10 @@ There's a Unity3D library if you'd like to make the game in Unity3D.
Just like `NetPlayer` above we can listen for events.
client.addEventListener('score', handleScore);
client.addEventListener('die', handleDie);
function handleScore(data) {
console.log("you got " + data.points + " points");
function handleDie(data) {
console.log("you lost", data.pointsToLose, "points. Reason:", data.reason);
}
Similarly you can send events to the game
61 changes: 0 additions & 61 deletions cli/cmds/add.js

This file was deleted.

Loading