World Conquest Chronicles

World Conquest Chronicles

PWM Simulator, v1.5

2D puzzle game for Android inspired by pulse-width modulation and various side-scrolling games.

Store the game stats in the FlatDB database, store the game configuration in a JSON file, and support resizing of the game window.

Change Log

  • plots:
    • configuration:
      • options:
        • speed of motion of the plots;
        • amount of plot points per screen;
        • coefficients:
          • of updation of the random plot;
          • of updation of the custom plot:
            • in the inactive mode;
            • in the active mode;
  • game stats:
    • truncation of indexes to integers when defining the distance type;
    • storing the game stats in the FlatDB database:
      • regular saving with a certain period;
    • configuration:
      • options:
        • amount of points per screen for checking the distance between the random and custom plots;
        • limits of the distance between the random and custom plots:
          • soft limit;
          • hard limit;
        • period of saving of the game stats;
  • drawing:
    • drawing of a type of distance between the random and custom plots:
      • truncation of indexes to integers when defining the distance type;
    • drawing of the game stats:
      • dynamic width of the stats labels:
        • correction of the coefficients of widths of the stats labels;
  • game configuration:
    • loading from a JSON file;
    • validation via the JSON Schema;
  • misc. improvements:
    • adding the LÖVE configuration:
      • game window:
        • resizable mode;
        • title;
        • size:
          • minimal;
          • default;
      • MSAA tuning;
      • save directory for a game.

Features

  • plots:
    • they display functions of time (as in an oscilloscope);
    • they are initially initialized by the average value over the entire length;
    • random plot:
      • it is updated with a random shift from the last value;
      • it takes up three-quarters of the screen width;
    • custom plot:
      • it is updated with a custom shift from the last value:
        • custom shift can be positive (the plot grows);
        • custom shift can be negative (the plot shrinks);
      • it takes up half of the screen width;
    • custom source plot:
      • it is updated by either the minimal or maximal value;
      • it takes up half of the screen width;
    • configuration:
      • options:
        • speed of motion of the plots;
        • amount of plot points per screen;
        • coefficients:
          • of updation of the random plot;
          • of updation of the custom plot:
            • in the inactive mode;
            • in the active mode;
  • game stats:
    • metrics:
      • percentage of time when the distance between the random and custom plots was normal;
      • percentage of time when the distance between the random and custom plots fit within the soft limit;
      • percentage of time when the distance between the random and custom plots fit within the hard limit;
    • types:
      • current;
      • best;
    • storing the game stats in the FlatDB database:
      • regular saving with a certain period;
    • configuration:
      • options:
        • amount of points per screen for checking the distance between the random and custom plots;
        • limits of the distance between the random and custom plots:
          • soft limit;
          • hard limit;
        • period of saving of the game stats;
  • pause mode:
    • stopping of updating:
      • of the plots;
      • of the game stats;
  • drawing:
    • drawing of plot boundaries;
    • drawing of plots;
    • drawing of a type of distance between the random and custom plots:
      • normal distance;
      • distance that fits within the soft limit;
      • distance that fits within the hard limit;
    • drawing of the game stats:
      • dynamic width of the stats labels:
        • width is selected by the maximum of the current and best values;
      • delay of updating of the best stats:
        • update starts only after all initial values of the custom plot have left the screen;
    • drawing of the pause mode;
    • support of resizing of the game window;
  • game configuration:
    • loading from a JSON file;
    • validation via the JSON Schema.

Repository

Link: https://github.com/thewizardplusplus/pwm-simulator/tree/v1.5.

Content: code.

License: MIT.

Screenshots

Game window