Proyecto: editor de mapas, escenarios y aventuras de rol

VriejElBardo

Hola a tod@s!
Voy a intentar ir al grano para no consumir demasiado de vuestro tiempo, así que perdonad si en algún momento doy info de más.

Soy muy fan y consumidor de juegos de rol (y me refiero a los de sentarse en una mesa con hoja de personaje, lápices y tiradas de dados, como D&D, Pathfinder, La Llamada de Cthutlhu, etc.) y llevo unos meses creando y perfilando un sistema de juego así como el lore del universo que tengo en mente.
Quiero crear un programa/app (cuya arquitectura ya tengo más o menos pensada, pero no del todo) que consista en lo siguiente:

  • Editor de mapas y escenarios
    • Mapamundis
    • Mapas escenarios locales (dungeons, pueblos, interiores de bosques, etc.)
  • Editor de aventuras
    • Una serie de documentos que describan y narren una aventura o campaña con su introducción, nudo y desenlace.

Para que os podáis hacer una idea más clara de lo que pretendo, me imagino la herramienta de edición de mapas como, por ejemplo https://dungeondraft.net/ (podéis ir al minuto 1:08 directamente) y el editor de aventuras, textos y demás como https://homebrewery.naturalcrit.com/.

Ventajas:

  • Como digo, tengo prácticamente perfilado e incluso varias veces testeado el sistema de juego.
  • El diseño de iconos, grafismos, maquetación e ilustraciones que necesitaría, no me supone ningún problema porque dibujo bastante bien y domino tanto el photoshop como el AI.

Desventajas:

  • Tengo 0 idea de programación. Por interés personal en mis propios proyectos individuales y también incluso porque me ayudaría en una rama de mi empresa en la que estoy interesado, he empezado hace poco a aprender programación en C# de forma autodidacta, pero literalmente acabo de empezar.

Mis preguntas son: ¿consideráis que C# es un lenguaje idóneo para lo que pretendo hacer? ¿Debería hacerlo mejor con otro lenguaje? ¿Sabéis de herramientas o webs que me puedan ayudar a entender mejor cómo desarrollar mi proyecto?

Nota: a pesar de que dedicaré todo mi tiempo libre a este proyecto y a aprender lo que necesite para llevarlo a cabo, no me importa en absoluto tardar meses o incluso años en acabarlo.

Muchísimas gracias por vuestras respuestas y sugerencias!!!

1
carra

Buenas Vriej!

#1VriejElBardo:

Nota: a pesar de que dedicaré todo mi tiempo libre a este proyecto y a aprender lo que necesite para llevarlo a cabo, no me importa en absoluto tardar meses o incluso años en acabarlo.

Esto me ha gustado. Está muy bien que te plantees esto así desde el principio, si no la verdad es que no creería que puedes tener éxito. No porque programar un editor sea un proyecto muy complicado de hacer, sino porque es difícil aprender a la vez a programar si no lo has hecho nunca. En ese sentido, lo mejor sería que hicieras pequeños proyectitos en plan experimentos primero. Pequeñas muestras, en la linea de lo que quieres hacer pero más pequeños, para ir aprendiendo el lenguaje y las herramientas que elijas.

En este caso, yo más qué lenguaje elegir me plantearía qué herramientas son las que te viene mejor usar. Los conceptos básicos que manejan casi todos los lenguajes de programación suelen ser los mismos y son sencillos de aprender: variables, funciones, condiciones y bucles. Lo que vas a querer partiendo de cero es encontrar un entorno de programación que te lo haga sencillo en la práctica. Sobre todo la parte de manejar el ratón y los objetos que usas, que es lo que te puede costar más.

Si te basta con hacer un programa de escritorio, para crear algo tipo editor podrías usar .Net que es muy sencillo para hacer interfaces gráficas. Tendrías que aprender a manejar ventanas y controles, y a enlazar lo que sucede con ellas con el código usando eventos. En .Net puedes programar en varios lenguajes, quizás el más sencillo es VB.Net. Aunque encontrarás más ejemplos online en C#. Pero los dos pueden hacer lo mismo.

Si lo que quieres es más algo tipo app para móvil o en navegador, entonces tienes que aprender más cosas ya que estos programas necesitan manejar más cosas: los diferentes dispositivos, las app stores, el modelo DOM, etc. No te lo recomiendo para tu primer proyecto.

Suerte, y ya nos irás contando!

1 1 respuesta
VriejElBardo

#2 Muchas gracias Carra. La verdad es que lo que me pasa es eso. Mi desconocimiento técnico es tan grande en cuanto a desarrollos y aplicaciones que veo un abanico casi infinito de formas y herramientas de trabajo que, sinceramente, no tengo ni idea por dónde empezar.

1
carra

Lo que yo haría es instalarme la versión gratuita de Visual Studio e ir haciendo experimentos. Empieza buscando tutoriales de C#, busca el que se vea más sencillo en el que te enseñen a crear solamente una ventana con un botón, y que al pulsarlo haga alguna tontería (como mostrar un mensaje).

Pruebas el ejemplo, ves que te funcione, e intenta comprender cómo funciona y lo que hace cada línea. Y a partir de ahí ve ampliando y probando diferentes cosas, hasta que vayas llegando a un programa más completo y que se parezca más a lo que quieres.

2
r2d2rigo

C# es un lenguaje perfectamente valido, ahora mismo se puede usar en todas las stacks existentes (web, desktop, movil, juegos, IoT...); pero ten en cuenta que si partes de 0 vas a necesitar mucho mas aprendizaje paralelo que solo el lenguaje:

  • el IDE
  • la stack para la que lo hagas, web o desktop?
  • los frameworks adicionales (WPF/Winforms para apps desktop, ASP + frontend para web...)
1 1 respuesta
VriejElBardo

#5 Muchas gracias por tu comentario r2d2rigo. Sí sí, sé que se me abre un océano infinito de conocimientos que no tengo, de ahí que tenga tan claro que no me importe tardar meses o años. Si pretendiese, tenerlo en 2 meses, me volvería loco, me frustraría y lo dejaría a las dos semanas. De hecho, voy a serte sincero, no tengo ni idea de qué es el IDE, los stacks y por supuesto los frameworks me suenan a chino. Básicamente, mi conocimiento en cuanto a programación es el mismo que el de mi hijo de año y medio sobre matemáticas avanzadas aplicadas.

Por si alguno de vosotros ha jugado a sesiones de rol como las que indico (o sabe más o menos en qué consisten) mi intención es, llegado el momento, que el jugador que vaya a hacer de GM, en el programa editor de aventuras pueda pasar el link de una campaña que él haya creado al resto de jugadores. Estos tendrán una app en su móvil/tablet/ordenador, que actúe como la hoja del personaje (con sus atributos, habilidades, inventario, tiradas de dados, etc).
Por supuesto, los jugadores podrán ver en sus dispositivos, además de su hoja de personaje, el mapa que el GM haya creado, info de algunos PNJ, su propio diario de viaje, etc.

Dicha esta breve explicación, no sé si es mejor hacerlo como navegador web o como un programa/app que tengan que descargarse e instalarse tanto GM como jugadores héroes.

De nuevo, muchas gracias por vuestros comentarios. Me son realmente útiles y los agradezco mucho.

B

Lo quieres para plataforma única (ej móvil) o multiplataforma?

Si las exigencias de rendimiento no son muy elevadas... una opción es un desarrollo web, será funcional en casi cualquier dispositivo.

Al lenguaje no le veo demasiada importancia...

Claro que, si no es algo puntual y quieres profundizar en el mundillo... miraría de aprender bases sólidas de programación y olvidaría de momento el proyecto.

1 1 respuesta
VriejElBardo

#7 Tal y como lo tengo pensado, me lo imagino más multiplataforma. Me alegra que me hagas esa pregunta, i64, porque lo cierto es que este no es el único proyecto que me gustaría llevar a cabo y que exigiese programación. Además ya por puro interés personal y curiosidad, de verdad me gustaría saber programar y entender más cómo funciona este mundo. Sin duda sé que lo que me recomiendas/recomendáis es lo mejor, así que trataré de ir aprendiendo y probar pequeños problemas ejercicios poco a poco hasta entender el cómo y el porqué de las líneas de código.

1

Usuarios habituales