Skip to content

deniza/somun-server

Repository files navigation

SOMUN: Open Source Game Server

Licence Java MongoDB

Somun Logo

SOMUN is a modular, open-source game server written in Java, designed for developing and deploying turn-based online games. It provides core functionalities like network communication, game state synchronization, user management, matchmaking, data storage, and core turn-based gameplay mechanics. SOMUN aims to offer developers a flexible and efficient platform to build their online games without reinventing the wheel.

Somun means "nut of a bolt" in Turkish, and it is a metaphor for the core of a game server that holds everything together.

Features

Somun Admin Page

  • Modular design: SOMUN consists of independent modules that can be easily integrated or extended to meet specific needs of your online game project.
  • High performance: Optimized network communication by using event driven asynchronous java NIO API and NoSQL data management for handling large numbers of concurrent users.
  • Scalability: SOMUN can be deployed on various environments, from local development machines to cloud instances, scaling to accommodate growing player bases.
  • Open source: Freely available for use, modification, and contribution under the MIT license.
  • Community support: Encourages contributions and collaboration to enhance the platform and its capabilities.

Getting Started

  1. Prerequisites:

  2. Clone the repository:

    git clone https://github.com/deniza/somun-server.git
  3. Build the project:

    ./build.sh
  4. Configure MongoDB connection: Update the configuration file server.conf with your MongoDB connection details.

  5. Initialize the database:

    ./somun.sh setup
    
  6. Start the server:

    ./somun.sh run

Usage

A sample game client written in Java is included in the server distribution to showcase basic usage. You can find it in the server/samplegame directory. This game demonstrates turn-based multiplayer features and can be used as a starting point for building your own games.

Client Libraries

SOMUN provides following client libraries for different platforms:

Documentation

Detailed documentation for Somun Server is available in the docs directory of this repository. You can start with the Documentation Index for an overview and links to specific topics.

Contributing

SOMUN welcomes all forms of contributions from the community. This includes:

  • Bug fixes: Report and fix bugs encountered while using SOMUN.
  • Code improvements: Suggest and implement code enhancements to improve performance, maintainability, or functionality.
  • Refactorings: Improve code structure and readability.
  • New modules: Develop and integrate new modules to expand SOMUN's capabilities.
  • New sample games: Create and contribute new sample games to showcase different functionalities and inspire developers.
  • Documentation improvements: Enhance existing documentation or contribute new documentation for modules, features, and usage examples.

Please refer to the CONTRIBUTING.md file for detailed guidelines and contribution processes.

Main Contributors

Research Background

This project is developed as part of a research initiative at Odtü Teknokent. We aim to explore and advance the development of open-source server software for online games, focusing on modularity, scalability, and community collaboration.

Odtü Teknokent Logo

License

This project is licensed under the MIT license. See the LICENSE.txt file for details.

About

Game Socket Server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published