Game

Jan 7, 2018
Game
  • ArcadeBoard API - Game

    The Game class is found in be.maximvdw.arcadeboard.api.game.Game


    Extending the game class(top)

    The first step is to extend the game class. This will force you to implement a constructor and implement the "game loop" and game events (start/stop).

    Annotating your extended class(top)

    The next step is to provide some information for your game. This is done by annotations that are read by the plugin when the game is loaded into memory.

    The required information:

    • GameName (be.maximvdw.arcadeboard.api.annotations.GameName)
      A name for your game following the requirements of [aA-zZ] (only letters)
    • GameAuthor (be.maximvdw.arcadeboard.api.annotations.GameAuthor)
    • GameVersion (be.maximvdw.arcadeboard.api.annotations.GameVersion)
    • GameDescription (be.maximvdw.arcadeboard.api.annotations.GameDescription)
    The optional information:
    • GameDisplayName (be.maximvdw.arcadeboard.api.annoations.GameDisplayName)
      A fancier name than the GameName (can contain numbers and spaces, ..)
    • GameControls (be.maximvdw.arcadeboard.api.annotations.GameControls)
      Description of your controls
    • GameScreenshots (be.maximvdw.arcadeboard.api.annotations.GameScreenshots)
      A string array of links to screenshots of your game
    • GamePermalink (be.maximvdw.arcadeboard.api.annotations.GamePermalink)
      A link to an information page of your game
    • GameVideos (be.maximvdw.arcadeboard.api.annotations.GameVideos)
      A string array of links to videos of your game
    • GameConstraint (be.maximvdw.arcadeboard.api.annotations.GameConstraint)
      A constraint given to your game. The game will not start when this constraint is not met. Examples would be a server version, ArcadeBoard version (when you use new features), ...
    • GameConstraints (be.maximvdw.arcadeboard.api.annotations.GameConstraints)
      A list of multiple constraints

    Changing the game settings(top)

    The game has some default settings. However you will most likely want to change these. Settings range from things like the minimum amount of players to things like aimed FPS and resource pack requirements.

    Game events(top)

    A class extending a Game will have to implement all the game events. External plugins can just use the Bukkit events to catch these events.

    Starting a game(top)


    • When a player wants to start a single player game, the Game is constructed and directly afterwards the GameStartEvent (onGameStart method) is fired.
    • When a player wants to start a multi player game, the Game is constructed but the players are put in a lobby (GameLobby). When the game starts (by reaching a minimum amount of players or when all players are ready) the GameStartEvent (onGameStart method) is fired.

    Stopping a game(top)


    • A game is stopped when there aren't enough players. The GameEndEvent (onGameEnd method) is fired.
    • A game is stopped when the "stop()" method is called. The GameEndEvent (onGameEnd method) is fired.

    Player leave(top)


    • The GamePlayerLeaveEvent (onPlayerLeave method) is fired when a player leaves. This event is triggered before the GameEndEvent in case the player causes to trigger the minimum amount of players

    Game loop(top)

    Once you have the game settings ready, it is time to program inside the game loop. Continue on this wiki for information on how to draw on the Canvas of a player.
  • Loading...
  • Loading...