Saturday, March 11, 2017

The technical side of ADOM

Hi everyone,

my name is Jochen and I'm the co-developer of ADOM. I've been working on ADOM since 1996 where I started to port ADOM to the Amiga computer. In the following years I've ported ADOM to different other operating systems like BeOS, Windows and macOS.


Since the crowdfunding campaign (about one year earlier actually) I'm also working on the ADOM source code itself. This means adding new features (e.g. the NotEye integration, the animation and sound system, the event system, etc.) and also fixing old and new bugs. ;) I'm also responsible for the ADOM infrastructure, e.g. our repository servers and some websites.

So, what did I do in the last few months?
  • I migrated all source code (and other) repositories from Subversion to Git
  • I updated the ADOM build system (which creates the binaries for all the different operating systems we support) to use the new Git repositories
  • I also updated the build system to use the latest version of each operating system
  • I prepared a Team ADOM cloud where we can share files more easily

Since last week I've been busy working on the new ADOM community server. We already started this in 2013 and also had a working prototype. But we weren't quite satisfied with it and there were some difficult decisions to make, so we decided to postpone it. It's quite shocking that it's 2017 now, but I promise that it won't take another 4 years until it is available.

The old prototype used TCP/IP socket communication between ADOM and the Java server. The new server will provide a REST API for ADOM, so we have to rewrite some of the code. Thankfully we already used JSON for data transfer in the prototype, so we can reuse this part of the code. The new server (at the least the part that ADOM will be "talking" to) will be based on Node.js.

We still need to decide which framework we will be using for the corresponding community website. But more on that later. ;)

That's it for now... until next time!

7 comments:

  1. React? :) I'm still junior, but if you need a frontend... let me know! :)

    ReplyDelete
  2. Thanks for the update -- I find these types of details fascinating! 😀 I develop enough to understand...wnich was fun.

    ReplyDelete
  3. Nice too meet you here JT! I would love to know a lot more about technical side of ADOM in future, these details are very exiting :)

    ReplyDelete
    Replies
    1. Yes, there is a lot to write about. Let me know if you have specific questions.

      Delete
    2. Well, it's actually related to everything except plot and contents which must be Thomas' origin :)

      Any challenges and issues you're facing and solutions, libraries you're using, integration with NotEye and Steam, message-driven system you're building, maybe some other engine stuff like LoS, speed system, dices, etc.

      I'd love to know why some things looking simple are quite complex, e.g. why planting trees around rivers in dungeons isn't trivial technically. Would like to hear about preparations to new exiting long term features mentioned in this blog so far which we're never part of ADOM (like flowing water in rivers)...

      And so on :)

      Delete
    3. *
      Not that I'm not interesting in everything else like performance improvements, planned ADOM community server, etc., just lots of thing to mention here which might not ever fit into a single comment

      Delete