Skip to content

Initial Release

Compare
Choose a tag to compare
@rurounijones rurounijones released this 23 Oct 15:50
· 252 commits to main since this release
b572050

DCS-gRPC 0.1.0 Released!

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 Google's RPC framework and written in Rust.

To install please download the DCS-gRPC-0.1.0.zip and extract into your DCS Saved Games folder. An example mission with DCS-gRPC integration called DCS-gRPC-Example.miz is included in the Missions folder

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 gRPC

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 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 this commit 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 grpcurl.exe 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 here

Jupiter screenshot

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 here

DCScribe & PostgreSQL screenshot

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 here

SimpleAirDefense screenshot

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 . You can also find Binary and RurouniJones on other DCS related Discords (e.g. The Hoggit Discord).