codingben / maple-fighters Goto Github PK
View Code? Open in Web Editor NEWA small online game similar to MapleStory
Home Page: http://maplefighters.io
License: GNU Affero General Public License v3.0
A small online game similar to MapleStory
Home Page: http://maplefighters.io
License: GNU Affero General Public License v3.0
frontend
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?
run by default command
docker-compose -f docker-compose.prod.yml up
error
No response
frontend
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
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.
User should be able to access Maple Fighters in the web browser locally.
Kubernetes cluster (locally).
chat-service, maple-fighters
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.
Remove chat-service and later add a new handler in game-service to send chat messages to other players.
There is no alternatives considered at the moment.
game-service
Consider upgrade game server to .NET 8.0.
N/A
N/A
maple-fighters
Currently maple-fighters is trying to send requests to the removed auth-service. Modify maple-fighters to work without it.
N/A
In the future, use something like auth0.
frontend
Currently REACT_APP_ENV is set during build time only, and there is no way to set it during runtime.
REACT_APP_ENV is set only during build time.
Should be able to set REACT_APP_ENV during runtime, to set a different value when running in multiple environments.
Docker and Kubernetes (Development and Production).
game-service
Add a new chat message handler to the service to allow players communicate with each other.
Add a new message handler to the service.
In the future, if needed, use a proper chat-service (client-side code already prepared for it).
character-service, maple-fighters
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.
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).
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.
maple-fighters
Currently maple-fighters is trying to send requests to the removed chat-service. Modify maple-fighters to work without it.
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.
N/A
gameprovider-service, maple-fighters
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.
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).
There is no alternatives considered at the moment.
maple-fighters
Currently maple-fighters is trying to send requests to the removed gameprovider-service. Modify maple-fighters to work without it.
No solution because there is only one game server at the moment.
N/A
You can use wz file without png or bmp or jpg.
Try it.
P.S Your project is awesome.
game-service, frontend, maple-fighters
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
Ensure HTTPS works and it's supported in all projects.
N/A
auth-service, frontend, maple-fighters
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).
Remove auth-service from the project and disable the interaction with the service.
In the future, use ready solution and feature-rich like auth0 or something similar.
Create a new diagram without services:
Since they were removed and are no longer required.
maple-fighters
Currently maple-fighters is trying to send requests to the removed character-service. Modify maple-fighters to work without it.
Modify maple-fighters to save the characters data to PlayerPrefs based on user's unique id.
N/A
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.