Coder Social home page Coder Social logo

althack-project / althack Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 923 KB

The AltHack game about virtual currency and anonymity

Home Page: https://althack-game.com/

License: GNU General Public License v3.0

CMake 7.98% C++ 92.02%
game clang-tidy client-server cmake cpp17 imgui-sdl read-the-docs

althack's People

Contributors

fairlight1337 avatar

Watchers

 avatar

althack's Issues

Update Sphinx configuration to newest version

Right now, a rather old Sphinx version is used to build the Read the Docs documentation (version 1.8.5). This requires several upstream dependencies to be defined as specific (old) versions. This should be fixed to use the most up to date Sphinx version.

At the same time, a static .readthedocs.yaml should be created to make sure we don't suffer from upstream version changes in the RTD builders.

Implement frontend layer

Is your feature request related to a problem? Please describe.
A programmatic frontend layer is required to coordinate communication with the backend, and to hold the state of the game.

Describe the solution you'd like
Ad a frontend layer that connects to the known backend layer and serves as an I/O interface to the UI.

Integrate clang-tidy into CMake environment

To follow top of the line coding standards, clang-tidy needs to be integrated into the CMake build process.
Implausible (for the project) settings need to be deactivated, but the majority of checks should be enabled and passing.

Fund Account Nodes available in menu and canvas

Nodes on the canvas represent accounts, entities, or other game mechanics on the same level. They can be connected to each other and allow interaction between one another.

An abstract base node type as well as a concrete Fund Account node type need to be implemented on the backend and the frontend.
The Fund Account type needs to have a Provider field (denoting who the fund managing entity is, such as a bank, an online service, a blockchain provider, or similar), an account identifier field, and an amount field alongside the currency it represents.

Fix order of class member intialization

The AccountNode class keeps causing compiler warnings because some of its constructor initialized variables aren't order of definition. The order of these initializations (or of the variables) needs to be adjusted accordingly.

Add static configuration file details

The libconfig++ configuration library is already integrated into the main AltHack application. To make it useful, concrete config settings need to be included.

For now, this should include the database filename of the server backend database. With this, the required generic interfaces for more settings should be established.

Define Development Roadmap for after TD1

To give users and developers a glimpse of what is planned beyond TD1, the development roadmap needs to be detailed out.
This should cover:

  • Scope of TD1
  • Potential scope of TD2
  • Potential scope of the first alpha release
  • Features planned further out that do not yet have a release they are attached to

This should be documented in the main README.md file.

Add switch for light/dark theme

The UI should feature an easily accessible switch to change the general theme sentiment from light to dark, and vice versa. The current state should be reflected by the same control widget.

All base classes are documented via Doxygen

All classes are documented as part of TD1. This needs to be done on a class member level, and should be available via Doxygen documentation tags. Parameters, return values, and descriptions are documented.

Add CONTRIBUTING file

The CONTRIBUTING file should contain guidelines on general mode of collaboration within the project, answers to licensing questions, code style, and how to deal with issues at large.

It should outline for any contributor what their contribution is being used for, how it will be licensed, and what level of involvement is expected from them.

Allow Windows-builds via CMake

Is your feature request related to a problem? Please describe.
Currently, the project cannot be cross-compiled for Windows. It should be compilable on Linux and Windows alike, with the same resulting game application (functionally, not on binary level).

Describe the solution you'd like
Extend the CMake configuration and the documentation to allow cross-compilation for Windows if so desired, and retain the original Linux build capabiities.

Enhance clang-tidy configuration and fix remaining warnings

Describe the bug
The current clang-tidy configuration should be improved as it

  • still produces warnings that should be fixed
  • should be configured through a dedicated configuration file rather than hosting its config in a CMake variable

Both issues are more of a clean-up measure, but should improve both, compilation output readability (and conciseness) and clarity of the current configuration. Many issues stem from system headers, too - this should possibly fixed by ignoring them entirely.

To Reproduce
Just compile in a clean environment - many issues will be shown.

Expected behavior
No remaining clang-tidy issues (if possible) when doing a clean compile.

Play area canvas shows game nodes

Any relevant game nodes need to be displayed on the game canvas.
Nodes need to be draggable, should reflect their relevant internal state visually, and need to be placeable and removable via UI interaction.

Read the Docs is set up correctly and first batch of functionality is documented

Read the Docs is configured, and the relevant base documentation is present in the AltHack repo. What exactly is documented there for TD1 is to be determined, but should at least entail:

  • Build instructions
  • Command line options for the main application
  • Expected behavior of TD1
  • Architecture of the application
  • A base demonstration of what TD1 is capable of

Nodes can be connected via ports on the UI

The play area canvas allows to connect nodes to one another. This should happen via ports on nodes. The ports need to be typed, meaning not all node ports can be connected to all other ports, but only to matching ones.

Two distinctions for possible connections need to be made:

  • Port type
  • In/Out port (out only connects to in, m:n mappings)

The connections themselves need to be typed as well to denote what the available/intended characteristics are for each connection.

Integrate database into server backend

The server backend requires a database to store data persistently. This includes, but is not limited to:

  • Player accounts
  • Dynamic settings data
  • Game state

The database should be file-based for local storage and easy backup, and should be universal enough to accommodate yet to be defined data layouts.

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.