Coder Social home page Coder Social logo

ossgame's Introduction

OSSGame: A Semester-Long Study of AI

What is this?

This game is the end product of a semester-long independent study (Olin Self Study, or OSS) in computer science topics, particularly Artificial Intelligence. It's currently a work in progress.

Objectives

One of my main objectives with this project was to maintain and improve my ability to use Java to solve problems. Another main objective was to learn how different AIs work and how to implement them (how to do so algorithmically, and also how to do so using Java).

My intention with this project was to create an entertaining game that is comprised of several different games. These other games include Go Fish, Battleship, and Tic Tac Toe, although I would like to expand this to include more games in the future. The overarching game is a Tamagotchi-styled game, in which the player must take care of an "Oliner" pet by playing games with it. Unlike Tamagotchis, though, the "Oliner" has a mind of its own and can intelligently keep up with the player in each game.

References and Acknowledgements

A warm and appreciative "thank you" goes to my OSS advisor and professor, Oliver Steele. Another grateful "thank you" goes to my OSS peer, Dakota Nelson. Many more "thank you"s go to the authors of the following sites, which I referenced frequently to complete this game:

  • Tic Tac Toe: Understanding the Minimax Algorithm: A meticulous and comprehensive guide to the minimax search algorithm, especially for application to Tic-Tac-Toe. 10/10, would recommend.
  • Battleship Algorithms: A guide to algorithms for playing Battleship. Even includes a completely new algorithm that the author appears to have come up with independently, which drastically decreases the number of turns taken per game. Very cool!
  • And more to come...

Aspirations

I want this game to be entertaining and beautiful. My plan for the gameplay is that a player will first see a Menu screen, where they can choose to start a new game or load an old one (how games will be saved is something I still need to figure out). Starting a new game will bring the player to another screen, where their "Oliner" will be. Every few minutes, the "Oliner" will ask the player to play a random game. If the "Oliner" wins the game, it will gain 1x the experience points associated with the game, and if the player wins, it will gain 2x the experience points (because regardless of what it is, we learn more by losing than by winning!). Once the "Oliner" has gained enough experience points, it will "evolve" and the game will end.

Semester Schedule

Week of Feb. 13: Write rough but playable drafts of a simple game to toy with ideas
February 20: Pick one game idea and go deeper - implement AI (search, reaction mechanism, etc.) so that game can be played against computer
February 27: Pick another game idea and write more rough drafts of it
March 6: Go deeper on latest game
March 13: Spring break; if I'm behind at this point, I'll catch up during the break, but if not, I'll continue developing the game
March 20: Write more rough drafts of a third game
March 27: Go deeper with newest game
April 3: Continue developing all three games
April 10: Insert both games into the overarching game
April 17: Continue developing final game (and inner games)
April 24: Put final touches on the game and get it ready for submission/Olin Expo
May 1: Final week - final project completion and submission!

ossgame's People

Contributors

yehemily avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.