GithubHelp home page GithubHelp logo

wildflower_old's Introduction

Wildflower CircleCI

# Spark / Gson / JOML / WebSockets / Three.js

Wildflower is a sandbox game about intelligent, evolving creatures. Creatures in wildflower are controlled by Agents, which are programs written by Wildflower players. Agents interact with the Wildflower Server via HTTP in order to manipulate their Creature, and observe the Wildflower World through its eyes.

For more information, check out The Wiki!

How To Run

Run ./gradlew :wildflower-server:run to start the server, then navigate in browser to http://localhost:9090. Requires a modern browser which supports WebSockets.

Inspiration

Robocode, BoxCar2D, Spore, Soda Constructor, Karl Sims, Braitenberg Vehicles

wildflower_old's People

Contributors

iebaker avatar

Watchers

 avatar  avatar  avatar

wildflower_old's Issues

Implement Terrain Rendering in Wildflower Web

  • Modify existing main.js to also open a connection with the /terrain WebSocket
  • Add state storage, actions, and reducers to add and remove terrain tiles, which should be fired in response to messages sent to the /terrain WebSocket.
  • optional for terrain but we'll need this for entities Also modify the state/action/reducers for updating entities to match the new ItemUpdate<T> JSON model (e.g. create actions to add, remove, and update the entity list on the redux store).
  • In world.js Read the terrain off of the global state in mapStateToProps so it ends up on the props of that React class.
  • Include three.js!
  • optional Just render a cube each of whose corners is a different color as a Three.js hello world.
  • When your React component render()s, transform the terrain tiles from JSON objects to THREE.Mesh objects and render them using a THREE.Scene onto a <canvas> element.
  • Add a THREE.PerspectiveCamera to the scene to actually view the Meshes.
  • Capture some kind of input to control the pan and zoom (aka position and distance from the camera to the tiles, and actually report the new viewable region to the server using the /viewport endpoint so that tiles are updated

Only one class should be defined per file

I know it's Processing and you can have multiple class definitions per file, but that makes the code base difficult to read. I spent a while trying to track down the MapArea class because it didn't belong to its own file.

CreatureAPI should not contain logic

As we agreed the other day, CreatureAPI is just a wrapper around World which only exposes some if its methods, in an imitation of the job an HTTP server will someday do.

Members should not have implementation types for Collection classes

i.e. public HashSet<Entity> getCollisions(Entity entity) should be public Set<Entity> getCollisions(Entity entity) etc. It can return a HashSet but there's no reason to have the method's contract specify a specific implementation since they all have the same API and we might want to make changes later. Same for ArrayList

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.