Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - gink

Páginas: [1] 2
1
General / ¿Me conviene el HTML5 para programar juegos?
« en: 02 de Diciembre de 2014, 23:38:01 pm »
Pronto empezaré las "vacaciones" (si es que se pueden llamar así, culpo de eso a los finales) y quiero volver a programar.  Estuve buscando un poco de información por internet y hay algunas cosas acerca del HTML5 (lenguaje del cual no sé absolutamente nada) que no termino de entender. Por ejemplo, ¿Los demás pueden ver el código fuente de mi juego programado en HTML5 y subido a mi web, o hay forma de ocultar el código?
Después quería saber si realmente me conviene programar un juego en HTML5 o si es preferible Flash o Java. Quiero que se pueda jugar en el navegador ya que estoy pensando en algo muy simple, pero detesto Flash (super obsoleto a mi antojo) y Java no es de lo más rentable como applet.
Por último, les quería consultar si conocen alguna buena librería multimedia en HTML5 (o el lenguaje que me recomienden) con la cual no me rompa la cabeza a la hora de programar.

Eso es todo. Perdón si abusé y volqué todas mis dudas de una, pero es que hace meses que vengo con esto y sé que hay muy buenos programadores por acá.
Muchas gracias :)

2
Gestión AR
Estoy desarrollando un programa de gestión en C# para facilitarle la vida a un conocido dueño de una tienda de indumentaria.
Mediante bases de datos MySql Gestión AR es capaz de agregar, eliminar, modificar y asociar artículos del inventario, clientes, deudas, compras y demás. Si bien aún no está terminado (me falta bastante, de hecho) las funcionalidades básicas están hechas y una interfaz básica ya está lograda.

Desarrollo de funcionalidades BETA:
Inventario: (Avanzado) 90%
Stocks: (Futuro desarrollo) 10%
Clientes: (Avanzado) 90%
Compras: (Funcional) 60%
Deudas: (Funcional) 60%
Distribuidores: (Futuro desarrollo) 0%
Modulo de actualización automática: (Mejorable) 42%
Manejo de la memoria: (Perfecto) 100%

Imágenes: (Última actualización de imágenes el 6/12)

Ventana principal, es lo que más va a cambiar en cuanto aspecto en el futuro.


Ventana de inventario.


Ventana de nueva compra. Funcional pero en desarrollo temprano, ya que sólo funciona con un artículo a la vez. Si el monto pagado es menor al precio te da la opción de registrar la deuda (salta una ventana de mensaje al presionar "hecho" preguntándote)


Ventana de compras. En desarrollo, es solo una improvisación.


Ventana de clientes.


Ventana de deudas. Funcional, pero sus botones aún no están programados.


Un prototipo temprano de la ventana que se abre al presionar "Información" en las deudas. En los registros marca la id del objeto adquirido, la fecha y con cuanto pagó.

Registro:
Citar
Desde ~/11/13 hasta 6/12/13: Funcionalidades e interfaz básica.   

7/12/13: Mejoras en la programación, funcionamiento más fluido y código más ordenado.
              Mejora en el consumo de memoria, ahora consume entre 0,5mb y 7mb.
               Añadida la función para agregar una deuda sin efectuar una compra. Próximamente imágenes.
               Mejora en el modulo de actualización automática.
               Añadida la función para saldar una deuda. Próximamente imágenes.

Puedes comprobar las actualizaciones más rápidamente mediante mi blog personal.

3
Presentaciones / ¡He vuelto!
« en: 07 de Diciembre de 2013, 20:25:21 pm »
Bueno, sí que pasó bastante tiempo desde la última vez que entré   :-[
Pero el foro está igual y eso me encanta. Estoy con nuevos proyectos, nueva vida, nuevo todo, y no dudaré en compartir cosas con ustedes.
Espero poder ayudar todo lo que se me sea posible, saludos a todos!

4
No hay imagenes por ahora, las tengo que subir y en este momento las ganas me faltan.
En cuanto al servidor esta Programado totalmente en JAVA y es totalmente independiente y estable. Recive y envia sockets, verifica datos en la base mysql, acepta y rechaza conecciones.

El cliente esta hecho en flash, ActionScript 3. Recibe y envia los datos mediante sockets, tiene su respectivo login.

El sistema (Básico por ahora) funciona así:
Cliente habla->Servidor Escucha->Servidor Habla a todos-> Clientes escuchan
El login es:
Cliente envia Usuario y Password->Servidor Recive->Servidor verifica en la base de datos mysql->Servidor acepta la coneccion en caso de que los datos sean correctos.

En un futuro (no muy lejano) el sistema será asi:
Cliente habla en una sala de chat->Servidor escucha al cliente->Servidor envia a todos los que esten en esa sala


El registro no esta hecho en el Cliente, pero en el servidor esta ya programado.
Es basicamente esto:
Cliente envia datos de registro->Servidor recive->Servidor verifica que este usuario no exista (o email)->Servidor registra datos->Servidor abre conexión.

El servidor consta de:
  • Enviar y recivir Sockets
  • Verificar, Eliminar o agregar datos a la Base de Datos MySql

Los puntos que tengo en mente son:
  • Verificar posicion del jugador y aceptar una ruta (Dependiendo de hacia donde se quiera mover y los obstaculos)
  • Datos encriptados
  • Seguridad mejorada
  • Mostrar a los otros usuarios de acuerdo a su posicion y movimiento
  • Salas de chat (o ubicaciones, mapas)

Luego el cliente ahora mismo tiene:
  • Enviar y recibir sockets

En mente para el cliente tengo:
  • Abrir diferentes mapas y moverse en el
  • Sistema de tiles, objetos y demás
  • Mejora en el sistema de login y registro

Absolutamente todo lo que tengo hasta ahora es estable e increiblemente rapido. El servidor soporta mil mensajes en medio minuto (Aunque el cliente cosume demasiada ram de la pc, provocando lentitud).
Las conexiones soportadas depende del ancho de banda y la memoria ram de la pc que lo este ejecutando, no del server en si (Aunque estoy haciendo que consuma menos ahora mismo, sacando librerias que no uso y eliminando conexiones  que no responden).

Mi gran reto no es la programación, es la estructura. ¿Como hacer un sistema de tiles online y visible para todos? Tengo ideas (Aplicables) pero desearia saber como hacen los juegos isometricos, mmorpg's o demás.

Pasando a la programación, la facilidad de uso de sockets en Java y AS3 es increíblemente genial. Con 60 lineas en java puedes recibir un socket. Y con menos de 10 puedes enviar uno por AS3.
¡Animense y hagan algo de ustedes!. A bailar con habbo, lo propio es mejor :P

Expectativas y logros:
Rojo: No hecho ni planeado todavía.
Azul: Planeado pero no hecho todavía.
Naranja: Hecho a medias.
Púrpura: Hecho un sistema básico o prueba.
Verde: Hecho (Puede cambiar, variar o mejorar).

  • Chat
  • Login
  • Registro
  • Salas de chat/Mapas/Mundos
  • Crear salas de chat/Mapas/Mundos
  • Movimiento
  • Mundo isometrico/visual
  • Sistema de rangos
  • Baneos, Echar, otras herramientas de administracion
  • Pertenencias, compras
  • Colocación de objetos

5
Ayer cree esta sencilla web que te permite crear un dinosaurio y ponerlo en tu firma para que los demás hagan click.
Luego lo mejorare para poner mas tipos de dinosaurios.
Pero por ahora les quiero presentar al primer dinosaurio funcionando con mi web, ¡Queso!:
Si te quieres crear uno Haz click aquí, no te arrepentiras.
Ranking: http://ginknk.byethost18.com/ranking.php

¡Saludos y cuidense!

6
General / [Tutoriales Traducidos] Imagenes y Juegos con Java
« en: 03 de Diciembre de 2010, 19:59:46 pm »
Moviendo una Pelota

El código original es de: http://www.javacooperation.gmxhome.de/
Esta programado como Applet (Para ser reproducido en un Navegador).
Yo lo traduje y le agrege algunos comentarios para aclarar. ¡Cuidense!

Código: [Seleccionar]
import java.applet.*; // El import es lo mismo que el #Include en C y Php. El * Significa TODO.
import java.awt.*;

public class Ballbewegung1 extends Applet implements Runnable //Recordamos incluir el Applet
{
// Inicializamos las variables
int x_pos = 10; // Coordenada inicial X
int y_pos = 100; // Coordenada Inicial Y
int radius = 20; // Radio de la Pelota

public void init()
{
setBackground (Color.blue); //Color de fondo
}

public void start ()
{
// Creamos un nuevo thread (Este mismo) con el nombre th
Thread th = new Thread (this);
// Iniciamos th (El thread recien creado)
th.start ();
}

public void stop()
{

}

public void destroy()
{

}

public void run ()
{
// Thread de Minima Prioridad
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

// Mientras el Thread este corriendo...
while (true)
{
// Aumenta la coordenada
x_pos ++;

// Re-Pinta el Applet
repaint();

try
{
// Para al Thread por 20 milisegundos
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}

// Thread de Maxima Prioridad (En el while, mientras este corriendo)
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}


public void paint (Graphics g)
{
g.setColor  (Color.red); //Declaramos el color de la pelota

g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius); //Dibujamos la pelota
}

}

Demostracion del Applet: http://www.javacooperation.gmxhome.de/Applets/Ballbewegung1/BallBewegung1Applet.html


Moviendo una Pelota con DobleBuffer

Comparen con el anterior para aprender mas :).
Yo lo traduje y le agrege algunos comentarios para aclarar. ¡Cuidense!

Código: [Seleccionar]
import java.applet.*; // El import es lo mismo que el #Include en C y Php. El * Significa TODO.
import java.awt.*;

public class Ballbewegung1 extends Applet implements Runnable //Recordamos incluir el Applet
{
// Inicializamos las variables
int x_pos = 10; // Coordenada inicial X
int y_pos = 100; // Coordenada Inicial Y
int radius = 20; // Radio de la Pelota

// Variables de doblebuffer
private Image dbImage;
private Graphics dbg;


public void init()
{
setBackground (Color.blue); //Color de fondo
}

public void start ()
{
// Creamos un nuevo thread (Este mismo) con el nombre th
Thread th = new Thread (this);
// Iniciamos th (El thread recien creado)
th.start ();
}

public void stop()
{

}

public void destroy()
{

}

public void run ()
{
// Thread de Minima Prioridad
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

// Mientras el Thread este corriendo...
while (true)
{
// Aumenta la coordenada
x_pos ++;

// Re-Pinta el Applet
repaint();

try
{
// Para al Thread por 20 milisegundos
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}

// Thread de Maxima Prioridad (En el while, mientras este corriendo)
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}



public void update (Graphics g)
{
// Iniciamos el doble Buffer
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}

// Sera igual a nuestra imagen actual.
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);

// El fondo sera nuestra imagen actual.
dbg.setColor (getForeground());
paint (dbg);

// Dibujamos el doble.
g.drawImage (dbImage, 0, 0, this);
}

public void paint (Graphics g)
{
g.setColor  (Color.red); //Declaramos el color de la pelota

g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius); //Dibujamos la pelota
}

}

Demostracion del Applet: http://www.javacooperation.gmxhome.de/Applets/Doppelpufferung/BallBewegung2Applet.html


Cambiando velocidad y direccion de una Pelota

Comparen con el anterior para aprender mas :). Aquí hacemos que la pelota "rebote" al tocar un extremo.
Yo lo traduje y le agrege algunos comentarios para aclarar. ¡Cuidense!

Código: [Seleccionar]
import java.applet.*; // El import es lo mismo que el #Include en C y Php. El * Significa TODO.
import java.awt.*;

public class Ballbewegung1 extends Applet implements Runnable //Recordamos incluir el Applet
{
// Inicializamos las variables
int x_pos = 10; // Coordenada inicial X
int y_pos = 100; // Coordenada Inicial Y
int radius = 20; // Radio de la Pelota
int appletsize_x = 300; // Tamaño del applet
int appletsize_y = 300; // Tamaño del applet

// Variables de doblebuffer
private Image dbImage;
private Graphics dbg;


public void init()
{
setBackground (Color.blue); //Color de fondo
}

public void start ()
{
// Creamos un nuevo thread (Este mismo) con el nombre th
Thread th = new Thread (this);
// Iniciamos th (El thread recien creado)
th.start ();
}

public void stop()
{

}

public void destroy()
{

}

public void run ()
{
// Thread de Minima Prioridad
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

// Mientras el Thread este corriendo...
while (true)
{
// Aumenta la coordenada
x_pos ++;

// Re-Pinta el Applet
repaint();

try
{
// Para al Thread por 20 milisegundos
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}

// Thread de Maxima Prioridad (En el while, mientras este corriendo)
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}



public void update (Graphics g)
{
// Iniciamos el doble Buffer
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}

// Sera igual a nuestra imagen actual.
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);

// El fondo sera nuestra imagen actual.
dbg.setColor (getForeground());
paint (dbg);

// Dibujamos el doble.
g.drawImage (dbImage, 0, 0, this);
}

public void paint (Graphics g)
{
g.setColor  (Color.red); //Declaramos el color de la pelota

g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius); //Dibujamos la pelota
}

}

Demostracion del Applet: http://www.javacooperation.gmxhome.de/Applets/BallStop/BallBewegungReverseApplet.html

7
Charlas / Offtopic / ¿Vender layouts web?
« en: 23 de Noviembre de 2010, 21:00:36 pm »
¿Como me recomiendan hacerlo?
¿Vale la pena?
¿Cual es el precio comun?

¡Gracias!

8
Charlas / Offtopic / ¿Quien me presta una DB para probar algo? :)
« en: 13 de Noviembre de 2010, 03:30:58 am »
Estoy probando la coneccion MYSQL en C++ y necesito una base de datos normal, sin esos servidores extraños de los hostings gratis (y que sepas el puerto)

Alguien que tenga xampp y los puertos abiertos, o alguien con un hosting normal. ¡Please!
Solo es para comprobar si conecta, ni mas ni menos.

Gracias de antemano :)

9
C / C++ / Conectar a una base de datos sql Externa?
« en: 10 de Noviembre de 2010, 21:00:52 pm »
¡Amigos! Me surgio la duda, y si existe alguna solucion mi vida sera tranquila otra vez.

Supongamos que tengo un programa escrito en C++, yo quiero enviar datos a una base de datos que no esta en mi pc (En una web, un hosting).
¿Existe alguna libreria o forma de hacerlo?
Se que existe la libreria mysql.dll pero no estoy seguro si esta conecta con una bd remota.

¿Alguna idea? ¡Se los agradeceria mucho!

10
Charlas / Offtopic / ¿Inteligencia artificial? (En Pc's)
« en: 26 de Octubre de 2010, 19:23:46 pm »
Estoy haciendo algo que se podría llamar "inteligencia artificial". Lo usaré en un juego; por ahora solo puede ir a tales lugares y atender a algunas necesidades de prueba.

Me faltan cosas como esquivar obstáculos y variar la velocidad.
¿Tu como lo harías? ¿Haz hecho algo parecido a la inteligencia artificial?

El video de lo que hice: http://www.youtube.com/watch?v=2fqWWxoGIIc
¡Saludos!

11
C / C++ / [Tutorial] Librerías en C++
« en: 23 de Octubre de 2010, 23:25:05 pm »
Como en todo lenguaje de programación, el C++ posee la capacidad de incluir librerías para trabajar con ellas.
Una libreria consta de un archivo .a, uno .h y a veces .cpp.
Para incluir una libreria, se llama al archivo .h y ya.
Por ejemplo:
Código: [Seleccionar]
#include <string.h>
Hay librerias que el Compilador (o Editor) las trae por defecto, y gracias a esto nos podemos omitir la extensión al llamarlas. Esto no quiera decir que el archivo que se llama no sea una cabecera(.h).
Por ejemplo:
Código: [Seleccionar]
#include <string>
Claramente, las librerías las puedes crear tu mismo. Que de todos los editores es de forma diferente. Pero siempre siguiendo una regla, que los archivos .a (librería) vayan en la carpeta de librerías (por defecto, se llama lib), y que el .h (cabecera) vaya en la carpeta de incluidos (Por defecto, se llama include). En el caso que exista un archivo .cpp (demasiado inusual) este también iría en la carpeta de incluidos

Esto es todo por ahora, ¡Cuidense!

12
CSS / [Duda] Template en Css
« en: 21 de Octubre de 2010, 20:26:56 pm »
Vieron esas webs que se va agrandando el diseño a medida que hay mas registros?.
Me refiero a que si hay uno solo, el "diseño" termine alli y no sobre demaciado. Y si hay 10 que termine en el diez (Hablo verticalmente)

¿Alguien sabe como hacerlo? Por lo menos con colores solidos :P jaja
¡Gracias!

13
PHP / ¿Como utilizar el &nombre= ?
« en: 28 de Septiembre de 2010, 18:13:54 pm »
Por ejemplo, si quiero que $sea lo que se pone ahí (&nombre=gink)
¿Como lo puedo hacer?

Jeje perdón pero no vi ningún tutorial ni se como referirme a esto en Php :P

14
Charlas / Offtopic / ¿Quieres lograr gente interesada en tu proyecto?
« en: 28 de Septiembre de 2010, 17:19:01 pm »
1. Que sea algo innovador, nuevo y con una buena historia. A todos les gusta ver florecer a una gran idea :)

2. No pidas ayuda hasta tener un buen porcentaje hecho. Siempre esta la persona que dice "Aquí la web de mi proyecto, juego online blabla". Y cuando entras tiene 3 secciones:
- Index
- Imagenes
- Descargas.
La cual de las 2 ultimas dicen "En construcción". ¿Alguien ayudaría a algo así? No lo creo

3. Siempre un cuaderno en mano, y renovando ideas y diseños; ¡No siempre es conveniente empezar directamente con la programación!, una buena idea y lindos dibujitos previos en papel cautivan a cualquiera.

4. Por favor, ¡Nada de copias!. Solo las personas adentradas en lo que tu estas haciendo te ayudaran; En cambio, si comienzas algo nuevo muchas personas se ofrecerán a dar ideas o diferentes diseños.

5. Recuerda, ¡La programación antes del diseño!. Es mejor tener 10 lineas a codigo, que 10 imágenes sin movimiento. Además te anticipas a cualquier error, problema o duda ;)

6. Muchas imágenes, vídeos, actualizaciones. A nosotros nos gusta ver las cosas, para creer en algo que no vemos tenemos a dios.

7. Publicalo en diferentes foros. Muchas veces en otros foros te ayudan mas que en el primero que anunciaste tu proyecto. (Concentrate en foros de programación)

8. ¡Nada de cosas falsas!. Nunca pero nunca digas cosas que no son ciertas, o que no tienes completas al 100%. ¿Que sucede si al final no logras tenerla?

9. Preferiblemente, no anuncies cosas de pos-versión. Te ahorras de presiones, desilusiones de los seguidores y te brindas mas libertad a hacer las cosas.

10. ¡Agradece la ayuda!. Aquellos que ayudan se merecen un crédito, recuerdalo.

11. No des fechas de salida. ¡Evita la presión!

15
C / C++ / Tipos fundamentales en C/C++
« en: 27 de Septiembre de 2010, 07:01:46 am »
Ojala les guste la tabla que les hice :)

Páginas: [1] 2