/gamedev/ Taberna de borrachos, ahora con menos usuarios aun


EVENTO ACTIVO:

https://www.mediavida.com/foro/gamedev/mv-retos-gamedev-gancho-711429

Grupo de Mediavida

https://www.mediavida.com/g/gamedev

Futuro de Gamedev

https://www.mediavida.com/foro/gamedev/mv-gamedev-donde-estamos-donde-vamos-711799
B

#10223

De todas formas estáis comparando un motor que tiene 20 años de recorrido como Unity con un motor free y opensource

1 respuesta
Freak1337

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:

3
kidandcat

#10261

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.

1 respuesta
Ridote

#10263 qué haces discutiendo con el trol de turno que ha venido a poner un meme e irse y que podría haberte citado cualquier texto.

#3135kidandcat:

A lo mejor deberíamos empezar a publicar todo lo que tenemos a medias, a lo mejor marcamos tendencia

AikonCWD

Estoy peleándome con PHP a ver si consigo un sistema de gestión de sesiones que me guste.

1 1 respuesta
B

Si es para gamedev... ya estás tardando en dar el salto a node

AikonCWD

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.

Runig666

#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.

1 respuesta
AikonCWD

#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

2 respuestas
Czhincksx

#10269 y hacer el backend en C#?

1 respuesta
AikonCWD

#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í.

3 respuestas
Czhincksx

#10271 ah puede ser... Es que PHP es tan feo...

Runig666

#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.

1 respuesta
AikonCWD

#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.

1 respuesta
covaga

#10271 No te vale el servidor gratuito de oracle?

1 respuesta
AikonCWD

#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.

2 1 respuesta
Runig666

#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.

1
thenanox

#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

2 respuestas
AikonCWD

#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.

1 respuesta
Runig666

#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

2 respuestas
AikonCWD

#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

2 respuestas
thenanox

#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

1 respuesta
Runig666

#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.

r2d2rigo

#10271 metelo en azure por cuatro perras, hoy dia C# lo puedes ejecutar hasta en el linux mas baratero.

AikonCWD

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.

3 respuestas
r2d2rigo

#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/

Jastro

#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

1 respuesta
Runig666


Acepto ideas

2 respuestas
Jastro

#10288 espero que la oveja esté

1 respuesta
covaga

#10285

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
1 respuesta