Giter Club home page Giter Club logo

my_world's Introduction

My_world

This is an Epitech Project, don't steal it ! Or you'll get -42

For this project you will have to create your own terraformer program. You can pick up some ideas from Tycoon Terrain for Unity3D. Your main challenge will be to display a map and edit it at runtime.

  • The map is a wireframed map whose tiles are parcels.
  • Parcels are squares with all the same size.
  • The terrain will be changed by raising or lowering entire tiles or only one of their corners.

Tools will be provided to apply different effects and modifications upon the map. Having a pleasant user interface and intuitive interactions is the key of a good editing tool. This project is the occasion for you to try your best on that topic.

enter image description here

Projects requirements (achieved)

Mandatory The following features are mandatory, if your project is missing one of them it will not be evaluated further:

  • The window can be closed using events.
  • The game manage the input from the mouse click and keyboard.
  • Animations in your program are frame rate independent.

Must

  • The map must be displayed using a 3D projection (e.g. isometric or parallel).
  • The tiles and their corners must be selected using the mouse.
  • At least 3 effects (including the modification of altitude) must be implemented and selectable with a tool- bar in the window (e.g. reinitialization of the tiles’ altitudes, modification of the size of the area of effect, switching between “tiles selectable” and “corners selectable”).

Should

  • Your window should stick between 800x600 pixels and 1920x1080 pixels.
  • The size of the map should be selected using editable textboxes in the window.
  • Help Text boxes should appear as the mouse hovers elements in the toolbar(s).
  • The buttons should have at least 3 visual states : idle, hover, and clicked.
  • Tiles should have a texture.
  • The format of saved maps should be in a .legend file.
  • Moving around on the map should be done with arrow keys and/or by positionning the mouse cursor at the edges of the window.
  • Zooming up and down should be done with keyboard and/or the scrolling button of the mouse.

Could

  • The program could save the map in a file at the end of the program in the terminal.
  • The program could save the map in a file at runtime using buttons and tools .
  • The program could load a map at the beginning of the program in the terminal (argument or stdin).
  • The program could load a map at runtime using buttons and tools.
  • The name of the saved files could be chosen at runtime.
  • Tools can be selected using keyboard shortcuts.
  • Sounds could be played on user actions.
  • Textures of the tiles could change depending on the direction of their slope.
  • Elements (e.g. buildings, roads) could be added on the map in compliance with the landforms.
  • Water areas could be added.

Usage and unit tests (Criterion)

To compile the program :

make
make fclean

To compile and run unit tests :

make tests run

Check assets bash script :

cd tests/ ; ./check_ressources.sh

my_world's People

Watchers

 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.