cis3296f24 / applebaum-final-project-section-005-applebaum

cis3296f24-classroom-applebaum-final-project-project-proposal-template created by GitHub Classroom
0 stars 0 forks source link

3D Chess Gaming #11

Open Gunlords opened 5 days ago

Gunlords commented 5 days ago

keywords Section # 005, Java, AI, 3D Chess Game, JavaFX, Blender

Project Abstract

This project proposes the development of an AI-powered 3D chess game that allows users to play online and offline, both against human opponents and an AI. The game will feature a 3D graphical interface with detailed chess pieces and board, enhancing the user experience. Users will be able to switch between playing against another player (either online or on the same device) or the AI. The game will track moves, evaluate player strategies, and offer hints based on game state analysis. The application will be built using Java, incorporating JavaFX for the 3D interface and machine learning libraries to enhance AI decision-making.

High Level Requirement

A fully interactive 3D chessboard will be rendered using JavaFX for an immersive gameplay experience. The game will track player moves, including an undo functionality. AI will analyze the game state and offer hints or strategies to both beginner and intermediate players. Players will be able to switch between multiplayer (local or online) and single-player mode against the AI.

Conceptual Design

Front-end: JavaFX will be used to render the 3D chessboard and chess pieces. Pre-made 3D models of the chess pieces and board will be sourced from online libraries such as TurboSquid or Sketchfab or created using Blender if customization is required. Back-end: Game logic will be implemented using Java, with a machine learning module integrated for the AI. Online multiplayer functionality will be implemented using a client-server architecture. AI Component: The AI will be developed using a combination of decision trees and reinforcement learning algorithms to simulate human-like strategies and improve over time. Operating System: The game will run as a standalone Java application on both Windows and Mac platforms.

Proof of Concept

3D Chess Game on GitHub

For networking features, I will adapt code from a previous project: ChineseChess .

Background

Chess has been one of the classic games where human intellect challenges AI. This project builds on well-known chess games but integrates a 3D interface and advanced AI to make the experience more immersive and challenging. Research will be conducted to ensure the AI is both competitive and educational, providing valuable feedback to players at all skill levels. Background information on machine learning and AI in games has been sourced from the book "AI for Games" by Ian Millington, which provides insights into building AI that feels natural in gameplay. Similar projects such as Lichess provide a good reference for how chess games handle online multiplayer features and player engagement.

Required Resources

Software: Java, JavaFX for 3D rendering, machine learning libraries for AI development Server Infrastructure: For managing online multiplayer functionality Development Tools: IntelliJ, Eclipse, or VS Code Documentation and References: Chess logic documentation and AI algorithm resources

Random76520 commented 1 day ago

Hello, Ankur.

I looked over your project, and found myself intrigued with the thought of working with AI for this project. Although it has been done before, usually as "bots", I wanted to know more about your take on it. Personally, I never considered how to do 3D rendering, but I feel it would be somewhat important to know in what aspects does it differ from 2D. I also consider this project a good idea, since it can be seen as an opportunity to teach others how to play chess (I've never played it before).

In regards to contributing to the project, I could help by testing it and providing feedback. If that is not enough input, then I could try and also help with the coding aspects. Something I would consider is some UI-related functions, like a pause button, or player stats. My experience is not great, though I feel like I could still do what I can to improve the project's design.