Default HTML5 Canvas 2D + Node.js + Express.js + Socket.IO game project template (boilerplate?)
Based on my default app template
Mangonel is actually a stripped version of Wander, I'm trying to polish it
It provides:
- Prepared a minimal realtime multiplayer environment
- Shared classes for client / server
- Console.log debug messages
- Player connection / disconnection
- Player list management and synchronization
- Player class with id, nick, position...
- Keyboard input managements, minimal up/down/left/right supported
- Movements broadcasted with websockets
- Rate limit for sent movement messages
- Minimal server authority for player position
- Simple player visualization on HTML5 Canvas
- Uses Paul Irish's requestAnimationFrame
- Toggable debug panel by pressing ""
- Show FPS on debug panel
- Ping all connected clients, show current player ping on debug panel
- View Player list by pressing "tab"
- Collisions with map bounds
- Viewport: have a big map, render only a small viewport and center player on canvas
Online working demo app: http://mangonel.nodejitsu.com/
TODOs:
- Render only viewable objects
- Player sprites
- Client / Server configurations
- Collisions with other players
- Canvas click
- Websocket message enumeration
- Tileset engine (maybe)
- Audio
- Sprite animations
Modules:
- Clone the repository with
git clone git://github.com/Fabryz/mangonel.git YOUR_PROJECT_NAME
- Install dependencies with
npm install
- Start the server with
node server.js
- Point your browser to
YOUR_SERVER_IP:8080
- Learn it, be it, develop it, play it
MIT License
Copyright (c) 2013 Fabrizio Codello
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.