Desenvolvimento de jogos somente em C. É possível? [fechadas]

18

Eu sou um estudante universitário do primeiro ano na Índia e quero fazer um pequeno jogo como um projeto neste semestre.

Eu sou muito bom em C e estou aprendendo rapidamente, mas queria perguntar se desenvolvendo um jogo inteiramente em C (sem C ++ ou C #) eu adoraria usá-los, mas para projetos de faculdade, temos requisitos estritos de usar apenas C.

O que estou procurando é um simples jogo de condução de vista superior. Não terá nada extravagante e até as coisas visuais serão alimentadas por personagens simples. Por exemplo, o carro controlado pelo usuário pode ser representado por ▓ e as margens da estrada por séries de | O que você acha?

Ishan Sharma
fonte
8
SDL é escrito em C. OpenGL é C. O que mais você precisa?
The Duck Comunista
2
Além disso, o Quake é feito em C.
The Communist Duck
Faça um favor a si mesmo e use as bibliotecas Allegro;) alleg.sourceforge.net
o0 '.
1
O RollerCoaster Tycoon foi feito quase em pura montagem, então por que não?
Ramon Zarazua B.

Respostas:

23

Escrever jogos em C é possível. Por exemplo, o Quake II é escrito exclusivamente em C, portanto, escrever outros jogos em C não deve ser um problema. Pode ser a melhor escolha se você é mais competente e confortável em C do que em C ++.

martiert
fonte
2
@ Ishan Sharma: Na verdade, muitos desenvolvimentos de jogos (mecanismos) ainda estão em andamento em C, ou pelo menos muito em C: ish C ++. Nada diz que seu jogo em C ++ será melhor (ou até melhor escrito) apenas porque é C ++.
void
6
@void: Isso só é verdade se o programador em questão não tem idéia de como usar o C ++ efetivamente. Os programas C ++ escritos onde o escritor tem uma compreensão básica da orientação a objetos são muito mais seguros e confiáveis ​​do que os programas C equivalentes.
DeadMG 15/02
8
@DeadMG [citação necessário]
Bob Somers
6
@ Bob Somers: Fácil. Compare std::stringcom char*. std::stringsempre limpa sua própria memória em qualquer situação, aloca a quantidade certa todas as vezes. char*, você pode esquecer de liberar ou liberar duas vezes ou não alocar memória suficiente. Ops. A lógica básica diz que os programas C ++ são melhores e mais seguros que os programas em C.
DeadMG
12
@DeadMG Um bom programador pode escrever código bom e seguro em qualquer idioma. Por outro lado, um programador ruim pode escrever códigos terríveis e inseguros em qualquer idioma. Um pobre carpinteiro culpa suas ferramentas.
Bob Somers
11

Eu trabalho em uma base de código AAA MMORPG que é C pura, então sim.

coderanger
fonte
5
Eu acho que isso coloca você no Cryptic. Você usa uma linguagem de script de qualquer tipo?
Dan Olson
3
Temos uma linguagem de expressão interna usada pelos designers para basicamente tudo, e usamos uma mistura de Python e Lua para algumas coisas (processamento offline, redução de mapa no DBS do jogo para estatísticas), mas nenhuma linguagem de script real no próprio jogo.
Coderanger
6

Sim, é perfeitamente possível. Muitas APIs no nível do sistema operacional, como POSIX e Windows, DirectX e OpenGL, têm interfaces compatíveis com C.

DeadMG
fonte
6

Fabien Sanglard escreveu um artigo sobre seu mecanismo 3D em C. No reddit, este artigo criou um debate interessante.

Os idiomas são apenas ferramentas ... Portanto, use-os com sabedoria. Para criar um bom jogo, pode ser mais fácil usar o XNA ou o Unity3D. Dominar C é um bom primeiro passo, mas você deve aprender C ++, D, python, lua ... C ++ é um idioma muito difícil. Portanto, use-o com cuidado.

Ellis
fonte
3

C é ótimo para o desenvolvimento de jogos.

Estou trabalhando em um jogo de plataformas 3D e nunca tive problemas com o idioma. Os únicos problemas são a detecção de colisões e sombreamento, não sei nada sobre eles, eles ainda ocorreriam em qualquer outro idioma.

Na verdade, acho muito mais fácil do que linguagens como C # e Java. Eu sempre itero em entidades usando ponteiros ( um exemplo do meu código ) e freadeconomizei muito tempo criando o carregador de mapa.

Se você deseja orientação e modularidade do objeto, pode criar estruturas de ponteiros de função.

Triang3l
fonte
1

Sem dúvida. Muitas bibliotecas úteis no desenvolvimento de jogos (como SDL, PhysFS, etc ...) possuem APIs C, o que ajuda muito.

Você pode querer incorporar uma linguagem de script como lua, se desejar fazer uma programação extensível e de alto nível. Muitas pessoas estão começando a ver o apelo na programação de uma estrutura C que usa lua para coisas como IA, eventos, etc.

Boa sorte.

James
fonte
1

A resposta simples para esta pergunta é: Você pode fazer um jogo baseado em texto simples como esse em todas as linguagens de programação. Mesmo montador pascal, básico ou x86:]

(e não precisa de mais nada)

Notabene
fonte
0

Sim, é possível, mas pode não ser o curso de ação mais desejável. Atualmente, muitas pessoas reconhecem que C e C ++ não são ideais para várias tarefas, e a lógica de jogo de alto nível geralmente se enquadra nessa categoria.

Se você insistir em C em vez de C ++ (o que não faz sentido para mim, mas para cada um deles), é melhor usar Lua em conjunto com C.

Para seus projetos de faculdade que exigem C, isso não será uma opção, mas para projetos de tempo livre, seria uma boa maneira de aprender.

Dan Olson
fonte
Lua é boa no tempo de desenvolvimento, mas antes do lançamento tudo deveria ser portado para um idioma nativo para obter um desempenho superior.
Triang3l
@ Triang3l Eu não concordo nada. O que você descreve é ​​otimização prematura. O uso de um idioma nativo NÃO garante que seu código seja mais rápido. A maneira correta de fazer isso é criar um perfil do seu código, encontrar gargalos e melhorar esse código. Existem muitos exemplos em que os desenvolvedores tentaram escrever seu próprio código C para substituir o código Java e o código C se tornou significativamente mais lento, ou onde os desenvolvedores tentaram substituir o código C pelo código Assembly significativamente mais lento. Não subestime os desenvolvedores de uma linguagem de alto nível e o ambiente de tempo de execução para ela.
user1657170 22/11
0

Claro que você pode. Muitos jogos foram programados em C (DOOM vem à mente). SDL é uma biblioteca de programação de jogos escrita em C.

Obviamente, pode ser um pouco mais difícil do que usar C ++ para um grande projeto, mas é possível.

rzrscm
fonte
0

Eu acho que é possível fazer um jogo c completo. Eu fiz um jogo (que é semelhante ao 'impacto espacial' do nokia 1110 mobile) no meu projeto do segundo semestre usando o compilador turbo c. Eu acho que você pode tentar assim (como um estudante universitário do primeiro ano) sem conhecer outros.

sabbir
fonte