Liberdade Também nos
       Games!

              #DiaDebian RJ 2010
               USS (Vassouras)


Diego “Dukão” Moreira Guimarães
@diegodukao
http://diegodukao.net
                                   1
“Please allow me to introduce myself”



● Diego Moreira Guimarães (Dukão)
● Bacharel em Ciência da Computação

● Mestrando em Computação Visual

● fale@diegodukao.net

● http://diegodukao.net

● @diegodukao




                                        2
3
4



O que as pessoas costumam pensar quando ouvem falar sobre jogos para Linux?
5



(Mines e AisleRiot Solitaire) Jogos simples e clássicos. “Sem graça” para alguns.
6



(Frozen Bubble) Alguns bem divertidos, mas ainda bem simples.
7



(Sudoku) Mas será que só existem mesmo esses jogos pra Linux?
8



Também existem aqueles que são apenas “clones” livres de jogos consagrados.
9



(Secret Maryo Chronicles) “Razoavelmente” inspirado no Mario do Nintendo.
10




(Secret Maryo Chronicles) Essa versão mais nova é menos parecida, mas a jogabilidade ainda é a
  mesma.
11




(Wormux) Clone livre de Worms.
12




(Hedgewars) Outro clone de Worms. Muito bom! Melhor que o Wormux
13




(Pingus) Clone de Lemmings.
14




(Frets on Fire) Clone de Guitar Hero. Porém, este é especial. Ainda será citado outras vezes nesta
  apresentação.
15




“Ah, mas e os jogos famosos? De empresas grandes? Eu quero esses!”
16




(Doom 3) O que poucos sabem é que alguns dos jogos mais famosos possuem versões para Linux.
17




(Unreal Tournament) As próprias empresas que lançaram esses jogos desenvolveram versões ou
  atualizações que permitem que eles sejam jogados no Linux.
18




(Civilization) Normalmente, basta entrar no site da empresa e baixar uma atuallização que vai
  permitir que o jogo seja instalado na distribuição de sua preferência.
19




(Medal of Honor) É claro que para isso é necessário ter o cd/dvd original de instalação do jogo.
20




(Half Life 2) Alguns jogos mesmo não possuindo versões oficiais para Linux, rodam perfeitamente
  com o auxílio do WINE (software que permite rodar programas de Windows no Linux)
21




“Mas eu não compro jogo. Só baixo do torrent? Como faço?” Aí complica. Por que ao invés disso
  você não testa alguns jogos livre?
22




(Assault Cube) Existem jogos para todos os gostos. Principalmente para os fãs de tiro em primeira
  pessoa.
23




(TORCS) Jogos de corrida também estão presentes.
24




(Tremulous) Todos eles são gratuitos, ou seja, você não precisa de crack, serial ou coisa parecida
  para poder jogar.
25




(Frets on Fire X) Além disso, por serem livres, você pode alterá-los como quiser. O FOF é um ótimo
  exemplo de jogo altamente customizável. Aqui ele está com um tema do Guitar Hero.
26



(Frets on Fire X) Aqui com um tema do Rock Band. Além disso você pode adicionar músicas novas.
  Essa customização torna possível, por exemplo, lançar um “Guitar Hero” da sua banda. Com as
  suas músicas e um tema feito por você, Já pensou nisso?
27




Outra vantagem desses jogos é que eles são extremamente leves. Então é possível se divertir com
 máquinas mais modestas.
28




“Jogos livres? Gratuitos? Como ganhar dinheiro com isso?”
29



Cinco pequenas empresas pegaram seus jogos principais e disponibilizaram todos para venda em
  um pacote chamado Humble Indie Bundle.
30




(World of Goo) Todos os jogos possuíam versões para Windows, Linux e Mac.
31




(Aquaria) E não tinham DRM, ou seja, você podia baixar e instalar onde e quantas vezes
  quisesse.
32




(Gish) Mas o melhor de tudo era o preço: quanto você quisesse pagar.
33




(Lugaru) Ou seja, se você quisesse pagar US$1 pelos 5 jogos, tudo bem. Se quisesse pagar
  US$1000, tudo bem também.
34




(Penumbra) O dinheiro arrecado seria dividido entre as cinco empresas e duas instituições de
  caridade.
35




(Pessoas jogando Penumbra) O Humble Indie Bundle ficou disponível para venda apenas uma
  semana.
36



E arrecadou mais de US$1.000.000. Interessante notar que os usuários de Linux tiveram o maior
  valor médio de doações: US$14,52. Isso mostra que as empresas de games podem estar
  perdendo dinheiro por não lançarem versões dos seus jogos para Linux.
37



O sucesso superou tanto as espectativas dos seus realizadores, que, para comemorar, eles abriram
  o código de quatro dos cinco jogos do Bundle.
38




“Ok, quero fazer jogos! Por onde começo?” Existem várias opções de tecnologias livres para
  desenvolvimento de jogos multiplataformas.
39




A Löve é um framework para jogos feito em Lua.
40




PyGame é uma biblioteca Python para jogos.
41




O Frets on Fire foi feito com a PyGame.
42




Para jogos 3D, a OGRE é uma ótima escolha.
43




(SumoCheckers) O pessoal da Devoid está desenvolvendo um jogo utilizando a OGRE. É
  basicamente um jogo de damas com lutadores de sumô.
44




(SumoCheckers) Para “comer” uma peça, você deve lutar contra ela. Maiores informações:
  www.devoid.com.br
45




(SumoCheckers) No site deles tem um post sobre como foi portar o jogo para Linux. Muito útil para
  quem quer mexer com a OGRE.
46




O RPG Torchlight, a venda na Steam, também foi feito com a OGRE.
47




A engine do Quake 3 também é livre.
48



E você ainda pode se basear no código dos jogos do Bundle para começar a fazer o seu.
Não Subestime
Física e Matemática!

                                                                          49




Quer fazer jogos? Então, por favor, preste atenção nos próximos slides.
“Matemática e Física não
  são importantes!”


                                                                                     50




Esse é o pensamento que grande parte dos alunos e profissionais de computação têm. Se por
  acaso você pensa assim...
1 - Você está enganado




                         51
1 - Você está enganado

2 - A culpa não é sua



                         52
A matemática otimiza seu código




                                  53
A matemática otimiza seu código

Exemplo:
  Somar os números de 1 a 100




                                     54
A matemática otimiza seu código

Exemplo:
  Somar os números de 1 a 100


soma = 0
for i in range(101):
   soma += i




                                     55
A matemática otimiza seu código

Exemplo:
  Somar os números de 1 a 100


soma = 0
for i in range(101):
   soma += i

>>> 5050



                                     56
A matemática otimiza seu código

Exemplo:
  Somar os números de 1 a 100


soma = (100 * 101) / 2




                                     57
A matemática otimiza seu código

Exemplo:
  Somar os números de 1 a 100


soma = (100 * 101) / 2

>>> 5050




                                     58
A matemática otimiza seu código

Exemplo:
  Somar os números de 1 a 100


soma = (100 * 101) / 2

>>> 5050

Progressão Aritmética
Soma de P.A.: Sn = (n (A1 + An)) / 2


                                       59
Quer mesmo fazer jogo?



Você não vai chegar a lugar
algum sem matemática e FÍSICA!



                              60
Programação de Jogos


Gravidade?




                        61
Programação de Jogos


Gravidade?
Detecção de colisão?




                         62
Programação de Jogos


Gravidade?
Detecção de colisão?
Atrito?


                         63
Programação de Jogos


          Gravidade?
          Detecção de colisão?
          Atrito?
    Cordas, molas, dinâmica de fluidos...

                                                                                      64




Esses tópicos não vêm prontos. Eles precisam ser implementados por você. E para isso você
  usará bastante física e matemática.
Programação de Jogos


Você usa Matemática e Física o
tempo todo!




                                 65
Por que a culpa não é sua?




                             66
Por que a culpa não é sua?

Porque te ensinaram errado!




                              67
Por que a culpa não é sua?

Porque te ensinaram errado!




                              68
Por que a culpa não é sua?

Porque te ensinaram errado!




                              69
Por que a culpa não é sua?

    Porque te ensinaram errado!




                                                                                       70



A maioria dos nossos professores costumam simplesmente passar a matéria sem nos dar um
  exemplo prático do seu uso. Por isso grande parte dos alunos não se interessam por essas
  matérias e acabam tenho a ideia errada de que elas não são úteis.
“O exemplo não é a melhor
    forma de ensinar, é a única
    forma de ensinar.”


                                                                                      71



Se os professores se preocupassem mais em mostrar exemplos práticos, os alunos se
  interessariam mais por essas matérias e perceberiam que, além de importantes, elas podem
  ser bem interessantes.
72



Para terminar: há bastante tempo corre o boato de que será lançado a Steam para Linux.
  Atualmente o único motivo de eu ter Windows instalado no meu computador é a Steam. Se
  isso realmente acontecer, significa apenas uma coisa:
73




Liberdade!
Obrigado!
               Perguntas?


Diego “Dukão” Moreira Guimarães
@diegodukao
http://diegodukao.net
                                  74
Imagens:

http://farm4.static.flickr.com/3567/3780363712_c6b91e4d0d.jpg
http://farm1.static.flickr.com/26/61056391_31343afdc6_z.jpg
http://farm2.static.flickr.com/1340/647478939_f30b6eaa08.jpg
http://images.cdn.fotopedia.com/flickr-2260970300-hd.jpg




                                                                75

Liberdade Também nos Games!