Bu proje, Java programlama dili ve soket programlama kullanılarak geliştirilmiş iki oyunculu, sunucu-istemci yapısına sahip bir Tavla (Backgammon) oyunudur. Proje kapsamında hem masaüstü arayüzü hem de ağ üzerinden iletişim kurabilen bir oyun motoru geliştirilmiştir.
Bu projenin amacı, bir masa oyunu olan Tavla'nın iki oyunculu versiyonunu ağ üzerinde gerçek zamanlı olarak oynanabilir şekilde geliştirmektir. Proje sayesinde:
- Java'da GUI (grafik arayüz) tasarımı,
- Socket programlama (Server/Client),
- Gerçek zamanlı veri aktarımı,
- AWS ile uzak sunucu yönetimi gibi konular deneyimlenmiştir.
- Oyuncular zar atarak oyuna başlar.
- Taş hareketleri GUI üzerinden fare ile sürüklenerek yapılır.
- Kurallara uygun şekilde taş çıkarma, çarpma ve toplama mekanikleri uygulanır.
- Taş çarpışmalarında rakip taşı bar'a gönderir.
- Sunucu üzerinden sıra takibi, zar paylaşımı ve kazanan tespiti yapılır.
- Oyunun durumu her iki istemcide eş zamanlı olarak güncellenir.
- GUI üzerinden oyuncuya durum mesajları, zar değerleri ve sırası gösterilir.
- Java (Swing): Grafiksel kullanıcı arayüzü ve olay yönetimi.
- Socket API: Sunucu-istemci iletişimi.
- Maven: Proje bağımlılık yönetimi ve derleme.
- AWS EC2: Sunucunun gerçek bir uzak ortamda çalıştırılması.