Skip to content

Instantly share code, notes, and snippets.

@edunham
Last active December 24, 2015 20:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save edunham/6856310 to your computer and use it in GitHub Desktop.
Save edunham/6856310 to your computer and use it in GitHub Desktop.
bravo todo, with links to relevant issues
[08:00] < simpson> | brutal_chaos, edunham, mythmon, TkTech : Mass ping.
There are many things that need to be (re)built. In no
specific order...
[08:01] < simpson>| * Packet parsing needs to be redone. Construct is both
too slow and too unmaintainable. The protocol is big enough that walls
of struct.unpack() would be quite reasonable, and we need to figure out
how to subparse all of the domain-specific formats.
https://github.com/bravoserver/bravo/issues/433
[08:01] < simpson>| * Chat is now structured. A module or two needs to be
written to handle both translation of chat languages, and also the
repacking and formatting of messages.
https://github.com/bravoserver/bravo/issues/434
[08:02] < simpson>| * Chunk caching could be better. We currently have a
null-cache strategy; I'd love to have an inigo or something similar
providing a cache of chunks. This is easier than it sounds.
https://github.com/bravoserver/bravo/issues/435
[08:03] < simpson>| * Redstone is not complete. This requires a careful
reading of the source, and understanding the "ASIC" algorithm that I
hacked up, but it's not impossible, just arduous. I don't envy people
who work on this.
https://github.com/bravoserver/bravo/issues/436
[08:03] < simpson>| * Similarly, our liquid algorithms occasionally fail to
terminate and are written in spaghetti. Suggestions welcome on ways to
improve this.
https://github.com/bravoserver/bravo/issues/437
[08:04] < simpson>| * Plugin addressing for chat is very ad-hoc and fragile.
I'd like to have some sort of system where each chat plugin hands back
a parser, argparse-style, and we chain subparsers to parse chat. As a
bonus, this would let us also parse CLI commands and IRC commands the
same way. It'll require some elbow grease to bang argparse into
submission.
https://github.com/bravoserver/bravo/issues/440
[08:05] < simpson>| * Windows still suck. However, with the advent of
IWindow, we nearly have the abstraction required to make them Just
Work. I'd like to see most of bravo.inventory cleansed with fire along
the way.
https://github.com/bravoserver/bravo/issues/438
[08:06] < simpson>| * Some state changes are still poll-driven instead of
event-driven, which leads to racy or unexpected behavior. For example,
it rains when coming onto a springtime server, but just for a second.
Why? Good question! There's no single point to work on these, but they
should get worked on.
https://github.com/bravoserver/bravo/issues/439
[08:06] < simpson>| I think that that's the short list of *existing* things
that should get fixed up.
[08:07] < simpson>| Now, things that need to get done that we *don't*
currently have:
[08:07] < simpson>| * Projectiles. A little math has been done for them, but
we largely don't have the entity-tracking infrastructure nor the
trigonometry to actually implement throwing things.
https://github.com/bravoserver/bravo/issues/421 (yeah i only opened this like 8 months ago... it's still blocking me on fixing AI)
[08:08] < simpson>| * Fire. One of the best features of Minecraft is the
ability to burn villages to the ground with a misplaced lava tile.
Clearly we are lacking in this department.
https://github.com/bravoserver/bravo/issues/441
[08:08] < simpson>| * Mounts. Epic mounts, whether equine, ovine, or porcine,
are simply not implemented. Which leads us to...
[08:09] < simpson>| * Mobs. Yes, there is some initial work on mobs, and the
"MobManager", but this all needs to be structured and organized in a way
that works and is maintainable. Additionally, there are currently no
rules for actually spawning mobs, and we should fix that.
https://github.com/bravoserver/bravo/issues/442
[08:09] < simpson>| This is my current wishlist.
[08:10] < simpson>| Now, where y'all come in is simple. If you have the spare
time, the motivation, and the gumption, I'd like y'all to *consider*
possibly chipping in. It's not strictly necessary by any means, of
course.
[08:11] < simpson>| But this is hopefully a half-decent answer to the question
"What should I do next to contribute to Bravo?" along with an answer to
the follow-up question "But that sounds hard! Isn't there anything
easier?"
[08:50] < simpson>| Oh, right, the easy things.
[08:50] < simpson>| * Update the block list. This is a perennial task.
Consider seeing if Burger exports a declarative file that we can slurp.
https://github.com/bravoserver/bravo/issues/443
[08:51] < simpson>| * Compile exhaustive lists of missing features. We don't
have any; the closest we have is the issue tracker, but we are still not
really clear on how to fix the hypothetical issue "Become
vanilla-compatible."
https://github.com/bravoserver/bravo/issues/444
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment