arashsm79 / chame

Chatting platform with mini games written in Java using Non-blocking IO, channels, selectors, connection pools, and JavaFX.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Chame! Chat and Game software written in Java using NIO

Chame! Chat and Game software written in Java using NIO

An online chat and game Java application using Java's Non-blocking New I/O.

The networking is done using Java's NIO package. Everything is handled asynchronously; Since we're using channels, selectors, messages are sent/received partially therefore we need a logic that queues the bytes read and when ever a full message is received dispatches a worker for proccessing received data. The messages that are sent/received from the clients are null terminated in order to be notified when a full message is received.

For the database I chose sqlite(even though it's not really suitable for chat servers). I tried to come up with a decent and thought through schema (through research) the schema is shown below.

Alt text

Tic Tac Toe can be played againts AI(minimax) and played with others.

Snakes and ladders is only offline and under development.

  • Each room has it's own game lobbies.

  • Contacts System (friend request/accept)

  • Chats and group chats

Dependencies:

  • HikariCP

  • Gson

  • xerial / sqlite-jdbc

Screenshots: Alt text Alt text Alt text Alt text Alt text

About

Chatting platform with mini games written in Java using Non-blocking IO, channels, selectors, connection pools, and JavaFX.

License:Apache License 2.0


Languages

Language:Java 96.3%Language:CSS 3.7%