GithubHelp home page GithubHelp logo

glitchwolfe / nphvz Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mikeknoop/knoopvszombies

0.0 1.0 1.0 13.78 MB

Repository for the New Paltz fork of KnoopvsZombies, an open-source Humans vs Zombies engine.

Home Page: http://nphvz.com

License: MIT License

PHP 78.96% ApacheConf 0.09% CSS 7.32% JavaScript 8.21% Smarty 0.11% HTML 5.32%

nphvz's Introduction

New Paltz Humans vs Zombies (NPHvZ)

Built on KnoopvsZombies, an open source Humans vs Zombies game engine created by Mike Knoop. You can find the live version of this site up and running at http://nphvz.com.

NPHvZ in action

Install

There are a few moving pieces. The engine is currently designed to run on a LAMP stack.

  1. Clone this repository to your server
  2. Edit knoopvszombies.ini.php to match all your local environment settings
  3. Place the cron file commands into your cronjob. Also update the paths in this file to match your server
  4. Set up two new databases, one for the engine and one for the forums. Import the schema from the two .sql files in the root folder
  5. (You may need to do more work to get the forums set up properly, a starting point is the Vanilla docs: http://vanillaforums.org/docs/installation)
  6. Emails are sent out using the standard PHP email mechanisms, so make sure you have all the proper rigging to send emails without them getting flagged as spam.

Motivation

For years, New Paltz HvZ has used a combination of the official HvZ Source tracker and multiple Facebook groups to organize our games. This didn't fill all of our needs, however. We wanted to have complete control over our games from top to bottom. Additionally, this replaces Facebook groups with automated Human and Zombie forums on so zombies don't have to be manually removed from secret human groups like they did in the past.

Most importantly, this site will allow future webmasters of the club to practice working on a live website and gain real web development experience. Having it on Github will also teach them to collaborate with other team members and learn how to use version control software. We chose an open-source tracker so students will be able to build upon it and add new features as they need them. NPHvZ.com should grow with the club over time: it will be the ultimate tool for making our game run as smoothly as possible.

Questions

If you need to contact the current webmaster, our Facebook page is your best bet for getting in touch with our current eboard. If you have more technical questions, feel free to email the original webmaster of this site, Jon Glover, at [email protected].

Overview

Once all the tech is up and running, as an admin, you should create your first game from the admin panel. Set it for the future sometime. You can also set up orientation times and locations. Make sure to check "current" after creating your game to set it as the current game if you intend for players to join it now.

As players sign up, they will asked to conform to a code of conduct and sign a digital waiver before being allowed to play. If they choose to link their account to Facebook, they will be auto-confirmed (motivation: getting a real name and photo). If they choose to manually enter their name and photo, they will have to be approved by a moderator.

The game is in "pre game" mode. During this time, players can sign up and join the upcoming game. They can get their code and opt-into the Original Zombie pool if they'd like. Moderators can approve players, mark players having attended an orientation, send out email, and choose original zombies.

Automatically, the game will begin at the date and time the moderator originally chose for the game (CST time by deafult, change in knoopvszombies.ini.php). At this time, the game goes into "in game" mode. All players who were marked as having attended an orientation will be kept alive. Any player who did not attend an orientation will be marked as deceased. Original Zombies are shown as humans on the website until the moderators decide to unhide original zombies through the "Game Progress" admin panel (see below).

The game continues for several days. Every 5 minutes (a cron job, game_logic.php) is run to check if anyone is about to die because they haven't been "fed" in 48 hours (or whatever period of time is set in the knoopvszombies.ini.php file). As zombie players enter codes to confirm kill, the human is automatically marked as a zombie and notified via email, and the reporting zombie will be fed and can feed two other players from a list.

Finally, everone is a zombie or the moderators end the game through a story element. The gameplay progress is manually moved into "post game" by a moderator. At this time, all stats are locked and the game is archived. Moving the game into "post game" cannot be undone.

The last thing for the moderators to do is uncheck "current" for the current game from the "Create Game" admin control panel. This will set the site to a neutral tone, suitable for the time inbetween one game ending and the next being announced.

Features

Global user accounts

  • Players can use a single user account to join multiple games
  • Stats carry over from previous games
  • Digital code of conduct and waiver signing during the signup flow
  • Signup with Facebook for verified photo and name association
  • Manual account approval without Facebook verification

Fully-stocked admin panel

Orientation Tool

A high-speed typeahead to mark players who have attended an oritentation session. Optimized for en-masse approving players -- for when you have three moderators trying to approve 200 people at your orientation.

Orientation Tool

Edit Current Player

A "player" is a user who has joined the currently available game. Edit details about any player for the current game. From code to kills to zombie status.

Edit Player

Edit User

Edit user accounts (these persist between games) to promote people to moderators, remove or add them to a game, and update other various details. There are several priviledges each user can have and what admin tools they have access to.

Edit User

User Approval

By default, if a user signs up and connects their account to Facebook they will be automatically approved. Otherwise, they will need to be manually approved by a moderator before being allowed to join a game. This is mostly to ensure players have a real name and a real photo.

Approval

Gameplay Progress

This tool lets head moderators move the game from one state to the next (pre game, in game, post game). Game choose Original Zombies here and manually open and close registration.

Gameplay

Send Email

Send emails to the entire userbase or just the current players. Or just humans, or just zombies. Sends from your own SMTP server so you'll have to do the work to get that set up properly.

Email

Create Game

An interface to create and edit upcoming games. Name the game, set start date and time, and choose orientation locations and times.

Create Game

Social Media Tie-ins

  • Post game status and kills to a Twitter feed
  • Bring Facebook posts onto the homepage

Forums

  • In house forums that have "human only" and "zombie only" forums for communication .

Forums

License

Knoop vs Zombies is available under the MIT license.

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.