Giter Site home page Giter Site logo

codingben / maple-fighters Goto Github PK

View Code? Open in Web Editor NEW
67.0 7.0 24.0 927.41 MB

A small online game similar to MapleStory

Home Page: http://maplefighters.io

License: GNU Affero General Public License v3.0

C# 98.53% CSS 0.39% HTML 0.08% Dockerfile 0.13% Makefile 0.03% JavaScript 0.67% Shell 0.18%
maplestory

maple-fighters's People

Contributors

benzuk avatar codingben avatar dependabot[bot] avatar github-actions[bot] avatar

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  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

maple-fighters's Issues

403 Forbidden

Which project(s) are the source of the bug?

frontend

Description

I deployed it with docker and access forbidden by rule, client: 100.xxx.xx.xx,.
Do i need to set up EXTERNAL_IP for that?

How To Reproduce

run by default command

docker-compose -f docker-compose.prod.yml up

Expected Behavior

error

Environment

No response

Nginx server in frontend app blocks all connections locally

Which project(s) are the source of the bug?

frontend

Description

There is a cloudflare-ips.conf [1] that is copied and included in nginx.conf [2]. It blocks all connections from all client IPs except Cloudflare IPs (proxies).

This file cloudflare-ips.conf [1] should be included in production environments only and not in Kubernetes cluster locally, since it blocks all connections.

[1] https://github.com/codingben/maple-fighters/blob/main/src/frontend/cloudflare-ips.conf
[2] https://github.com/codingben/maple-fighters/blob/main/src/frontend/nginx.conf#L7

How To Reproduce

Deploy frontend app in Kubernetes cluster locally. Then the response of Nginx server is 403 (Forbidden) when trying to access Maple Fighters in the web browser using the external IP.

Expected Behavior

User should be able to access Maple Fighters in the web browser locally.

Environment

Kubernetes cluster (locally).

Remove chat-service

Which project(s) are related to the feature request?

chat-service, maple-fighters

Description

This service was planned to provide communication between players across multiple game services. It appears that there is no need and purpose to provide such thing across multiple game services, and can be only limited to the one that the player is connected to.

Proposed Solution

Remove chat-service and later add a new handler in game-service to send chat messages to other players.

Alternatives Considered

There is no alternatives considered at the moment.

Upgrade to .NET 8.0

Which project(s) are related to the feature request?

game-service

Description

Consider upgrade game server to .NET 8.0.

Proposed Solution

N/A

Alternatives Considered

N/A

Modify maple-fighters to work without auth-service

Which project(s) are related to the feature request?

maple-fighters

Description

Currently maple-fighters is trying to send requests to the removed auth-service. Modify maple-fighters to work without it.

Proposed Solution

N/A

Alternatives Considered

In the future, use something like auth0.

REACT_APP_ENV is not set during runtime

Which project(s) are the source of the bug?

frontend

Description

Currently REACT_APP_ENV is set during build time only, and there is no way to set it during runtime.

How To Reproduce

REACT_APP_ENV is set only during build time.

Expected Behavior

Should be able to set REACT_APP_ENV during runtime, to set a different value when running in multiple environments.

Environment

Docker and Kubernetes (Development and Production).

Add chat message handler

Which project(s) are related to the feature request?

game-service

Description

Add a new chat message handler to the service to allow players communicate with each other.

Proposed Solution

Add a new message handler to the service.

Alternatives Considered

In the future, if needed, use a proper chat-service (client-side code already prepared for it).

Remove character-service

Which project(s) are related to the feature request?

character-service, maple-fighters

Description

This service was planned to store the player's characters (only to authenticated users). Since it requires the player to be authenticated in order to protect the database from irrelevant requests, it's no longer an option since auth-service will be removed.

Proposed Solution

Remove character-service and store the player's character in the user's web browser using IndexedDB (can be done via using Unity's PlayerPrefs).

Alternatives Considered

In the future, there may be something similar like a dedicated profile-service that provides the user info such as Name, Level, Experience Points, Friends, Player Characters, Skills, Items, etc.

Modify maple-fighters to work without chat-service

Which project(s) are related to the feature request?

maple-fighters

Description

Currently maple-fighters is trying to send requests to the removed chat-service. Modify maple-fighters to work without it.

Proposed Solution

A new handler will be added to game-service to use it as an endpoint to communicate with other players. Prepare maple-fighters to be able work with it.

Alternatives Considered

N/A

Remove gameprovider-service

Which project(s) are related to the feature request?

gameprovider-service, maple-fighters

Description

This service was planned to provide the list of game services. Since game-service is stateful service, there won't be more than few services (currently there is only one service in production, that is located in Frankfurt, Germany).

It doesn't contain any real-time data about the game-service, and provides only basic information such as name of the service and connection url from the maple-fighters-configs repository.

Proposed Solution

Since gameprovider-service provides only basic information about the game-service, as mentioned above, it can be just retrieved by the client and filtered if needed (e.g. based on health check).

Alternatives Considered

There is no alternatives considered at the moment.

Modify maple-fighters to work without gameprovider-service

Which project(s) are related to the feature request?

maple-fighters

Description

Currently maple-fighters is trying to send requests to the removed gameprovider-service. Modify maple-fighters to work without it.

Proposed Solution

No solution because there is only one game server at the moment.

Alternatives Considered

N/A

You can improve wz

You can use wz file without png or bmp or jpg.
Try it.
P.S Your project is awesome.

HTTPS Implementation

Which project(s) are related to the feature request?

game-service, frontend, maple-fighters

Description

HTTPS is not supported in Maple Fighters projects. Browser based on Chromium (e.g. Chrome, Brave, and more) requires HTTPS by default [1].

[1] https://blog.chromium.org/2023/08/towards-https-by-default.html

Proposed Solution

Ensure HTTPS works and it's supported in all projects.

Alternatives Considered

N/A

Remove auth-service

Which project(s) are related to the feature request?

auth-service, frontend, maple-fighters

Description

This service was planned initially as required in order to enter the game to choose character and play in the game world. However, it turned as a slow process since it requires registration, and there is no real need for it, as players would like to quickly check the game and enjoy few minutes from it.

In the meantime, I've changed the interaction with auth-service to be an optional, but it requires time and efforts to make it really good and feature-rich (and in the future requires maintenance efforts).

Proposed Solution

Remove auth-service from the project and disable the interaction with the service.

Alternatives Considered

In the future, use ready solution and feature-rich like auth0 or something similar.

Update architecture diagram

Description

Create a new diagram without services:

  • auth-service
  • character-service
  • chat-service
  • gameprovider-service

Since they were removed and are no longer required.

Modify maple-fighters to work without character-service

Which project(s) are related to the feature request?

maple-fighters

Description

Currently maple-fighters is trying to send requests to the removed character-service. Modify maple-fighters to work without it.

Proposed Solution

Modify maple-fighters to save the characters data to PlayerPrefs based on user's unique id.

Alternatives Considered

N/A

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.