Jump to content
Fórum Script Brasil
  • 0

Parte Gráfica em C - Baralho


Ian Pierre
 Share

Question

Boa noite,

Primeiro post meu aqui no forum. Qualquer ajuda será bem vinda.

 

Tenho um projeto para a matéria Redes de Computadores para fazer. Conversando com o professor me veio a ideia de fazer uma "Mini-central" de jogo de cartas para dois usuarios p2p.

Ele disse que prefere que seja feita em C. Enquanto a lógica e as funcionalidades do jogo dessa mini central (21, rouba monte e etc) não parecem tão dificeís, a parte de exibir cartas de baralhos ainda é uma completa icógnita. Nunca trabalhei com a parte grafica em nenhuma linguagem. Sempre faço as atividades com menus no proprio console usando os numeros do teclado. Qual é o nivel de dificuldade de fazer mostrar na tela esse baralho (mostrar um monte, duas cartas viradas como num jogo de 21...) em C? e em outras linguagens? 

O que deveria usar e estudar para fazer isso?

 

Quanto a conexão, estou estudando sockets em C... 

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Uma vez, já faz muito tempo, escutei que o que você quer fazer era uma das coisas mais complexas que existia no mundo, "a criação de jogos". Dependendo de quanta complexidade você quer que tenha seu jogo você tem maior ou menor dificuldade, um jogo pode envolver física, matemáticas, muita lógica, gráficos avançados ou não tão avançados, gestão de tempo, controle de eventos, manipulação de sons, calculo colisões, inteligência artificial, teoria de gráficos, algoritmos de buscas em gráficos, e uma larga lista de coisas que pode conter que nem lembro ou simplesmente ignoro nesse momento, sem falar que pode ser em 2d ou 3d já que esse ultimo é bastante mais complexo, porem não se intimide, quanto maior é o desafio maior será a vitória, se fosse uma coisa impossível ninguém a faria, simplesmente leva seu tempo.

Lhe recomendo que busque alguma biblioteca para criação de jogos ou conteúdo multimídia como pode ser Allegro ou SDL, para C++ recomendaria SFML, para mim essa ultima é a melhor de todas, também conheço outras opções  mas considero perder o tempo pois ou bem são soluções algo antigas ou simplesmente não são capazes de mostrar imagens, somente pixels.


Minha recomendação seria que se quiser algo rápido e menos complicado use Allegro, essa biblioteca é bastante fácil, mas nem por isso pouco potente que te permitirá criar algo como isso:

Blackjack_allegro.png

Realmente é algo bastante decente falando graficamente, mas depende muito do programador claro, essa é uma pagina onde encontrei que lá explica que é uma versão jogável em Dreamcast, se encontrar algum emulador talvez você poderia descarregar ela daqui e provar.

Enquanto a conhecimentos que você teria que ter.... lhe recomendo você ler sobre a criação de jogos com Allegro dos muitos que existem por internet. você terá que saber fazer colisões, gestão de tempo, gestão de eventos de mouse e teclado, pode haver som ou simplesmente ignorar essa funcionalidade, a própria Allegro traz suporte para todas essas coisas não se preocupe. E desde logo você deveria ler sobre coisas como, "Game Loop" que nada mais trata-se de que todo jodo ou a grande maioria vai dentro de um laço while, eu não encontrei referencia na wikipedia más recomendo você buscar por sua conta, estudar um pouco de "Teoria dos grafos" também não é uma má ideia, o "Sistema de coordenadas cartesiano", esse sim você usará e muito para controlar a posição das imagens na tela, e muitas outros conceitos que certamente você aprenderá si busca algum tutorial por internet.

você deve saber que no referente a programação de games nunca haverá algo diretamente enfocado ao que você busca, todo o material é pura referencia, muitas vezes nem existe porem existe outro para outras bibliotecas que podem te servir de referencia, um exemplo poderia ser que você esteja buscando como calcular a colisao de 2 balas de canhão, coisa estúpida que me surgiu mas serve para demonstrar o exemplo, certamente você não vai encontrar tutoriais de colisões entre 2 balas de canhão, mas sim encontrarás muitos tutoriais sobre colisão, cabe a você transportar tudo isso ao seu programa pois trata-se da mesma coisa com exemplos diferentes. Lhe recomendo você buscar bons fóruns de programação e se são dedicados a criação de jogos melhor ainda.

En fin.... explicar tudo o que você terá que aprender em poucas linhas é praticamente impossível, o que você tem que fazer agora mesmo é abrir seu navegador e buscar tutoriais de programação de jogos com Allegro e ver do que se trata, você precisa de tempo para dominar todas o que traz o programa. Não corra antes de engatinhar, em vez de fazer aquele super jogo de cartas, faça um jogo do um Pong,  um Snake, ou um Space Invaders, ou um Tetrix, um Arknoid, Pacmam.... esses últimos já são bastante complexos, lhe recomendo respeitar essa ordem pois ao realizar um simples pong você terá suficiente confiança para realizar um Snake e posteriormente um Space Invader etc, parece que não mais um simples pong contem tudo o que um jogo enorme contem mas de forma muito mais simples, por isso se recomenda começar pelo mais simples. Lhe recomendo iniciar muito tempo antes do inicio do seu projeto pois criação de jogos é um tema que se ensina nas universidades e requer muito tempo de estudo, ao menos não deixe para o final dar uma olhada em tudo que falei aqui, certamente se fizer isso com bastante antecipação será um viagem muito grato, porem si deixar para ultima hora pode ser o contrario, seria muito frustrante abarcar tantos temas em tão pouco tempo. Sinceramente depois de realizar um pong e um snake acho que você seria capaz de realizar seu jogo perfeitamente pois já teria dominado, eventos, game loop, gestão de tempo, colisões, teria um conceito já muito mais afiado do que é criar um jogo, depende de vc, do quanto você demora em absorver a informação, falando de capacidades eu sou bem mais lento, eu estudo isso tudo conforme meu ritmo, as vezes fico 15 horas adiante do PC, mas as vezes não faço nada, já toquei a maioria dessas bibliotecas de jogos, e te comento conforme a experiência que tenho, embora não seja um criador de jogos profissional, sim disponho de certa exp com essas libs pois já fiz alguns joguinhos pequenos como os que lhe recomendo.

Sem mais lhe desejo sorte, se quiser ajuda comente aqui. Até tenho por algum lado algumas coisas feitas em Allegro, se quiser posso buscar para que você veja do que se trata, tenho certos menus feitos com Allegro uma vez que ajudei outro usuário.
Busque no youtube ou google coisas como "tutorial de criação de jogos com Allegro e C" ou simplesmente "tutorial Allegro", ou "Curso Allegro" etc, busque tanto em vídeos como paginas ou PDFs, tudo serve.

Sorte!

Ah! Si tiver algo de tempo use SDL, essa é realmente poderosa, certamente a mais potente de todas para C, por isso é algo mais complexa, se puder usar C++ então sem pensar use SFML. Existe uma pagina chamada Lazy foo em internet com muitos exemplos sobre SDL1 e SDL2, use SDL2 que é a ultima e tem suporte para Linux também, igual que si não me engano, Android, IPhone etc, em resumem, seu jogo seria altamente portável si souber arma-lo bem.

Link to comment
Share on other sites

  • 0

Muito obrigado pela resposta bem completa! 

já comecei os estudos e volto para falar o resultado.

não tenho interesse em jogos. Mas tenho que desenvolver esse. Esse é apenas um de 4 projetos finais para esse semestre na faculdade. Quanto mais "alto nivel" melhor.

Link to comment
Share on other sites

  • 0

Algumas dessas bibliotecas são multimídia, isso quer dizer que não só servem para fazer jogos si não outros tipos de programas, você pode por exemplo utilizar elas para fazer um reprodutor de audio etc. Realmente fazer um jogo, por mais pequeno que ele seja vai ter que profundizar um pouco sobre o tema. Como já falei antes calculo que para fazer esse projeto seu pelo menos você vai ter que tratar com eventos de teclado e mouse, aplicar o gameloop, gestão de tempo, colisões etc. realmente não é muita coisa, si você dominar bem a linguagem certamente isso será um passeio, porque como eu falei, tudo depende da complexidade do soft que eleva esses temas a proporções muito maiores né, mas realmente um pequeno jogo tem o mesmo principio que o grande.
Para você fazer uma ideia do que é um jogo olha isso:
while(sair!=true){//gameloop

   //Ler dispositivos de entrada(teclado e mouse)

   //Fazer cálculos lógicos(tipo: A bala chocou com o personagem? O personagem se moveu? etc)

   //Mostrar resultado(pintar na tela) mostrar o personagem em outra posição, restar uma vida ao personagem.....
}

Isso dai é basicamente o "Gameloop" com a representação da lógica de um game muito simplificado, mas basicamente todo game é a mesma coisa elevada a uns níveis absurdos empregando algumas(ou todas e muitas mais) das citadas técnicas citadas anteriormente. >_< Tenha claro que quem te ta falando isso aqui é um noob, eu nem arranhei ainda tudo isso pois sou um estudante como vc, e também é muito chato fazer isso sozinho, se tiver um grupo de amigos certamente é mais divertido pois assim vocês podem comentar provarem ideias etc.

Link to comment
Share on other sites

  • 0

Poder ajudar até posso, mas na instalação acho que não pois não manjo muito de linux vei. De mais detalhes do sistema operativo, programa que usará para instalar, verão do Allegro que quer usar etc

Aqui tem um para instalar no ubuntu, eu manjo bem de espanãool, si quiser ajuda 

 

 

Edited by vangodp
porque eu quero =/
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...