Openspades: Support pre-1.x protocol

Created on 10 Dec 2017  路  4Comments  路  Source: yvt/openspades

A number of leaked builds of AoS before it was contaminated with JaGeX have surfaced, it would be nice if OpenSpades could support those versions.

The protocol is documented at https://piqueserver.github.io/aosprotocol/protocol100a1.html and @10se1ucgo has made a mostly-working implementation at github.com/10se1ucgo/ace.py

enhancement

Most helpful comment

Honestly it's not worth spending time to implement a protocol, which isn't used. The majority of the community didn't even switch to the more recent 0.76 version. (I haven't been following the BnS/AoS community for a while, so I could be wrong)
And if there is interest to diverge from the classic ace of spades, it would make sense to continue ngspades or something similar with a smaller scope.

All 4 comments

Honestly it's not worth spending time to implement a protocol, which isn't used. The majority of the community didn't even switch to the more recent 0.76 version. (I haven't been following the BnS/AoS community for a while, so I could be wrong)
And if there is interest to diverge from the classic ace of spades, it would make sense to continue ngspades or something similar with a smaller scope.

It would be a nice thing to add in when the main concerns are implemented first. I feel like it should remain on the table for a later time or if someone really wants to take a wack at it

Yes, I agree. However, many of these are very simple to add and don't require any real effort, since it is still largely the same protocol/game. The only thing that would require some bigger changes is the generalization of the Entity packets.

IMO forget the protocol for now, implement the concepts of the protocol first instead. Like you mentioned, make Entities generic. The protocol itself isn't much different.

The protocol basically dictates that an entity has the following structure

class Entity
    uint8 id
    uint8 type # [COMMAND_POST/FLAG/etc...]
    Player carrier
    float x, y, z

For example, IntelPickup would be translated into a ChangeEntity packet that changes the carrier field of an Entity to the player who picked it up, and an IntelDrop would change the carrier to null. The new protocol gives the server a lot more freedom in terms of how many and what kind of entities are spawned.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ferbadams picture ferbadams  路  4Comments

damienflament picture damienflament  路  7Comments

DrTexx picture DrTexx  路  4Comments

Jappu picture Jappu  路  4Comments

Danogot516 picture Danogot516  路  3Comments