GithubHelp home page GithubHelp logo

oracle-quickstart / oke-unreal-pixel-streaming Goto Github PK

View Code? Open in Web Editor NEW
48.0 8.0 23.0 1.89 MB

Unreal Engine Pixel Streaming Quickstart on OKE

License: Universal Permissive License v1.0

Shell 1.84% Dockerfile 1.34% JavaScript 72.26% HTML 14.08% CSS 3.37% PLSQL 2.27% HCL 4.83%
unreal unrealengine pixel streaming epic epic-games oracle-cloud-infrastructure oracle-kubernetes-engine oci oke

oke-unreal-pixel-streaming's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oke-unreal-pixel-streaming's Issues

0 I am getting error while deploying epic game (pixel streaming app) on AWS eks. When I applied the matchmaker.ymal file I checked that my matchmaker pod was not running. The current state of the matchmaker pod is in back loop crash-off. How to solve the issue. Getting this error-

kubectl logs matchmaker-68c69f56b8-sc9jm -n ue4
Defaulted container "matchmaker" out of: matchmaker, copy (init)
/app/matchmaker.js:21
var configFile = (typeof argv.configFile != 'undefined') ? argv.configFile.toString() : path.join(__dirname, 'config.json');
^

ReferenceError: Cannot access 'path' before initialization
at Object. (/app/matchmaker.js:21:89)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:101:18)
at Object. (/app/wrapper.js:219:40)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)


Here my matchmaker.yaml file-

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app.kubernetes.io/component: unrealengine
    app.kubernetes.io/part-of: ue4-on-eks
    app.kubernetes.io/version: 0.0.1
    app: matchmaker
  name: matchmaker
  namespace: ue4
spec:
  replicas: 1
  selector:
    matchLabels:
      app: matchmaker
      app.kubernetes.io/component: unrealengine
      app.kubernetes.io/part-of: ue4-on-eks
      app.kubernetes.io/version: 0.0.1
      app: matchmaker
  template:
    metadata:
      annotations:
        sidecar.istio.io/rewriteAppHTTPProbers: "true"
      labels:
        app: matchmaker
        app.kubernetes.io/component: unrealengine
        app.kubernetes.io/part-of: ue4-on-eks
        app.kubernetes.io/version: 0.0.1
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: app.pixel/turn
                operator: In
                values:
                - "true"
      containers:
      - args:
        - --HttpPort=3000
        - --httpPort=3000
        - --MatchmakerPort=9999
        - --matchmakerPort=9999
        env:
        - name: STREAM_SERVICE_NAME
          value: stream-discovery
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        envFrom:
        - configMapRef:
            name: pixel-app-configs         
        image: public.ecr.aws/i0s2o7q7/megaverse-eks-matchmaker:18
        imagePullPolicy: Always
      #  livenessProbe:
       #   httpGet:
        #    path: /
         #   port: http
        name: matchmaker
        ports:
        - containerPort: 3000
          name: http
        - containerPort: 9999
          name: socket
        - containerPort: 9000
          name: metrics
          protocol: TCP
       # readinessProbe:
        #  httpGet:
         #   path: /
          #  port: http
        resources:
          limits:
            cpu: 200m
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 100Mi
        securityContext:
          capabilities:
            add:
            - NET_BIND_SERVICE
            drop:
            - all
          readOnlyRootFilesystem: true
          runAsNonRoot: true
          runAsUser: 10001
        volumeMounts:
        - mountPath: /config
          name: config
        - mountPath: /pixelconfig
          name: pixelconfig
      initContainers:
      - name: copy
        image: busybox
#        command: ["bash", "-c", "cp config/* /pixelconfig/"]
        envFrom:
        - configMapRef:
            name: pixel-app-configs        
        volumeMounts:
        - mountPath: /config
          name: config
        - mountPath: /pixelconfig
          name: pixelconfig        
      volumes:
      - configMap:
          name: pixel-app-configs
        name: config
      - name: pixelconfig
        emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    prometheus.io/port: "9000"
    prometheus.io/scrape: "true"
  labels:
    app: matchmaker
    app.kubernetes.io/component: unrealengine
    app.kubernetes.io/part-of: ue4-on-eks
    app.kubernetes.io/version: 0.0.1
  name: matchmaker
  namespace: ue4
spec:
  ports:
  - name: http
    port: 3000
    targetPort: 3000
  - name: socket
    port: 9999
    targetPort: 9999
  - name: metrics
    port: 9000
    targetPort: 9000
  selector:
    app: matchmaker
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clientIP:
      timeoutSeconds: 10
  type: ClusterIP
---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/component: unrealengine
    app.kubernetes.io/part-of: ue4-on-eks
    app.kubernetes.io/version: 0.0.1
  name: pixel-app-configs
  namespace: ue4
data:
  cirrus.json: "{\n\t\"UseFrontend\": false,\n\t\"UseMatchmaker\": false,\n\t\"UseHTTPS\":
    false,\n\t\"UseAuthentication\": false,\n\t\"LogToFile\": false,\n\t\"EnableWebserver\":
    false,\n\t\"HomepageFile\": null,\n\t\"HttpPort\": 3000,\n\t\"StreamerPort\":
    8888\n}"
  matchmaker.json: "{\n\t\"HttpPort\": 3000,\n\t\"UseHTTPS\": false,\n\t\"MatchmakerPort\":
    9999,\n\t\"LogToFile\": false,\n  \"enableRedirectionLinks\": false,\n  \"enableRESTAPI\":
    true\n}"

About network mode in docker-compose.yml file?

Is this configuration necessary?

The networking stacks provided by container runtimes such as Docker introduce additional overheads that result in increased latency of UDP packets, so it is strongly recommended that you run Linux containers with host networking mode enabled in order to ensure the smoothest experience for users.

Oficial docker-compose.yml sample
...
signalling:
image: "ghcr.io/epicgames/pixel-streaming-signalling-server:${UNREAL_ENGINE_RELEASE}"
init: true
network_mode: "host"
...

https://unrealcontainers.com/docs/use-cases/dedicated-servers#key-considerations

Turn 401 unauthorised in vanilla stack

Hi @mvandervlie,

This project has thus far saved me a bunch of time, so thanks!

I'm seeing an incoming packet message processed, error 401: Unauthorized error in the Turn pod logs.

Do you know if it should work out of the box without doing a full kustomise rebuild?

Thanks,
Linton

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.