Mac Dev - Ajude a começar com jogos 2D
Pergunta
Quero fazer alguns jogos/clones 2D simples (para Mac), mas tenho algumas perguntas:
- Devo usar Quartzo 2d ou Opengl (Eu não pretendo experimentar 3D tão cedo)
- Parece haver muitas coisas digitadas como CGFLOAT/GLFLOAT, que devo usar?
- Devo usar o Objective-C para o jogo também (aulas) ou apenas C? (Suponho que usarei o Objective-C e o cacau para janelas e vistas.)
- É bom redesenhar toda a vista a cada vez? Eu realmente não entendo como funciona o parâmetro DirtyRect do NSView, como ele sabe o que eu quero atualizar?
- Existem bons tutoriais para isso?
Obrigado.
Solução
Quartzo ou Animação Core vs. OpenGL realmente depende do que você está tentando fazer. Se você deseja desenho e animação simples, use quartzo ou ca. Se você deseja jogos rápidos/poderosos, use o OpenGL. Eventualmente, eu sugiro aprender os dois.
Para as coisas digitadas, use o que se destina ao sistema específico que você está usando. Para quartzo/ca/cg, use CGFLOAT. Para o OpenGL, use Glfloat.
Objective-C vs. C também depende da velocidade que você deseja. O Objective-C acrescenta um pouco de sobrecarga, mas (obviamente) permitirá que você crie jogos muito mais orientados a objetos. Eu sugiro usar o Objective-C se você usar o quartzo e a animação do núcleo e o Obj-C ou C se estiver usando o OpenGL. No entanto, se você está fazendo isso em um Mac (por exemplo, não para iPhone), provavelmente não verá muita diferença, a menos que esteja fazendo um desenho rápido complexo.
Não tenho muita certeza sobre o drawrect, mas essa questão tem algumas informações que podem responder a essa pergunta para você.
Para uma introdução ao quartzo, eu recomendo este tutorial, e eu sempre ouvi o Tutoriais nehe Recomendado para o OpenGL.
Outras dicas
Se você usar o SDL com o Cairo ou o OpenGL, obterá praticamente o mesmo modelo de programação, mas obtém compatibilidade de plataforma cruzada virtualmente gratuitamente. Você deve até continuar usando o objetivo C para a maior parte do jogo, se quiser.
Quão graficamente intensivo você deseja obter? O Cairo provavelmente será mais fácil de continuar por 2D.