GithubHelp home page GithubHelp logo

proprioceptron's People

Contributors

timmolter avatar zackkenyon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

proprioceptron's Issues

Remove AI code from TheMatrix.java

AI code absolutely does not belong in The Matrix.java and/or in src/mnain/java. It belongs in src/test/*. Move all AI code out of TheMatrix.java and put it in SimpleBrainTheMatrixApp.java analogous to SimpleBrainRoboticArmApp.java. Remove AIAppState, HumanAppState, and PlayerAppState.

Any AI needs to interface with TheMatrix via

  1. propertyChange callback and
  2. a method in TheMatrix that accepts a PlayerCommand object

Just leave the human controls on by default for all cases.

A PlayerCommand object, the method in TheMatrix taking this object and moving the player with, and moving AI logic to SimpleBrainTheMatrixApp need to be implemented.

Again, see SimpleBrainRoboticArmApp.java.

Rough in The Matrix

Create the basic game in package com.xeiam.proprioceptron.thematrix, with a bounded platform of 10 X 10 meters. The camera should be positioned so that the entire game can be played/watched from above. The pills and the player should be big enough to see. Level one should be implemented. A HUD should be added displaying score, energy, and number collected blue pills. The relative pill positions should be outputted as vectors after each movement (see com.xeiam.proprioceptron.roboticarm.SimpleBrainApp for observer pattern usage).

Implement Levels

step 1: use JME Application States to implement the levels.
step 2: transition to next level after N blue pills are collected.
step 3: create a level interface in which you can specify the three parameters on which we determine levels, which will add a level to the List of application states.

Game #2 Proposal

Propose a game, where a character (see Walking character below) can walk on a platform. It's constrained to its "world". Either a person using the keyboard can play the game or a AI can control the player. The player wants to collect balls and avoid enemies. Each level increases in difficulty.

Ideas:

  1. player constrained to x axis, ONE ball falls on x-axis, no enemies, player moves to ball, another one falls.
  2. ONE ball drops from sky on x-z plane. Player must move towards the ball and capture it.
  3. ONE ball drops from sky on x-z plane and rolls in x direction (x-z plane tilted slightly). Player must move towards the ball and capture it.
  4. ONE ball drops from sky on x-z plane and rolls in x and z direction. Player must move towards the ball and capture it.
    1. or 3) or 4), plus one enemy is present (stationary) and needs to be avoided
  5. more... (multiple balls and enemies?)

Rolling can perhaps be done by tilting the world slightly.

We need levels (see Application States below). Perhaps pushing the keys 1 through 9, take you to 9 different levels.

We need HUD to show player stats (see HUD below).

We need to have 1st person, 3rd person, and "observer" views (see on-line examples and A world example below).

Several JME hello world apps are already in our project under test.

Feel free to suggest other ways to increase difficulty at each level. Other game ideas for AI testing are also encouraged. This is just the first thing I thought of.

Write the proposal on the Wiki: https://github.com/timmolter/Proprioceptron/wiki

References:
A world example: http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_collision
Walking character: http://jmonkeyengine.org/wiki/doku.php/jme3:beginner:hello_animation
Application States: http://www.jmonkeyengine.org/wiki/doku.php/jme3:advanced:application_states
HUD: http://www.jmonkeyengine.org/wiki/doku.php/jme3:advanced:hud

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.