GithubHelp home page GithubHelp logo

sergiorf / citybuilderengine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vinorcola/citybuilderengine

0.0 1.0 0.0 13.91 MB

A 2D city builder game engine writen in C++ with the Qt framework, based on the game Zeus - Master of Olympus.

QMake 3.06% C++ 96.94%

citybuilderengine's Introduction

City Builder Engine

City Builder Engine is a game that consists in building your own city in an ancient Greek environment. This project is meant to be a fork of the game Zeus - Master of Olympus.

City Builder Engine is writen in C++ (C++14) and uses the Qt framework (5.15).

/!\ WARNING: The project is far from being playable for now. It is under development. You are welcome to participate.

Snapshot

Game snpashot video

Architecture

For the moment, City Builder Engine development is focussed on the map engine and viewer. No real care are being made for the UI interface yet. This mater will come later, when the map engine will be elaborated enough.

The Map is the heart of the software. It is structured as a server / client architecture. The server part, which is called the Engine, is the part that process the map and all the elements that are on it and make them evolve during time. The client part, which is called the Viewer, is the part that creates the graphical view of the map and update the graphics when it receives data from the engine.

Then, the viewer is meant to be embedded into a UI environment. For the moment, the UI environment will be a simple Qt widget environment. As said before, the aesthetic of the UI is not a priority for now.

The engine is constructed in a way that it should be abble to run in a different thread. For the moment, it is running in the main thread in order to make development and debugging easier. But this must not be forgotten especialy when setting up a communication between the engine and the viewer: they will both run in 2 separate thread at the end. So make sure the communication is thread-safe and non blocking.

Dependencies

Check the wiki for help on installing and configuring the development environment.

  • Qt
  • yaml-cpp

Directory structure

  • engine - The game engine classes
    • element - The elements that goes on the map
      • building - The buiding elements (static elements)
      • character - The character elements (dynamic elements)
    • map - The map and map related classes
    • processing - The classes that process the game
  • exceptions - All the custom exception classes
  • global - Classes that can be use everywhere (engine, ui and viewer)
    • conf - Configuration classes
  • ui - The UI environment classes
    • controlPanel - The classes for the control panel
  • viewer - The map viewer classes

citybuilderengine's People

Contributors

vinorcola avatar

Watchers

James Cloos 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.