luislortega / SpaceWar_Doc

πŸš€ Documentation for SpaceWar players

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SpaceWar | MMO of space action

This is a totally private project, the copyright of this code belongs to GG Studios, some assets and UI concepts belong to the BigPoint company, for now it is a non-profit project.

Special thanks to s3kglitches (YouTube) who provided me with many sprites from 2009, TexterDo1 (GitHub) which provided me with the initial tools with the DeathSpaces 3D emulators, ooscargerman (GitHub) which gave me a lot of knowledge in cyber security for cloud servers, BotNet and DDoS attacks and how to protect myself from them.

Mission: recreate a version of darkorbit based on 2009.

Vision: Create a new game concept based on DO, but with a plot twist in terms of events, community and teamwork, taking all the good of DO to create a solid community

Tech stack

Frontend: Vue.JS (HTML5, JavaScript, CSS)

Game client: GDScript

Backend: GoLang

Database: MySql

Ports organization

Frontend: 8080

MySql: 30200

Backend: 8082

Socket: 8081

Documentation tools

To-do...

Naming conventions

Frontend:

VueJS official

JavaScript AirBnB

CSS BEM

Game client:

GDScript official

Backend:

GoLang official

Database:

MySql linux

Concepts

Concept of the classes and endpoints of the project ... but this is not in detail.

Global architecture

Client classes

API endpoints and classes

Socket endpoints and classes

To-do

Database modeling

Database example data

player_id: int | auto increment

session_id: default null | value auto generated by JWT

info: The last IP that at the beginning is the same IP of registration and the date of registration

server_id: default 1

username: default null

password: default null | encrypted by MD5

email: default null

data: default {"uridium":0,"credits":0,"honor":0,"experience":0,"jackpot":0}

current_config default 1

health default 0

shield default {"firstConf":0, "secondConfg":0}

position: default {"x": 0, "y": 0} | change depending the faction

map_id default 0 | change depending the faction

ship_id default 1

booty_key default 0

premium default {"active":false,"date":null}

titles default []

faction_id | change depending the faction

clan_id default 0

rank_id default 1

rank_points default 0

rank default 0

extra_energy default 0

gate_rings default 0

old_pilot_name default []

player_id int

config_lasers default [[],[]] | the number is based on the position of items in this same table

config_generators default [[],[]] | the number is based on the position of items in this same table

config_drones default [[],[]] | the number is based on the position of items in this same table

config_extras default [[],[]] | the number is based on the position of items in this same table

items default {"lf1Count":0, "lf2Count":0, "lf3Count": 0, "mp1Count":0,"a01Count":0, "a02Count":0, "bO1Count":0, "bO2Count":0, "1010Count":0, "2010Count":0, "3210Count":0, "3310Count":0, "6900Count":0, "7900Count":0, "geminex":0, "sl01Cpu":0, "sl02Cpu":0, "sl03Cpu":0, "clo4kCpu10":0, "clo4kCpu50":0, "rep1":0, "rep2":0, "rep3": 0, "rep4": 0, "rokt01":0, "ncrrbCpu":0, "sm01Cpu":0, "ish01Cpu":0, "rllb1Cpu":0, "hm7":0, ships":[], "designs":[], "skillTree":{"logdisks":0,"researchPoints":0,"resetCount":0}}

cargo default {"Prometium":0, "Endorium":0, "Terbium":0, "Prometid":0, "Duranium":0, "Xenomita":0, "Promerium":0, "Seprom":0}

ammo default {"lcb10":0,"mcb25":0,"mcb50":0,"mcb100":0,"rsb75":0,"sab50":0, "r310":0,"plt2026":0,"plt2021":0,"acm1":0,"eco10":0,"pem01":0}

skill_points defualt {"engineering":0,"shieldEngineering":0,"detonation1":0,"detonation2":0,"heatseekingMissiles":0, "rocketFusion":0,"cruelty1":0,"cruelty2":0,"explosives":0,"luck1":0,"luck2":0}

base_modules default []

boosters default {}

log_id int | auto increment

killer_id | killer of the player

target_id | victim of the killer

date default now()

player_id int

audio default {}

quality default {}

bound_keys default {}

slotbar_items default {}

slotbar_items_pro default {}

npc_id int | auto increment

ship_id int | this is the reference to server_ship

health | this change depending type of ship

shield | this change depending type of ship

position default {"x":0, "x":0} | random position in the map

map_id int

ship_id int | auto increment

base_ship_id int

loot_id | name of the sprite

name | name of the ship

health default 0

shield default 0 | for type NPC

speed default 0

lasers default 0 | laser slot of the ship (player)

generators default 0 | generator slot of the ship (player)

cargo default 0 | cargo of the ship (player)

respawnable default false | for type NPC

reward default {"Experience":0,"Honor":0,"Credits":0,"Uridium":0}

ban_id int | auto increment

player_id | player that was banned

ip varchar(30)

reason varchar(200) | need a good reason to make bans

type int | 1 = chat ban, 2 = account ban, 3 = account permanent ban, 4 = ip ban

duration int | in hours...

id int | auto increment

player_id | id of the moderator...

type | 1 = [kickchat, chatban, accountban, account-permanent-ban, ip-ban] 2 = [kickchat, chatban, accountban] 3 = [kickchat, chatban] 4 = just kickchat

Version log

=> v.0.0.1

Basic multiplayer, simply ships shown and can attack each other, with a semi-functional chat

=> v.0.0.2

Improvements in attacks, types of attacks, movements and better abstraction, it does not contain a connected database or functional socket.

=> v.0.0.3 (In development)

It will contain all the functionality of darkorbit 2009, except skylab, clans, auctions, general account settings, refinement of lasers or generators, bonus page, page to buy uridium, missions, without cubikones / npc with unique characteristics, only low maps will be available.

Conceptual UI

Available maps

About

πŸš€ Documentation for SpaceWar players