Is it possible to utilize the MERN stack to make a complex game using multiplayer/turn based modes-making maps/journal logs/generate scenes/dm ‘friends’?
Is there an easy way to do thing with MERN or is there a better way to implement these into a web app and PWA?
What are your ideas?
I have messed around with MERN and think it would be very complex.. Was sort of expecting it to be very complex, just need to know the best way to go about this project?
2
Answers
Of course, it is possible but you will have many complications when making the animations among other things, with dedication and patience you can do it, look at this example https://bruno-simon.com/ is completely done with Javascript and some animation libraries like Three.js
I believe that nothing is impossible, but I can think of a couple of things that can be challenging with the approach you mentioned:
Real-Time Multiplayer: For real-time features, you would likely need to integrate additional technologies like WebSockets (with libraries like Socket.io) for real-time communication. This is essential for multiplayer modes to ensure game state synchronization among players.
Game Logic and Graphics: While React can handle dynamic user interfaces, complex game graphics, and animations might need additional libraries or even a game engine. You could use libraries like PixiJS for 2D graphics or Three.js for 3D graphics within your React application.
Progressive Web App (PWA): Converting your game into a PWA for offline play, push notifications, and a more native app-like experience is a great idea. React supports PWA development, and you can integrate it with your MERN stack application.
Backend Logic: Node.js and Express.js can handle backend logic, API creation, and server-side operations effectively. However, for complex game logic, I think you should consider using a game server framework that can handle multiplayer game-specific challenges.
Data Management: MongoDB is suitable for storing game data like maps, player stats, and journal logs. However, for real-time game state management, I am not sure if you might need a faster, in-memory database like Redis.
in conclusion, whatever you do, you will face challenges.
Best of luck in your journey