Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic functionality roadmap #109

Open
1 of 10 tasks
toqueteos opened this issue Dec 20, 2015 · 9 comments
Open
1 of 10 tasks

Basic functionality roadmap #109

toqueteos opened this issue Dec 20, 2015 · 9 comments

Comments

@toqueteos
Copy link
Contributor

If you want to contribute to hematite_server this roadmap might help you! Order is relevant.

  • Login (online-mode=false). Done in Basic login support (online-mode=false) #40! 🎉
  • Implement concept of world. Dimensions ticking in sync! Example: http://is.gd/oGH1Yr (this is example code, a real version wouldn't clone every world on every tick ofc)
  • Keep track of entity positions. Just the player's position with some simple checks (moving too fast, send Disconnect packet) should be enough to get going. Example: HashMap<String, Position> which will come handy when we start adding more entities.
  • A working chunk loader. Once we know where the player is we can load and unload his/her surroundings.
  • Chat. Basically just echoing back whatever the player writes. This would allow people to start working on commands.
  • Time handling. Having /time working would be great, also time being updated accordingly every now and then just to keep players in sync.
  • Basic inventory handling. Moving items around in their inventory, including bottom bar.
  • Digging mechanics. This involves actually breaking blocks and spawning entities so the player can pick them up. Quite a milestone.
  • Dropping items. We already had the inventory working and know how to spawn entities, should be easy.
  • Illumination. If we start breaking blocks, we should update lighting accordingly?
@RichardlL
Copy link

I suggest adding/agreeing upon an 'api' to allow concurrent development.

Such as defining what arguments the chunk-loader will take, what it's responsibilities are, and what it returns.

Also so no needs to wait for another to be implemented

@toqueteos
Copy link
Contributor Author

@RichardlL There a ton of components to be defined, being so few people actually developing I think the best workflow is submitting proposals (pseudocode or working code), discussing them until quorum is met and merging. Otherwise we'll waste too much time.

Regarding the chunk loader feel free to send in your proposal for review!

/cc @fenhl

@RichardlL
Copy link

I'd like to get started on world management.

I would like to implement it based on my proposal in #97, henceforth named Allocater / Worker as requested by @fenhl #100,

So implement

  • 1.9 world format
  • Requests based on channels, while abstracted by regular functions for ease of use
  • public function chunk_send()
  • Internally, Possibly Incorporating hematite base's chunk loader

public funtion `chunk_send`` to take

  • A slice of Tuples, each a (i32,i32) x z coordinate for chunks,
  • A mutable reference to a TcpStream
    Returning Error if unable to generate map or unable to send.

@RichardlL
Copy link

@toqueteos Bump

@JamesLaverack
Copy link

Hello, I'm interested in getting invovled! On this list what isn't being tackled by anyone yet?

@toqueteos
Copy link
Contributor Author

@JamesLaverack I think everything is free but the first two and chat. /cc @fenhl

@fenhl
Copy link
Member

fenhl commented Jan 27, 2016

I'm not currently working on or tracking anything on this list.

@JamesLaverack
Copy link

@toqueteos Who's working on chat? Is there a branch for it somewhere?

@toqueteos
Copy link
Contributor Author

@JamesLaverack #106 contains some changes to the Chat type. There's also some related issues opened. Knowing that you can also work on Chat without problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants