[WIP] Piano Tiles (Don't tap the White Tiles, etc..)

Discussion in 'WIP and Development Status' started by AoH_Ruthless, Jun 28, 2014.

?

What do you think of the idea?

  1. Neat Idea! This would be cool to see on BukkitDev.

    81.8%
  2. Meh.

    18.2%
Thread Status:
Not open for further replies.
  1. Offline

    AoH_Ruthless

    Hello! Many of you may be familiar of the widely popular mobile app known as PianoTiles. For those of you that don't know, PianoTiles (or its numerous variants, such as "Don't tap the White Tiles"), there are two types of square 'tiles', black and white. The objective of the game is to complete a 'board', only hitting the white tiles. In many modes, you lose if you touch a white tile. The black tiles are randomly placed each game. In a 'board', there are rows of tiles, with several white tiles and one black tile.

    So, I am attempting to recreate this game in Minecraft, as a minigame. If I get enough positive feedback on the idea, I will upload it publicly as a BukkitDev project.

    How 'scoring' will work: The player has to either click the correct black block, or jump on it (configurable), and score is based on the time completed. There will be some sort of Configuration as to what scores warrant what rewards. There will most likely be economy support.

    Planned Features:
    - Start the Maven project
    - Create the tile generator, which randomly places the black tile. (90% complete)
    - Arena setup, joining, etc
    - Commands, Permissions such as creating/removing arenas, locations, joining/leaving, etc..
    - Auto-Updater
    - Configuration for each arena (Approximately 50% complete for Alpha)
    - Create a Github Repository
    - Economy Support (?)
    - Scoreboard of top scores per-arena (?)
    - 3 of the 5 Piano Tiles gamemodes (Classic, Arcade, and Zen)
    - Different Game 'strategies' (Jumping on black tiles, clicking and moving, or teleporting to them and clicking)

    If the project becomes public, it will either fall under the MIT License or the v3 of the GPL.

    Here is the tile generator in action (with configurable width of 6 blocks and length of 15):

    [​IMG]

    If you could leave feedback on the project, ideas, or general comments, that would be very appreciated :)

    Reserved for future use if necessary.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 9, 2016
  2. Offline

    Assist

    cool idea. I'm gonna try out the original game now :p
     
    AoH_Ruthless likes this.
  3. Offline

    mbaxter ʇıʞʞnq ɐ sɐɥ ı Retired Staff

    Spam murdered ruthlessly
     
  4. Offline

    AoH_Ruthless

    mbaxter
    Thank you for removing the spam, I get the joke :p

    Updates:
    The project is now on BukkitDev and is awaiting approval (link to project page will be provided upon approval)
    Because of my decision to upload the project publicly, there is now a GitHub repository, and the project follows Open-Source Definition under the MIT license. Pull Requests are not welcome at this time while the main project is not even close to completion yet, but they will be allowed at a later point in time.

    GitHub Repo: https://github.com/AoHRuthless/PianoTiles
     
  5. Offline

    Phasesaber

    I was thinking about doing something like this, it would easy just to check if the block under the player was wool with a data of 0. And you could just hide other players so you could have 1 arena.
     
  6. Offline

    AoH_Ruthless

    Phasesaber
    That would not work. Because as soon as you spawn, you will have to move across a white wool block at some point. Even in mid jump, the player's location of the block under them at some point will be a white wool, not necessarily at the apex of their jump.

    I plan to add support for multiple arenas, because each arena has one game-type only. One arena cannot support all the piano tiles gametypes. Therefore, multiple arenas are required, and sometimes different server admins will want different lengths and widths of different games, so they can do that with multiple arenas. Perhaps there will be vanishing support so multiple players can play the same game at the same time, but likely not a feature in Alpha.
     
  7. Offline

    Phasesaber

    AoH_Ruthless You could check on a player move event and see if p.getLocation().add(0,-1,0).getBlock().getType().equals(Material.WOOL)
    might not work 100%, I'll check later.

    And for the vanishing players, when a player joins, go through all the players online and do p.hidePlayer(o), and when the player leaves, p.showPlayer(o).

    I never see people use that, but it's so useful. It's great for making lobbies in one world. Also for spectators.
     
  8. Offline

    AoH_Ruthless

    Phasesaber
    • It's easier to retrieve the block under a player than that, using relative faces.
    • Use == to compare enumerations
    • This check would not work because both white and wool blocks are Material.WOOL. It would be better to also check durability (the byte data of the block).
    • I'm not saying I'm having trouble with it, mate; I am trying to support multiple ways of playing this game. I would rather avoid the PlayerMoveEvent to avoid as much overhead as possible, but if it's what I have to do, I will.
    • Vanishing is not that simple; you also have to keep track of who was vanished from the player, vanish others when they come online, unvanish in-case of reload or restart, and it's a two way street. It results in being a hassle and not a big feature, which is why it is so rarely seen in public development, imo.
    • Multiple arenas will have multiple lobbies. Spectating is not really a planned feature for alpha, as this game is trying to simulate Piano Tiles first and foremost, in which you can't really spectate. There's priorities, but I'll look into it.
     
  9. Offline

    Phasesaber

    AoH_Ruthless
    * I never use relative faces. No real reason, just cause.
    * I've heard it's better to use .equals for enums. (Tons on these forums)
    * I was just giving an example, of course you would have to check for the Data Value. XD
    * Makes sense, I wish Bukkit would just add a PlayerLandEvent that could get the block the player landed on, that would make life easy. (Might make that later
    * Didn't think about that, for what I'm using it for, I have the player hide certain players when they join the game.
    * Yeah, spectating isn't really needed for it. I hate spectating in games my self.
     
  10. Offline

    AoH_Ruthless

    Phasesaber
    I don't understand your logic more than half of the time ...
    1. No real reason, just cause? That's a pretty awful excuse ...
    2. I have never heard that ... you give no evidence to support it, but use == is null safe during enum checks (where both are compatible), and .equals() defers to ==, anyways.
    3. Not really an excuse, if you are going to make an example you should put time into it.
    4. Why would Bukkit add a PlayerLandEvent? PlayerMoveEvent encompasses what would be a PlayerLandEvent ... Just because it isn't easy doesn't mean it's awful.
    5. --
    6. Spectating is good for certain minigames, but in my opinion it isn't served here, but as I said I will look into it as a feature for beta, or later alpha stages.
     
Thread Status:
Not open for further replies.

Share This Page