Foros del Web » Creando para Internet » Diseño web »

Tutorial: Programando un juego en PHP

Estas en el tema de Tutorial: Programando un juego en PHP en el foro de Diseño web en Foros del Web. Hola!! Como se acercan las navidades, y, con ellas, las vacaciones, me he puesto a escribir un pequeño tutorial donde mi objetivo es crear un ...

  #1 (permalink)  
Antiguo 15/12/2007, 14:44
 
Fecha de Ingreso: mayo-2006
Ubicación: Madrid
Mensajes: 153
Antigüedad: 11 años, 7 meses
Puntos: 3
Tutorial: Programando un juego en PHP

Hola!!

Como se acercan las navidades, y, con ellas, las vacaciones, me he puesto a escribir un pequeño tutorial donde mi objetivo es crear un pequeño juego en PHP.

No tengo muy claro dónde poner este mensaje, así que si los moderadores opináis que éste no es su sitio, movedlo allí donde creáis.

Bueno, pues ahí va el capítulo 1 (la introducción):



Programar un juego en PHP


1.

Probablemente, a todos los que somos “jugones” y nos movamos por el mundillo de la programación web, se nos ha ocurrido en alguna ocasión desarrollar un juego basado en navegador (como oGame o Travian), ya sea para crear “el-mejor-juego-basado-en-navegador-de-toda-la-historia” o por amor propio (como era mi caso).

Yo me dispuse a ello y no encontré nada en castellano que se refiera a este tema (si acaso algunos mensajes en forosdelweb donde la gente preguntaba sus dudas para aplicarlas a este cometido), y, tras acabar uno, he decidido hacer un pequeño tutorial con algunas ideas básicas. Para poder seguirlo, se necesitan unos conocimientos medios de PHP, SQL y por supuesto HTML.

No esperéis hacer un hattrick o algo similar: mi objetivo es crear un juego MUY simple con un código lo suficientemente flexible como para poder seguir expandiéndolo una vez nos funcione al 100%.

El juego será tipo Age of Empires, es decir, basado en la recolección de recursos (vamos, que si quieres construir una casa necesitas 5 de oro y 3 de madera).

Como para cualquier proyecto de cierta envergadura, no hay que ponerse a picar código como un loco. Antes de esto, se necesita una organización: qué objetivos quiero, de qué dispongo, qué conocimientos tengo… y lo más importante: una organización previa del código y de las bases de datos.

Nuestro juego tendrá las siguientes características:
  • Un sistema de registro (con su correspondiente log-in)
  • Un apartado para ver la información de la cuidad
  • Un apartado para construir/derribar estructuras
  • Un mercado para comerciar con el resto de jugadores
  • Un apartado para crear soldados
  • Un apartado para atacar a un jugador
  • Un sistema básico de mensajería.

En este tutorial habrá 3 tipos de recursos (oro, alimento y madera) y 4 tipos de construcciones (cuarteles, bosques, molinos y minas).
  • Los cuarteles nos darán espacio para albergar más soldados
  • Los bosques nos proporcionarán madera.
  • Los molinos nos proporcionarán alimento.
  • Las minas nos proporcionarán oro.

Sin más dilaciones comienzo con el tutorial.
  #2 (permalink)  
Antiguo 15/12/2007, 16:59
 
Fecha de Ingreso: mayo-2006
Ubicación: Madrid
Mensajes: 153
Antigüedad: 11 años, 7 meses
Puntos: 3
Re: Tutorial: Programando un juego en PHP

Como lo estoy escribiendo en word y el documento contiene muchas tablas, lo que voy a ir haciendo es subir el doc a mi servidor e ir avisando por aquí de las actualizaciones.

http://www.stardustmaker.com/tutorial.doc

Añadido el segundo capítulo: Tablas que usaremos
  #3 (permalink)  
Antiguo 16/12/2007, 03:04
Avatar de Perovic  
Fecha de Ingreso: agosto-2006
Mensajes: 56
Antigüedad: 11 años, 3 meses
Puntos: 1
Re: Tutorial: Programando un juego en PHP

La verdad que me interesa mucísimo el tema, así que ánimo, he intenta hacer un gran tutorial, .

Un saludo.
  #4 (permalink)  
Antiguo 16/12/2007, 09:41
 
Fecha de Ingreso: mayo-2006
Ubicación: Madrid
Mensajes: 153
Antigüedad: 11 años, 7 meses
Puntos: 3
Re: Tutorial: Programando un juego en PHP

Añadido el capítulo 3: Comenzando con la programación en PHP
  #5 (permalink)  
Antiguo 16/12/2007, 11:47
 
Fecha de Ingreso: mayo-2006
Ubicación: Madrid
Mensajes: 153
Antigüedad: 11 años, 7 meses
Puntos: 3
Re: Tutorial: Programando un juego en PHP

Añadadido el capítulo 4: Pasos previos y Sistema de registro
También podéis ir descargando el código fuente actualizado desde www.stardustmaker.com/juego.rar
  #6 (permalink)  
Antiguo 16/12/2007, 12:32
Avatar de DoPeY-BBS  
Fecha de Ingreso: octubre-2005
Ubicación: Santo Domingo, Dominican Republic, Dominican Republic
Mensajes: 574
Antigüedad: 12 años, 1 mes
Puntos: 12
Re: Tutorial: Programando un juego en PHP

Por que mejor no lo pones online y lo vas actualizando
  #7 (permalink)  
Antiguo 16/12/2007, 13:05
 
Fecha de Ingreso: mayo-2006
Ubicación: Madrid
Mensajes: 153
Antigüedad: 11 años, 7 meses
Puntos: 3
Re: Tutorial: Programando un juego en PHP

Cuando acababe el tutorial tenía pensarlo hacerlo, pero como estoy cambiando de formatos cada 2 por 3, prefiero seguir con el word.

Añadido el capítulo 5: LogIn y LogOut
  #8 (permalink)  
Antiguo 30/12/2007, 00:26
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 12 años, 3 meses
Puntos: 54
Re: Tutorial: Programando un juego en PHP

felicitaciones loco!!!

yo tambien ando en algo similar pero un poco mas ambicioso, mi base es tu juego pero quiero llevarlo mas lejos mas cerca de un civilization

estoy complicado con los graficos ya q soy horrible dibujando y me esta costando mucho conseguir buenas texturas o dibujos para poder utilizar, en mapas, unidaes, ciudades/edificios etc

si tenes algun lugar de donde pueda conseguir estos agredeceria tu ayuda
saludos
__________________
Degiovanni Emilio
developtus.com
  #9 (permalink)  
Antiguo 30/12/2007, 13:54
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 11 años, 4 meses
Puntos: 0
Re: Tutorial: Programando un juego en PHP

Holaaa buenas me sale un error en el LogIn cuando meto los datos sale:


Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\AppServ\www\juego\modulos\login.php on line 4

Appserver, version 2.5.9 PHP5

Pk me sale esto??

Gràcias saludoooos!

Aguila2005
  #10 (permalink)  
Antiguo 31/12/2007, 10:39
 
Fecha de Ingreso: diciembre-2007
Mensajes: 15
Antigüedad: 10 años
Puntos: 0
Re: Tutorial: Programando un juego en PHP

Uau ahora mismo me lo miro, vas a ser mi Dios personal si sigues con esto! Para cuando otra actualización? XD

Abrazos y todo ayuda que pueda ofrecer de diseño o css me lo pides.
  #11 (permalink)  
Antiguo 31/12/2007, 11:11
 
Fecha de Ingreso: diciembre-2007
Mensajes: 15
Antigüedad: 10 años
Puntos: 0
Re: Tutorial: Programando un juego en PHP

Holas ya lo prové de momento me falla esto:

Fatal error: Call to undefined function: mysqli_connect() in /home/miweb/public_html/juego/basicas.php on line 3

He mirado el nombre de la tabla, el usuario, la contrasenya y todo ok. El nombre de servidor he puesto 'localhost', no sé...parece que la función mysqli_connect no funciona. Gracias por escucharme.
  #12 (permalink)  
Antiguo 31/12/2007, 16:09
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 10 años
Puntos: 0
Re: Tutorial: Programando un juego en PHP

Primero: C umplis años el mismo dia que yo!! Solo que vos sos un tanto mas grande..

Segundo: Estuve viendo el tutorial y lo pude seguir con éxito, espero que sigas adelante con el tema de los turnos por tiempo y en lo posible alguna explicacion para el reclutamiento de gente..

Muchas gracias!
  #13 (permalink)  
Antiguo 31/12/2007, 23:35
 
Fecha de Ingreso: enero-2004
Ubicación: Medellin
Mensajes: 171
Antigüedad: 13 años, 10 meses
Puntos: 8
Re: Tutorial: Programando un juego en PHP

Excelente tutorial.

sigue adelante!!!
  #14 (permalink)  
Antiguo 01/01/2008, 09:17
 
Fecha de Ingreso: diciembre-2007
Mensajes: 15
Antigüedad: 10 años
Puntos: 0
Re: Tutorial: Programando un juego en PHP

nadie me ayuda? tengo el mono de explotarlo ya. A mi me da error aqui en la función conectar. A ver si alguien ve el porque, gracias.

<?php
function conectar(){
$conexion = mysqli_connect(
'localhost', // dirección de nuestro servidor
'mihost_admin', // nuestro nombre de usuario
'elpassword', // nuestro password
'mihost_juego' // el nombre de la base de datos
);

if ($conexion == FALSE) {
echo ('No se ha podido conectar a la DB');
exit();
}else{
return $conexion;
};
}
function agregar_usuario($usuario,$pass,$ciudad){
$conexion=conectar();
//insertamos la información en la tabla usuarios (es decir, el nick y el pass)
mysqli_query($conexion,'INSERT INTO usuarios (nick,pass) VALUES("'.$usuario.'","'.$pass.'");');
//ahora creamos la información de la ciudad
$id_usuario = mysqli_insert_id($conexion); //obtiene el id del último usuario insertado
mysqli_query($conexion,'INSERT INTO ciudades (nombre,id_propietario) VALUES("'.$ciudad.'",'.$id_usuario.');');
//obtenemos todos los recursos existentes
$recursos=mysqli_query($conexion,'SELECT * FROM recursos;');
//y añadimos a recursos_por_usuario la información necesaria
while($datos = mysqli_fetch_assoc($recursos)){
mysqli_query($conexion,'INSERT INTO recursos_por_usuario(id_usuario,id_recurso,cantida d) VALUES ('.$id_usuario.','.$datos[id].','.$datos[cantidad_inicial].');');
}
mysqli_close($conexion);
}

?>

Última edición por sidecat; 01/01/2008 a las 09:35 Razón: ampliar info
  #15 (permalink)  
Antiguo 02/01/2008, 10:44
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 12 años, 3 meses
Puntos: 54
Re: Tutorial: Programando un juego en PHP

Aguila2005 para saltar ese error deberias poner un @ al comienzo del renglon pasa q ese error sale pq el $recurso no tiene resultados

Sidecat tu error se debe a q no tenes la extension mysqli instalada, la tenes q habilitar desde el php.ini

saludos
__________________
Degiovanni Emilio
developtus.com
  #16 (permalink)  
Antiguo 02/01/2008, 12:31
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 12 años, 5 meses
Puntos: 23
Re: Tutorial: Programando un juego en PHP

Gracias por el aporte, cuando lo tengas completo colgalo.
Saludos!
  #17 (permalink)  
Antiguo 02/01/2008, 12:36
 
Fecha de Ingreso: mayo-2006
Ubicación: Madrid
Mensajes: 153
Antigüedad: 11 años, 7 meses
Puntos: 3
Re: Tutorial: Programando un juego en PHP

Hola!

He estado un poco desaparecido últimamente y no podido seguir con el tutorial por poblemas familiares (sí, en navidad también ocurren desgracias. Gracias, Papa Noel).

Si me permitís que me salte el orden de capítulos que más o menos tenía establecido, entre hoy y mañana (y quizá pasado) me gustaría subir mi función para actualizar los recursos (vamos, que según pase el tiempo se añadan los nuevos recursos fabricados).

Muchas gracias por el apoyo y feliz año!
  #18 (permalink)  
Antiguo 02/01/2008, 18:01
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 12 años, 3 meses
Puntos: 54
Re: Tutorial: Programando un juego en PHP

bueno viejo q el 08 traiga mejores momentos q los navideños 07
fuerza loco y q la fortuna este de tu lado!
__________________
Degiovanni Emilio
developtus.com
  #19 (permalink)  
Antiguo 02/01/2008, 18:23
Avatar de VitoMolina  
Fecha de Ingreso: marzo-2006
Ubicación: Molina de Aragón, Guadalajara
Mensajes: 374
Antigüedad: 11 años, 9 meses
Puntos: 4
Re: Tutorial: Programando un juego en PHP

Este tema me interesa.
muchas gracias y espero que siga adelante
__________________
Mi blog personal en WordPress
  #20 (permalink)  
Antiguo 05/01/2008, 19:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 10 años
Puntos: 0
Re: Tutorial: Programando un juego en PHP

Se espera con ansias la continuacion de este tutorial!!!
  #21 (permalink)  
Antiguo 06/01/2008, 15:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 15
Antigüedad: 10 años
Puntos: 0
Re: Tutorial: Programando un juego en PHP

en mi host no tengo php.ini me han dicho que hay un php.ini global...lo bajo?donde? y donde lo meto después? Sigo sin poder hacerlo funcionar.
  #22 (permalink)  
Antiguo 09/01/2008, 05:06
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 212
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: Tutorial: Programando un juego en PHP

Felicidades por el tuto pero me da un error al intentar a un apartado.

Código:
Warning: include(modulos/info.php) [function.include]: failed to open stream: No such file or directory in C:\ejerPHP\juego\index.php on line 16

Warning: include() [function.include]: Failed opening 'modulos/info.php' for inclusion (include_path='.;C:\php5\pear') in C:\ejerPHP\juego\index.php on line 16

Última edición por Aimarejada; 09/01/2008 a las 06:08
  #23 (permalink)  
Antiguo 09/01/2008, 09:12
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 10 años
Puntos: 0
Re: Tutorial: Programando un juego en PHP

Cita:
Iniciado por Aimarejada Ver Mensaje
Felicidades por el tuto pero me da un error al intentar a un apartado.

Código:
Warning: include(modulos/info.php) [function.include]: failed to open stream: No such file or directory in C:\ejerPHP\juego\index.php on line 16

Warning: include() [function.include]: Failed opening 'modulos/info.php' for inclusion (include_path='.;C:\php5\pear') in C:\ejerPHP\juego\index.php on line 16
Fijate que dice la linea 16 en index.php, pero teoricamente te falta el archivo info que queres incluir
  #24 (permalink)  
Antiguo 11/01/2008, 06:59
Avatar de VitoMolina  
Fecha de Ingreso: marzo-2006
Ubicación: Molina de Aragón, Guadalajara
Mensajes: 374
Antigüedad: 11 años, 9 meses
Puntos: 4
Re: Tutorial: Programando un juego en PHP

Yo lo estoy instalando en Local de momento y va todo de maravilla, aun faltan algunos módulos, pero lo que hay va bien de momento, esperamos el siguiente capitulo del tutorial con ganas!
__________________
Mi blog personal en WordPress
  #25 (permalink)  
Antiguo 11/01/2008, 07:02
Avatar de VitoMolina  
Fecha de Ingreso: marzo-2006
Ubicación: Molina de Aragón, Guadalajara
Mensajes: 374
Antigüedad: 11 años, 9 meses
Puntos: 4
Re: Tutorial: Programando un juego en PHP

Cita:
Iniciado por Aimarejada Ver Mensaje
Felicidades por el tuto pero me da un error al intentar a un apartado.

Código:
Warning: include(modulos/info.php) [function.include]: failed to open stream: No such file or directory in C:\ejerPHP\juego\index.php on line 16

Warning: include() [function.include]: Failed opening 'modulos/info.php' for inclusion (include_path='.;C:\php5\pear') in C:\ejerPHP\juego\index.php on line 16

Eso es porque no encuentra ese módulo en el directorio /modulos. Cuando actualice el tutorial y los códigos fuentes meterá los módulos que faltan
__________________
Mi blog personal en WordPress
  #26 (permalink)  
Antiguo 11/01/2008, 19:35
Avatar de VitoMolina  
Fecha de Ingreso: marzo-2006
Ubicación: Molina de Aragón, Guadalajara
Mensajes: 374
Antigüedad: 11 años, 9 meses
Puntos: 4
Re: Tutorial: Programando un juego en PHP

Hola de nuevo, tengo un problema, como decia antes he instalado el juego en Local y va todo bien, pero ahora he decidido en ir probando el juego en un servidor de internet, entonces lo he subido en un servidor gratuito de Iespana.es, he configurado el archivo /lib/basicas.php con los datos de conexión MySQL pero me da el error siguiente:

Fatal error: Call to undefined function mysqli_connect() in /www/sites/1/iespana.es/g/e/genesisgame/site/lib/basicas.php on line 3

En Local lo tengo también configurado de la misma forma y me va bien, no me sale ningun error y todo funciona a la perfección, pero en este servidor me da el error. ¿Qué puede pasar? pone que el error esta en la línea 3, y la línea 3 es esta:

$conexion = mysqli_connect(

He leido por aqui arriba un usuario que tiene el mismo error y hay que solucionarlo activando el php.ini o algo asi.... ¿Cómo hago esto para ver si se soluciona el error?


Un saludo a todos y muchisimas gracias por el tutorial!

Por cierto, la web gratuita donde he alojado el juego es http://genesisgame.iespana.es
__________________
Mi blog personal en WordPress

Última edición por VitoMolina; 11/01/2008 a las 19:45
  #27 (permalink)  
Antiguo 12/01/2008, 07:34
Avatar de Aimarejada  
Fecha de Ingreso: abril-2006
Mensajes: 212
Antigüedad: 11 años, 8 meses
Puntos: 0
Re: Tutorial: Programando un juego en PHP

Gracias por contestar y ya vi que es por que faltan los modulos asi que habra que esperar o intentar hacerlos yo.

VitoMolina ese error igual no lo puedes solucionar por que en los servidores que probe yo iespana y freehostia no te dan la posibilidad de modificar el php.ini o eso creo pero igual tiene solucion.
  #28 (permalink)  
Antiguo 13/01/2008, 07:18
Avatar de VitoMolina  
Fecha de Ingreso: marzo-2006
Ubicación: Molina de Aragón, Guadalajara
Mensajes: 374
Antigüedad: 11 años, 9 meses
Puntos: 4
Re: Tutorial: Programando un juego en PHP

Cita:
Iniciado por Aimarejada Ver Mensaje
VitoMolina ese error igual no lo puedes solucionar por que en los servidores que probe yo iespana y freehostia no te dan la posibilidad de modificar el php.ini o eso creo pero igual tiene solucion.

gracias por decirmelo, entonces lo ire colgando en mi server de pago a ver que tal funciona, y a ver si se va actualizando este tema y el autor del tutorial va actualizandolo y sube los modulos y tal para poder descargarlo.


Por cierto, Felicidades stardust por tus 21, aunque fue hace una semana jeje
__________________
Mi blog personal en WordPress
  #29 (permalink)  
Antiguo 15/01/2008, 07:48
 
Fecha de Ingreso: diciembre-2007
Mensajes: 15
Antigüedad: 10 años
Puntos: 0
Re: Tutorial: Programando un juego en PHP

VitoMolina, el del mismo error soy yo, pero yo lo he provado en mi servidor de pago, hasta he llamado a la compñia, parece que nadie lo sabe. Me contaron que hay un php.ini general, investigo más y te dijo.
  #30 (permalink)  
Antiguo 16/01/2008, 13:08
Avatar de VitoMolina  
Fecha de Ingreso: marzo-2006
Ubicación: Molina de Aragón, Guadalajara
Mensajes: 374
Antigüedad: 11 años, 9 meses
Puntos: 4
Re: Tutorial: Programando un juego en PHP

Ok, mucha sgracias jeje parece que esto se esta muriendo, a ver si siue adelante, un saludo
__________________
Mi blog personal en WordPress
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 12 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 14:57.