domingo, 1 de junio de 2014

Cómo hacer videojuegos en C++ ??


Hola a todos,

No puedo contar el número de veces que me han preguntado... :  "oye, como lo hago para hacer videojuegos en C++?"

La respuesta es muy cruel. Con tiempo y paciencia (y la experiencia que eso conlleva). Uno de los grandes problemas de aprender a programar es que aprendes las cosas fantásticas que puedes llegar a hacer, pero poco a poco te das cuenta de la enormidad de trabajo  que conllevan.

Un consejo para avanzar en el sueño de hacer nuestro propio videojuego, id poco a poco, marcando objetivos que signifiquen un reto, pero realistas (no os planteéis hacer un videojuego AAA con 2 colegas en un garaje, por que (el 99,9% de las veces) no funciona)

Si realmente queréis hacer vuestro propio videojuego os propongo unos sencillos pasos para ir guiando vuestros esfuerzos:

- Domina el lenguaje: Antes que plantearte hacer un gran videojuego tienes que estar seguro que dominas el lenguaje con el que lo vas a desarrollar, sino, te vas a llevar sorpresas muy desagradables a medio desarrollo. La forma de mejorar no es más que programar, programar y programar en ese lenguaje e irte encontrando con los problemas y ventajas que ofrece. Si tu objetivo es C++ tal vez este link te sirva.

- Practica algoritmia: Estate seguro que estas en buena forma a la hora de resolver problemas de programación. Que las soluciones que propones sean buenas o como mínimo aceptables,  que no haces parches, que no te encuentras en callejones sin salida y que eres ágil programando y encontrando soluciones a problemas imprevistos. Sino, puedes perder mucho tiempo ( o el proyecto entero ) por una falta de práctica. La forma de mejorar es irte planteando retos que te superen pero a los que más tarde o más temprano puedas llegar a solucionarlos. Si estas empezando estos links te tendrían que ayudar: ejemplos y algoritmia.

- Ten una buena calidad de código: Aunque programes tú solo, haz que la calidad del código sea impecable, sino, el código que has hecho hoy no lo entenderás ni tu mismo al cabo de 3 meses. Además, ya no es solo una tema de poder entender el propio código sino de poderlo escalar. Sin una buena calidad de código llegará a un punto en que tu juego será un monstruo de 3 cabezas y 15 pies que nadie podrá controlar. Si eso de la calidad de código te suena a chino o te suena pero no sabes como controlarla, te recomiendo que te mires el siguiente enlace

- Usa librerías. Es muy normal que al principio quieras reinventar la rueda una y otra vez. Y si lo haces para aprender, está muy bien, pero no te engañes, si lo haces como una cosa productiva, USA LIBRERÍAS. Para casi cualquier cosa que quieras hacer hay una librería que ya está hecha , probada, funciona y además con una eficiencia más que aceptable. Esto engloba librerías para audio, gráficos, 3D, carga de archivos, XML's, etc.... Aqui tienes un link a un proyecto que te puede servir de guía

- Usa repositorios. Da igual si usas SVN, GIT, Mercurial o el que sea, pero usa repostiorios aunque estés tu solo. Esto te permitirá tener el código controlado y versionado y te hará mucho más fácil encontrar errores y soluciones. Aquí tienes un link a un artículo que te puede ir bien

- Armate de paciencia. La carrera no es un sprint, es una maratón, así que dosifica, aprende de tus errores y sigue tirando adelante. Márcate pequeños objetivos que puedas ir cumpliendo y veslos complicando a medida que te vayas viendo capaz de más. Poco a poco mejorará tu nivel y serás capaz de hacer cosas más impresionantes.

Ya finalmente, os dejo un link a unos cuantos proyectos que he ido haciendo del tema por si os pueden servir de base: mis motores de videojuegos.

LordPakusBlog

Cómo convertir de Hexadecimal a Decimal??


Una pregunta muy usual es la de : como convierto números de base 16 ( hexadecimal ) a base 10 ( decimal ).??

Hay muchas maneras de explicarlo, pero me parece que la más sencilla es poniendo un código sencillo que todo el mundo entenderá.

Copiad este código en un archivo main.c en blanco, compiladlo y ejecutadlo. Si tenéis dudas en este proceso podéis mirar este link

Cualquier duda, no vaciléis en hacérmela llegar.

int ValorDecimal( char c)
{
if( c >= '0' && c <= '9' )
{
return ( (int) c-'0');
}
else
{
if(c >= 'A' && c <= 'F')
{
return ((int) (c - 'A') + 10 );
}
else
{
if(c >= 'a' && c <= 'f')
{
return ((int)(c - 'a') + 10 );
}
else return 0;
}
}
}

int ConvertHexToDec(char *num)
{
int len = strlen(num);
int decimal = 0;
int i;

for(i = 0; i < len ; i++)
{
decimal *= 16;
decimal += ValorDecimal(num[i]);
}
return decimal;
}

int main(int argc, char *argv[])
{
char num[16];
int decimal = 0;
int salir = 0;

while(!salir)
{
printf("Introduzca un numero para convertir de hexadecimal a decimal: ");
scanf("%s",num);

decimal = ConvertHexToDec(num);

printf("%s en hexadecimal es el %d en decimal\n", num, decimal);
}
}

LordPakusBlog

domingo, 25 de mayo de 2014

sábado, 17 de mayo de 2014

Google App Scripts desde 0. Como empezar?


Hola  a todos,

Que és Google App Script?
Google App Script es un lenguaje web desarrollado por Google basado en javascript. Tiene como particularidad que no se ejecuta en el navegador como javascript, sino en la nube.

Ahora es cuando direis: "muy bien, y que? un lenguaje web más". La respuesta es clara.... no es un lenguaje más por un sencillo detalle: permite la integración de cualquier aplicación web con la gran mayoría de servicios de google: gmail. drive, analytics, calendar, sites, etc....

Esto quiere decir que podemos desarrollar una aplicación web que gestione datos del correo, que cree, modifique o lea documentos de drive, que obtenga los datos de analytics, que nos marque una fecha señalada en el calendar  y un largo etcétera. Además no solo permite hacer aplicaciones web sino que permite que nuestro código se ejecute directamente desde los servicios de google como de una funcionalidad extra se tratara, permitiendo así que nuestras herramientas estén totalmente automatizadas y personalizdas.

Además de todo esto permite que las funcionalidades que desarrollemos se ejecuten cada x tiempo en el servidor o delante de ciertos eventos (abrir un documento por ejemplo), haciendo esta característica que google app scipt sea ideal para scripts de cosas repetitivas, tareas de mantenimiento, etc...

Como se programa?
Una vez ya sabemos que és Google App Script tendremos que saber como programar para el.
La forma más sencilla es usar el editor integrado dentro de drive o de sites (en función de si queremos una herramienta de automatización de documentos  o bien una gadget para nuestra web).

Los pasos son los siguientes:

Desde sites:
1. Dandole a la pestaña de herramientas seleccionar "Administrar sitio"

2. En el menú de la izquierda seleccionar "Secuencias de comandos de Apps"

3. Si no tenemos ninguna app podemos darle al botón que hay en la parte superior de : "Añadir nueva secuencia de comandos"


4. Selecciona el tipo de app que te interesa: para gestionar hojas de cálculo, gmail, calendario, aplicaciones web,etc...


Desde Drive:
1. Dale a la pestaña de "Herramientas/Editor de secuencia de comandos" y te aparecerá la misma imagen que en el punto 4 anterior.



A partir de aquí seguiremos en el próximo capítulo. Os recomendaría que fuerais probando y comenzarais a ver como funcionan los app scripts.

Espero que os haya servido.

Nos vemos


sábado, 29 de marzo de 2014

Gurús de la programación: James Gosling

Hola a todos,


James Arthur Gosling es un programador y científico de la computación al que se le atribuye el mérito de ser el padre del lenguaje Java

Estuvo trabajando desde 1984 hasta 2010 para Sun MicroSystems ( donde desarrolló Java) momento en el cual marchó por desavenencias con Oracle (propietaria de Sun). Ha trabajado para Google y Liquid robotics y entres sus logros personales tiene el hecho de haber desarrollado el primer Unix para arquitecturas multiprocesador


LordPakusBlog

Java

Categoria:Software
Subcategoria:Programación
Que és?Lenguaje de programación
Para qué:Aplicaciones de escritorio multiplataforma
Quién?James Gosling
Cuándo?1995
Cómo aprender?http://lordpakus.blogspot.com.es/p/java-desde-0.html
Foros?http://www.elrincondelc.com/nuevorincon/foros/
http://www.lawebdelprogramador.com/foros/Java/index1.html
http://www.javahispano.org/java-se/
http://foro.chuidiang.com/

LordPakusBlog
Quieres saber más? Visita la MicroTecnoPedia

miércoles, 26 de marzo de 2014

Gurús de la programación: Bjarne Stroustrup

Hola a todos,

Bjarne Stroustrup es un catedrático de ciencias de la computación danés famoso por inventar el lenguaje C++

Toda su carrera profesional ha dado vueltas alrededor de este lenguaje ( uno de los más usados desde hace años en la industria del software ) y por ello ha recibido decenas de premios internacionales de programación.

Ha escrito 5 libros de C++ todos ellos con numerosas ediciones y forma parte del comité de estándares de C++.

Es considerado una de las personas que más ha influido en la industria del software de toda la historia y es por ello que se le considera un gurú de la programación.



LordPakusBlog

lunes, 24 de febrero de 2014

Cómo programar en C/C++ desde 0?


Esta tal vez es una de las preguntas que más veces me han hecho:

- Qué me recomiendas para aprender C++ desde 0?
- Qué me recomiendas para aprender C desde 0?
- Cómo lo hago para aprender C/C++ desde 0?

La respuesta es fácil. Internet.

Hace años, cuando los de mi generación empezamos a aprender a programar teníamos que ir a la biblioteca del barrio y aprender de los libros. El nivel del libro acostumbraba a ser alto (demasiado para poder decir "voy a aprender desde cero"), tenía pocos ejemplos y había muy poca variedad de libros con lo que podías acabar con una visión dogmática del lenguaje en concreto que estabas intentando aprender.

Hoy día, internet es una gran biblioteca donde miles de usuarios ceden sus conocimientos gratuitamente a la comunidad para que todos podamos aprender. Yo soy uno de eso voluntarios, pero hay muchos más y muchos de ellos con un nivel técnico y docente superior al mio, así que no os cerréis en banda a leer solo mis tutoriales.  El conocimiento de un lenguaje se obtiene de las múltiples fuentes de información que podáis recoger y de vuestra experiencia personal desarrollando.

Ya para finalizar, os dejo una lista de mis tutoriales enfocados a aprender C/C++ desde cero. Espero que os sirvan :

1. Si no sabes nada de nada de ningún lenguaje, te recomiendo que le eches un ojo al curso de aprender a programar desde cero ( está en construcción)

2. Si ya sabes algún lenguaje o al menos ya tienes algo de base ya te puedes tirar al ruedo con los diferentes cursos de programación en C/C++ que tengo publicados ( hay de todos los niveles)

3. De mientras que te lees los tutoriales de programación puedes combinarlo con ejercicios prácticos sencillos que te ayudarán a afianzar conocimientos

4. Una vez tengas un lenguaje más o menos por lo mano, tal vez te vale la pena comenzar a mirar temas de algoritmia

Con esto no te convertirás en un maestro de C/C++ pero te dará la suficiente base para poder ir aprendiendo solo a desarrollor tus juegos y aplicaciones de PC.

Espero que os haya servido

Nos vemos

LordPakusBlog

viernes, 21 de febrero de 2014

Enviar correo por bat


Esta es una pregunta que la llevo recibiendo desde hace años:

¿Cómo se puede enviar un correo electrónico (email) por linea de comandos batch (o shell script)?

La respuesta es fácil, mediante una aplicación ya hecha que se llama SendEmail y que se puede llamar desde nuestro script de sistema.

Ya hace tiempo hice un artículo sobre el tema, así que solo puedo recomendaros que le echéis un ojo al siguiente link

Ya hace casi dos años que escribí el artículo original ( y ya hacía tiempo que lo usaba) pero os pueddo asegurar que a nivel de scripts de sistema tanto a nivel profesional como personal esta aplicación es de las que más uso (me atrevería a decir que la que más).: alarmas de sistemas automatizados, reportes de centros de cálculo, resúmenes de servidores de integración,... las posibilidades son infinitas.

Espero que os haya servido

Nos vemos

LordPakusBlog

martes, 18 de febrero de 2014

Qué significa %2 ??


Una pregunta que me hacen en muchas ocasiones es ¿¿qué significa %2??
La respuesta tiene dos acepciones en función de si lo estamos usando en un lenguaje tipo C o en un script de sistema.

* En lenguajes de "alto nivel"
En la mayoría de lenguajes como C,C++ y java el operador % es el operador matemático de módulo (también llamado resto). Es decir, nos dice cual es el resto de la división entera entre dos números.
Si por ejemplo hago 5%2, el resultado será 1, si hago 6%3  el resultado será 0.

La particularidad más importante es que el resultado jamás será más grande que el segundo operador y que si incrementamos paulatinamente el primer operador el resultado será cíclico.
Si por ejemplo hacemos x%3 donde x es una variable que va incrementándose el resultado será: 0,1,2,01,2,01,2,etc...

El operador % se usa bastante para tres cosas:
- Delimitar número aleatorios ( por ejemplo número_random%5 ). Los sistemas de generación de números aleatorios acostumbran a generar números astronomicamente grandes. El operador módulo se usa para delimitar ese rango de resultados a los que nos interesan.

- Realizar operaciones cada cierto número de ciclos (por ejemplo if(!ciclos%100) ). Esto puede hacerse debido a que la operación modulo de una variable que se incrementa paulatinamente vale 0 de forma cíclica. Un ejemplo de esto lo teneis en este link

- Calcular el módulo de un número. Concretamente el módulo 2 (%2) de un número cualquiera nos dice si un número es par o impar como puede observarse en el siguiente link .


*En scripts de sistema (.bat por ejejmplo)
En los .bat el operador módulo seguido de un número ( %2 por ejemplo ) significa la obtención de una variable por parámetro. Para saber más de este tema podéis mirar este link



Espero que os haya servido. Si tenéis más dudas sobre este tema u otros no dudéis en hacermelas llegar.

Nos vemos

LordPakusBlog

jueves, 6 de febrero de 2014

Nuevo blog

Hola a todos,

Últimamente me ha dado por aprender como dios manda a desarrollar aplicaciones y juegos para html5.

Estoy en ello, y este es uno de los motivos por los que tengo un poco abandonado este blog. Mis disculpas para todos aquellos que os habéis quejado por la falta de actualizaciones.

Si queréis echarle un ojo a lo que estoy haciendo os dejo la dirección de un nuevo blog centrado en html5 que estoy desarrollando:

http://juegoswebhtml5.blogspot.com.es/

Espero que os guste

Nos vemos

LordPakusBlog

Entradas populares