Git Product home page Git Product logo

glc-client's People

Contributors

alanjcfs avatar cantsin avatar captdeaf avatar engj avatar johansson avatar nulltone avatar pharaun avatar timkettering avatar waffle-iron avatar wjandali avatar yesugei avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

glc-client's Issues

record zone transitions

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.

nsq binary interface

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:

make each player have an unique sprite

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)

Use PlayerStatus for showing Idle or Typing

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.

zone re-loading does not work

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.

architect asset server

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!

hard coded constants

go through the code and remove hard coded constants, especially "16". we eventually want to change tile sizes, map sizes, etc.

Player name rendering

Right now, other player avatars are rendered with their identifier.

screenshot from 2014-09-26 13 23 49

Make it only show their name.

Send arbitrary commands to glcd

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

implement informative "pop up"

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.

allow for local settings too

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.

Player connect quote

Have a file of funny quotes. On connect, have glc-client auto send one at random as a chat message.

draw HP bar over head?

Currently I think avatars have 5 HP each. Would be nice to visually indicate this somehow.

authentication with glcd

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.

system for processing mouse/key buttons

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.

chat support

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)?

make a generic "sprite" class

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.

interactive console

we need an lua interactive console. we can crib one from the net or make your own.

bounce notifications to IRC

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.

If HP hits 0, player is "dead"

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.

Canvas abstraction layer

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.

Move away from floats for x/y coords

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.

  1. first pair of x/y is which zone you are in, second pair is a float for within that zone.
  2. a integer representation of your position no matter where + a float
  3. fine-grained enough integer x/y

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.