Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Desarrollo para iOS

Iniciado por neroir, 04 de Abril de 2012, 02:50:49 PM

« anterior - próximo »

neroir

Buenas.

Estoy pensando empezar a meterme en el mundo del desarrollo de juegos para iOS, así que, para variar, recurro a los expertos del foro para resolver las dudas:

- Aprendo Objective-C o mejor uso C++ y utilizo alguno de los entornos o librerías que hay por ahí que luego te compilan ya la aplicación para iOS?
- Qué entornos/librerías/SDks recomendáis?
- Qué libros/tutoriales os parecen los más interesantes?

Un saludo y gracias!
PD: me imagino que a dudas así habréis respondido cientos de veces, pero con el buscador del foro no he encontrado nada demasiado útil entre los primeros resultados... por eso he abierto un post nuevo

Gallo

Yo te recomiendo aprender objective c y utilizar sparrow framework.

http://gamua.com/sparrow/

YaW

Aprende Objective C y para los juegos utiliza Cocos2d.

neroir

Se me ha olvidado comentar que sería para desarrollar en Windows.... no se si eso cambia las respuestas o no....

[EX3]

#4
Cita de: neroir en 04 de Abril de 2012, 09:28:51 PM
Se me ha olvidado comentar que sería para desarrollar en Windows.... no se si eso cambia las respuestas o no....
No puedes desarrollar para iOS desde Windows ni Linux, solo desde Mac OS, ya que XCode y demás herramientas solo existen ahí, y desde un equipo Mac, esto es un requisito de la licencia de desarrollo de Apple (y que maquinas virtuales y clonicos de Mac no funcionan bien del todo para desarrollar por lo que tengo entendido).

Salu2...

P.D.: De hecho veras que muchas herramientas multiplataforma como Unity3D y similares la opción de compilar para iOS solo esta disponible desde la versión Mac.
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Gallo

Lo que ha dicho ex3 es la regla general pero lo cierto es que hay un par de maneras de desarrollar desd windows. Una de ellas por ejemplo es con udk, ke puede hacer el deploy a un dispositivo ios desde windows y creo que el flash builder tambien puede hacerlo.

Aun asi necesitaras un mac si o si para los certificados y para enviar el juego a apple y los metodos ke he mencionado antes no permiten desrrollo nativo, solo codigo ke se ejecuta sobre un motor ya compilado, y en el caso de udk como no tengas un equipo de gente que le sake partido no creo ke te valga la pena ni para aprender.

neroir

Mmmm, entonces habrá que ir pensando en empezar a desarrollar para Android....

blau


Gallo

Cita de: Gorkinovich en 09 de Abril de 2012, 02:32:42 PM
Aprender Objective-C más allá de lo estrictamente necesario es perder total y completamente el tiempo. Porque un lenguaje que implementa conteo de referencias, parece una buena idea y es una buena idea... hasta que ves que el mecanismo es manual, no automático como lo es en los punteros inteligentes de C++ (ej.: std::shared_ptr). Para hacer eso, mejor no hacer nada en absoluto... porque este lenguaje no aporta nada bueno o interesante y solo dios sabe qué clase de... persona... fue la encargada de escoger en NeXT este lenguaje como base para el desarrollo de aplicaciones.

Además está esa sintaxis ridícula para llamar una función cualquiera, que te fuerza a poner el nombre de todos los parámetros. Algo ridículo con los IDEs modernos que tenemos hoy en día, que te dan información contextual de forma sencilla y rápida. Y para colmo de todos los males, ¿quién dijo programación genérica? Solo tienes dos opciones, usar macros (oh genial... ¬¬) o usar los templates de C++ y dejarte de chorradas.

Además, a día de hoy, existen SDK (de pago y tal) como Marmalade, que no son la panacea claro... Pero te permite programar con un lenguaje de verdad como C++ para iOS, y de paso te permite hacer versiones para Android y otras plataformas en vías de extinción...

Ostras creo que en esta ocasión no estas muy al tanto del tema del que estas hablando:

El reference counting ya es automático, cierto que hasta hace poco era manual pero en las ultimas versiones del compilador puedes poner que lo haga solo, eso si... para nuevos proyectos mejor por que reciclar los que ya lo hacían de forma manual creo que es bastante tedioso. Por supuesto el reference counting solo funciona con clases de Objective C no de C++.

Lo de los nombres de los parámetros es una práctica habitual pero no obligatoria, aún así con el "autocompletado" te da un poco igual y sabes al momento que sobrecarga estas usando.

Objective-C puede ser mezclado con C++ de forma transparente, un archivo .mm puede tener clases en objective C o en C++, y la clase de C++ puede tener propiedades con tipos de Objective-C y llamar a sus métodos con la syntaxis de Objective C y lo mismo al rebés, práctricamente es como si al C++ le hubieran agregado otra sintaxis compatible con la standard. Esto da pie a poder programar todo un juego/framework en C++, lo de aprender Objective C conviene por que una parte de lanzaderá en Objective C y muchas de las APIs y Frameworks como los de la interfaz gráfica de iOS o el Sparrow Framework están escritos en Objective-C con lo cual te medio obliga a usar Objective-C, pero en caso de juegos, te puedes hacer tu propio framework con C/C++ haciendo llamadas con la api OpenGL ES que además hara mas facil hacer un framework/motor multiplataforma, eso si, al no usar Objetive-C pierdes bastantes cositas, cositas que tras muchas horas no he conseguido recrear ni haciendo virguerias con templates de C++, sencillamente C++ no es managed, y eso te obliga a escribir muchas lineas de código que en Objective-C te ahorras.


Gallo

Err creo que estas confundiendote no me estoy explicando bien. En Xcode 4.2 se agregó el ARC, Automatic Reference counting, una feature que te reescribe el código cuando construyes un target, evaluando donde se deberia hacer reference counting y agregandolo. No es lo mismo que un GC, un GC lo hace por detras, el ARC sigue siendo como un manejo manual pero te ahorra el escribirlo tu.... La verdad es que no uso esta feature pero mira, estaba en la docu y queria mencionarlo xD.

http://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/WhatsNewXcode/WhatsNewXcode.pdf

Dejando a parte el tema del GC o el ARC, hay otras cositas, fuera del contaje de punteros manejo de memoria etc, que realmente cuesta recrear en C++, por ejemplo el Invokation de Objective-C que ya mencioné una vez en el foro, una clase diseñada para guardar una llamada a un método con una serie de parámetros. Yo he probado a recrearlo con C++11 (que está disponible también desde XCode 4.2 creo) y ni con eso, ni variadic template parameters, ni nada, imposible hacer que sea tan managed como en Objective-C, acabas haciendo un amasijo de templates que ni siquiera funciona en todos los casos, al menos, es a donde he llegado mis conocimientos.







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.