Foi-me chamada a atenção que gamesindustry.biz revelou em Março passado o relatório de receitas geradas na industria dos videojogos. E como vem sendo apanágio a anos, as consolas lideraramm as receitas.
Esta situação tinha-me passado em claro… e sinceramente acho-a bastante relevante para se perceber o estado do mercado e a posição das consolas no mesmo. Nesse sentido, o estudo revelado pela gamesindustry.biz ée realizado pela prestigiada Newzoo, mostrou-nos que o mercado de videojogos nas consolas e PC geraram em 2022 uma receita de 92,3 biliões de euros.
A fatia de leão foi para as consolas, que ficaram com 56,2% das receitas geradas, ou um valor de 51,8 biliões (28% se contabilizarmos os jogos para aparelhos moveis).
O PC por seu lado, apesar de um possuir um mercado estimado em 1,83 biliões de jogadores, ficou em ultimo, gerando no mesmo mercado de jogos físicos e digitais, um total de 38,2 biliões. Ou seja, 41,3% das receitas (21% se contabilizarmos os jogos para aparelhos moveis).
Gerou ainda uns extra 2,3 biliões em jogos de browser, algo não disponível nas consolas.
Perante estes resultados, a conclusão do estudo foi que, certamente, perante os valores gerados, ainda teremos consolas durante muito tempo no mercado, esperando-se um aumento das receitas do lado das mesmas, afastando-as mais do PC, dado que como a geração ainda se encontra numa fase inicial, o atual momento de mercado ainda não atingiu os picos de valores de utilizadores das mesmas. E note-se que a publicação é de Março, tendo o mercado das consolas aumentado significativamente desde então.
O estudo mostra ainda que houve face a outros anos uma quebra dos valores de receitas nas consolas devido a uma quebra no numero de lançamentos, e que mais e mais editores estão a mudar dos AAA e AA para serviços de subscrição. Não foi porém estabelecida qualquer outra ligação entre as duas situações.
Sendo que o mundo é governado pelo dinheiro, garantidamente estes valores de receitas garantem que as consolas continuarão a ditar os jogos que sairão para o mercado.
Num mercado paralelo, o dos smartphones, diga-se que os mesmos continuam a ser reis e senhores, tendo sozinhos realizado uma receita mais ou menos equivalente às Consolas e PC somados.
O mais impressionante nesses números é que o mobile não conta com receita de propagandas. É de se imaginar qual a receita total desse segmento.
Nem sei… E nem me interessa. O número de jogos mobile que acho minimamente interessante é perto de zero.
Todos ou limitam a jogabilidade a situações a pagar, ou deixam jogar mas precisas de pagar para evoluir decentemente.
E tanto num caso como no outro, o que pagas por um jogo Full price não te permite grande coisa.
Ainda me lembro quando certos analistas diziam na geração da PS3, que essa seria a ultima ou penúltima geração de consolas, que estas estavam mortas e que o futuro era mobile.
Com as pessoas a pagarem assim é.
Repara que as receitas das consolas e PC são boas. Mas um jogo AAA e AA custa os olhos da cara.
Há empresas como a Sony que estão bem nesse mercado e não tem problemas com isso.
Outras como a Microsoft que querem mudar o mercado para os tornar em algo igual aos smartphones, mas controlados por eles dado que nos smartphones não conseguiram nada.
Em parte fico contente com o PC estar ali em último, significa duas coisas, uma é que as consolas e o conceito que representam, está mais forte que nunca, a outra é que um mercado de consolas forte significa que a estratégia da Microsoft é um absoluto falhanço, o que torna o seu objectivo de matar o mercado de consolas cada vez mais hercúleo.
Lembro-me particularmente de se rirem de mim quando eu dizia que a nível de catálogo, o PC anda a reboque das consolas, portanto esses números dão-me vontade de rir.
Se o PC como plataforma de jogos estivesse confrontando ali a abertura das receitas de cada um dos consoles, Xbox SX, Xbox SS, PS5 e talvez até os de geração passada talvez as pessoas tivessem outra impressão mesmo se tratando dos mesmos números no final das contas. O PC segue firme com crescimento positivo inclusive quando comparado ao mesmo período do ano anterior.
Por acaso se leres o relatório… Caiu.
E como referido no artigo deve desgastar ainda mais das consolas com o avanço da geração.
Me referi somente à categoria “download/ boxed pc games”, sem considerar o “browser pc games”. E pelo gráfico está com +1,8% de YoY (ano contra ano).
Eu peço desculpa… Estive a ver o relatório e quem caiu foram os smartphones, não o PC.
Tens razão no que dizes.
Sem problema.
Mário, algumas dúvidas surgiram desse fatiamento do mercado, tipo qual a estimativa de usuários do mercado de Mobile, à essa época? Onde ficaram as receitas de serviços não vinculados a marcas de console como Apple Arcade, Prime Games/Luna e outros tantos de Streaming e etc?
Também estou a presumir que as receitas do Switch, nessa estatística, também estejam incorporado no mercado de consoles, e que as receitas com os PCs portáteis de jogo (steam decks e clones) no mercado de PCs. Sendo a parte Mobile restrita aos basicamente ao mercado de Smartphones.
Imagino que o de consoles não ultrapassem os 300 milhões de usuários, e talvez até fique pelos 200 milhões e nem a ultrapasse isso se considerar apenas residências com consoles como núcleos únicos de consumo…
No mercado de PC gamer, esse resultado relativamente pífio para o tamanho potencial de consumo dele, só posso atribuir (opinião) a apenas uma pequena fatia dele ser realmente “gamer”, ou que no geral têm hábitos de menor consumismo (não compram em lançamentos) ou mesmo de pirataria, é só o que consigo imaginar, já que é um mercado potencialmente maior que o dos consoles.
Q1 – penso que essas receitas estão incluídas nos smartphones e/ou PC.
Q2 – Penso que sim, mas o relatório:
https://newzoo.com/resources/blog/the-games-market-in-2022-the-year-in-numbers
Não é claro quanto a isso. E não fala da Nintendo ou da Switch.
Q3 – Não sei qual o mercado das consolas e muito menos qual o mercado realmente ativo. Porque nem todos os possuidores são verdadeiramente ativos.
Mas nessa perspectiva o mercado consolas é bem menor que 200 milhões.
Mário, te enviei o player por e-mail.
Veja as instruções lá.
Irei ver mal possa. Depois digo algo.
Ainda não o saquei… Estou fora e só vou para caso hoje ao final do dia… Logo devo sacar!
Tudo bem. Achei que estava com medo de rodar meu programar..rs.
Diz-me.. referiste isto:
Como meço isto… Meto o programa numa pasta, com 8 videos, 4 Full HD e 4 4K, e mando ler um a 1080p e um a 4k e ele dá-me os fps máximos de leitura do video, fazendo depois o mesmo mas com 4 videos?
O meu SSD do PC é um Corsair MP400 que anuncia 3.4 GB/s
Sim. Mais ou menos isso. Lembrando que você pode passar o caminho absoluto ou relativo do vídeo para o programa. Não precisa estar na mesma pasta.
A resolução de entrada que determina a resolução. Mesmo que um vídeo não tenha tal resolução , ela irá fazer downscaling ou upscaling.
Ainda tenho de testar melhor o teu programa, mas isto aparenta ter ainda problemas com a utilização do hardware, e acima de tudo varia muito com o codec e bitrate usado.
Com um video 1080p isto mediu 149 fps, mas o estranho foi que a utilização do CPU estava a 28%, e o SSD nem registava (0%). gPU a 40%
Com um video 4k isto ficou-se pelos 35 fps, com o CPU a 43% e o SSD igualmente a 0%.
Com 4 videos 1080p, a coisa foi muito estranha… O CPU chegou aos 98%, mas com 1 fps… E o SSD, a 2%. GPU creio que a 12%. Mesmo na altura em que dava mais fps, o SSD não registava nada demais!
Não testei com 4 videos 4K.
Agora devido a ter-me atrasado no acesso ao ficheiro quebrei foi uma regra fundamental de segurança… nunca deveria ter executado isto sem ser numa máquina virtual. E não o fiz!
CPU 3900x 2 núcleos – 32 GB RAM DDR4 3200 – SSD Corsair MP400 – RTX 3090
Eu entendo sua preocupação com segurança, contudo, não tem nenhum malware, te asseguro. O exe ficou grande pois estão todas as dll embutidas nele, inclusive o python.
Sobre ficar a 1 FPS , acredito que possa ser memory leak da lib de leitura. Utilize o parâmetro -o para utilizar o opencv .
Você tem dois processadores Ryzen 9 3900x?
Talvez a limitação seja o SSD, pois o meu é 7000 MB/s de leitura.
Sobre o Ryzen, eu queria dizer 12 núcleos… Faltou o 1.
Eu conto em breve tirar os dois HDDs que tenho em RAID e meter outro NVME. Nessa altura passo este para segundo e meto um mais rápido em primeiro. O meu PC foi montado na altura do COVID e havia pouca disponibilidade de hardware, pelo que o SSD sofreu.
Mas o SSD não acusou ocupação…
Entendi. Seu processador tem mais ou menos o mesmo poder de processamento do meu. Minha ram é 16 GB porem DDR5 4800.
Acredito que a ocupação do SSD é bem no inicio, ao carregar os vídeos. Se nunca apresenta, não sei o que pode ser, pois, é óbvio que o programa está a ler do disco.
Outra coisa, nos meus testes eu utilizava mais os vídeos de capturas, eles são lossless com codecs mais leves, pois possuem compressão bem baixa. São arquivos grandes.
Ui… Afinal tens um sistema em casa até melhor que o meu.
Eu tenho aqui um PC melhor com hardware deste ano (só não é melhor no GPU que é uma NVIDIA Quadro), mas como é da empresa não posso lá correr este tipo de coisas.
Acho que descobri. O taskmanager não mostra o disco sendo utilizado corretamente, mas o monitor de recursos sim.
Abra o monitor de recursos e vá na aba disco.
Eu estava no monitor de recursos… Creio. Logo dou mais feedback.
Numa nota à parte, esse PC ainda está com o Windows 10… e não está a conseguir instalar o Windows 11.
Acho que o problema é o RAID, pelo que o irei formatar, e como já referi trocar os dois HDDs em RAID por um outro NVME. Será nessa altura que meterei o atual em segundo, para meter o novo mais rápido em primeiro.
Mas quer-me parecer que o RAID me causa alguns problemas de performance nos discos, isto apesar de o PC funcionar bastante bem. E não é a toa que o Windows 11 não o suporta nativamente!
Eu testei só no windows 11. Mas não trocaria seu Raid só por causa desse
programa, só de você quiser mesmo.
Não é por causa do programa… é o Windows 11… Ele não faz upgrade (aborta ou aos 86 ou aos 99%, dependendo de como forço o upgrade) e creio que o problema é o RAID.
Novo teste. Opção -o
1 video HD – 150 fps, SSD 100%, CPU 28%, GPU 28%, pico 82%.
1 Video HD – Segunda passagem, 150 fps, SSD 2%, CPU 28%, GPU 28%, picos 100%.
4 videos HD – 40 fps, SSD 2% , CPU 46%, GPU 19%
4 videos HD – Segunda passagem, 40 fps, SSD 2% (???), CPU 46%, GPU 19%
1 video 4K HDR – 18 fps, SSD 0% 46% CPU, GPU 7%
4 videos 4K HDR – 8 fps, SSD 0%, 48% CPU, GPU 3%
Os videos cabem na RAM, pelo que o SSD não faz real esforço para os ler.
Mas o que me chama a atenção é ter imensos núcleos IDLE ou com pouco uso, quando o vídeo está na RAM. O que está a limitar os fps?
Os vídeos são qual extensão / codec?
Eu testei com AVI / ULH0 e MP4 / HEVC.
Quando é MP4 / HEVC, tenho que usar parâmetro -o pois aconteceu grande memory leak e o FPS cai bastante.
Rodei aqui com -o também:
1 vídeo HD – 150 FPS – CPU 30% – SSD 0%
4 vídeos HD – 70 FPS – CPU 70% – SSD 80 MB/S
1 vídeo 4K ( -wi 3840 -hi 2160) – 40 FPS – CPU 30% – SSD 160 MB/S
4 vídeo 4K ( -wi 3840 -hi 2160) – 25 FPS – CPU 50% – SSD 400 MB/S
Me parece que o Windows faz cache dos vídeos. Quando você lê da primeira vez um vídeo, ele
acusa mais leitura. Se repetir, as vezes o disco fica 0%. Desconfio que seja cache do de paginação de memória virtual.
Fiz um teste também desligando a memória virtual. O windows continua a fazer um cache quando se roda pela 2 vez.
Só pode ser um cache na própria memória ram, o que é muito estranho …
É normal ter vários núcleos IDLE, pois cada vídeo é um processo e ocupa um processador lógico.
Outro processo é usado para desenhar os frames e tocar o som.
Outro processo é usado para sincronizar as tarefas, ele ve se os frames foram escritos e manda o outro processo desenhar.
Outro processo é criado automatico para compartilhar a memória.
Então você tem 3 núcleos gerais e mais 1 para cada vídeo.
Como seu processador tem 24 processadores lógicos, somente 4 serão usados no mínimo.
Acho que o está a limitar o FPS é a capacidade da lib de leitura de frames.
Faça um teste, execute um vídeo e espere ele acabar de passar, note que não terão mais frames
para ler, mas o player continua exibindo o último frame e o FPS aumenta bastante. Esse FPS deve ser o máximo que o programa
daria sem ser limitado pela leitura no disco. ( 4K no meu fica 280 e Full HD fica 675 )
Com a opção -o, a lib não puxa muito o SSD ( no meu caso aqui o maximo foi 200 MB/S) mas também não aloca muita memória.
Já com a lib padrão, ela puxa muito o SSD ( já chegou a dar picos de 2000 MB/S com 1 vídeo 4K e mais de 4000 MB/S com 4 vídeos 4K) e aloca um monte de memória, então como
ela já carregou muitos frames na memória, me parece razoável que seja mais rápida.
Talvez quando trocar seu SSD, você consiga melhores FPS´s.
Se for o caso mesmo, no meu programa, SSD dá FPS …rs
A questão Tio Hildo é que os videos que uso são pequenos, sejam eles Full HD ou 4k.
Ora isso quer dizer que qualquer dos videos tem um tamanho que o SSD lê na totalidade para a RAM em menos de 1 segundo. Logo o SSD nunca pode ser o gargalo aqui. A leitura do SSD quando acontece durante a reprodução limita-se a 1/2/3 MB/s ou algo assim. Os videos são pequenos.
Por exemplo, um dos videos 1080p tem 160 MB de dimensão. Não sei o codec e nem o Bitrate, mas a qualidade de imagem é excepcional.
Num minuto de tempo, mesmo que o video fosse sendo lido, isto dá 2,66 MB/s de leitura. O SSD não pode estar a ser o gargalo!
Dado que estou a usar 4 copias do mesmo video, com nomes diferentes, para os testes, mesmo com 4 ficheiros, estamos a falar de uma leitura de 10,64 MB/s. O SSD lê 3.6 GB/s logo o SSD não pode estar a ser o gargalo. De forma alguma!
Não sei o que está a causar a má performance, mas o SSD não é!
Vamos testar em igualdade de circunstâncias:
Vamos usar este video:
https://www.youtube.com/watch?v=LXb3EKWsInQ
Vamos testar igual, sacando-o ambos daqui:
https://youtube4kdownloader.com/download/video/https%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DLXb3EKWsInQ
Escolhe as versões 1080p e 4K com os codecs e containers que entenderes, e diz-me quais vais usar. Vamos também usar 4 copias do mesmo vídeo.
Diz-me o que escolheste e logo saco e testo!
A questão é que a lib irá ler o vídeo comprimido e realizar a descompactação de cada frame da imagem na memória RAM.
Os dados de velocidade do SSD são no mínimo estranhos.
Se for um vídeo Full HD, então teremos 1920 x 1080 x 3 ( para as cores) x 1 ( cada cor um byte, 0 a 255).
Cada frame são 6 MB, se for 60 FPS, são 6 x 60 = 373 MB de dados a cada segundo que devem ser escritos na RAM
para que o Opengl possa renderizar. Essa descompactação tem custo, quanto mais o vídeo for compactado.
Eu entendo que se for menos compactado, mais rápido será para a lib jogar os dados brutos de imagem para o programa,
se for mais rápido, mais FPS.
Esse link do site de baixar vídeos que você me passou não abre aqui. Está barrado.
Te mandei um link no seu e-mail de um vídeo meu lossless. 1GB de tamanho.
Esse você pode usar a lib padrão sem problemas. Aqui deu 180 FPS padrão e 130 FPS com -o.
Eu consegui baixar seu vídeo nesse abaixo, mas ele baixa em qualidade maior sem som. ( tem que ignorar a nova janela e mandar baixar quando o video tocar na outra aba)
https://dwntube.com/
Esse vídeo da Costa Rica, baixado no site acima, Full HD, com parâmetro -o, eu consegui 180 FPS.
O mesmo vídeo com 4K ( colocando -wi 3840 -hi 2160 -o) eu consegui 20 FPS.
Outros testes:
Nesse, tem um link para um vídeo Full HD lossless.
https://github.com/cirquit/trdrop/issues/142
Esse acima, eu consigo 140 FPS com parâmetro -o.
Aqui um link para um vídeo 4K – 60 FPS
https://www.videezy.com/abstract/37577-green-globe-made-of-particles
Esse último, consegui 20 FPS com (-o -wi 4096 -hi 2304)
125 fps!
20 fps.
Não percebo o disparidade do primeiro, e a igualdade do segundo!
Do vídeo do github, o meu deu 140 no máximo mas as vezes ficava a125 também. Tentou esse sem o parâmetro -o?
Sem o -o deu de 270 a 280 .
Acho que varia muito dependendo do codec do vídeo. Uns são mais pesados que outros.
Fiz outro teste aqui. Deixei a lib padrão só carregando os frames do vídeo acima, sem desenhar nada e sem controle de processos. Tudo executando em um loop. Deu 325 FPS do vídeo acima.
Mesmo teste anterior com opencv ( parametro -o) deu 170 FPS.
Me parece que o maior gargalo é na obtenção de frames.
Depois , gasta-se um pouco de processamento na sincronização dos processos, por sua vez, um pouco mais de tempo na cópia dos dados para frame buffer principal e por fim a renderização em si.
Fiz um esquema de como funciona o programa. Talvez esclareça um pouco o que eu estou dizendo ..
Não testei sem o -o. Ando com pouco tempo livre pelo que ontem como almocei em casa testei para não deixar de te dizer qualquer coisa. Mas isto está complicado.
Mas sim, os codecs tem de ter interferência. Um AV9 ou um h264 são incomparáveis. E não sei se o container também não contará, pois a estrutura de um MKV é muito mais complexa que a de um MP4.
OK. Quando tiver tempo faça seus testes.
Confesso que testei mais o programa com os meus vídeos de capturas que utilizam codec´s lossless ( que são mais leves e menos compactados), afinal o objetivo do player é tocar esses arquivos.
Outra coisa é que estou usando python, que na teoria é mais lento que um programa puramente em C. Apesar de eu usar vários elementos otimizados do python em baixo nível, como numpy, mesmo assim existe um overhead.
Eu cheguei até a traduzir e compilar a parte do render do Opengl em Cython, porém não obtive ganhos…
Tenho de sacar o vídeo que me partilhaste e indicaste no mail… Ainda não pude!
Adendo:
Mas acho que tem razão, o gargalo não deve ser o SSD, apesar de que quanto mais melhor. Outro ponto também é a taxa de leitura sustentada. Essas informações de velocidades , são em geral, mais velocidades de pico.
Ontem não tive oportunidade de testar nada. A ver hoje.
Aguardando …