Sign up Calendar Latest Topics
 
 
 


Note: This topic is locked. No new replies will be accepted.


Reply
  Author   Comment   Page 3 of 3      Prev   1   2   3
Arkantos

Avatar / Picture

Registered:
Posts: 419
Reply with quote  #31 
I haven't forgotten about IAN. Recently I did some work on making it compatible with Artemis 2.4. So far it's looking encouraging. One thing I still need to work on is capturing the packets that corresponding to the new GM scripting commands set_gm_button and clear_gm_button. As far as I can tell, these have not yet been included in our crowdsourced protocol documentation.
Arkantos

Avatar / Picture

Registered:
Posts: 419
Reply with quote  #32 
I've created an issue on GitHub to discuss the protocol for the new GM buttons. If you want to help us document it, join the discussion there. If you don't have a GitHub account, you can post your thoughts here instead.
Arkantos

Avatar / Picture

Registered:
Posts: 419
Reply with quote  #33 
EDIT: Updated with the VesselData refactor I just pushed.

I've pushed a crapload of IAN updates to GitHub. I haven't made a release yet, but plan to do so fairly soon, assuming no major issues arise. Here's an overview of the changes:
  • Artemis 2.4.0 support. This includes: support for the new ships and the new Ximni faction, new jumpmaster faction attribute, elite faction attribute changed to hasspecials, playershields attribute for fighters, support for game master custom buttons, support for ship accent colors and fighter capital ship IDs.
  • VesselData refactor. There is no longer a static instance of VesselData. Instead, you create a Context object and pass it to the required classes. This was done in order to allow automated testing with different vesselData.xml files to exercise various scenarios.
  • Load Artemis resources however you want. Instead of simply giving a path to the Artemis install, you can now provide the Context class with an object that implements the PathResolver interface. This gives you much more flexibility when it comes to loading Artemis resource files. IAN comes with two PathResolver implementations out of the box: FilePathResolver (to read from disk) and ClasspathResolver (to read resources packaged inside your JAR).
  • Way easier proxying. ArtemisNetworkInterface now has a proxyTo() method. Simply pass in a recipient ArtemisNetworkInterface object, and any packets which are not caught by your listeners are automatically passed through to the proxied connection.
  • Ship number/index consistency fix. The Artemis protocol isn't 100% consistent about whether Artemis is ship #1 or ship #0. This change makes your life easier by making IAN consistent (Artemis is ship #1) even though the protocol isn't.
  • Determine whether a disconnection was "normal." Some DisconnectEvents are expected to occur when a connection is terminated intentionally. The isNormal() method on DisconnectEvent will now tell you whether this DisconnectEvent is expected or not.
  • README.md updated. It now includes detailed information about how to create clients or server proxies, including updated example source code.
  • Added pom.xml. Don't know why this wasn't in there before! Anyway, this should let you build the JAR from a local copy of the repository with the mvn install command.
  • A bunch of documentation updates. Yay for documentation!
  • More automated test coverage. We are currently at 44.1% coverage (on conditionals).
  • A bunch of internal improvements which you probably won't care about, but which make IAN better.
Here are the things to watch for that may break your existing code upon updating to IAN 3.1.0:
  • VesselData.setArtemisInstallPath() doesn't exist anymore, since we're now using the new Context object with the more powerful PathResolver mechanism. Construct a Context object and pass in an object which implements PathResolver. There are a few constructors and methods which now require you to pass in the Context (most notably, constructors for ThreadedArtemisNetworkInterface).
  • To be consistent with the new terminology used in vesselData.xml, all references to the term "elite" in the code have been changed to "special." Any references you may have in your code will need to be changed accordingly.
  • Make sure that any code that identifies a ship by number/index is one-based and not zero-based.
Arkantos

Avatar / Picture

Registered:
Posts: 419
Reply with quote  #34 
IAN 3.1.0 has been released.

See the link above for release notes.
Arkantos

Avatar / Picture

Registered:
Posts: 419
Reply with quote  #35 
IAN 3.1.1 has been released.

This release removes the rendering code which had references to the java.awt package, which is unavailable on Android. This should allow IAN to be usable on Android again. Sorry about that. I plan to eventually release the rendering code separately.
Arkantos

Avatar / Picture

Registered:
Posts: 419
Reply with quote  #36 
It's been a long time since the last IAN release, but I've gradually been making progress toward IAN version 3.2.0. Mainly what I'm trying to accomplish with this release is to get all my ducks in a row to prepare for supporting the newer versions of Artemis. To that end, I've added a boatload of automated testing, and done some refactoring to enable more flexibility with regards to resource loading. There are also a myriad of properties that have been exposed for the benefit of folks writing proxies. Once this release goes out, I plan to start putting in support for newer Artemis features.
ryleyra

Registered:
Posts: 2,846
Reply with quote  #37 
Great! I haven't been keeping up with this, and I definitely should have.
Arkantos

Avatar / Picture

Registered:
Posts: 419
Reply with quote  #38 
IAN 3.2.0 is nearing release. This is a huge release with many new features and improvements, bug fixes, and internal changes. Full release notes will accompany the release, but some highlights include:
  • New packets: ActivateUpgradePacket, CloakDecloakPacket, DockedPacket, EngResetCoolant, ExplosionPacket, HeartbeatPacket, HelmEmergencyJumpPacket, KlaxonPacket, SingleSeatPilotPacket, SingleSeatShootPacket, SmokePacket, TitlePacket
  • Boatloads of newly-exposed properties
  • The Upgrade enum now contains all known upgrade types, including those not obtainable from anomalies.
  • Moved to zero-based ship indexes instead of one-based ship numbers. (The underlying protocol used to be inconsistent with this.)
  • The Context class has been extracted to an interface, with the implementation code moved to the DefaultContext class. This allows you to implement your own Context that doesn’t have to parse a stream to build the context data (which was particularly useful in the testing code). PathResolver and its implementation classes have been moved to the same package as the Context interface.
  • ArtemisObject.updateFrom() no longer needs a Context passed to it.
  • You can now create an ObjectUpdatePacket and populate it. This lets you create custom proxies that can insert objects visible to clients.
  • The ConnectionType enum has been renamed to Origin, and all references to “connection type” have been renamed to “origin.” This was done to be more clear about the direction of packets, and also because it's shorter.
  • VesselInternals objects can now be built from scratch and be exported to an OutputStream in .snt format.
  • Several changes to improve symmetrical reading and writing, which is important for proxies.
  • Tons more unit testing. Instruction coverage stands at 81.8% at this writing.
Arkantos

Avatar / Picture

Registered:
Posts: 419
Reply with quote  #39 
IAN 3.2.0 has been released.

I created a new thread for IAN (since the subject for this thread is rather outdated now).
MarkBell

Avatar / Picture

Administrator
Registered:
Posts: 1,837
Reply with quote  #40 
Would you like me to lock this thread?
__________________
Note - this is in no way intended to be an official position of Thom or Artemis, as I am not an official representative of the creator or game.
Arkantos

Avatar / Picture

Registered:
Posts: 419
Reply with quote  #41 
Yes, please.
Previous Topic | Next Topic
Print
Reply

Quick Navigation:

Easily create a Forum Website with Website Toolbox.