De todas formas estáis comparando un motor que tiene 20 años de recorrido como Unity con un motor free y opensource
Hoy nos hemos puesto gores, estoy trabajando en la muerte del jugador, el sprite se parte en trocitos (mas adelante los determinare para que no sean cuadrados si no las formas por separado del sprite) y los emitters de la sangre los anido en cada trozo de sprite para que vuelen/roten emitiendo sangre, aquí el delito:
Unity es un motor de videojuego multiplataforma creado por Unity Technologies, anunciado y lanzado por primera vez en junio de 2005
Godot fue desarrollado y utilizado internamente por la empresa argentina OKAM Studios desde alrededor del año 2001
Obviamente no van a tener el mismo desarrollo viendo los recursos que ha tenido cada uno a lo largo de su historia, pero Godot no tiene nada de nuevo.
No me llama utilizar un lenguaje de front para hacer backend. Solo uso PHP para gestionar las sesiones y hacer querys al MySQL.
Y PHP me suena un poco por el wordpress, de JS no tengo ni puta idea.
#10265 Instala Laravel, te deja elegir sistemas de sesiones como si fueran churros. Cookies, Ficheros, SQL, Redsis
El 99% de lo que tengas te va a funcionar casi por defecto. Porque me imagino que será un par de funciones básicas.
Si quieres seguir a pelo, el clásico Token en llamada + Redis
Pero NO te fíes de las sesiones de PHP a pelo, porque da igual que pongas 15 segundos o 10 horas, se pierden cuando le sale de la polla.
Token de sesión, y que se acuerde el Server.
#10268 No tengo VPS. No puedo instalar nada.
Al final me he creado un ping.php que llamo desde el juego cada 5 minutos y modifico la sesión para que no muera por caducidad. En las pruebas que he hecho en local funciona todo ok
#10270 Necesitaría un VPS, no? Creo que el plan barato en OVH te ofrece un webserver/apache con PHP y MySQL. No veo forma fácil de ejecutar C# ahí.
#10269 No necesitas Instalar nada. Tienes PHP y con eso basta
Te lo instalas en tu maquina, y subes todo el proyecto.
Me imagino que al menos Apache si tendrás, con eso vale.
#10273 Me lo miro, junto con PHP sinphony (o como se diga), que me han comentado que es muy chulo también. Usa Model-View-Controller y estoy familiarizado con ese patrón de diseño.
#10275 Ni idea.
Da igual la verdad. Me pillé un webserver para hostear la web del Cursed Gem y ahora lo uso también para hacer un poco de backend y sostener un MySQL y almacenar 4 mierdas para mis juegos. Al final lo necesito para cosas así:
https://aikoncwd.ovh/sql_catacombs/get_current_dungeon.php
https://aikoncwd.ovh/sql_catacombs/get_deaths.php
Hago esas llamadas desde el juego y luego parseo el json.
#10274 Symfony es el dios supremo de Framework...y como tal digamos que es...eh...digno en cuanto a configurar.
Hombre han mejorado mucho, las cosas como son, pero es eso, el padre de todo y tiene que darle soporte a todo.
Laravel monta encima de muchas cosas de Symfony. Pero solo por Eloquent y su sistema de objectos les prefiero a años luz.
También tiene bastantes "fronts" hechos, por si necesitas una zona de Admin. A mi en lo personal no me gustan mucho, prefiero el sistema que tengo propio, pero para algo normalito, dan la talla.
#10276 joder la verdad que para gamedev, veo una putada tener que hacer cosas backend. en mi caso es mi trabajo del dia a dia, entonces me costaria menos montar cosas de este tipo, pero entiendo que tiene que ser una tocada de huevos bien gorda, porque PHP en mi caso yo ya no puedo ni tocarlo con un palo. pero es cierto que hay frameworks que te minimizan el sufrimiento (mientras no te salgas de sus estandares)
nadie ha creado algun framework centrado en este tipos de backends para juegos? entiendo que es un subcaso, pero al final veo que esto se repite mucho y cada uno hace una solucion al final super customizada
#10278 Hasta donde yo sé, lo correcto sería programar un servidor que gestione todo esto, en el mismo lenguaje que programas el cliente (juego). Pero yo no tengo VPS para hostear el servidor así que me toca programar una chapuza a modo de APIs para poder escribir y leer con la base de datos.
#10278 Es imposible crear framework para algo en concreto. Más bien es imposible crear BackEnds para algo en concreto y que la gente sea feliz.
Porque al final cada uno tiene su lógica,sus campos, y sus decisiones.
Otra cosa, es como hace Laravel, puedes dar herramientas por encima de tu framework para que montar un Back sea lo más rápido/fácil posible.
#10279 No se quien te ha dicho que tiene que ser el mismo lenguaje...pero nada más lejos. Tu haces el juego en lo quw te parece bien, y el back en lo que te parezca bien. Al final en ambos casos se van a llamar por Internet, así que se la bufa lo que haya detrás.
Porque Minecraft este escrito en Java, no significa que su servidor también...a ver, lo está, pero no necesitaría serlo.
En mi empresa tenemos Nuxt para fronts...y no me ves haciendo servidores con Node para que sea el mismo lenguaje XD
#10280 Ya ya xd. Me expliqué mal.
Me refiero que al final es más fácil y te complicas menos. Si ya controlas un lenguaje para hacer el juego, pues usas lo mismo para hacer el servidor, gestionar las sesiones, perfiles y cuentas de los jugadores, inventario, etc... Me ha gustado que escojas Minecraft como ejemplo y que al final el server tambien sera Java xdddddddddddddd
#10281 ah ok, te habia entendido mal yo tambien. efectivamente por HTTP al final haces lo que quieres. de todos modos no necesitas un VPS per se. hay soluciones tipo https://render.com/ que tiene tiers gratuitos, y luego montarte la ddbb con ellos o en otro lado.. osea no tiene que ser todo en un VPS, pero desde luego da flexibilidad (y si a la larga, tienes varios backends, websites, etc) te renta tener uno
#10280 a ver, se que es un poco una forma de hablar lo de que haya un fw para algo concreto. pero al final existiran ciertos "requisitos" que tienes que tener cuando montas un servidor. entiendo que son al final un subconjunto de los tipicos de un servidor web. quizas haya guias por ahi, o esqueletos de codigo, etc. pero no cada uno empezar de cero siempre, que es la impresion que tengo
#10281 Porque soy gilipollas y no tenia otro ejemplo.
Si medio controlas un lenguaje, controlas cualquiera. Cambian nombres, y formas de hacer las cosas, pero al final todos los lenguajes de programación tienen más o menos para hacer lo mismo. Luego ya cosas avanzadas ahí ya ancha es Castilla...pero de base, todos son iguales.
Por cierto, secreto de estado que ciertas empresas de VPS no quieren que sepan. Algunas de ellas, son unas sanguijuelas y te piden pagar más si tienes una base de datos...SQLite no la suelen detectar porque es un fichero, y no un servicio.
Y si...hemos tenido de esas sanguijuelas y porque se me ocurrio la tontuna de SQLite, si no, ahí seguimos.
#10282 Los esqueletos suelen ser más para conectar el sistema de Unity/Unreal con un servidor...pero más alla de ahí, tienes que buscarte las castañas. No tiene nada que ver lo que yo necesite para Ralli, que lo que AikonCWD necesite para...lo que este haciendo ahora.
#10271 metelo en azure por cuatro perras, hoy dia C# lo puedes ejecutar hasta en el linux mas baratero.
Qué cabreo llevo con ChatGPT, que quiero que me traduzca una función que tengo en C para Godot y me está liando una mierda importante. Se inventa funciones que no existen y lo hace todo mal. Primera y última vez que le pido ayuda.
https://github.com/NetHack/NetHack/blob/NetHack-3.7/src/calendar.c#L191
Quiero esta función, que calcula la fase lunar, pero en Godot. Al final tocará aprender cómo funciona la luna, los meses sinódicos, etc... y hacerlo a manija.
#10285 C a GDScript o C#? No veo nada demasiado raro como para traducirlo directamente, mirate la referencia de struct tm para saber que significa cada campo: https://cplusplus.com/reference/ctime/tm/
#10285 chatGPT es BASURA para codigo, mira a ver esto:
func phase_of_the_moon() -> int:
var datetime = Time.get_datetime_dict_from_system()
var diy = datetime["day_of_year"]
var goldn = (datetime["year"] % 19) + 1
var epact = (11 * goldn + 18) % 30
if (epact == 25 and goldn > 11) or epact == 24:
epact += 1
return ((((diy + epact) * 6 + 11) % 177) / 22) & 7
La función retorna un valor entre 0 y 7, donde:
0 representa luna nueva
4 representa luna llena
Los otros números son las fases intermedias
func phase_of_the_moon() -> int:
# Obtener fecha actual
var current_time = Time.get_datetime_dict_from_system()
# Calcular día del año (day of year)
var date = Time.get_date_dict_from_system()
var diy = Time.get_day_of_year_from_date(date)
# Calcular número áureo (golden number)
var goldn = (current_time["year"] % 19) + 1
# Calcular epacta
var epact = (11 * goldn + 18) % 30
# Ajuste de epacta
if (epact == 25 and goldn > 11) or epact == 24:
epact += 1
# Calcular y retornar fase (0-7, donde 0 es luna nueva y 4 es luna llena)
return ((((diy + epact) * 6 + 11) % 177) / 22) & 7