Ir ao conteúdo
  • Cadastre-se

DRF_GameDev

Membro Júnior
  • Posts

    15
  • Cadastrado em

  • Última visita

Reputação

4
  1. Discordo da @TwistedSoul de desenvolvimento Android ser complicado. Não com a variedade de frameworks que temos disponíveis, cada vez mais poderosas e mais fáceis de se usar e populares. E quase todas elas, multiplataforma. O que torna complexo o desenvolvimento é a ideia em si. Um Flappy Bird (Uma pessoa sozinha faz em poucas horas) ou um Call of Duty WWII (Uma equipe de centenas de desenvolvedores e designers veteranos levam meses). Tanto faz a plataforma se é PC, Console, Android ou Web. Quanto mais elementos (objetos, cenários, mecânicas, interfaces, enredo, gameplay etc) o jogo tiver, mais trabalho dá pra fazer. Fato. Quando o assunto é facilidade, há o Construct2 que não utiliza nenhuma linguagem de programação e sim um conceito chamado "Programação Visual" ou "Programação por Nodes (Nós)". A desvantagem é dela ser unicamente 2D, além de ser freemium. Ela é grátis até certo ponto. A Unity 5.x possui uma curva a aprendizado bem interessante para quem está iniciando no mundo do desenvolvimento de games. Ele usa C# como linguagem de script (até possui suporte pra JavaScript mas ninguém usa e será descontinuado futuramente). É multiplataforma, compila seu projeto tanto para PC, Mac, Linux, Android, iOS, WebGL, etc etc. É a favorita dos iniciantes e dos desenvolvedores/estúdios independentes. Extremamente fácil até certo ponto de usar e profissional, com suporte inclusive pra Realidade Virtual. Outra boa alternativa é a Corona SDK, ela uma linguagem de programação chamada Lua, também é multiplataforma, mas a maioria usa para mobile mesmo. A desvantagem é que ela não possui um editor gráfico igual a Unity o que agiliza algumas tarefas como o posicionamento de objetos na cena (também chamado de Level Designer). O jeito difícil, não muito recomendado, é criar um app nativo Android usando o Android SDK somado com alguma biblioteca pra jogos como LibGDX por exemplo. O Android SDK não é muito amigável pra iniciantes, ainda mais sua IDE oficial, o Android Studio (interface poluída, além de pesadíssima). Ai sim eu acho que a coisa fica bastante complicada porque o ambiente em si é generalista e não voltado pra games. Existem n maneiras de se fazer um jogo, uma diversidade de ferramentas e tecnologia nas mais variadas linguagens de programação (ou nodes). Eu dei uma olhada nessa sua referência que citou, The Crims. A parte gráfica e funcional da coisa (padrão MVVM ModelView e View) é relativamente fácil e simples de se montar. Você só precisa se organizar bem o Model (Dados, informações, lógica de negócio), para não se enrolar e perder tempo e sentir dificuldade. Estude um pouco de Arquitetura de Software e Modelagem de Dados. Projete o jogo todo no papel primeiro para depois implementar ele na prática. adicionado 7 minutos depois Só um adendo: Mas uma coisa é fato. De um jeito ou de outro requer muito estudo e aperfeiçoamento constante. Começar é fácil, mas evoluir, se atualizar, desbravar novos desafios é outros quinhentos. Existem desenvolvedores ridículos, existem os amadores, os mais ou menos, profissionais e experts. Em que nível você quer chegar depende do seu empenho e dedicação.
  2. Se estiver se referindo ao conceito de objeto da Orientação a Objetos, objeto é um tipo de dado customizado que reúne dados, comportamentos e atributos em comum. Pode ser criado usando a palavra-chave "class" , dando um nome, como se fosse uma variável (só que iniciando com letra maiúscula, conforme a convenção) e abrir chaves. Dentro das chaves você vai criar sua classe com seus campos e métodos e depois você pode instanciar n objetos que desejar dessa classe. Uma class seria a evolução de um struct. Muda a forma de pensar e organizar o código.
  3. Atualmente adquiri uma GTX 1060 para substituir minha antiga HD 6870. O processador é bem antiguinho ainda um Phenom II 955, um processador de 8 anos atrás kkk. Está dando muito gargalo nos jogos, coisa que não acontecia antes com a placa antiga. Além de eu atualmente precisar usar Intel para usar o emulador x86 da API que só funciona com o HAXM da Intel Jogar algumas vezes, mas também será usado para como workstation com computação gráfica (Blender, SketchUp, ZBrush, Substance etc) e desenvolvimento (Unity3D, Visual Studio 2015 e Android Studio)
  4. Pretendo fazer um upgrade no meu processador atual para um Intel Core i5 7400, e consequentemente devo trocar a placa-mãe também. Mas estou muito na dúvida de qual chipset devo me basear, no H110 ou no B150, pois quero extrair o máximo de configuração que puder sem gargalo de CPU, GPU e RAM. As diferenças mais relevantes, segundo a Asus, é a versão do barramento PCI-E que no H110 suporta o 2.0 e o B150 suporta a versão 3.0. Há também a versão do DMI (creio eu que seja semelhante ao HyperTransport da AMD) que a versão 2 suportada pelo H110 tem capacidade para 5GT/s e a 3 no B150 capacidade de 8GT/s Não compreendo muito bem o impacto nas versões do PCI-E e esse DMI na performance da CPU e os periféricos. Qual o real ganho/perda de desempenho que esses fatores pode causar?
  5. 1. Para o método/função system() está faltando ser incluído o cabeçalho "stdlib.h" ou "cstdlib" 2. O método system() recebe um char[] como parâmetro, o que dificulta bastante a conversão de tipos nesse caso já que os métodos padrões do C++ são para conversões entre string e char* como o c_str() por exemplo Primeiro seria necessário converter os números inteiros da expressão em uma string, pois desconheço uma forma de converter int direto para char[] e se tiver deveria dar uma grande volta, pois provavelmente teria que colocar cada número do resultado da expressão dentro de um array de int e cada numero do int no array de char. Fazer parsing em C++ não é tão melzinho na chupeta com C# e Java. O jeito mais fácil de se fazer isso seria: // requer <sstream> stringstream strparse; strparse << (hora * 60 + minuto) * 60; string result = strparse.str(); Em seguida precisará converter essa string em char[] char output[result.length()]; for (int i = 0; i < result.length(); i++){ output[i] = result[i]; } Por último você precisará concatenar os dois arrays (um com o comando e o outro com o valor), o que também é bem chatinho de se fazer no C/C++. Existe n maneiras de se fazer isso. Uma simples sem precisar usar outras funções e bibliotecas. char command[15 + sizeof(output)] = { "shutdown -s -t " }; int x = 0; for (int i = 15; i < 15 + sizeof(output); i++){ command[i] = output[x]; x++; }
  6. @vangodp Ah que bom que ele não utilizou o array sem índice então, espero rsrs. Mas ainda sim , mesmo com o índice indicado o cin não funcionaria no array; Uma pequena retificação. O código compilaria mesmo sem os índices, porém não funcionaria adequadamente devido a lógica de estar usando o mesmo array de char nas 10 iterações do loop, sempre substituindo a informação ao invés armazenar todas elas, como já citei anteriormente. Ainda to sem entender o motivo de se usar char[] ao invés de string, rs O engraçado é que atualmente alguns programadores C/C++ adoram complicar seus próprios códigos, tentando aplicar conceitos mais "complexos" como array de char, ponteiros e passagem por referência sem a necessidade real e sem saber como funciona exatamente. Uma parte da culpa são de APIs antigas (ou atuais baseadas nas antigas) que continuam a usar ponteiro sem e real necessidade. Alguns professores universitários também não colaboram
  7. Hahaha, desculpa, mas você conseguiu compilar isso? E sim diga-nos como haha. Existe erros de sintaxe no seu código. Toda vez que você for ler ou inserir o elemento de um array você precisa indicar o índice/posição em que se encontra. O correto é: cin >> nome[index]; cout << nome[index]; Nesse caso o seu código nem deveria compilar, mas ok... Só se passa um array sem índice se for para algum método que o use por completo ou um bloco como o foreach por exemplo. Segundo evite usar variáveis de controle fora do escopo em quais ela estão sendo utilizadas. Use: for(int i = 0; i< 10; i++) Não declare i fora do escopo. O porque? Por que numa aplicação complexa isso geraria confusão se essa mesma variavel i fosse utilizada em vários blocos. Segundo partindo do principio do minimalismo, seria um disperdício de memória RAM, pois se você criar uma variável dentro do bloco for ela vai irá ser removida assim que o bloco terminar. Fora do escopo não ela continuará ocupando espaço desnecessário na RAM. Terceiro, agora o principal. Um erro de sintaxe e de semântica. char[] é diferente de string e de string[] string é um char[] mas char[] não é string[] string é um array de caracteres, você pode escrever grandes textos nele por exemplo char armazena um ÚNICO carácter dos 256 disponíveis tabela ASCII . Aqui você não está criando uma variável para armazenar 10 nomes muito menos 10 cursos e sim 10 CARACTERES. Você não está armazenando nome[0] = "maria", nome[1] = "pedro", nome[2] = "beatriz". Você está armazenando nome[0] = 'm', nome[1] = 'a', nome[2] = 'r', nome[3] = 'i'. Um array de char pode ser convertido em uma única string ou uma única string em um array de char. Mas não há possibilidade de armazenar multiplas strings num array de char. Um erro de sintaxe. Não se usa cin diretamente para array de char, é necessário um método que converta a string para o array de char O correto seria: cin.getline(nome, 10); // Há também o erro semântico (lógico). A cada iteração você não está armazenando um nome (string) nova e sim substituindo a anterior... Na primeira iteração cin.getline(nome, 10); o usuário digitar "Maria" no CLI. Na segunda iteração cin.getline(nome, 10); o usuário digitar "Pedro" o que vai acontecer simplesmente apagar o "Maria" para substituir por "Pedro". No final era para você ter o nome de 10 alunos diferentes mas você tem um único nome, que no caso é o último a ser digitado. Substitua char[] por string[]. ou crie 10 arrays de char com 10 elementos (O que é extremamente desaconselhável) char nome1[10]; char nome2[10]; char nome3[10]; ... Não há a menor necessidade de usar array de char nesse contexto. Ele só serve para situações muito específicas, como armazenar uma senha por exemplo, criptografia etc etc. adicionado 7 minutos depois Exemplo de código funcional: #include <iostream> #include <stdlib.h> using namespace std; int main() { int ra[10]; int idade[10], ano[10]; //char nome[10] - Apague isso string nome[10], curso[10]; cout << "Fatec\n\n"; cout << "Registro de aluno\n\n"; for(int i = 0; i < 10; i++) { cout << "Digite o nome\n"; cin >> nome[i]; // A titulo de curiosidade se fosse usar array de char em alguma situação seria // cin.getline(nome, 10); cout << "Digite o RA\n"; cin >> ra[i]; cout << "Digite a idade do aluno\n"; cin >> idade[i]; cout << "Digite o nome do curso\n"; cin >> curso[i]; cout << "Digite o ano de ingresso\n"; cin >> ano[i]; system("cls"); } for(int i = 0; i < 10; i++) { if(idade[i] > 20 && ano[i] >= 2014) { cout << nome[i]; cout << ra[i]; cout << idade[i]; cout << curso[i]; } } return 0; } OBS: Não fiz nenhuma alteração na lógica final de selecionar somente alunos que você quer. Apenas corrigir a sintaxe e a semântica do código. OBS 2: Tenha cuidado ao testar seus exercícios na faculdade com pressa, ainda mais esse chatinhos de ficar inserindo dados múltiplas vezes. Se você inserir texto numa varável numérica irá gerar um erro de execução e uma exceção (que poderia ser tratada, mas isso já é um tema um pouco mais complexo que você deve ver futuramente....)
  8. Tambem não curto web mas... O mercado Web de fato o maior. E programador web mesmo não necessariamente fica responsável pelo design da página HTML e CSS não são linguagens de programação e sim linguagem de marcação e de folha de estilo respectivamente. Não existe algorítimo HTML muito menos programador HTML. É uma falácia um individuo falar "Programo em HTML" ele é um designer e não um programador. Agora JavaScript é uma linguagem de script (script é um algorítimo interpretado e rodando concomitantemente com outro algorítimo, no caso programa, no caso o navegador web que o cliente estiver usando) A programação web é dividida em duas áreas. Front End (também chamada de Client Side) e Back End (Também chamada de Server Side). Um script tanto front quanto back a maioria das vezes não tem nada a ver com a parte de design e sim o comportamento da página. Por exemplo o Facebook. Desconsidere o design, a lógica básica seria o usuário digitar seu login e senha, depois haverá uma encriptação desse login, enviado pros servidores do facebook e analisar, interpretar verificar se o hash das informações são verídicas daquele login, só assim para liberar o acesso ao usuário, ou negar. Isso foi um exemplo básico. Claro que sim, em certos os casos o JavaScript é usado para gerar design com canvas, drawing, real time rendering, animações etc, mas acho que está longe de ser a maioria, por que aumentaria a complexidade da construção do site, sem contar a tonelada de otimização depois pra ficar liso. Outra coisa que o JS vem sendo usado é para jogos que rodam diretamente no navegador. Se tu abrir qualquer site tipo InfoJobs, Catho, Vagas.com, verá metade das vagas ou mais (55 à uns 65%) são todas relacionadas a programação web, pedindo conhecimentos JavaScript, Ajax, Node.JS, Angular.JS (tecnologias front end) ou PHP, Python, Django, Perl, ASP.NET (Back End) Programação Web resumindo são maiores oportunidades porém os salários são "menores" (digo Programador Jr e Pleno... Sêniors é muito difícil estabelecer um teto) se comparados com programação Desktop, especialmente pra ERP Bom já a outra menor fatia das vagas são pra Desktop, ERP, Automação Empresarial ou Industrial, etc etc) As mais usadas esmagadoramente são Java e C# .NET. Mas ainda há um bom espaço para C/C++ (especialmente automação industrial, microcontroladores, embarcados etc). Há algumas vagas perdidas de Delphi também. A quantidade de vagas são ligeiramente menores mais os salários costumam ser melhores, mas percebe-se que tem pouco espaço pra Júniors... A maioria das vagas é Pleno ou Sênior. Há um terceiro mercado que é o mobile. Tecnologias bem vindas seriam o Java pra usar com o Android SDK, o C# para usar com o Xamarin ou JavaScript pra usar com Cordova por exemplo, até mesmo C++ para uso com Android NDK, porém essa última eu particularmente nunca vi uma vaga sequer Se eu pudesse montar um rank (Opinião) das que que tem mais uso, potencial e versatilidade pro mercado seria: 1>2. C# e .NET Framework (Desktop, Back End e Mobile) 2<1. Java (Desktop, Back End e Mobile) (Java por anos anos dominou o mercado brasileiro com folga, mas com o avanço do poder do .NET, Java ou C# é a questão mais difícil prum gerente de projetos escolher a usar. As duas disputam pau a pau - Valendo a pena frisar que outros países como EUA a realidade de lá é muuuito diferente, C++ é a queridinha das universidades e grandes centros de pesquisa científica, laboratórios, industria dos jogos, computação gráfica etc.. Coisas em que cada byte a mais ou a menos impacta na performance) 3. JavaScript (Front majoritariamente, casos menores Mobile com Cordova) 4. PHP (Back End) 5. C/C++ (Desktop, automação e embarcados, Back end, mobile, jogos etc) 6. Python (Desktop, Back end) Isso que rankiei acima é observação e conclusão pessoal. Vai variar do ponto de vista de cada um. Agora do ponto de vista profissional que está iniciando e pior ainda se não tiver experiência, pensar e focar em salário não parece ser uma boa jogada. Ingresso rápido e adquirir experiência deveria ser o foco primário.
  9. Eu formatei meu PC e reinstalar o Win10, pra tirar aquele peso do tempo e deixar o bichinho leve e liso. Mas desde aí não consigo mais instalar os Drivers da minha GTX 1060 (Antes estavam instalados normalmente na antiga instalação do Windows). Tentei instalar o 376.09 que já estava previamente salvo no meu HD de backup e não funcionou. Baixei a versão mais atual 378.49 e também não instala. É sempre o mesmo erro na primeira etapa da instalação "Não foi possível prosseguir com a instalação NVIDIA" "Esse driver não é compatível com essa versão do Windows" (Antes que perguntem se baixei o driver certo, é óbvio que sim né, não sou maluco hahha, e o 376 estava funcionando normalmente na instalação anterior) Pesquisei já no Google, vi uns fóruns gringos, mas não ficou claro. Um individuo disse que tinha que mexer nos arquivos *.inf em certos trechos mas ele não especificou precisamente qual arquivo mexer. "Pick any of them" (escolha qualquer um deles) É sério isso? kkk Sem contar que o post é da época da 460M ainda... deve ser antigos, e esses arquivos nem são mais com esse nome São "navoi" ao invés de "navao", "navami" ao invés de "navam"... Então pra não piorar o que já tá ruim, achei melhor não mexer em nada sem ter certeza. Alguém aí tem uma solução para esse aparente bug dos instalador de drivers da NVIDIA???
  10. O WPF é muito completo. Você pode usar ele mesmo para desenhar formas, polígonos, transformação etc. Dê uma olhada nesse trecho da documentação oficial da Microsoft. Shapes and Basic Drawing in WPF Overview As classes mais convenientes pra você usar é a PathGeometry. Com ela você pode criar splines, curvas de Beziér, desenhar funções f(x) etc..
  11. kkk engraçado que a instalação nem é tão antiga assim tem, 4 ou 5 meses no máximo. Agora fiquei confuso de mãos atadas sem saber o que pode ser realmente hahaha
  12. Saudações. Novo usuário no fórum. Comprei essa GPU modelo mais simples de 3GB mais simples da MSI tem aproximadamente 2 meses e sinto que ela roda mal os jogos. Inclusive ela está performando pior que minha GPU anterior (Radeon HD 6870) - Coisa que não deveria acontecer já que que a GTX 1060 é bem superior nos benchmarks. Jogos que eu rodava liso com a HD 6870 , como Tropico 5, Cities Skylines em qualidade gráfica máxima @1360x768 (Sim, meu monitor é antiguinho pra caramba ainda, 2009 rs - Trocarei assim que puder) estão todos bastante com bastante lag rodando abaixo de 15, 10 frames FPS e ainda tendo frame drop. Estou sendo forçado a rodar tudo com qualidade minima, numa placa de potencial de processamento superior a antiga. Outro jogo (Mas sem poder comparar com a GPU antiga) rodando mal é o Train Simulator 2017. Na configuração default (High, aprox 70% de detalhamento gráfico, FXAA e Filtragem de Textura Anisotrópica 4x) roda entre 15 a 20 FPS (Com Frame Drop) em cenários noturnos, pouca luz e 10 a 15 de dia mais iluminado (Com Frame Drop). Sendo forçado mais uma vez e trazer tudo para o minimo para ainda o jogo rodar entre 24 a 30 FPS bem meia boca. O mesmo acontece o X-Plane 10, do default porém ele roda um pouco melhor (25-40FPS), mas ainda sim tem muuuitos frames drops que dão umas belas agarradas. O engraçado é que nem a GPU nem a CPU são levadas ao máximo. A CPU é exigida pela metade em média e a GPU variando entre os 20-35% ainda por cima usando seu clock reduzido - aquele ajustando automaticamente como se a placa estivesse em período ocioso) Que há um gargalo ou um funcionamento indevido do conjunto já é meio óbvio, o que eu gostaria de saber o que está causando exatamente... 1. Seria mal funcionamento no sistema operacional? Os drivers atuais conflitando com o registro dos antigos, sempre sobra um restinho por mais que se use CCleaner, Auslogics RegistryCleaner 2. API gráfica incorreta? Durante um teste com o MSI Afterburner/RivaTuner, na contagem dos quadros apontava que o Train Simulator 2017 usava D3D9 (Direct3D do DirectX 9) sendo que o meu instalado é o 12. Já o X-Plane 10 usa OpenGL, mas não especifica qual versão (Roda um pouco melhor). 3. Será gargalo na Placa-Mãe? A GTX 1060 usa PCI Express x16 Versão 3.0. A minha ainda é 2.0. 4. Será gargalo de processador? Apesar de ser Quad Core 3.2Ghz, possuir uma arquitetura antiga. OBS: Eu pretendo trocar a CPU atual, uma AMD Phenom II X4 955, para um Intel Core i5 6400 (consequentemente a placa-mãe também que ainda não decidi). Pretendo fazer isso o mais rápido o possível. Mas não é possível agora de imediato. OBS 2: Eu pretendia reinstalar o SO Win 10 para ele rodar zerado com o hardware novo. Porém pensei: "Será que eu deveria fazer isso quando trocar a CPU e Placa-Mãe também?" Então eu posterguei essa reinstalação.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...