Game Server Development in Scala

Started by
-1 comments, last by Hyperreal 8 years, 1 month ago

Vinctus Venatus

About

This blog intends to follow the progress of a MORPG game server called Vinctus Venatus. The game server will be mostly written in Scala (more about the language can be found here). The codebase will be open-source and contributions made by volunteers will be welcome. The repository for the source is located at https://github.com/emaxedon/vinctus-venatus.

Game Mechanics

The game mechanics will follow that of a basic fantasy multiplayer online RPG. The game server will not handle logic for any new or innovative forms of gameplay. Only the basic features of common MORPGs will be implemented. These features include but are not limited to:

  • User registration and authentication
  • Character creation (picking class, gender, name)
  • Chat system (global chat, map chat, pm)
  • NPCs
  • Quest system
  • Player level and attributes (players level up by gaining experience completing quests, and by killing non-player entities)
  • Player inventory and equipment
  • Player movement, spawning, class skill actions
  • Player to player trading
  • Player friend system
  • Guild system

Dependencies

The game server will be designed to be non-blocking, scalable, and resilient. To accomplish the goal of the game server, the following tools will be used:

  • Akka - a toolkit for developing asynchronous, non-blocking message-driven applications that run on the JVM
  • Google's Protocol Buffers - a language-neutral, platform-neutral mechanism for serializing structured data
  • ScalaPB - a protocol buffer compiler plugin for Scala. It will generate Scala case classes, parsers, and serializers
  • Slick - a functional relational mapper that allows for type safe database queries written in Scala
  • PostgreSQL - open-source relational database management system
  • jBCrypt - Java implementation of OpenBSD's Blowfish password hashing
  • More to come...

Game Client

The game client will be a low graphics application using the Unity3D game engine. The client will be developed concurrently for testing purposes only. Development on the client will not be the focus of attention for this blog, but its codebase will be open-source.

License

Vinctus Venatus is distributed under the MIT License, meaning that you are free to use it in your free or proprietary software.

This topic is closed to new replies.

Advertisement