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
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.
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"}
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)
otherwise we will have a ton of 'em lying around.
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.
so we can identify people, yo.
Have a file of funny quotes. On connect, have glc-client auto send one at random as a chat message.
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
you will probably need to mess around with tiled (http://www.mapeditor.org/) to achieve this.
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 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.
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!
someone needs to sandbox the zone modules and make sure a badly behaved module won't crash the system.
in conjunction with gamelost/glcd#11 implement setPlayerState.
the map itself should be animated, as well. this is a good project for someone who has just done #12
this is a fairly simple check on the lua end.
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.
we need an lua interactive console. we can crib one from the net or make your own.
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.
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.
Need to add a boundary box/circle around player so it doesn't overlap with collidable tiles.
is there a way to combine conf.lua and settings.lua?
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.
In conjunction with gamelost/glcd#12
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)?
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.
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.
When you type a long message in chat, it does not break lines.
go through the code and remove hard coded constants, especially "16". we eventually want to change tile sizes, map sizes, etc.
related to #23 we really should be using nsqlookupd.
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
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.
code is in library/glcd.
In particular, px/py need to be in myPlayer. This is just a bit of cleanup.
Currently we send the playerState anyway even on keystrokes that don't matter. Only send playerState when we need to.
embed the position somewhere, and make sure there is error checking: if two zones try to draw to the same place, error out!
implement a tiling algorithm that will more neatly fit 25x25 tile zones. maybe in a spiral, rectangular, square fashion: whatever, up to you.
currently there is a two-step animation in the files we have. use a timer to toggle between the two, say.
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 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.
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.
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.
If a player sends a long chat message, it's not easily readable and overlaps the avatar.
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:
Currently I think avatars have 5 HP each. Would be nice to visually indicate this somehow.
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.