O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

C++ ou C#?

Iniciado por Opalablue, 31/03/2018 às 11:32

31/03/2018 às 11:32 Última edição: 10/06/2018 às 11:11 por Corvo
Oi gente!
Eu decidi que não vou mais desenvolver jogos para o maker (embora talvez ainda brinque nele de vez em quando) depois que todos os meus projetos que me prendiam ao mesmo foram por água abaixo junto com meu pendrive.
Então, eu decidi que o melhor seria tomar vergonha na cara, escolher uma nova engine e aprender uma linguagem de programação.

Acabei ficando na dúvida entre C++ e C#, e não sei muito bem os diferenciais entre as duas que me possibilitariam realizar a melhor escolha pra mim. Também estou na dúvida ao escolher uma engine entre as gratuitas disponíveis (sem verba pra investir em engine agora).

Então eu vim aqui saber a opinião de vocês sobre ^^
Enfim, obrigada pela atenção!

Entre C++ e C# eu te recomendo começar pela mais difícil das duas: C++. Sabendo esta, você poderá aprender diversas outras linguagens com muito mais facilidade, incluindo C# e JavaScript. Já sobre a engine, Unity é a melhor opção porque a licença comercial - até certo ponto - é gratuita. Ou seja, você pode vender jogos livremente. Se não me engano apenas após obter lucro bruto de 100.000 ou mais é que você deverá atualizar sua licença.

Eu, com certeza, não sou a melhor pessoa para falar disso, mas vamos lá.
Antes, queria saber o por quê de estar deixando este mundo maravilhoso do RPG Maker :T.T:

A engine depende muito de que estilo de jogo vai querer, mas tem algumas(ou várias, sla) que abrangem tudo, como o Unity, que é a engine que eu recomendo.Sobre o uso do C++ e C#, eu não entendo muito(nada), então não digo nada. O Unity tem suporte a várias linguagens, provavelmente tem a essas duas, infelizmente não suporta mais o JS. Acredito eu, que você já tenha experiencia no JS, então o resto é fácil.

Eu acho que não vale a pena aprender C++ se o objetivo é fazer jogos, é uma linguagem mais complexa e tem diversos fundamentos que as outras linguagens fazem automaticamente, C++ vale pra quem ta afim de fazer uma engine ou tem como objetivo principal um alto desempenho. C# é bem mais simples e bem mais usado na indústria (pelo menos dentro da minha compreensão).
Quanto a engines eu iria para a Unreal, por mais que ela use C++, praticamente todas as funções podem ser feitas por blueprints sem precisar de programação, (que numa comparação meio forçada) é similar a criação de eventos do RPG Maker.
Outra engine é a Unity, mas essa o cara vai ter que cair na programação (C#), mas eu acho que vale a pena, trabalhei com ela por quase 3 anos e gostava muito, mas já tinha conhecimentos prévios em programação e C#.

Spoiler
Citação de: Corvo online 31/03/2018 às 12:26
Entre C++ e C# eu te recomendo começar pela mais difícil das duas: C++. Sabendo esta, você poderá aprender diversas outras linguagens com muito mais facilidade, incluindo C# e JavaScript. Já sobre a engine, Unity é a melhor opção porque a licença comercial - até certo ponto - é gratuita. Ou seja, você pode vender jogos livremente. Se não me engano apenas após obter lucro bruto de 100.000 ou mais é que você deverá atualizar sua licença.
[close]

Pensei nisso, até porque vi um maior suporte por parte da microsoft pra linguagem C++, mas ao que vi, Unity parece não funcionar bem com ela, sendo melhor com C#. Dizem até que é possível, mas que não é muito recomendado.

Spoiler


Citação de: TensaZangetsu online 31/03/2018 às 12:32
Eu, com certeza, não sou a melhor pessoa para falar disso, mas vamos lá.
Antes, queria saber o por quê de estar deixando este mundo maravilhoso do RPG Maker :T.T:

A engine depende muito de que estilo de jogo vai querer, mas tem algumas(ou várias, sla) que abrangem tudo, como o Unity, que é a engine que eu recomendo.Sobre o uso do C++ e C#, eu não entendo muito(nada), então não digo nada. O Unity tem suporte a várias linguagens, provavelmente tem a essas duas, infelizmente não suporta mais o JS. Acredito eu, que você já tenha experiencia no JS, então o resto é fácil.
[close]

Não estou deixando completamente. Decerto, ainda vou brincar um pouco na engine quando tiver tempo. O problema, é que me falta esse tempo, e acho que prefiro gasta-lo usando algo que vá acrescentar mais pra minha vida profissional. Além disso, fiquei desanimada depois de perder meu projeto mais ambicioso, no qual vinha trabalhando por um ano e meio quase.
Não tenho experiência com JS, usava o Ace não o MV.
Quanto ao suporte as linguagens, ouvi dizer que o Unity não suporta o C++, mas dá pra fazer funcionar. Entretanto, não recomendam.

Spoiler
Citação de: Germinal online 31/03/2018 às 12:45
Eu acho que não vale a pena aprender C++ se o objetivo é fazer jogos, é uma linguagem mais complexa e tem diversos fundamentos que as outras linguagens fazem automaticamente, C++ vale pra quem ta afim de fazer uma engine ou tem como objetivo principal um alto desempenho. C# é bem mais simples e bem mais usado na indústria (pelo menos dentro da minha compreensão).
Quanto a engines eu iria para a Unreal, por mais que ela use C++, praticamente todas as funções podem ser feitas por blueprints sem precisar de programação, (que numa comparação meio forçada) é similar a criação de eventos do RPG Maker.
Outra engine é a Unity, mas essa o cara vai ter que cair na programação (C#), mas eu acho que vale a pena, trabalhei com ela por quase 3 anos e gostava muito, mas já tinha conhecimentos prévios em programação e C#.
[close]

Eu vou cair na programação, seja em C++ ou em C#! Não aguento mais essa vida de depender de eventos asuhaushuah


Olha, se você quer tanto usar C++ tem a Unreal Engine, mas eu recomendo a Unity com C# e Javascript por ver muito mais gente usando ela e muito mais vagas na area de programação também.

Depende do que você quer fazer. Se você quer fazer jogos que não sejam tão complexos, tipo jogos AAA, por exemplo, então foque em C#, ele irá lhe suprir a demanda. Agora, se você quer criar jogos hardcores, AAA, então vá de C++, embora dê para criar tranquilamente em C#. Mas os pontos chaves são: C# é uma boa linguagem de grande portabilidade, você vai poder tocar ela em boa parte dos aparelhos. Embora também, claro, C++ faça isso; mas dá mais trampo.
Agora, o melhor do melhor seria você aprender as duas, primeiro C++, então C#. Mas, minha recomendação e meu gosto pessoal iria lhe indicar: C#



Citação de: mercia online 31/03/2018 às 13:34
Olha, se você quer tanto usar C++ tem a Unreal Engine, mas eu recomendo a Unity com C# e Javascript por ver muito mais gente usando ela e muito mais vagas na area de programação também.

Unity não suporta mais o Javascript :T.T:

Obrigado pela ajuda, pessoal! Fiquei bem indecisa, mas como eu só posso escolher uma, resolvi optar pelo C++. Parece ser mais complicada, mas acho que se eu estudar ela bastante e por mais tempo, vai me dar uma base melhor pra construir meus projetos. Além disso, deve facilitar um futuro aprendizado em C#! (No fim das contas, a guria que aprender as duas :T)
Não vou pensar na engine agora, vou focar em aprender esta coisa aqui
Obrigada pela ajuda!

Spoiler
C++ é linguagem do futuro >:V
[close]

Eu simplesmente te recomendo C++ porque o nome já fala... ++ que quer dizer Plus Plus >:V então é C plus plus... E te recomendo tu usar a Unreal Engine.. Ela é gratuita e se tu for vender teu jogo eles te cobram 50% do seu lucro.. >:V isso é que dá para fazer com ela:

'-'


31/03/2018 às 23:11 #10 Última edição: 31/03/2018 às 23:12 por Ellye
Linguagem é ferramenta. Aprenda o que for usar, conforme usar. No fim o que importa é aprender os conceitos.

Dito isso: C# é uma linguagem mais fácil de trabalhar por ser mais alto nível do que C++. Não necessariamente é mais facil de aprender, isso varia muito de pessoa pra pessoa, já notei que tem bastante gente que tem mais facilidade para aprender primeiro linguagens de baixo nível.

Mas enfim...

Se a intenção é programar para desenvolvimento de jogos, dê uma olhada na Unity Engine e na Unreal Engine. Veja qual das duas te parece mais interessante. Assista alguns videos de tutoriais mostrando a interface delas, etc. Veja qual parece mais confortável de trabalhar, para você. Ambas engines são gratuitas, excelentes e possuem comunidades muita ativas com bastante recursos de aprendizado e afins por aí.

Depois que decidir qual das engines lhe parece mais agradável, aprenda o que precisar para ela. Unity usa C#, Unreal usa C++. Mas em ambos os casos você vai ter que aprender paradigmas próprios da engine, bibliotecas dela, etc.

Se toda vez que eu tropeçasse em assuntos assim eu ganhasse um centavo, provavelmente compraria um sapato pro meu papagaio.
C, C++ e C# são linguagens completamente diferentes. C++ é C, porém com classes. C# é uma linguagem da plataforma .NET desenvolvido pela Microsoft.

Para o cenário de jogos, qualquer linguagem serve. Tu usa Unreal se quiser fazer jogos, e usa Unity se quiser fazer jogos. Tem diferença nenhuma entre as duas engines.
Unreal é feita em C++, tem seu código em C++ e usa Blueprints na maior parte.
Unity é feita em C++, tem seu código em C#, porém todo código é reconvertido pra C++ durante a compilação do jogo (isso quer dizer que mesmo que tu use C#, teus jogos vão ter a mesma performance de um jogo feito em uma engine C++) e usa o padrão ECS.

Um programador que se preze sabe as duas linguagens, então não tem sentido escolher uma só. Para ter uma noção, 30% dos jogos do Nintendo Switch são feitos em Unity (C#), e a maioria dos jogos da Ubisoft, Bethesda são feitos em C++.

A engine que tu usa pouco importa, suas habilidades é o que definem o quão bom o seu jogo será. Se tu quiser fazer aplicações cross-platform, C++ funciona fora do Windows, enquanto C# funciona apenas no Windows (descartando consoles, como Xbox e Vita).

Unity nunca aceitou Javascript. Isso é apenas um engano de quem ouviu falar da linguagem na engine mas nunca usou de fato. Unity suportava UnityScript, uma linguagem parecida com Javascript que era convertida para C# e então convertida para C++.
UnityScript agora foi abandonado nas versões mais recentes e apenas C# é aceito, visto que é a única linguagem que faz sentido de se usar na engine.

No final, você só entenderá a diferença nas engines e nas linguagens quando sentir nos dedos, então me perdoe caso não tenha provido uma luz.

Com o tempo você entenderá que a linguagem será o mínimo de suas preocupações.

01/04/2018 às 03:23 #12 Última edição: 01/04/2018 às 03:38 por thi
Eu posso falar da minha experiência, da minha perspectiva. Comecei com rpg maker por alguns anos, até me interessar por Flash (a linguagem de programação era o Actionscript). Tal linguagem é +- parecida com Java, e um pouco com Javascript.
Aprendi e me diverti bastante, pois o Flash era bastante "palpável", assim como os eventos de rpg maker. Portanto, eu diria para você buscar coisas "palpáveis": que você consiga controlar imagens na tela, talvez sons, este tipo de coisa.
(bem, mas estou assumindo que você teria os mesmos tipos de interesse que eu tive)
(para deixar claro, não acho o Flash uma boa opção hoje em dia)

(Repetindo..) Aprendi [como o conceito de "classes", etc] e brinquei bastante com o Flash. Nesta época eu estava no colegial, e lembro que eu buscava representar, ou utilizar, de alguma forma, alguns conceitos aprendidos em sala de aula. Lembro que eu e um amigo compartilhávamos os nossos resultados, sendo que ele fazia em C++ ou PHP [obs. também não recomendo PHP para aprender não].
Ainda no colegial, lembro que fiz um simuladorzinho de gravidade, no qual você poderia criar planetas e ver eles voando pela tela.. e numa outra versão, mostrava uma linha do caminho que ele percorreria no futuro. Isso pq tais concetios estavam sendo revisados em sala de aula.

Enfim, o ponto é que programação é uma forma de expressão, como uma pintura num quadro. No meu caso, eu literalmente gostava de me expressar visualmente (utilizando desenhos em 2D), assim como muitas outras pessoas.. (isso é algo comum)
Outro tipo de expressão que eu buscava e gostava eram simplesmente desafios de raciocínio. Conseguir fazer algum efeito por eventos no rpg maker, este tipo de coisa. Então.. já este tipo de expressão, está mais relacionado à matemática (ou a "puzzle") do que "algo visual".

A expressão "matemática"/puzzle te dá um leque muito maior de ferramentas que seriam apropriadas. E existem muitos recursos que você pode utilizar para facilitar o aprendizado, como sites de exercício, que simplesmente oferecem bastante problemas para serem resolvidos. (claro.. dá pra aprender bastante mesmo não conseguindo resolver o problema)
O ponto difícil disso é acabar não tendo um feedback (com significado) de ninguém. Então.. é meio que apalpar no escuro numa sala vazia, você estaria melhor se.. se contivesse com a experiência em si.

Porém você trouxe uma motivação profissional, então o que eu falei não serve. Mentira, serve sim! Digamos que você resolva alguns exercícios em C#, e tals; e algumas semanas depois, resolva de novo (ou novos) em C++, e ir entendendo ambas as linguagens. Resolver os mesmos exercícios pode ser melhor para entender as diferenças entre elas. Por outro lado, pode ser que, por coincidência, os exercícios que você tivesse testados no fundo já eram estruturados de tal forma que uma linguagem seria mais apropriada do que a outra; mas que se você tivesse testando ambas em um conjunto diferente de exercícios, a sua "preferência" por uma linguagem poderia ser diferente.

Enfim.. recomendo resolver exercícios em algumas linguagens, para ver como é. Eu procurei no google agora, e cai neste site:
http://exercism.io/how-it-works/newbie (não gostei do nome/logo, mas enfim..); eu já conhecia um outro site: http://codeforces.com/problemset?order=BY_SOLVED_DESC , mas este último parece ser menos orientado ao aprendizado do que o primeiro. Sei lá, eu recomendaria usar ambos.

O primeiro parece que tem alguns problemas preparados para várias linguagens http://exercism.io/languages . Nunca testei o site, mas me aparenta ser interessante. Algumas linguagens que me chamam atenção: Go (ao invés de Java), Rust (ao invés de C++), D/F# (ao invés de C#), TypeScript/CoffeeScript (ao invés de Javascript), Clojure, Ruby, Lua e Python. Claro que videos tutoriais do youtube sobre tais linguagens tendem a cair bem, caso venha a aprender alguma.

Sobre a área profissional, saiu o resultado do questionário do StackOverflow. Os resultados são "gerais" (mundo todo), mas enfim..

Este mostra uma média da profissão:

Vi agora que Game Dev, em média, paga menos em relação às outras. Não sei dizer se esta é a realidade do Brasil. Mas em geral, não há necessidade de uma decisão final e imediata da profissão. Vale a pena testar algumas linguagens, testar alguns domínios de trabalho (não só Game Dev -- como Web Dev), e por aí vai.
No meu caso, estou quase formado na área de computação e acabei pegando gosto pela área Web, e também pela área de criptomoedas..; sobre graduação, eu tenho uma opinião que.. seria meio que incoveniente falar ^^'

E este mostra uma média das linguagens:

O que também pode não dizer muita coisa; muito menos em relação ao Brasil em específico.

Bem.. acho que já sugeri coisa demais :P