Tirando todo a la basura

Al final, tuve que descartar el trabajo del fin de semana. He reiniciado el proyecto desde cero, reaprovechando lo que aprendí, pero utilizando AngelScript para implementar todos los sistemas. He reducido el código en C++ al mínimo necesario para inicializar y lanzar el script principal. Todo lo demás estará escrito en AS, como debió ser desde el principio.

Acabo de terminar el sistema de manejo de la cámara, lo cual ha llevado su tiempo, pues en el proceso he tenido que ir aprendiendo AngelScript y una nueva API, ya que varía sustancialmente con respecto a la que expone C++. Por ejemplo, esto:

Input* input = GetSubsystem<Input>();input->GetMouseButtonDown(MOUSEB_MIDDLE);

Se convierte en:

input.mouseButtonDown[MOUSEB_MIDDLE]

input es una variable global (lo cual facilita muchas cosas) y el método GetMouseButtonDown (como todos los métodos que tienen uno o ningún parámetro) se convierte en una propiedad pública mouseButtonDown de tipo int. En teoría, más fácil, pero toma su tiempo acostumbrarse después de pasar un mes usando el API de C++.

Para no cometer el mismo error, esta vez creé el proyecto en Visual Studio y luego lo probé en Linux. Además, pienso valorar estrictamente qué cosas se implementarán en C++.

En los ratos improductivos he estado pensando qué clase de RPG quiero hacer. Entre las cosas que descarté al iniciar el trabajo el viernes estaba el diseño del anterior sistema de juego en favor de otro no orientado a clases. Esto implica romper un poco con el canon (por llamarlo de alguna forma) que establecen las novelas de Elymuria, pero libros son libros y juegos son juegos. De todas formas se puede implementar alguna forma de obligar al jugador a especializarse en una o dos disciplinas, con un par de disciplinas de apoyo adicionales y habrá disciplinas mutuamente excluyentes. Aquí me espera todo un largo trabajo de balanceo que requerirá sacar muchísimas cuentas.

2 thoughts on “Tirando todo a la basura

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *