Functions
void mk_input_stream_desc_init(mk_input_stream_desc_t *desc)
Initialize an input-stream descriptor.
| Parameter | Type | Description |
|---|
desc | mk_input_stream_desc_t * | Descriptor to initialize. |
mk_multiplayer_capabilitiesfunction
mk_multiplayer_capabilities_t mk_multiplayer_capabilities(mk_multiplayer_t multiplayer, const mk_peer_t *peer)
Query effective capabilities for a peer or session.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to query. |
peer | const mk_peer_t * | Peer to inspect, or NULL for common host capabilities. |
Returns ORed mk_multiplayer_capability bits.
mk_multiplayer_connectfunction
mk_result mk_multiplayer_connect(mk_multiplayer_t multiplayer, const char *host, uint16_t port, mk_peer_t **out_peer)
Connect a client session to a host and port.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Client session. |
host | const char * | Remote hostname or address. |
port | uint16_t | Remote port. |
out_peer | mk_peer_t ** | Optional destination for the peer. |
Returns MK_SUCCESS when connection startup succeeds, otherwise an error.
mk_multiplayer_connect_urlfunction
mk_result mk_multiplayer_connect_url(mk_multiplayer_t multiplayer, const char *url, mk_peer_t **out_peer)
Connect a client session using a transport URL.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Client session. |
url | const char * | Remote transport URL. |
out_peer | mk_peer_t ** | Optional destination for the peer. |
Returns MK_SUCCESS when connection startup succeeds, otherwise an error.
mk_multiplayer_createfunction
mk_result mk_multiplayer_create(const mk_multiplayer_desc_t *desc, mk_multiplayer_t *out_multiplayer)
Create a client or server session and all configured transport hosts.
| Parameter | Type | Description |
|---|
desc | const mk_multiplayer_desc_t * | Session configuration. |
out_multiplayer | mk_multiplayer_t * | Receives the session handle. |
Returns MK_SUCCESS or an error result.
mk_multiplayer_desc_initfunction
void mk_multiplayer_desc_init(mk_multiplayer_desc_t *desc)
Initialize a multiplayer session descriptor.
| Parameter | Type | Description |
|---|
desc | mk_multiplayer_desc_t * | Descriptor to initialize. |
mk_multiplayer_destroyfunction
void mk_multiplayer_destroy(mk_multiplayer_t multiplayer)
Destroy a session, its hosts, peers, streams, and pending calls.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to destroy. |
mk_multiplayer_disconnectfunction
mk_result mk_multiplayer_disconnect(mk_multiplayer_t multiplayer, mk_peer_t *peer, mk_disconnect_reason_t reason)
Disconnect one peer with an application-visible reason.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
peer | mk_peer_t * | Peer to disconnect. |
reason | mk_disconnect_reason_t | Disconnect reason. |
Returns MK_SUCCESS or an error result.
mk_multiplayer_effective_deliveryfunction
mk_delivery_t mk_multiplayer_effective_delivery(mk_multiplayer_t multiplayer, const mk_peer_t *peer, mk_delivery_t requested)
Resolve requested delivery against a peer's transport.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to query. |
peer | const mk_peer_t * | Target peer. |
requested | mk_delivery_t | Desired delivery mode. |
Returns Effective delivery mode, strengthened when required.
mk_multiplayer_get_statsfunction
bool mk_multiplayer_get_stats(mk_multiplayer_t multiplayer, const mk_peer_t *peer, mk_multiplayer_stats_t *out_stats)
Read aggregate or per-peer counters.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to query. |
peer | const mk_peer_t * | Peer to query, or NULL for aggregate counters. |
out_stats | mk_multiplayer_stats_t * | Receives the counters. |
Returns True when statistics were available.
mk_multiplayer_host_desc_initfunction
void mk_multiplayer_host_desc_init(mk_multiplayer_host_desc_t *desc)
Initialize one multiplayer endpoint descriptor.
| Parameter | Type | Description |
|---|
desc | mk_multiplayer_host_desc_t * | Descriptor to initialize. |
mk_multiplayer_max_unreliable_payloadfunction
size_t mk_multiplayer_max_unreliable_payload(mk_multiplayer_t multiplayer, const mk_peer_t *peer)
Get the effective unreliable application payload budget.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to query. |
peer | const mk_peer_t * | Target peer, or NULL for the safe host minimum. |
Returns Maximum payload bytes.
mk_multiplayer_now_msfunction
uint64_t mk_multiplayer_now_ms(mk_multiplayer_t multiplayer)
Read the session's monotonic scheduling clock.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to query. |
Returns Current time in milliseconds.
mk_multiplayer_peer_countfunction
uint32_t mk_multiplayer_peer_count(mk_multiplayer_t multiplayer)
Count peers currently owned by a session.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to query. |
Returns Current peer count.
mk_multiplayer_peer_firstfunction
mk_peer_t * mk_multiplayer_peer_first(mk_multiplayer_t multiplayer)
Begin iteration over session peers.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to query. |
Returns First peer, or NULL when empty.
mk_multiplayer_peer_nextfunction
mk_peer_t * mk_multiplayer_peer_next(mk_multiplayer_t multiplayer, mk_peer_t *peer)
Continue iteration over session peers.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to query. |
peer | mk_peer_t * | Current peer. |
Returns Next peer, or NULL at the end.
mk_multiplayer_pollfunction
uint32_t mk_multiplayer_poll(mk_multiplayer_t multiplayer, uint32_t timeout_ms, uint32_t max_events)
Service all owned hosts and dispatch events on the calling thread.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to poll. |
timeout_ms | uint32_t | Maximum wall-clock wait; shared host I/O blocks at most once. |
max_events | uint32_t | Maximum transport events to dispatch, or zero for the default. |
Returns Number of dispatched transport events.
mk_result mk_multiplayer_register_input(mk_multiplayer_t multiplayer, const mk_input_stream_desc_t *desc)
Register a client-to-server input stream before polling or connecting.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to configure. |
desc | const mk_input_stream_desc_t * | Stream description. |
Returns MK_SUCCESS or an error result.
mk_result mk_multiplayer_submit_input(mk_multiplayer_t multiplayer, mk_peer_t *peer, uint32_t stream_id, mk_multiplayer_encode_fn encode, void *user, uint32_t *out_sequence)
Encode and stage the newest client input for a stream.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning client session. |
peer | mk_peer_t * | Server peer. |
stream_id | uint32_t | Registered stream ID. |
encode | mk_multiplayer_encode_fn | Payload encoder. |
user | void * | Encoder context. |
out_sequence | uint32_t * | Optional destination for the assigned sequence. |
Returns MK_SUCCESS or an error result.
mk_rpc_callfunction
mk_result mk_rpc_call(mk_multiplayer_t multiplayer, mk_peer_t *peer, uint32_t method_id, mk_multiplayer_encode_fn encode, void *encode_user, uint32_t timeout_ms, mk_rpc_completion_fn completion, void *completion_user, mk_rpc_call_t *out_call)
Start an RPC request and register its completion callback.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
peer | mk_peer_t * | Recipient peer. |
method_id | uint32_t | Registered method ID. |
encode | mk_multiplayer_encode_fn | Optional payload encoder. |
encode_user | void * | Encoder context. |
timeout_ms | uint32_t | Wall-clock timeout, or zero for the session default. |
completion | mk_rpc_completion_fn | Terminal completion callback. |
completion_user | void * | Completion context. |
out_call | mk_rpc_call_t * | Optional destination for the call handle. |
Returns MK_SUCCESS or an error result.
mk_rpc_cancelfunction
mk_result mk_rpc_cancel(mk_multiplayer_t multiplayer, mk_rpc_call_t call)
Cancel a pending outgoing RPC request.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
call | mk_rpc_call_t | Pending call handle. |
Returns MK_SUCCESS or an error result.
mk_rpc_method_desc_initfunction
void mk_rpc_method_desc_init(mk_rpc_method_desc_t *desc)
Initialize an RPC method descriptor.
| Parameter | Type | Description |
|---|
desc | mk_rpc_method_desc_t * | Descriptor to initialize. |
mk_rpc_notifyfunction
mk_result mk_rpc_notify(mk_multiplayer_t multiplayer, mk_peer_t *peer, uint32_t method_id, mk_multiplayer_encode_fn encode, void *encode_user)
Send a one-way RPC notification to one peer.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
peer | mk_peer_t * | Recipient peer. |
method_id | uint32_t | Registered method ID. |
encode | mk_multiplayer_encode_fn | Optional payload encoder. |
encode_user | void * | Encoder context. |
Returns MK_SUCCESS or an error result.
mk_rpc_notify_allfunction
mk_result mk_rpc_notify_all(mk_multiplayer_t multiplayer, uint32_t method_id, mk_multiplayer_encode_fn encode, void *encode_user)
Send one shared RPC notification to every peer.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
method_id | uint32_t | Registered method ID. |
encode | mk_multiplayer_encode_fn | Optional payload encoder. |
encode_user | void * | Encoder context. |
Returns MK_SUCCESS or an error result.
mk_rpc_notify_all_exceptfunction
mk_result mk_rpc_notify_all_except(mk_multiplayer_t multiplayer, mk_peer_t *except, uint32_t method_id, mk_multiplayer_encode_fn encode, void *encode_user)
Send one shared RPC notification to every peer except one.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
except | mk_peer_t * | Peer to exclude. |
method_id | uint32_t | Registered method ID. |
encode | mk_multiplayer_encode_fn | Optional payload encoder. |
encode_user | void * | Encoder context. |
Returns MK_SUCCESS or an error result.
mk_rpc_registerfunction
mk_result mk_rpc_register(mk_multiplayer_t multiplayer, const mk_rpc_method_desc_t *desc)
Register an RPC method before polling or connecting.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to configure. |
desc | const mk_rpc_method_desc_t * | Method description. |
Returns MK_SUCCESS or an error result.
mk_rpc_reply_deferfunction
mk_result mk_rpc_reply_defer(mk_multiplayer_t multiplayer, mk_rpc_reply_t reply)
Retain an incoming reply handle for asynchronous completion.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
reply | mk_rpc_reply_t | Live reply handle. |
Returns MK_SUCCESS or an error result.
mk_rpc_reply_errorfunction
mk_result mk_rpc_reply_error(mk_multiplayer_t multiplayer, mk_rpc_reply_t reply, uint32_t error_code, const char *message)
Complete an incoming RPC request with an application error.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
reply | mk_rpc_reply_t | Live reply handle. |
error_code | uint32_t | Application error code. |
message | const char * | UTF-8 error message. |
Returns MK_SUCCESS or an error result.
mk_rpc_reply_sendfunction
mk_result mk_rpc_reply_send(mk_multiplayer_t multiplayer, mk_rpc_reply_t reply, mk_multiplayer_encode_fn encode, void *encode_user)
Complete an incoming RPC request with a success payload.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
reply | mk_rpc_reply_t | Live reply handle. |
encode | mk_multiplayer_encode_fn | Optional reply encoder. |
encode_user | void * | Encoder context. |
Returns MK_SUCCESS or an error result.
mk_snapshot_frame_ackfunction
bool mk_snapshot_frame_ack(const mk_snapshot_frame_view_t *frame, uint32_t input_stream_id, uint32_t *out_sequence)
Find an input acknowledgement in a snapshot frame.
| Parameter | Type | Description |
|---|
frame | const mk_snapshot_frame_view_t * | Snapshot frame to query. |
input_stream_id | uint32_t | Input stream ID. |
out_sequence | uint32_t * | Receives the acknowledged sequence. |
Returns True when an acknowledgement exists.
mk_snapshot_registerfunction
mk_result mk_snapshot_register(mk_multiplayer_t multiplayer, const mk_snapshot_stream_desc_t *desc)
Register a snapshot stream before polling or connecting.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Session to configure. |
desc | const mk_snapshot_stream_desc_t * | Stream description. |
Returns MK_SUCCESS or an error result.
mk_snapshot_samplefunction
bool mk_snapshot_sample(mk_multiplayer_t multiplayer, mk_peer_t *peer, uint32_t stream_id, uint64_t client_now_ms, mk_snapshot_sample_t *out_sample)
Sample buffered frames at synchronized server time minus interpolation delay.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
peer | mk_peer_t * | Source server peer. |
stream_id | uint32_t | Registered stream ID. |
client_now_ms | uint64_t | Current local monotonic time. |
out_sample | mk_snapshot_sample_t * | Receives borrowed frame views and sampling mode. |
Returns True when a sample is available.
mk_snapshot_sendfunction
mk_result mk_snapshot_send(mk_multiplayer_t multiplayer, mk_peer_t *peer, uint32_t stream_id, uint32_t tick, mk_multiplayer_encode_fn encode, void *user)
Encode and stage one recipient-specific authoritative snapshot.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
peer | mk_peer_t * | Recipient peer. |
stream_id | uint32_t | Registered stream ID. |
tick | uint32_t | Authoritative simulation tick. |
encode | mk_multiplayer_encode_fn | Payload encoder. |
user | void * | Encoder context. |
Returns MK_SUCCESS or an error result.
mk_snapshot_send_allfunction
mk_result mk_snapshot_send_all(mk_multiplayer_t multiplayer, uint32_t stream_id, uint32_t tick, const void *payload, size_t payload_size, mk_snapshot_send_report_t *out_report)
Stage one shared snapshot payload for every peer.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
stream_id | uint32_t | Registered stream ID. |
tick | uint32_t | Authoritative simulation tick. |
payload | const void * | Shared state bytes. |
payload_size | size_t | State byte count. |
out_report | mk_snapshot_send_report_t * | Optional destination for outcome counts. |
Returns MK_SUCCESS or an error result.
mk_snapshot_send_all_encodedfunction
mk_result mk_snapshot_send_all_encoded(mk_multiplayer_t multiplayer, uint32_t stream_id, uint32_t tick, mk_multiplayer_peer_encode_fn encode, void *user, mk_snapshot_send_report_t *out_report)
Encode and stage a recipient-specific snapshot for every peer.
| Parameter | Type | Description |
|---|
multiplayer | mk_multiplayer_t | Owning session. |
stream_id | uint32_t | Registered stream ID. |
tick | uint32_t | Authoritative simulation tick. |
encode | mk_multiplayer_peer_encode_fn | Per-peer encoder. |
user | void * | Encoder context. |
out_report | mk_snapshot_send_report_t * | Optional destination for outcome counts. |
Returns MK_SUCCESS or an error result.
mk_snapshot_stream_desc_initfunction
void mk_snapshot_stream_desc_init(mk_snapshot_stream_desc_t *desc)
Initialize a snapshot-stream descriptor.
| Parameter | Type | Description |
|---|
desc | mk_snapshot_stream_desc_t * | Descriptor to initialize. |
Structs
Registration and validation policy for a client input stream.
| Field | Type | Description |
|---|
struct_size | uint32_t | Structure size in bytes. |
struct_version | uint32_t | MK_INPUT_STREAM_DESC_VERSION. |
id | uint32_t | Stable application stream ID. |
version | uint16_t | Application payload version. |
max_payload_bytes | uint32_t | Maximum encoded input bytes. |
handler | mk_input_handler_fn | Server-side input handler. |
user | void * | Context passed to handler. |
mk_multiplayer_descstruct
Session endpoints, timing, capacities, budgets, and callbacks.
| Field | Type | Description |
|---|
struct_size | uint32_t | Structure size in bytes. |
struct_version | uint32_t | MK_MULTIPLAYER_DESC_VERSION. |
role | mk_host_role_t | Client or server session role. |
hosts | const mk_multiplayer_host_desc_t * | Transport endpoints copied during creation. |
host_count | uint32_t | Number of endpoint descriptors. |
app_protocol_id | uint32_t | Application protocol identifier. |
tick_rate_hz | uint32_t | Authoritative simulation tick rate. |
snapshot_rate_hz | uint32_t | Snapshot send rate, clamped to tick_rate_hz. |
interpolation_delay_ms | uint32_t | Default client interpolation delay. |
max_extrapolation_ms | uint32_t | Default maximum extrapolation window. |
rpc_timeout_ms | uint32_t | Default request timeout in milliseconds. |
clock_sync_interval_ms | uint32_t | Clock synchronization cadence. |
max_rpc_methods | uint32_t | Registered RPC method capacity. |
max_snapshot_streams | uint32_t | Registered snapshot-stream capacity. |
max_input_streams | uint32_t | Registered input-stream capacity. |
max_pending_calls | uint32_t | Concurrent outgoing request capacity. |
max_deferred_replies | uint32_t | Concurrent deferred-reply capacity. |
event_staging_bytes | uint32_t | Storage preserving callback payloads during poll. |
max_reliable_payload_bytes | uint32_t | Maximum reliable application payload. |
max_reliable_queued_bytes_per_peer | uint32_t | Reliable send-queue budget per peer. |
max_snapshot_bytes_per_second_per_peer | uint32_t | Snapshot bandwidth budget per peer. |
now_ms_fn | mk_multiplayer_now_ms_fn | Optional monotonic clock override. |
now_ms_user | void * | Context passed to now_ms_fn. |
event_fn | mk_multiplayer_event_fn | Optional session event callback. |
event_user | void * | Context passed to event_fn. |
mk_multiplayer_eventstruct
Data delivered to the session event callback.
| Field | Type | Description |
|---|
type | mk_multiplayer_event_type_t | Event kind. |
peer | mk_peer_t * | Peer associated with the event. |
transport | mk_transport_t | Peer's effective transport. |
endpoint_index | uint32_t | Index in mk_multiplayer_desc_t.hosts. |
disconnect_reason | mk_disconnect_reason_t | Reason for a disconnect event. |
protocol_error | mk_multiplayer_protocol_error_t | Detail for a protocol-error event. |
mk_multiplayer_host_descstruct
One transport endpoint owned by a multiplayer session.
| Field | Type | Description |
|---|
struct_size | uint32_t | Structure size in bytes. |
struct_version | uint32_t | MK_MULTIPLAYER_HOST_DESC_VERSION. |
transport | mk_transport_t | UDP, TCP, or WebSocket transport. |
bind_address | const char * | Server bind address, or client local address. |
port | uint16_t | Local listening or binding port. |
max_peers | uint32_t | Maximum peers accepted by this endpoint. |
mk_multiplayer_statsstruct
Aggregate session or per-peer multiplayer counters.
| Field | Type | Description |
|---|
bytes_sent | uint64_t | Application and protocol bytes sent. |
bytes_received | uint64_t | Application and protocol bytes received. |
rpc_sent | uint64_t | RPC messages sent. |
rpc_received | uint64_t | RPC messages received. |
rpc_timeouts | uint64_t | Requests completed by timeout. |
rpc_rejected | uint64_t | RPC messages rejected by validation. |
protocol_errors | uint64_t | Protocol violations observed. |
snapshots_sent | uint64_t | Snapshot frames sent. |
snapshots_received | uint64_t | Snapshot frames accepted. |
coalesced_snapshots | uint64_t | Staged snapshots replaced before send. |
budget_deferred_snapshots | uint64_t | Snapshots deferred by bandwidth limits. |
stale_snapshots | uint64_t | Stale snapshots discarded. |
inputs_sent | uint64_t | Input frames sent. |
inputs_received | uint64_t | Input frames accepted. |
stale_inputs | uint64_t | Duplicate or stale inputs discarded. |
staged_event_bytes | uint64_t | Event payload bytes copied during poll. |
staging_pressure | uint64_t | Events that exceeded preferred staging pressure. |
clock_offset_ms | int64_t | Estimated server-minus-client clock offset. |
clock_jitter_ms | uint32_t | Estimated clock synchronization jitter. |
snapshot_buffered | uint32_t | Snapshot frames currently buffered. |
mk_rpc_callstruct
Generational handle for an outgoing RPC request.
| Field | Type | Description |
|---|
id | uint32_t | Packed call slot and generation. |
mk_rpc_contextstruct
Routing metadata supplied to an RPC handler.
| Field | Type | Description |
|---|
peer | mk_peer_t * | Peer that sent the invocation. |
method_id | uint32_t | Registered method ID. |
version | uint16_t | Registered payload version. |
kind | mk_rpc_kind_t | Notification or request. |
mk_rpc_method_descstruct
Registration, routing, delivery, and validation policy for an RPC method.
| Field | Type | Description |
|---|
struct_size | uint32_t | Structure size in bytes. |
struct_version | uint32_t | MK_RPC_METHOD_DESC_VERSION. |
id | uint32_t | Stable application method ID. |
version | uint16_t | Application payload version. |
kind | mk_rpc_kind_t | Notification or request/reply method. |
direction | mk_rpc_direction_t | Allowed routing direction. |
delivery | mk_delivery_t | Requested transport delivery behavior. |
max_payload_bytes | uint32_t | Maximum encoded invocation payload. |
handler | mk_rpc_handler_fn | Receiving endpoint handler. |
user | void * | Context passed to handler. |
mk_rpc_replystruct
Generational handle for replying to an incoming RPC request.
| Field | Type | Description |
|---|
id | uint32_t | Packed reply slot and generation. |
mk_rpc_resultstruct
Result passed to an outgoing RPC completion callback.
| Field | Type | Description |
|---|
status | mk_rpc_status_t | Terminal request status. |
error_code | uint32_t | Remote application error code. |
error_message | mk_string_view_t | Borrowed remote error message. |
payload | mk_reader_t * | Reader over a successful reply payload. |
mk_snapshot_ackstruct
Acknowledged client input sequence carried by a snapshot.
| Field | Type | Description |
|---|
input_stream_id | uint32_t | Stable input-stream ID. |
sequence | uint32_t | Newest authoritative sequence processed. |
mk_snapshot_frame_viewstruct
Borrowed view of one received authoritative snapshot frame.
| Field | Type | Description |
|---|
tick | uint32_t | Wrap-safe authoritative simulation tick. |
server_time_ms | uint64_t | Synchronized server timestamp. |
data | const void * | Opaque application state bytes. |
size | size_t | State payload size in bytes. |
acknowledgements | const mk_snapshot_ack_t * | Per-input-stream acknowledgements. |
acknowledgement_count | uint32_t | Number of acknowledgement entries. |
mk_snapshot_samplestruct
Pair of frames and interpolation state selected for rendering.
| Field | Type | Description |
|---|
older | mk_snapshot_frame_view_t | Older frame view. |
newer | mk_snapshot_frame_view_t | Newer frame view. |
alpha | float | Interpolation or extrapolation factor. |
mode | mk_snapshot_sample_mode_t | How the returned frames should be sampled. |
mk_snapshot_send_reportstruct
Outcome counts for a snapshot broadcast operation.
| Field | Type | Description |
|---|
considered | uint32_t | Connected peers considered. |
staged | uint32_t | New snapshots staged for sending. |
replaced | uint32_t | Older unsent snapshots replaced. |
failed | uint32_t | Peers for which encoding or staging failed. |
mk_snapshot_stream_descstruct
Registration and buffering policy for one authoritative snapshot stream.
| Field | Type | Description |
|---|
struct_size | uint32_t | Structure size in bytes. |
struct_version | uint32_t | MK_SNAPSHOT_STREAM_DESC_VERSION. |
id | uint32_t | Stable application stream ID. |
version | uint16_t | Application payload version. |
max_payload_bytes | uint32_t | Maximum encoded state bytes. |
history_size | uint32_t | Retained frames per peer. |
interpolation_delay_ms | uint32_t | Stream interpolation delay override. |
max_extrapolation_ms | uint32_t | Stream extrapolation limit override. |
Typedefs
typedef bool(*) mk_input_handler_fn(mk_multiplayer_t multiplayer, mk_peer_t *peer, uint32_t stream_id, uint32_t sequence, mk_reader_t *payload, void *user)
Handle one accepted client input payload on the server.
Returns True when the payload was accepted.
typedef struct mk_input_stream_desc mk_input_stream_desc_t
Registration and validation policy for a client input stream.
mk_multiplayer_capabilities_ttypedef
typedef uint32_t mk_multiplayer_capabilities_t
Bitmask of delivery and subsystem capabilities available for a peer.
mk_multiplayer_desc_ttypedef
typedef struct mk_multiplayer_desc mk_multiplayer_desc_t
Session endpoints, timing, capacities, budgets, and callbacks.
mk_multiplayer_encode_fntypedef
typedef bool(*) mk_multiplayer_encode_fn(mk_writer_t *writer, void *user)
Encode a payload into a bounded writer.
Returns True when encoding succeeds.
mk_multiplayer_event_fntypedef
typedef void(*) mk_multiplayer_event_fn(mk_multiplayer_t multiplayer, const mk_multiplayer_event_t *event, void *user)
Receive a session lifecycle or protocol event.
mk_multiplayer_event_ttypedef
typedef struct mk_multiplayer_event mk_multiplayer_event_t
Data delivered to the session event callback.
mk_multiplayer_event_type_ttypedef
typedef enum mk_multiplayer_event_type mk_multiplayer_event_type_t
Session lifecycle and protocol event type.
mk_multiplayer_host_desc_ttypedef
typedef struct mk_multiplayer_host_desc mk_multiplayer_host_desc_t
One transport endpoint owned by a multiplayer session.
mk_multiplayer_now_ms_fntypedef
typedef uint64_t(*) mk_multiplayer_now_ms_fn(void *user)
Return a monotonic wall-clock time in milliseconds.
Returns Monotonic milliseconds.
mk_multiplayer_peer_encode_fntypedef
typedef bool(*) mk_multiplayer_peer_encode_fn(mk_writer_t *writer, mk_peer_t *peer, void *user)
Encode a recipient-specific payload.
Returns True when encoding succeeds.
mk_multiplayer_protocol_error_ttypedef
typedef enum mk_multiplayer_protocol_error mk_multiplayer_protocol_error_t
Detailed reason for a multiplayer protocol error.
mk_multiplayer_stats_ttypedef
typedef struct mk_multiplayer_stats mk_multiplayer_stats_t
Aggregate session or per-peer multiplayer counters.
mk_multiplayer_ttypedef
typedef struct mk_multiplayer* mk_multiplayer_t
Opaque multiplayer session handle.
mk_rpc_call_ttypedef
typedef struct mk_rpc_call mk_rpc_call_t
Generational handle for an outgoing RPC request.
mk_rpc_completion_fntypedef
typedef void(*) mk_rpc_completion_fn(mk_multiplayer_t multiplayer, mk_rpc_call_t call, const mk_rpc_result_t *result, void *user)
Receive terminal completion of an outgoing RPC request.
mk_rpc_context_ttypedef
typedef struct mk_rpc_context mk_rpc_context_t
Routing metadata supplied to an RPC handler.
mk_rpc_direction_ttypedef
typedef enum mk_rpc_direction mk_rpc_direction_t
Permitted routing direction for an RPC method.
mk_rpc_handler_fntypedef
typedef void(*) mk_rpc_handler_fn(mk_multiplayer_t multiplayer, const mk_rpc_context_t *context, mk_reader_t *payload, mk_rpc_reply_t reply, void *user)
Handle an incoming RPC invocation.
mk_rpc_kind_ttypedef
typedef enum mk_rpc_kind mk_rpc_kind_t
Whether an RPC method is a notification or request/reply call.
mk_rpc_method_desc_ttypedef
typedef struct mk_rpc_method_desc mk_rpc_method_desc_t
Registration, routing, delivery, and validation policy for an RPC method.
mk_rpc_reply_ttypedef
typedef struct mk_rpc_reply mk_rpc_reply_t
Generational handle for replying to an incoming RPC request.
mk_rpc_result_ttypedef
typedef struct mk_rpc_result mk_rpc_result_t
Result passed to an outgoing RPC completion callback.
mk_rpc_status_ttypedef
typedef enum mk_rpc_status mk_rpc_status_t
Terminal status delivered for an outgoing RPC request.
mk_snapshot_ack_ttypedef
typedef struct mk_snapshot_ack mk_snapshot_ack_t
Acknowledged client input sequence carried by a snapshot.
mk_snapshot_frame_view_ttypedef
typedef struct mk_snapshot_frame_view mk_snapshot_frame_view_t
Borrowed view of one received authoritative snapshot frame.
mk_snapshot_sample_mode_ttypedef
typedef enum mk_snapshot_sample_mode mk_snapshot_sample_mode_t
Sampling behavior selected for synchronized snapshot playback.
mk_snapshot_sample_ttypedef
typedef struct mk_snapshot_sample mk_snapshot_sample_t
Pair of frames and interpolation state selected for rendering.
mk_snapshot_send_report_ttypedef
typedef struct mk_snapshot_send_report mk_snapshot_send_report_t
Outcome counts for a snapshot broadcast operation.
mk_snapshot_stream_desc_ttypedef
typedef struct mk_snapshot_stream_desc mk_snapshot_stream_desc_t
Registration and buffering policy for one authoritative snapshot stream.