Git Product home page Git Product logo

worldswar's Introduction

World's War

A virtual world with different species (ants, termites and spiders, etc), and resources (sugar, etc). The entities are autonomous (agents).

AUTHORS

VI51 (Virtual Life Simulation) Project, UTBM (University of Technology of Belfort-Montbéliard)
Prof. Stéphane Galland, PhD

{firstname}.{lastname}[at]utbm.fr

Belkacem Lahouel
Maxime Bourgeois
Romain Dorier

DIRECTORIES

  • parser/ contains parsers and readers implemented
  • env/ (stands for environment) contains the environment model
  • gui/ contains the user interface (big-black-box style)
  • sim/ (stands for simulator) contains the simulator "Application" class and agents
  • info/ contains informations and manuals
  • math/ contains general functions/methods implementing maths
  • res/ (stands for resources) contains resources (mainly for the user interface) or eg. configuration files

TECHNICALITIES

You may add an alias for this repository's address:
git remote add github https://github.com/belkacemlahouel/WorldsWar

Please put your Git repository in the source directory.

With Eclipse IDE:

  1. Create a new project.
  2. Go to your EclipseProject/src/ directory.
  3. Fetch (git pull) from the Github repository.
    • git init
    • git remote add github https://github.com/belkacemlahouel/WorldsWar
    • git pull github master
    • git br name.versionnumber.module // git branch
    • git co name.versionnumber.module // git checkout
    • Go to Eclipse, and refresh the project.
  4. Work!
  5. Push to the Github repository once it's good!
    • git ci -m namefile "Message." OR git ci -am "Message" // git commit
    • git push github branchname
  6. If you want to update with the Github version:
    • git pull github master

Regarding Java versions, we will use Java 7 (JDK 1.7). Java 8 (JDK 1.8) is not used, but you can if you want to use multi-inheritance.

PUSHING RULES

  1. Do not push in master for no good reason.
  2. Work on you own branch.
  3. Only push source code in Github (no executables!).
  4. Try to document your methods (if not selfexplained).

worldswar's People

Contributors

belkacemlahouel avatar rdorier avatar bourgeoismaxime avatar

Stargazers

A Giancola avatar  avatar  avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

worldswar's Issues

Idea: instead of Ants VS Termites, what do you think about Ant VS Bees?

I thought about bees, because they seem to have (such as our teacher suggested) same behaviors as ants with pheromones and stuff and they want same resources (especially SUGAR!! and they produce Honey, with Ants love...)

Remember: the goal of this project is to put two species attracted to the same resources, and another destroying everything. Hence, I don't see how Termites is a good choice...

Pheromones management

We have not yet thought about pheromones communication. But later, with Romain, we argued that there is three types of pheromones, and two may be englobed.

  • DANGER (meaning go away)
  • FIGHT (attacking the other + also means help me!)
  • FOOD (something interesting found).

Please tell me your opinion on the subject. This issue will be used to discuss this point furthermore. We, @MrJohnHenry and @belkacemlahouel, find this should be enough.

What other kind of information may be used inside the environment?

@zsuty @bourgeoismaxime

Interconnection of environments

We have to manage the inter-connection of environments. A "cave" may also have several entries and/or exits!

Therefore, we should think about splitting (or not) the rules of the environment into two subclasses... I personally don't think it's necessary at the end. We just have to change our perception rules. As for the motion rules, they should be implemented inside the global environment containing "dimensions".

I need opinions.

@MrJohnHenry @bourgeoismaxime @zsuty

Main program: test environment

Can I put you in charge of creating a small environment with (eventually several interconnections, objects etc) inside a main function. This main function will call another function creating the environment, with parameters or from file reading. We'll need this function to test the printing of the GUI, and later to build an environment.

This function will be doing tasks like:

  • New environment(size)
  • getCell(x, y).addObject(new Object...)
  • getCell(x, y).addPortal(new Environment...) I don't remeber the name of this one, if any issue, tell me.
  • ...
    So the model is done (normally) and now we have to build, make "new" calls etc.

To do that, you may start the parser/writer, this should help us for the future (we have to do one anyways). The writer is for the backups, and the parser to load a previously written configuration.

Think about the organization of the file, and about whether you will be using XML or not etc.

Thanks 👍

@MrJohnHenry

Pheromones

When we put a new pheromone, how to "combine" the strength of multiple pheromones in the same position ? Merging when putting them or when perceiving...

I'd go for the first

Bodies classes for the main

Hi there ! Working on the main, I encounter a problem : the abstract body class that @belkacemlahouel asks me to use for the agent body gui isn't linked to the other bodies (like antBody), so I can't test the AgentBodyGUI in the @bourgeoismaxime 's GUI. Am I missing something ?

Influences/Reactions management

So far, for me, there is two kind of influences: motion influences and actions influences. They are completely different, they do not inherit one from another.

The motion influence says "okay, I'm here and I want to go there" and asks the environment "how far can I go?".

The action influence says "okay, I want to do this, can I finally do it?".

Furthermore, there is the problem of the enumeration of possible actions to perform. For me (and I discussed the idea with the prof) there is:

  • ATTACK/CURE
  • PICK/PUT
  • EAT

I already started those implementations with the different interfaces.

On each turn, an agent may want to move or perform an action. I can't see how we could do both in one turn, we would have a too much complex problem to manage.

Please, help.

@zsuty @MrJohnHenry @bourgeoismaxime

WIP Viewport

I pushed my branch on GitHub but my new classes don't appear to be in the branch. It's useless to pull it until I fix this bug.
I'll work on multiple environment in the same window tomorrow in case any of you need it.

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.