Introduction to Challenge goals assignment customization
Extend is in Open Beta for AGS Private Cloud Clients! This means that the Extend add-on is available for you to try in your development environment. You can submit your feedback via our Extend Open Beta feedback form.
Overview
AccelByte Gaming Service (AGS) Extend gives you the ability to provide custom logic for AGS Challenge, allowing custom rules for goals assignments. This article explains the function in the contract, the Assign
function.
service AssignmentFunction {
rpc Assign(AssignmentRequest) returns (AssignmentResponse) {}
}
Assign
The Assign
function is triggered when a user makes a request to the "List User's Progression" endpoint (publicGetUserProgression). This occurs if the user has not yet been assigned any goals.
- Go
- C#
- Python
In the app, the following function can be found in pkg/server/assignment_service.go
.
func (server *AssignmentServiceServer) Assign(ctx context.Context, request *pb.AssignmentRequest) (*pb.AssignmentResponse, error) {
...
}
In the app, the following function can be found in src/AccelByte.PluginArch.ChallengeAssignment.Demo.Server/Services/ChallengeAssignmentService.cs
.
public override async Task<AssignmentResponse> Assign(AssignmentRequest request, ServerCallContext context)
{
...
}
In the app, the following function can be found in src/app/services/challenge_assignment.py
.
async def Assign(
self, request: AssignmentRequest, context: ServicerContext
) -> AssignmentResponse:
...