matriax Experto
Reputación : 67 Mensajes enviados : 473 Premios :
| Tema: [Opinion Personal] Fusion Vs Construct Lun Jun 29, 2015 3:15 pm | |
| Recuerdo del primer mensaje :
Antes de nada decir que llevo con Multimedia Fusion 2/2.5 cerca de dos años y medio programando juegos y que han salido para Windows, Mac, Linux, Navegadores(Flash) Android y OUYA. Para iOS al final no pudo ser por un bug de las colisiones de un tipo de movimiento que hacia que los personajes no se quedaban parados cuando chocaban rompiendo el gameplay.
Solo llevo un par de dias utilizando Construct2 pero entre lo que he podido probar, trastear y ver en tutoriales asi como la informacion y los ejemplos que he podido encontrar creo que ya puedo dar mi opinion personal marcando las diferencias entre uno y otro programa.
Interfaz Ya desde el primer momento la apariencia grafica y orden que encuentras tanto en donde estan las cosas como en el codigo hace que resulte mas facil programar y saber donde estan las cosas. No tienes que pasar el mouse encima o hacer doble click para ver los eventos y editarlos, es mucho mas comodo y puedes ver de que va ese grupo de eventos en un vistazo y como estan colocadas por orden.
-
Identificadores Unicos En cuanto a cambios, lo primero que me sorprendio gratamente fueron los UID al crear los elementos en el juego. Podia duplicar un elemento y cambiar su forma o tamaño asi como sus valores de comportamiento individualmente.
En Fusion cuando empece y tenia que hacer varios ascensores que tenian diferentes parametros de movimiento si los tenia duplicados tenia que poner "Start Frame-> Spread Value" pero seguia sin saber a cual de ellos asignaba el 0, el 1 o el 2 hasta que descubri que era por la posicion u orden en Z. Cosa que si luego cambiando cosas ordenabas los objetos o los ponias delante/atras de otros era un desastre.
En C2 asigna automaticamente el UID cuando se crea el objeto que no vuelve a cambiar y que puedes ver pinchando en el sprite.
-
Sub-Eventos En C2 puedes crear una condicion que contenga varias condiciones y eventos en cada una de ellas para no repetir codigo y estar haciendo Contro+C/V para las mismas acciones donde solo se cumple una parte de la condicion y tener esas condiciones/eventos en el arbol de una misma condicion general. En fusion hasta donde yo se tendrias que crear condiciones con diferentes cosas que se cumplan para cada evento.(Esto no se si lo he explicado muy bien XD)
-
Luces dinamicas En C2 en un par de clicks, configurables facilmente y que afecta a diferentes formas geometricas sin problemas. Aqui un ejemplo que hice en unos minutos. Añadir luces dinamicas en un par de clicks. https://dl.dropboxusercontent.com/u/65955496/z_otros/construct2/prototype_1/prototype.html
En Fusion la maraña de condiciones y eventos lo hace casi incomprensible para que luego solo funcione con cuadrados de 16x16 y tengas que estar averiguando que es cada cosa para adaptarlo y hacer que funcione con todo lo que quieres y formas.
-
Grupos/Familias Funcionan con los objetos que quieras en cualquier parte del codigo, ya sea en el event sheet local del Layout/Frame asignado como en las independientes/globales. Ademas puedes crear tantas Familias y ponerles el nombre que te de la gana, en Fusion los nombres de grupos que puedes utilizar vienen predefinidos.
En Fusion los Grupos/Familias solo funcionan en la hoja del frame. En los Behaviours y en Global Events estan desactivados por defecto debido a que pueden dar errores y hasta los creadores no recomiendan usarlos. Si aun asi quieres, tienes que crear tantos actives como nombres de Grupos/Familias quieras ademas que estas ya vienen definidas por lo que tienes que poner el nombre exacto.
-
Hojas de codigo En C2 puedes crear tantas como quieras y organizarte como te de la gana para luego cargar en los frames/layouts donde los necesites asi como los global events que quieras. Con esto tienes maxima organizacion y claridad de codigo en lugar de meterlo todo en un unico sitio.
En Fusion solo tienes una hoja de eventos para cada frame y solo una hoja de eventos globales que esta activa para todos ellos. Por lo que si estas en el menu o lo que sea el engine del personaje y demas esta activo a menos que lo desactives mediante algun evento/condicion para que no afecte a otras cosas.
-
Effectos/Plugins/Exportadores
En C2 todos los exportadores son gratuitos. En Fusion los exportadores son de pago de forma que comprarlos todos llegan a sumar mas de 300 euros. En ambos casos la licencia personal cuesta 100e y la version Comercial/Bussines 330 en caso de C2 y 400 en caso de Fusion.
En C2 todos los plugins y comportamientos generales funcionan en todas las plataformas. En Fusion la mayoria solo funcionan en Windows, lo mismo pasa con los efectos que todos funcionan en Windows pero en Android, iOS y similares solo los basicos tipo Additivo, Subtract, Greyscale y similares. En C2 para que funcionen deben tener WebGL activado el cual ya la mayoria de navegadores y dispositivos lo tienen, como por ejemplo iOS que en su ultima version, la iOS8 ya tiene WebGL: http://www.theregister.co.uk/2014/09/17/after_20_years_apple_finally_enters_the_third_dimension/
Ademas tiene una opcion curiosa en este sentido llamada "Fallback" que lo que hace es que si el efecto en cuestion no esta disponible le pone uno de los standares que tu elijas que si estan en todos.
En C2 puedes exportar con un click la version para ordenadores de sobremesa tanto en Windows, Mac, Linux en sus respectivas versiones de 32 y 64 bits. Fusion solo exporta a Windows, el plugin de Anaconda permite hacerlo hacia Mac/Linux pero con errores y bastante deficiente si el juego es complejo por lo que para ello se debe de utlizar un Wrapper que suele ocupar casi 200mb comprimido. El exportador oficial de Mac esta en camino sin fecha de lanzamiento, de Linux no se sabe nada.
-
Añadir comportamientos/Behaviours En C2 gracias a los UID distintos cada objeto duplicado puede tener un comportamiento diferente, en fusion debes de clonarlo o usar el mencionado spread value y todo el rollo. Ademas en C2 todos los comportamientos se añaden dentro de las propiedades del objeto.
En Fusion tiene cosas "built-In" como el movimiento del active y un par mas, sin embargo el PathFinding/Move-Safetly/MoveTo,etc... y similares son extensiones que tienes que crear en el frame/layout donde quieres que funcione, si tienes 80 frames tendras que copiar en cada uno de ellos esa extension a mano, a mi me paso varias veces en mi primer juego y no es agradable cuando ya tienes creados 30 niveles ir 1x1 creando esos objetos. Ademas de crearlos luego tienes que crear una condicion-evento para asignarle esa extension al objeto del tipo : "Start Frame -> "extension X"-> Add "Object" . Eso en todos los frames donde quieras utlizarlo o en el global events una vez, lo malo es que lo aplicara en todos los niveles asi que si en algunos no quieres deberas de estar modificando en cuales si y en cuales no.
-
TileMap En Fusion nada, en C2 tienes tu propio editor de tiles para crear tus propios niveles de juego con la opcion de tener varios en un mismo proyecto. Puedes ajustar el tamaño de los tiles aun despues de haberlo creado asi como el offset/spacing para cuadrarlos bien y poderlos utilizar correctamente.
Tambien puedes editar las colisiones por si ese tile de X tamaño lleva una mesa en medio o en cierta zona y quieres que el personaje solo choque en esa parte del tile creado un poligono mediante creacion de puntos. https://www.youtube.com/watch?v=GHe9CUXfZxc&list=PLusL6SZZRaWr4zqm6GrQHmOuShwtypRJ5&index=9
-
Containers
Video explicando los containers: https://www.youtube.com/watch?v=F2LyI4lMmwE
Con C2 parece que solo te tienes que preocupar de los eventos y decirle en que posicion deben de ir cada grafico para montar uno completo. Usando containers cuando el objeto base es creado se crean las demas partes y lo mismo cuando se destruyen por lo que no hacen falta eventos adicionales ni comparaciones ni nada y ese trabajo que te ahorras.
En fusion tengo que decirle que mire el numero de X objetos y los compare, si es menor que cree un objeto en tal layer,etc... de forma que en los eventos ya le digo que siempre ponerlo en "set position X/Y de ese objeto". Por otra parte luego tengo que decirle que mire los X objetos y si es mayor elimine si hay mas, o lo de "pick at random -> destroy" etc... , con C2 te lo ahorras.
-
Juegos en 3D En Fusion nada, en C2 se pueden hacer cosas chulas, complejas, y con buen rendimiento de frames por segundo, ejemplos: Mini Tank: http://gamejolt.com/games/tiny-tank/27522 RollBall: https://dl.dropboxusercontent.com/u/2053779/Q3D_TEST/index.html (R = Nuevo nivel procedural) Quake Morphs: https://dl.dropboxusercontent.com/u/82947809/Q3D%20stuff/morph6Ddemo/index.html
Conforme vayan sacando mas documentacion y tutoriales al respecto estoy seguro que se iran haciendo cosas mas elaboradas y grandes viendo lo que se puede hacer ya. No me extrañaria que alguien hiciera un FPS o juego 3D de coches tipo Need For Speed o similar con una buena calidad. Faltaria ver como lo mueve y en que plataformas eso si.
-
Debug Ya lo comente en otro post pero pongo aqui el link de las imagenes para que las veais:
Fusion: https://2img.net/h/oi60.tinypic.com/md2wdc.png
Construct2: https://2img.net/h/oi57.tinypic.com/2i6pbg1.png https://2img.net/h/oi60.tinypic.com/9jiz2f.png
Simplemente no hay comparacion. En Fusion debes de poner al objeto "Start of frame-> Add to Debug". En C2 se cargan todas las variables y opciones del objeto en el debug automaticamente y puedes navegar entre los objetos viendo sus propiedades. Ademas puedes dar click en el icono del ojo para ver en una pestaña solo las variables de X objetos seleccionados de un vistazo.
Por otra parte tiene una funcion que te indica el % de CPU que usa tu proyecto detallando los grupos creados y las hojas de codigo para la optimizacion de recursos.
-
Varios
- En C2 lo puedes ordenar todo por carpetas, tanto sprites, plugins,etc... en cualquier sitio. En Fusion dentro de global events no se permiten crear carpetas ni organizarlos por ningun orden, si lo haces cuando sales y vuelves a entrar esta todo igual de desordenado que la primera vez.
- A falta de mas pruebas con C2 consigo que los sprites en modo ventana o pantalla completa no meta antialias de ninguna forma. En Fusion, aunque los sprites tengan desactivado el antialias si ejecutas el juego, al utilizar Directx9 te suaviza con uno o 2 pixels el borde aunque sea un cuadrado de 8x8 pixels. Solo poniendo DirectX8 o Standard conseguia pixels limpios pero claro, perdia en fluidez de movimiento sobre todo cuando habian particulas de por medio.
Supongo que habran mas cosas que ire encontrando en los proximos dias o descubra con el tiempo, ya ire actualizando este post contando la experiencia. De igual forma ya creare algun post contando como ha sido crear el primer juego en C2 o lo que sea para tener una vision mas completa de cosas que puedan mejorar o fallar. - -
Conclusion
Puedo decir que me cambio a Construct2 sin ninguna duda desde ya mismo. No son solo un par de cosas o mejoras, es que es practicamente el concepto entero, es como deberia de ser Fusion si se hiciera desde cero corrigiendo todos esos detalles que lastran la programacion y frustran al programador.
Iba a decir que algo muy malo tengo que encontrar en C2 para volver a Fusion pero es que con lo que se actualmente de Fusion y lo que he podido probar de C2 seria dar un paso hacia atras, en resumen, que volver a Fusion despues de probar C2 ya no es ni siquiera una opcion.
Tanto Fusion3 como Construct3 saldran el año que viene, pero teniendo en cuenta lo que se sabe que traera Fusion3 y viendo que C2 ya lleva todo eso y mas, esperarse es retrasar lo inevitable, al menos y como digo, desde mi punto de vista.
Última edición por matriax el Mar Jun 30, 2015 5:08 pm, editado 6 veces | |
|