u/SlRenderStudio

need advice , making multiplayer naval game

hello guys i am creating multiplayer naval game (bit of leaning on live service side , but ethical game ) and i need advice about what kind of future direction should my game would go and another of yours guys opinions recommendations or warning .

game is inspired by modern warship. i currently have created ship system that can do basic movement (go forward , backward and turn ) , a missile system ( work the flow , from player pressing launch to server authoritative , to getting launched and hitting enemy ship and damaging enemy to killing them ) , health system , camera system that player can look around zoom in .

about networking i am using fishnet networking and pocket base database . game also features little in game chat . current i am in working of match making and stuff . i did not thought about 3rd party systems because i kinda forgot too , plus don't like to be dependent . but either way i wrote small match making system , where clients gonna log into data base , then get in match making Queue , then server gonna periodically gonna scan that collection of record if found enough players it gonna start hand them over either pre opened headless game servers ( game servers also log into data base and read and write into server collection with ip address and ports , game servers dont report back to the master server directly but report back to the database) or newly opened headless server (it runs exe file to open them). then tell player ip and port so they can join .

currently there isn't actual match flow , so game server don't know match ended so it really do is if connection dropped or application forced quit tell pocket base that game server is finished . by the way currently 1 headless server is for 1 match / room . not doing that multi scene management because it looked so hard to do

so any advice's . i was thinking about making and mvp , and using 3rd party match making service whom should i use , i don't know about match making services

*Edit : i do authentication by pocket base it send email when account is created and need to verify (i did not hooked up email sender and instead locally caching the email and just press the link )

reddit.com
u/SlRenderStudio — 1 day ago
▲ 5 r/DevLK+1 crossposts

i am making multiplayer naval game

what do you think about my scripts architecture . some of these are bit abandoned sorry for that . here graphviz code for anyone wanna view . purple mean here is singleton instance . and dotted green mean usage or aggregation , and normal arrows mean usage. (i removed singleton instaces from image graph)

"digraph "Diagram" {

splines = ortho;

fontname = "Inconsolata";

node [colorscheme = ylgnbu4];

edge [colorscheme = dark28, dir = both];

ArtilleryDistanceEvaluator [shape = box , label = "ArtilleryDistanceEvaluator"];

ArtilleryTurret [shape = box , label = "ArtilleryTurret"];

BallisticEntry [shape = box , label = "BallisticEntry"];

BuoyancyPoint [shape = box , label = "BuoyancyPoint"];

CameraManager [shape = box , label = "CameraManager"];

ChatBroadcast [shape = box , label = "ChatBroadcast"];

ChatManager [shape = box , label = "ChatManager"];

GuidanceType [shape = box , label = "GuidanceType"];

HighFidelitySphericalOrbitCinemachine [shape = box , label = "HighFidelitySphericalOrbitCinemachine"];

IDamageable [shape = box , label = "IDamageable"];

Missile [shape = box , label = "Missile"];

MissileCore [shape = box , label = "MissileCore"];

MissileEnvironment [shape = box , label = "MissileEnvironment"];

MissileLauncher [shape = box , label = "MissileLauncher"];

MissileMath [shape = box , label = "MissileMath"];

MovementType [shape = box , label = "MovementType"];

NetworkedHealthBase [shape = box , label = "NetworkedHealthBase"];

PayloadType [shape = box , label = "PayloadType"];

PlayerInitialization [shape = box , label = "PlayerInitialization"];

PlayerInputHandler [shape = box , label = "PlayerInputHandler"];

ShipBuoyancy [shape = box , label = "ShipBuoyancy"];

ShipController [shape = box , label = "ShipController"];

ShipHealth [shape = box , label = "ShipHealth"];

ShipInputHandler [shape = box , label = "ShipInputHandler"];

Team [shape = box , label = "Team"];

TeamData [shape = box , label = "TeamData"];

TeamEntity [shape = box , label = "TeamEntity"];

TeamManager [shape = box , label = "TeamManager"];

ThrottleState [shape = box , label = "ThrottleState"];

WeaponBase [shape = box , label = "WeaponBase"];

WeaponBattery [shape = box , label = "WeaponBattery"];

WeaponManager [shape = box , label = "WeaponManager"];

ArtilleryDistanceEvaluator -> BallisticEntry [color = "#955ae0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ArtilleryDistanceEvaluator -> BallisticEntry [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ArtilleryTurret -> WeaponBase [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ArtilleryTurret -> WeaponBase [color = "#24a394", style = dashed, arrowtail = none , arrowhead = onormal , taillabel = "", label = "", headlabel = ""];

CameraManager -> CameraManager [color = "#955ae0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

CameraManager -> HighFidelitySphericalOrbitCinemachine [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

CameraManager -> HighFidelitySphericalOrbitCinemachine [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ChatManager -> ChatBroadcast [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ChatManager -> ChatManager [color = "#955ae0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

Missile -> GuidanceType [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

Missile -> MovementType [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

Missile -> PayloadType [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileCore -> IDamageable [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileCore -> Missile [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileCore -> Missile [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileCore -> MissileEnvironment [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileCore -> MissileEnvironment [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileCore -> MissileMath [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileCore -> TeamEntity [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileLauncher -> Missile [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileLauncher -> MissileCore [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileLauncher -> TeamEntity [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileLauncher -> WeaponBase [color = "#24a394", style = dashed, arrowtail = none , arrowhead = onormal , taillabel = "", label = "", headlabel = ""];

MissileLauncher -> WeaponBase [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileMath -> Missile [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileMath -> MissileEnvironment [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

MissileMath -> MovementType [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

NetworkedHealthBase -> IDamageable [color = "#24a394", style = dashed, arrowtail = none , arrowhead = onormal , taillabel = "", label = "", headlabel = ""];

PlayerInitialization -> TeamEntity [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInitialization -> TeamEntity [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInitialization -> TeamManager [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInitialization -> WeaponManager [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInitialization -> WeaponManager [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInputHandler -> CameraManager [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInputHandler -> ChatManager [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInputHandler -> ChatManager [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInputHandler -> ShipInputHandler [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInputHandler -> ShipInputHandler [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInputHandler -> WeaponManager [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

PlayerInputHandler -> WeaponManager [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipBuoyancy -> BuoyancyPoint [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipController -> ShipInputHandler [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipController -> ShipInputHandler [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipHealth -> NetworkedHealthBase [color = "#24a394", style = dashed, arrowtail = none , arrowhead = onormal , taillabel = "", label = "", headlabel = ""];

ShipHealth -> NetworkedHealthBase [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipHealth -> ShipBuoyancy [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipHealth -> ShipBuoyancy [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipHealth -> ShipController [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipHealth -> ShipInputHandler [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipHealth -> WeaponManager [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

ShipInputHandler -> ThrottleState [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

Team -> TeamData [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

TeamManager -> Team [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

TeamManager -> TeamData [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

TeamManager -> TeamManager [color = "#955ae0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

WeaponBattery -> WeaponBase [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

WeaponManager -> MissileCore [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

WeaponManager -> TeamEntity [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

WeaponManager -> TeamEntity [color = "#5fad65", style = dotted, arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

WeaponManager -> WeaponBase [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

WeaponManager -> WeaponBattery [color = "#3574f0", style = solid , arrowtail = none , arrowhead = normal , taillabel = "", label = "", headlabel = ""];

}

"

u/SlRenderStudio — 6 days ago

I had to sell everything to get it but it is nice now i can constantly forever cycle without waiting for jet or drone to be avaliable

u/SlRenderStudio — 17 days ago

as the title what should i buy i have 1.8k AC .

for arkansas i have crusador canon . fattah 2 or dark eagle missile with torped 62 legendary torpedo and gws or roland 2 aa .

for the fs dcns evoled , i have f19 hellcat and thantos drone and sledopit drone . (i guess i would have to buy new another drone for the carrier then ) .

my another stuff are hms hobart ship , hq 26 , yj 19 lgm .

i also considered buying kbx bomber or alka dews laser instead of new ship maybe .

what are your guys opinion .

reddit.com
u/SlRenderStudio — 24 days ago