Atlas - Alpha Lock, Custom Analytics & Tracking for UE4

**Overview
**Atlas provides a rudimentary form of tracking and logging for your UE4 title. There are two parts, the UE4 plugin (the titan) and the server (a celestial sphere). The plugin is responsible for sending the beacons and identifying the user to the server, and the server handles aggregation, caching and state maintenance.
**
Alpha Lock
**Each title added to the server provides the manager with the ability to set a default access ability to any unauthorized user – Allow Game, Allow Editor. The plugin sends the users credentials and allows your title to act on the response, either exiting immediately or executing a method to allow you to update your UI, change values or do something more fun like blow up someone’s avatar.

**Server, State Maintenance, Data Aggregation & Caching
**The server allows for editing of the values and reviewing state. From a single view you can see when a given user last used your title, update their access and or remove them from the listing and revert them to anonymous usage.

The reporting portion of the tool is not mature enough to be worthy of documenting. More details will be shared as the application grows. You can see a sample of the server here: atlas.gneu.org.

Everything is functional as of now. There is a lot of flexibility built into it already, so customizing the beacons, reporting and such is definitely a realistic expectation.

You can find more details on GitHub. **
Atlas** | Node.js Server

**Change Log
**
unreleased
Standalone Server & Functional Plugin

this look interesting ;),I was thinking to make a integration with nodejs(listen on tcp,udp) for replacing the ue4 dedicated server

So…this is for alpha access management? I don’t fully understand its capabilities from the description - but it does sound interesting to me :slight_smile:

There is actually a team doing exactly that. Look up Netherdeep. I am still getting up to speed with their project but am planning on being a contributor once I get their methodology down.

This provides access management, allowing you to control who has access to your game/editor along with a roll your own approach to analytics and tracking.

Could you explain how to use it? I can’t get the server to run, and there’s no plugin configuration stuff.

How to set up Atlas

Sure - with a disclaimer. The API for this project is still evolving and likely to be changing.

The server is a lot more complicated, but soon ill have a demo server available - So I’ll have to revisit the following:

Server

  1. Checkout Atlas-Server
  2. Install MongoDB
  3. Start the mongo server (startmongo.bat)
  4. Start the server (startServer.bat)
  5. Navigate to localhost:3000 and initialize your Admin user.
  6. Navigate to the applications page (you may need to log in)
  7. Create a new entry for your application - Allow Game and Allow Editor are flags for anonymous users.
  8. Optionally - you can create a client entry, setting their state more in a more granular fashion

Client

  • Checkout Atlas into your projects plugins directory
  • Add Atlas to your projects dependency list in your projects build.cs file:

// Analytics & Tracking
PrivateDependencyModuleNames.Add("Atlas");

  • In your module’s cpp file you will need to #include "Atlas.h"
  • within your module’s startup you will need the following:

if (!Atlas::IsAvailable())
	{
		return;
	}


	Atlas &pAtlas = Atlas::Get();


	pAtlas.SetApplicationID(TEXT("ProjectName")); // Application Name
	pAtlas.SetServer(TEXT("http://localhost:3000")); // Host
	pAtlas.IsInternal(true); // Passed along to server for tracking & can be used as a flag to control access


	pAtlas.ShouldForceQuitOnFailure(true); // When the host responds with a failed request the application will force quit


	pAtlas.CheckAccess("anonymous"); // Client Name


That will allow you to handle user access. Of course you can (and likely will) change Project and Client Name values. The analytics portion is in a lot of flux so for now I wont get into that.

I mostly needed the analytics side of things :wink:

But this’ll definitely come in handy. Thanks!

I am going to be pushing some enhancements on that front in the next few days to a week, but really I need some people using it and giving me input on what it is (and isn’t) supposed to be doing. If I develop it without the input from you guys its going to be customized to my needs and wont likely meet yours.

If I knew where to begin with using it, I’d definitely do so. I’ll take a look over this week, as I’ve got higher priorities on my list.

I’m interested in the analytics side, but I’ve been holding off on trying it because you’ve mentioned it’s going to be changing significantly. If you need feedback now I can take a look though.

I am definitely interested in hearing what you are looking for out of this plugin, if you don’t mind sharing your thoughts.