tlhunter / cobalt-calibur-3 Goto Github PK
View Code? Open in Web Editor NEWDEFUNCT: HTML5 and Node.js multiplayer browser game from 2013
Home Page: http://cobaltcalibur.net
License: BSD 2-Clause "Simplified" License
DEFUNCT: HTML5 and Node.js multiplayer browser game from 2013
Home Page: http://cobaltcalibur.net
License: BSD 2-Clause "Simplified" License
Enemies should have some path-finding capabilities and hunt down players.
The server isn't properly storing a list of users. When a new player logs in they don't get a proper list of users. As a hacky fix the client sends it's info every 15 seconds, this needs to go away too.
Sometimes, characters will be ghosted, like if you refresh the page you can sometime see an old version of your player
I very frequently see people playing Cobalt Calibur with an invisible avatar. Need to find what causes that and fix it. Probably a network timing event issue race condition thingy.
Right now, the map is a 200x200 array (40,000 items). Each item is an array containing an ID and "health" of a tile. The game took a different direction though, and we no longer need health. It was going to work like a tree has 20 health, mine it, get 1 wood, and it now has 19 health, but it changed into you hit a tree, get 2 wood, tree becomes stump. Hit a stump, get 1 wood, stump becomes grass.
Lets make it a big array of just integers, and increase the size to 1024x1024.
Display player joined message
When drawing players and NPC's, we check every single on-screen tile to see if it has a player or npc. Instead, draw the terrain first, then loop through a list of NPCs and players, check to see if they are on screen, and draw them if this is the case.
Chances are there are less people than there are on-screen tiles, and this should speed things up a bit.
COLORZ
make it stop!
Display different priority messages when a player dies or some action occurs
Add simple ranged damage. Characters would need a clickable link above them, npcs as well. Might also need a list of characters in range so that they can be more easily targeted.
We should probably open the socket later instead of sooner. The connection triggers some server side stuff, and I think the client side app isn't quite ready for it since it is still downloading assets.
It cannot be done!!1
Need to run npm update in the root to get everything to the most recent version.
Delete the mongo
package, since we use mongodb
.
Make sure the output of npm ls
contains no errors.
Update all of the code in server.js
which breaks due to the new packages. Socket.io, Mongo, and Express all go nuts.
Get a list of the packages that get installed, and add them to package.json
. Then, delete everything within the node_modules directory, and add that to .gitignore
. In the README.md
file we should say that after the files are checked out, one needs to run npm update
to get the latest files.
Player needs to know the time as soon as they log in.
It seems like the socket update call is missing the last event fired. When I watch an avatar moving from another window it is always one movement behind.
On 64-bit CentOS 6.4, I am unable to run Cobalt Calibur 3.
MongoDB version is 2.4.5, node version is v0.10.12, and npm version is 1.2.32.
I verified MongoDB was running. I unzipped a current GitHub master archive of Cobalt Calibur 3 into /var/www/html and ran "npm install" from that directory. After that completed, "node server.js 80" returns the following:
Express Attempting to listen on: 127.0.0.1:80
MongoDB The map in Mongo is null
MongoDB Attempting to build the database
/var/www/html/Cobalt-Calibur-3-master/node_modules/mongodb/lib/mongodb/connection/server.js:594
throw err;
^
TypeError: Object # has no method 'collection'
at buildMap (/var/www/html/Cobalt-Calibur-3-master/server.js:395:8)
at /var/www/html/Cobalt-Calibur-3-master/server.js:545:21
at /var/www/html/Cobalt-Calibur-3-master/node_modules/mongodb/lib/mongodb/collection.js:998:5
at /var/www/html/Cobalt-Calibur-3-master/node_modules/mongodb/lib/mongodb/cursor.js:685:35
at Cursor.close (/var/www/html/Cobalt-Calibur-3-master/node_modules/mongodb/lib/mongodb/cursor.js:899:5)
at Cursor.nextObject (/var/www/html/Cobalt-Calibur-3-master/node_modules/mongodb/lib/mongodb/cursor.js:685:17)
at commandHandler (/var/www/html/Cobalt-Calibur-3-master/node_modules/mongodb/lib/mongodb/cursor.js:658:14)
at null. (/var/www/html/Cobalt-Calibur-3-master/node_modules/mongodb/lib/mongodb/db.js:1666:9)
at g (events.js:175:14)
at EventEmitter.emit (events.js:106:17)
Have I missed something obvious? Has anyone had any luck with a recent install of Cobalt Calibur 3? Has a more recent version of a dependent package broken the game?
Right now, everything is stored in localstorage, and is quite easily hacked.
There should be more server side validation, store all inventory info there as well.
Hey!
Can you help me out to compile this repo? The screen is black in the same way as in http://cobaltcalibur.net
I need to blog about all my long term goals for this game
Consolidate the character info and move events into once on the frontend and backend, since they do the same thing now.
it kinda makes the game less fun
make it prettier
var server_port = parseInt(process.argv[2], 10) || 80;
Awesome project! I was looking for something just like this. Only a few problems:
I'm not very interested in Node. If I were to play/contribute, would almost certainly implement a clojure backend... which brings up the idea, do you have any plans for this?
Additionally, is there any clear reason to not have used coffeescript? I much prefer coffeescript, personally.
The player needs to have the corruption data as soon as they log in.
Just got done with a swizzeet backend refactor. We're going to need to do a big refactor of the frontend before we can make any massive cool new features.
I'm thinking use Browserify, and break the chunks of code up into smaller modules similar to the backend approach. Shouldn't need a massive game object anymore.
Anticipated modules:
Corruption can take a while before it is seen. The code which sends the corruption to the browser might need a little delay.
I've already done this for corruption, logger, map, and terrain. Need to keep doing it for earthquakes, npcs, tileset data, time of day.
Players need a list of NPCs as soon as they log in.
Need a combat system, complete with health.
Need to provide username/password authentication, no more local storage for data saving. Will probably need to marry express.js sessions with websocket data.
Prevent earthquakes from destroying buildings
clean that shit up, yo!
Rebuild the game so that it is rendered in 3D instead of 2D. Maybe even cooler, render in both, letting the player pick which to use.
We need to do a ton more calculations on the backend instead of the front end so that cheating is a lot harder.
escaped HTML is being unescaped when the text is written back into the DOM
fo sho
When a character moves, there's a delay between when they can move again.
This makes sense for classic gameboy / NES / overhead games (think Zelda and Pokemon). Specifically why it makes sense is that the screen is animating between the old state and the new state.
Unfortunately it feels buggy in CC3 due to this lack of animation. Add the animation and we should be A-OK.
When drawing avatars the labels' redraw seems to be delayed.
WASD movement is currently dependent on the speed of which the OS/browser sends keypress events. It should instead be triggered at a set interval for all players (e.g. every 200 MS).
If we add a speed attribute for characters, faster people could move faster, etc. We'll probably want server side validation, and if the player consistently moves faster than he should we kick them, since they could be hacking.
http://nokarma.org/2011/02/27/javascript-game-development-keyboard-input/index.html
I'm not sure who created the original character graphics.
This repository is evil for not providing proper credit.
Need to find out who made them and if we have permission to use them.
I think there should be some classical inheritance introduced to the class system so that all characters inherit some basic features; eg. x, y, direction.
Need to save local changes as soon as they happen, instead of every 5 seconds. Might need to change the keys, but this would require pulling over old data.
The /help docs talk about SHIFT to turn, and other outdated things, which should be updated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.