gamelost / glc-client Goto Github PK
View Code? Open in Web Editor NEWGame Lost Crash client.
License: Apache License 2.0
Game Lost Crash client.
License: Apache License 2.0
right now we don't know which zone we are in. if the player moves from zone 1 to zone 2, we want to notify that zone that there is a new entrant. in any case, make sure "current zone i am in" information is stored somewhere.
We merged gamelost/glcd/01f42b53f7 to add in support for knocking to the server. Implement this request to the server from the client using this format:
{"Name":"name", "ClientId","client-id", "Command":"knock"}
Once #33 is done, we can bounce IRC messages to/from our channels. selective filtering will need to be implemented. See also #30 and gamelost/glcd#7
this is a fairly simple check on the lua end.
the current nsq interface leaves something to be desired. currently library/http.lua, library/nsq.lua, library/nsqc.lua offer overlapping ways to do the same thing. We really want one good binary interface.
Options:
we have a bunch of sprites in the sprite sheet we are using, and we're just using the first sprite that is there. make it so that each player should have an unique sprite. (this unique sprite can be set in settings, or it can be hashed from the name and then indexed, whatever works for you)
Need to add a boundary box/circle around player so it doesn't overlap with collidable tiles.
currently there is a two-step animation in the files we have. use a timer to toggle between the two, say.
related to #23 we really should be using nsqlookupd.
glcd.setPlayerStatus("IDLE")
glcd.setPlayerStatus("ACTIVE")
glcd.setPlayerStatus("TYPING")
etc. Use these to make player's avatars more informative. So we can say "Don't shoot anybody sitting and typing in chat" or the like.
embed the position somewhere, and make sure there is error checking: if two zones try to draw to the same place, error out!
zones currently are not loaded on demand. we do have monitoring for changes but nothing happens. make this happen so we can have interactive zone/code updates on the fly.
this should be a team of three people who will be building a new asset server (in go) from scratch. discussion and plan mandatory before implementation!
In particular, px/py need to be in myPlayer. This is just a bit of cleanup.
If a player sends a long chat message, it's not easily readable and overlaps the avatar.
implement a tiling algorithm that will more neatly fit 25x25 tile zones. maybe in a spiral, rectangular, square fashion: whatever, up to you.
go through the code and remove hard coded constants, especially "16". we eventually want to change tile sizes, map sizes, etc.
We want ability to send commands to the glcd server. e.g:
/sendcmd serverRestart
And ability to pass in args via a json format. e.g:
/sendcmd chat {message:"hello"}
This needs the interactive console: /issues/16
you will probably need to mess around with tiled (http://www.mapeditor.org/) to achieve this.
ideally, right clicking on the tile/player/sprite should pop up some information and this should be in a special overlay or pop up, or even just printed to the console. how exactly you want this done is up to you.
these local, user-only settings should not be git committed! if any setting in this local file is set, it will override conf.lua/settings.lua.
Have a file of funny quotes. On connect, have glc-client auto send one at random as a chat message.
in main.lua, move all the glcd handlers out, and just call one function from within love.load. love.load is getting a bit cluttered.
so we can identify people, yo.
right now key presses are only registered when they are released. we want to be able to hold the key down to move around.
Currently I think avatars have 5 HP each. Would be nice to visually indicate this somehow.
code is in library/glcd.
otherwise we will have a ton of 'em lying around.
implement user/pass authentication on the lua end. this should be a user/pass setting in local settings (#32 needs to be implemented first) and should be the first thing sent to glcd.
currently the system we have for handling input is a bit bare. ideally, we'd have a module that would let you swap in and out input functions (depending on the zone you are in -- e.g., zone 1 wants you to use their keypressed function while zone 2 wants the default function). this module should also allow for easy overriding of key/mouse presses/releases and functions.
implement a chat via nsq so that others can talk on this verse!
you will need some kind of graphical interface. maybe piggyback on #16 (interactive console)?
Currently we send the playerState anyway even on keystrokes that don't matter. Only send playerState when we need to.
The idea here is to have a generic sprite class in where all of the player avatars and bullets and whatnot are encapsulated. Right now we treat bullets, players, etc, differently, but they're all just a lua table with some shared properties (x, y, image, etc). The purpose: we want to have a list of sprites that contains all moving objects on screen. This makes rendering, collision detection, and a whole of other things easier to accomplish.
we need an lua interactive console. we can crib one from the net or make your own.
In conjunction with gamelost/glcd#12
for example, if a person enters the glc verse, have a message printed to IRC to notify everyone. you will probably need to understand how bot3 works.
Whenever the player is hit, check his or her current HP status. If it is zero, then declare this person as "dead" and have his/her respawn somewhere else in 5 seconds.
Currently we are not able to translate cleanly between screen and viewport coordinates. It would be nice to have a canvas abstraction layer so we can layer multiple canvases without getting confused about coordinate transforms.
When you type a long message in chat, it does not break lines.
is there a way to combine conf.lua and settings.lua?
the map itself should be animated, as well. this is a good project for someone who has just done #12
We will eventually (esp if we want to support infinite zones) run into the issues of floating point precision (for consequence of this, look into the "outter lands" of minecraft)
I suggest doing something like a 2-tier x/y coord for the players.
in conjunction with gamelost/glcd#11 implement setPlayerState.
Basically we left the client alone for 30-1h and then started walking around, the map was there, then boom it went away.
Not sure what is going on.
someone needs to sandbox the zone modules and make sure a badly behaved module won't crash the system.
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.