Jump to content

DCS-gRPC 0.1.0 Released


rurounijones

Recommended Posts

Introduction

Binary (the creator of DATIS, DCS-Scratchpad and many other DCS related projects) and RurouniJones (the creator of Overlordbot) are proud to announce our initial 0.1.0 release of DCS-gRPC; an Open Source Remote Procedure Call server for DCS powered by https://grpc.io/ and written in Rust.

It is available for download, along with some example client applications at https://github.com/DCS-gRPC/rust-server/releases/tag/0.1.0

What is DCS-gRPC?

DCS-gRPC allows you to remotely interact with the scripting environment on a running DCS mission.

This allows scripters to move code, that previously _had_ to run inside the DCS server process, _outside_ of the process. This allows for complex code to be executed with less performance impact on the DCS server itself.

For example: Instead of having an IADS (Integrated Air Defence System) script running inside the DCS process it can do all the detection calculations externally and then only has to tell the DCS mission to turn SAM sites on and off.

Another advantage of using an RPC system is that the scripter has a much greater choice in what scripting language they use. Instead of having to use Lua they can choose to use Python, JavaScript, C#, Java, Ruby and any language supported by https://grpc.io/

Sounds nice. But is this relevant to me?
DCS-gRPC is aimed at scripters, mission makers, application developers and multiplayer server-admins who wish to add functionality to their servers and missions while limiting the performance impact. We have already implemented a number of APIs that cover a wide variety of use-cases and are adding more as time goes on. For a list of currently implemented APIs have a look at our [API Documentation](https://github.com/DCS-gRPC/rust-server/wiki/api-documentation) which is also available in the `Docs` folder of the download.

Adding new APIs can be done quite easily by anyone as it is 95% lua code and just a bit of Rust boilerplate code. See https://github.com/DCS-gRPC/rust-server/commit/ee984b693ea6fe6f84566df58e69b949c3240a16 for an example.

Since this is the initial 0.1.0 release we are still potentially modifying existing APIs as we improve the design so this release is mainly for people to play around, experiment and start prototyping their applications.

DCS-gRPC has already been deployed to the Hoggit servers without any issues.

Do you have some example applications that use DCS-gRPC?

Yes! The server comes with a repl and a copy of https://github.com/fullstorydev/grpcurl which can be used for experimentation. These are available in the `Tools` folder of the download.

As part of this initial release we are also releasing some example client applications that communicate with the DCS-gRPC server. The following examples are all written in C# but you can choose to write your clients in a variety of languages.

Jupiter
Jupiter is an application that will allow someone to act as a GameMaster for a mission. It will allow real-time control of units and other things (Such as placing smoke, flares and Illumination bombs). This application is very much in very incomplete ALPHA state and is included here to demonstrate what is possible.

Download at https://github.com/DCS-gRPC/Jupiter/releases/tag/0.1.0

hIGr1pS.png

DCScribe
DCScribe is a program that makes use of the unit streaming ability of DCS-gRPC to stream the position information of units and write them to a PotsgreSQL database. This data in the database can then be used for various purposes such as an online map.

Download at https://github.com/DCS-gRPC/Scribe/releases/tag/1.0.0

0pEtqff.png

SimpleAirDefence
A simple example Integrated Air Defence System. Note that this is a _very simple_ example. It does not have most of the features that Skynet IADS has for example. However it demonstrates the possibilities.

Download at https://github.com/DCS-gRPC/SimpleAirDefense/releases/tag/0.1.0

6NQI1VG.png

OverlordBot
OverlordBot already uses DCS-gRPC on the Syria-At-War server to implement the mission request and mission join functionality. It also uses DCS-gRPC to send start-up and shutdown messages into the server. As time goes on more and more functions in OverlordBot will start using DCS-gRPC to make OverlordBot better.

Support & Contact

You can reach us via the Github issues and Discord.  We don't think DCS-gRPC requires yet another Discord so we have instead created a DCS-gRPC section on the OverlordBot Discord at https://discord.gg/9RqyTJt You can also find Binary and RurouniJones on other DCS related Discords (e.g. The Hoggit Discord).


Edited by rurounijones
  • Like 4
  • Thanks 3
Link to comment
Share on other sites

  • 3 weeks later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...