Programador usa um exploit para criar o jogo Pong na dock do macOS

19 Comentários

A criatividade não tem limites e os programadores não se conformam com o que existe, estão sempre a tentar quebrar as regras instaladas. Conforme veremos, até um ícone na dock do macOS é motivo para desafiar a lógica, afinal, usar este pequeno campo de informação para criar um jogo… é, no mínimo, curioso!

Sardesai, um programador iOS, trouxe o jogo Pong à barra de ícones no sistema operativo dos Macs.

Imagem do jogo Pong na dock do macOS usando os ícones


Pong na dock do macOS

Como sabemos, os Macs não são as máquinas talhadas para os jogos. Na verdade, existem muitos jogos para macOS, incluindo grandes títulos, e ano após ano vemos a Apple cada vez mais focada nesta área. Assim, quem sabe, se com a nova arquitetura Apple Silicon, que mostrou o seu poder nos processadores M1, a empresa de Cupertino não aumenta o seu interesse no segmento gaming.

Apesar dos apesares, há sempre quem goste de romper com o convencional. Assim, um programador para iOS, Neil Sardesai, criou um pequeno, mas muito popular, jogo num ícone posicionado na dock do macOS.

O feito é notável e permite que o utilizador se divirta a jogar Pong:

Segundo o programador, este “truque” usa um exploit possível graças ao AppKit, que permite em particular personalizar os elementos gráficos do macOS. Como podemos ver acima, o jogo corre muito bem e parece suave, jogável com suporte do rato do dispositivo.

Para já, só o criador pode tirar proveito deste pequeno ato de programação. Então, esperemos que um dia destes ele possa partilhar com a comunidade.

Comentários

19

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Filipe C
    Filipe C

    Usa um exploit?? ou usa o NSDockTile?

    1. Avatar de Vítor M.

      Ele ainda não publicou o trabalho (pelo menos até ao momento), mas pelo que parece, ele usou uma “falha” no NSDockTile. Isto porque o NSDockTile permite a representação visual da app no seu ícone que aparece na dock. Ele conseguiu aliar a isso a ação, isto é, usar o rato para criar jogabilidade.

      1. Avatar de eurodoid
        eurodoid

        és tu que estás a assumir que usou uma falha, mas há uma grande diferença entre falha na API e usar a API numa maneira diferente. Como exemplo a API possibilita a actualização do icon na Dock representando o conteúdo duma janela.

        1. Avatar de Vítor M.

          A API não diz que podes fazer o que foi feito. E repara como descrevi a palavra “falha”, como coloquei entre aspas, poderá ser o usar de outra forma utilizando uma possibilidade até agora não documentada.

          1. Avatar de eurodoid
            eurodoid

            A API diz explicitamente que se pode actualizar o icon na Dock, é tudo uma questão de frequência de actualização e de vontade do programador.
            Aliás ainda me lembro do tempo do Steve Jobs em que ele apresentou a novidade de minimizar a janela dum filme para a Dock e o filme continuar a correr na dock. Mais tarde a aplicação do quicktime deixou de fazer isso, mas a API que permite isso no Dock continua a existir.

          2. Avatar de Vítor M.

            Mas daí a poderes usar o rato para interagir, não me parece que esteja descrito na API. Essa é a diferença que realça esta ação.

          3. Avatar de Raimundo Nonato
            Raimundo Nonato

            Geralmente discordo dos Trolls, mas o FIlipe está correto. Nem mesmo usando “falha” entre aspas seria apropiado.

            https://developer.apple.com/documentation/appkit/nsdocktile

            A própria documentação fala: ” Draw the tile content yourself.

            If you decide to draw the tile content yourself, you must provide a custom content view to handle the drawing.”

            Ou seja, pode ser qualquer coisa, até mesmo um jogo.

            Eu reescreveria como: “Desenvolver faz jogo na dock do MacOS”

            Entretanto admito que nem eu teria clicado na notícia – HAHAHAHAHA

          4. Avatar de Vítor M.

            É a tua opinião, respeito, mas pelo que percebi, não está designado que pode ser colocado um jogo, mas sim uma miniatura da app. Basicamente ele foi mais além do que criar um ícone com a miniatura, ele deu-lhe ações que não estariam descrita na API, como usar o rato para controlar uma ação dentro do ícone. 😉

          5. Avatar de eurodoid
            eurodoid

            Vítor M.,
            uma aplicação não se faz obrigatoriamente só com uma API, pode ser feita com dezenas de APIs. A interação com o rato não é nada do outro mundo, apenas requer a aplicação saber a posição do rato no ecrã e a posição do icon, não tem nada a ver com as APIs da Dock.

          6. Avatar de eurodoid
            eurodoid

            Vítor M., até posso dizer mais. Olhando para o código doutra aplicação do mesmo autor, que tem comportamento semelhante (apesar de não ser um jogo), ele determina a posição do rato no ecrã via funções de acessibilidade do sistema, o que requer que o utilizador autorize o acesso da aplicação a essas funcionalidades.

          7. Avatar de Raimundo Nonato
            Raimundo Nonato

            Vitor, com todo respeito, não é uma opinião. É um fato. Está na documentação. Talvez aches que é uma opinião porque não és programador. Compreensível, porém incorreto.

          8. Avatar de Vítor M.

            Pode ser, não acho que esteja, ora mostra na documentação onde está isso?

          9. Avatar de Raimundo Nonato
            Raimundo Nonato

            Documentação:
            https://developer.apple.com/documentation/appkit/nsdocktile

            Trecho:
            “…you use the methods of the class to make the following customizations:

            – Badge the tile with a custom string.

            – Remove or show the application icon badge.

            – Draw the tile content yourself.

            If you decide to draw the tile content yourself, you must provide a custom content view to handle the drawing.”

            “Draw the tile content yourself” – ou seja, você pode renderizar a imagem que você quiser lá, inclusive, um jogo, por exemplo.

            “If you decide to draw the tile content yourself, you must provide a custom content view to handle the drawing.” – Nesse trecho a documentação deixa claro que você tem plenos poderes para renderizar o conteúdo que quiser.

          10. Avatar de Raimundo Nonato
            Raimundo Nonato

            Só para deixar claro. A notícia não é irrelevante, eu diria o contrárrio, é interessante de ver e imaginar que alguém explorou essa possibilidade, embora as limitações de se jogar em um dock.

            Acredito que o calor da discussão foi provocado pelo criterioso olhar de quem procurou realmente ver um “exploit”, uma falha ou uso de API’s internas da Apple.

          11. Avatar de Vítor M.

            Mais um hack para usar algo para o qual a tecnologia não havia sido pensada.

  2. Avatar de Jota
    Jota

    O iOS está todo roto!

    1. Avatar de eurodoid
      eurodoid

      há quem não saiba ler…

  3. Avatar de Jonny
    Jonny

    Da para jogar MineCraft?

    1. Avatar de eurodoid
      eurodoid

      Há quem já tenha posto o Doom… de modo que é uma questão de força de vontade e imaginação!