[Devlog] Vircon32: Creando mi propia consola

carra

#840 Yuju, mi primera venta asegurada! Jejeje
Muchas gracias gogogo, has sido de los habituales por el hilo :blush:

1 2 respuestas
neil90

#841 No es ni será el único!

1 1 respuesta
AikonCWD

#841 Con el tema del metroidvania vas a tener un problema. Y es que soy muy fan del género y te voy a sacar punta a todo. Preparate que me lo voy a mirar con lupa pixel a pixel para buscarte fallos :P

Ya nos dirás que tienes pensado, sin entrar en detalle de los secretos del gameplay, claro.

1 1 respuesta
carra

#842 Jeje menos mal que por aquí a algunos os interesará!
Y a alguno de Discord, Así no parto tan de cero.

#843 Bueno, puede ser un problema o una ventaja! Me obligará a pulirlo mucho. Menos mal que voy sin prisa.

Sin contar spoilers (que ya tengo pensados algunos detalles de la historia), va a ser de estilo futurista. Estaremos en una especie de nave espacial. Y por cierto no busques pixels, que no será pixel art jeje.

1 respuesta
AikonCWD

#844 Siempre hay pixeles si haces suficiente zoom

1
Avengerr

#815 Ojala abandonar mis proyectos en el mismo estado en el que se encuentra el tuyo. Es impresionante todo lo que has hecho aquí, estaremos atentos al Devlog de tu proximo juego, suerte!

1
Ridote

El hype que tiene tu juego antes de siquiera empezarlo no te va a hacer ningún favor, pobre carra jajaja

3
carra

Ya, el hype es un arma de doble filo. Puede ser muy malo o muy bueno.
De momento con que sigáis el futuro devlog, como dice Avengerr (gracias!) me conformo.

1 respuesta
AikonCWD

#848 cuando empiezas?

1 respuesta
carra

#849 Bueno ya he empezado con algunas cosas. He escrito cosas para el setting y la historia, he hecho algún boceto inicial (cutres, nada que enseñar) y he pensado alguna mecánica.

Pero el juego en sí no lo voy a poder empezar hasta que me maneje un poco con Godot. Ya he empezado a trastear con él pero me llevará un tiempo, nunca he manejado ningún motor y estoy acostumbrado a hacer las cosas de otras maneras más "directas". Por ejemplo ayer estaba buscando alguna manera de hacer un borrado de pantalla (para poner el fondo de otro color). Y aquí hay que saberse que existen los ColorRect y colocar uno tras la escena :sweat_smile:

2 respuestas
gonya707

#850 En godot solo recuerda que todo es una escena.

La escena? Una escena.
Tu personaje? Una escena.
El mismísimo Albert Einstein? Una escena.

Espero con ganas el retorno de Vircon32 para FPGAs :rofl: Suerte con tu juego

1 1 respuesta
carra
#851gonya707:

En godot solo recuerda que todo es una escena.

Ya ya, tengo interiorizado que cualquier entidad/entorno del juego es una escena. Lo que pasa es que yo estaba buscando una ACCIÓN, un comando. Que es como se haría esto a bajo nivel (en Vircon por ejemplo)

totespare

Me acabo de enterar del cierre (que no abandono) por @Ridote en el hilo que acaba de crear... Es necesario un hilo-resumen mensual, efectivamente jaja.

Bueno @carra, dejas un buen legado, un proyectazo super currado que ya quisiéramos muchos... Enhorabuena por todo el recorrido y la constancia, y nos dejas con muchas ganas de ir viendo ese metroidvania!! :heart:

1 respuesta
carra

#853 Gracias!
Para mi metroidvania ya he estado pensando en algunas cosas pero tengo un primer plan antes de eso.

Voy a intentar lanzar primero una versión para Steam de uno de mis juegos de Vircon32, en concreto Basic Platformer. Crear esta versión no me debería llevar mucho tiempo porque el juego es simple y todos los asset ya están hechos. Y hacer esto me ayudaría a familiarizarme con todo el proceso de un lanzamiento comercial (Godot, Steam, redes sociales, precios, ser autónomo/montar una empresa, etc). Creo que va a ser mejor eso que tener que encontrármelo todo por primera vez cuando haga el metroidvania, y así reduciré riesgos.

Además en este caso, no me importaría si el juego fracasa. Lo voy a hacer más como formación. La idea es autopublicarlo y ponerle un precio bastante bajo (unos 5€ máximo). Según cómo vayan las cosas quizás le dedique un poquito más de tiempo y lo convierta en un "Basic Platformer EX" con algunos extras (logros, más niveles, quizás alguna mejora gráfica...).

Pero por supuesto, el juego original de Vircon32 seguirá estando disponible y seguirá siendo de código abierto.

2 2 respuestas
totespare

#854 pues me parece un plan de puta madre, la verdad. Steam es un ecosistema muy amplio y tener esa formación antes de lanzar cualquier cosa va a ser algo súper positivo para los siguientes. Estaría guay que abrieras un hilo contando esa experiencia, seguro que es muy útil para mucha gente (incluido yo, por supuesto!)

1 1 respuesta
carra

#855 Sí sí, cuando lo empiece abro hilo y os voy contando :thumbsup:
Y si además le ayuda a alguien con sus juegos genial!

2
r2d2rigo

#854 5 euros por un juego asi de sencillisimo me parece bastante locura, piensatelo bajarlo a 2 o 3.

1 1 respuesta
carra

#857 Sí, se puede mirar. Dije 5 máximo. Pero claro si lo pongo a 3 euros tampoco lo pondría en oferta, que bastante bajo es. Que al final tiene 30 niveles (pongamos 40 si hubiera un mundo extra)

1 respuesta
AikonCWD

#858 Yo lo que hice con CursedGem es dejarlo a 3€ (creo) y luego lo pasé a free una vez cubrí el coste de la licencia de Steam.

Claro que no entraba en mis objetivos ganar ni un mísero € más allá de pagar la licencia de entrada de Steam. Pero ahí te dejo el dato.

1 respuesta
carra

#859 No es mal dato, gracias. Y has echado cuentas de lo que habrías podido ganar?

En mi caso, como la versión gratis va a seguir estando y para steam llevará algún extra, no le veo tanto sentido que también acabe gratis. Quien la quiera gratis pues que la juegue en Vircon jeje

1 respuesta
AikonCWD

#860 Pues no puedo extrapolar los datos porque en el momento que puse el juego a free se me dispararon las "ventas" (ventas de 0€). Así que no sería de recibo extrapolar esas descargas a ventas reales, porque con total seguridad la mayoría de esos nuevos players que tuve fueron fruto del precio de 0€.

Si tu quieres sacar algo de rentabilidad, adelante con tu propuesta. Al final el juego y el trabajo es tuyo y lo vas a valorar como te venga mejor.

1
carra

Bueno pensándolo un poco más creo que sí, @r2d2rigo tiene razón: 5 pavos va a ser mucho. Si lo comparo con los 15 aprox. que planeo que cueste el metroidvania, en comparación parece caro. Será mejor que no pase de los 3...

1 respuesta
AikonCWD

#862 Tampoco te partas mucho los cuernos con eso porque a las 12hr de la publicación de tu juego en steam va a estar disponible crackeado en todas las webs. Tanto el plataformas como el metroidvania.

es un asco xd

1 2 respuestas
Damnedlove

#863 A las 12 h xddddd. Tú sabes cuando te piratearon el Cursed desde que lo publicaste?

Creo que lo hiciste y también carra podría tomar nota para su metroid de meter algún easter egg para cuando detecte que el juego es pirata que le pase alguna putada al personaje xd.

1 1 respuesta
carra

#863 Ya me lo imagino... qué le vamos a hacer.

#864 No es mala idea, aunque de momento no sé ni cómo se detecta eso. Me quiero imaginar que puedes intentar obtener alguna información de Steam, y si no es la correcta asumes que estás en un sandbox. Voy por buen camino?

1 respuesta
AikonCWD

#865 luego te explico mi aproach sobre la detección de emuladores de steam (el crack)

1
AikonCWD

A ver @carra , resumen rápido.

Steam ofrece un SDK que básicamente se compone de una librería DLL suya que cargas dentro de tu juego y eso te da acceso a diferentes métodos que ya implementa dicha librería. Por ejemplo tienes el método BIsAppInstalled para comprobar si tu juego está instalado en el sistema, o BIsVACBanned para comprobar si la cuenta de usuario tiene un baneo en VAC, etc... tienes mil métodos para hacer consultas a Steam, comprobar DLC, descargar el avatar del jugador, integrar el chat de Steam y cualquier cosa que te puedas imaginar.

Entre todos esos métodos tienes: BIsSubscribed: https://partner.steamgames.com/doc/api/ISteamApps que devuelve un bool indicando si el usuario logueado en steam ha comprado tu juego. En caso de recibir un false simplemente terminas la ejecución de tu juego y listo. Así de sencillo.

Qué es lo que ocurre? Que desde hace tiempo existen emuladores de steamworks. Básicamente es una DLL de terceros "espejo" que implementa todos los métodos típicos de la librería oficial, pero haciendo que alguno de esos métodos devuelvan valores hardcodeados, mira este ejemplo:

https://gitlab.com/Mr_Goldberg/goldberg_emulator/-/blob/master/dll/steam_apps.cpp?ref_type=heads

Línea 37. Verás que dicha librería implementa un método BIsSubscribed que siempre devuelve true, sin hacer ningún check real a los servidores de Steam. Pues el crack consiste en descargarse tu juego, eliminar la DLL oficial y meter esta DLL y pista. Ahora tu juego cada vez que compruebe si se ha comprado, siempre recibe true.

Y con este método piratean el 100% de los juegos de Steam (no entro en juegos que implementan sistemas propio como Denuvo, etc...). Solución? Pues bueno, sabiendo ahora como funciona este método seguro que se te ocurre algo. A mí lo que se me ocurrió es lo siguiente (escribí un artículo en su día):

https://github.com/aikoncwd/easy-but-not-infallible-way-to-protect-steam-games

Si implementas esto harás que el crawler automático que piratea juegos de steam de forma desatendida, no funcione con tu juego. El crack que consiste en sustituir la DLL por la DLL pirata no funcionará y deberá intervenir un grupo de cracking a pelearse con tu código... cosa que es probable que no ocurra porque no existirá demanda que avale las horas de curro.

Te recomiendo que te leas con calma mi artículo porque creo que está todo bien explicado. Un saludo

11 3 respuestas
carra

#867 Qué currado! Gracias tío.

Algunas cosas sí las sigo ahora mismo, otras no tanto como las API de Steam que aún no me las conozco de nada. Pero me guardo todo esto, para cuando llegue el momento. Muy bueno.

1 respuesta
AikonCWD

#868 De nada. El tema es que en Steam han querido simplificar y facilitar mucho la vida a los devs. Tu como dev no vas a realizar nada complejo para trabajar con Steam. Simplemente cargas una DLL y llamas a diferentes métodos.

El problema de eso es cuando te reemplazan la DLL por una pirata donde cada método devuelve el valor que se le antoja.

No te rayes con estos temas por ahora. Llegado el momento me das un toque y yo te ayudo con lo que necesites... a cambio de un 10% de tus beneficios. Claro :P

2
jarobado

Felicidades por cerrar el proyecto, somos muchos los que te vamos siguiendo aunque no tengamos ni papa de gamedev por lo interesante del tema y lo bien que lo explicas.

#850 Seguro que molaría ver los bocetos iniciales incluso aunque pienses que no son presentables.

1