Serwer (java amazon) - client (C# unity) ???

0

Cześć,
Z kolegą chcemy napisać gre. Chcemy zrobić aplikację do gry w karty Magic the gahering (znaleźliśmy api które zapewnia dostęp do kart) na zasadzie serwer - klient, gdzie ja napiszę i postawie serwer z obslugą żądań na javie deployując go na chmurze amazone'a korzystając z EC2, a kolega napisze klienta w 2d unity. Możecie pomóc z tematem? Moje pierwsze pytania to...:

(Od razu zaznaczę że jestem webowym developerem samoukiem. Zazwyczaj w pracy korzystam ze spring boota, czasem samemu bawiłem się tomcatem i tyle.)

  1. Chce skorzystać z biblioteki io.netty (https://netty.io/) ale w sumie nie wiem czy jest potrzebna... macie jakieś ciekawe alternatywy?
  2. Jestem połączony z instancją na chmurze amazone'a za pomocą putty, zainstalowałem tam jave (jeżeli uważacie że nie potrzebnie to prosze poprawcie mnie)
  3. nie bardzo wiem jak się stawia taką aplikację... w przykładach na wyżej podanej stronie stawiają aplikację z którą po uruchomieniu maina w IDE można się porozumieć, ale nie wiem jak to zdeployować na chmurze amazona... (jar? war? run&compile plik w formacie .java z komendy z putty?)

Macie jakieś wskazówki?

0
  1. To zależy. Jeśli chcesz po prostu pobawić się Netty.io - to czemu nie? Możesz oczywiście też skorzystać ze Springa (piszesz, że zazwyczaj z niego korzystasz) i wystawić sobie np. REST API z wykorzystaniem Spring WebFlux lub Spring MVC. Wówczas, możesz skorzystać ze zbundlowanego serwera (np. Tomcat).
    Generalnie, możesz wykorzystać dowolny framework, który spełni Twoje wymagania - tj. pozwoli na komunikację z klientem. Możesz swoją aplikacje oprzeć o np. Javalin, Ratpack, Netty, Spring Web MVC, Spring Web Flux(domyślnie uruchamiany na Netty), Akka-HTTP i wiele, wiele innych. :)
  2. Zakładając, że Twoja aplikacja będzie dostarczana w postaci runnable JAR, to jak najbardziej, przyda Ci się tam Java (zarówno w przypadku aplikacji Spring Boot, jak i Netty.io).
  3. Jak patrzę na dokumentację Netty.io, to z reguły tworzą najzwyklejszą aplikację Java - kompilujesz i pakujesz taką aplikację do *.jar i uruchamiasz poleceniem java. Podobnie, z resztą, uruchamiałbyś aplikację *.jar Spring Boota. Jeśli z Twojej instancji EC2 miałbyś dostęp do np. Twojego zasobu ze zbudowaną aplikacją w postaci *.jar, to do EC2 możesz dodać bootstrap script, który podczas tworzenia / uruchamiania instancji, pobierze dla Ciebie Twoją aplikację i ją uruchomi, żebyś nie musiał wykonywać poleceń ręcznie przez SSH (np. puttym).

Do budowania runnable JAR polecam wykorzystanie jednego z pluginów: Maven Shade Plugin, Maven Assembly Plugin lub w przypadku Spring Boota - Spring Boot Maven Plugin. Nie znam Gradlea, ale pewnie też jest jakiś plugin do budowania runnable JAR.
Zawsze, możesz oczywiście zbudować runnable JAR manualnie - np. How to make an executable JAR file.

Do zbudowania i uruchomienia aplikacji w najprostszej postaci, to powinno Ci wystarczyć. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1