The Begining of Kill da Ducks

Learn how it was at the begining.

Last progress entry

See how the game development is going

Grav

A WIP arcade hard game you should check :P

Last Bug revealed

Look at the game's bugs and have some fun!

About me

Just a bit of information about myself.

Showing posts with label fun. Show all posts
Showing posts with label fun. Show all posts

May 27, 2013

Catimg

Hello again! I have really been busy for the past few months and couldn't work on Kill da Ducks too much but I guess I'll be able to very soon.

Other than that I have been working on little projects that doesn't take too much time and I should have written something when I did them but I didn't... So now as it's too late I'll be speaking about my last little project: catimg

Some of you may know the command line "cat" to print files into the standard input. Well catimg also print files but it actually print pictures. Sounds funny right? Here is a little screenshot:


That's actually a console and as you can see I'm printing a Mario picture.

You may be asking yourself why would I code such a stupid thing. Well actually it's just for the fun but I'm pretty proud of the result as it's quite beatifull.

How it works:
In order to make this work I needed to use a 256 colors shell. Well I already have one as I use zsh and love to have colors everywhere cause it makes my life happier :). Then I needed to read the pixels from an picture and I knew I was going to use convert (ImageMagick). The problem was "How do transform the picture to fit the terminal colors?". Searching a bit on the internet I found an option called remap. This option takes a picture and convert another picture to fit the pallette of the given remap picture. So I took this website: http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html to pick up the colors. The problem was that the text was creating residual colors and I needed to kick them out. I saved the webpage and modified the code source with many sed in vim to get a nicely drawn pallette with no text:

      
Finally I just removed a black space to create the alpha0 color aka transparence. Then I copied the codes on vim and parsed them to get them nicely listed as below:

#000000
#800000
#008000
#808000
#000080
#800080
#008080
#C0C0C0
#808080
#FF0000
#00FF00
#FFFF00
#0000FF
#FF00FF
#00FFFF
#FFFFFF
#000000
#00005F
#000087
#0000AF
#0000D7
#0000FF
#005F00
#005F5F
#005F87
#005FAF
#005FD7
#005FFF
#008700
#00875F
#008787
#0087AF
#0087D7
#0087FF
#00AF00
#00AF5F
#00AF87
#00AFAF
#00AFD7
#00AFFF
#00D700
#00D75F
#00D787
#00D7AF
#00D7D7
#00D7FF
#00FF00
#00FF5F
#00FF87
#00FFAF
#00FFD7
#00FFFF
#5F0000
#5F005F
#5F0087
#5F00AF
#5F00D7
#5F00FF
#5F5F00
#5F5F5F
#5F5F87
#5F5FAF
#5F5FD7
#5F5FFF
#5F8700
#5F875F
#5F8787
#5F87AF
#5F87D7
#5F87FF
#5FAF00
#5FAF5F
#5FAF87
#5FAFAF
#5FAFD7
#5FAFFF
#5FD700
#5FD75F
#5FD787
#5FD7AF
#5FD7D7
#5FD7FF
#5FFF00
#5FFF5F
#5FFF87
#5FFFAF
#5FFFD7
#5FFFFF
#870000
#87005F
#870087
#8700AF
#8700D7
#8700FF
#875F00
#875F5F
#875F87
#875FAF
#875FD7
#875FFF
#878700
#87875F
#878787
#8787AF
#8787D7
#8787FF
#87AF00
#87AF5F
#87AF87
#87AFAF
#87AFD7
#87AFFF
#87D700
#87D75F
#87D787
#87D7AF
#87D7D7
#87D7FF
#87FF00
#87FF5F
#87FF87
#87FFAF
#87FFD7
#87FFFF
#AF0000
#AF005F
#AF0087
#AF00AF
#AF00D7
#AF00FF
#AF5F00
#AF5F5F
#AF5F87
#AF5FAF
#AF5FD7
#AF5FFF
#AF8700
#AF875F
#AF8787
#AF87AF
#AF87D7
#AF87FF
#AFAF00
#AFAF5F
#AFAF87
#AFAFAF
#AFAFD7
#AFAFFF
#AFD700
#AFD75F
#AFD787
#AFD7AF
#AFD7D7
#AFD7FF
#AFFF00
#AFFF5F
#AFFF87
#AFFFAF
#AFFFD7
#AFFFFF
#D70000
#D7005F
#D70087
#D700AF
#D700D7
#D700FF
#D75F00
#D75F5F
#D75F87
#D75FAF
#D75FD7
#D75FFF
#D78700
#D7875F
#D78787
#D787AF
#D787D7
#D787FF
#D7AF00
#D7AF5F
#D7AF87
#D7AFAF
#D7AFD7
#D7AFFF
#D7D700
#D7D75F
#D7D787
#D7D7AF
#D7D7D7
#D7D7FF
#D7FF00
#D7FF5F
#D7FF87
#D7FFAF
#D7FFD7
#D7FFFF
#FF0000
#FF005F
#FF0087
#FF00AF
#FF00D7
#FF00FF
#FF5F00
#FF5F5F
#FF5F87
#FF5FAF
#FF5FD7
#FF5FFF
#FF8700
#FF875F
#FF8787
#FF87AF
#FF87D7
#FF87FF
#FFAF00
#FFAF5F
#FFAF87
#FFAFAF
#FFAFD7
#FFAFFF
#FFD700
#FFD75F
#FFD787
#FFD7AF
#FFD7D7
#FFD7FF
#FFFF00
#FFFF5F
#FFFF87
#FFFFAF
#FFFFD7
#FFFFFF
#080808
#121212
#1C1C1C
#262626
#303030
#3A3A3A
#444444
#4E4E4E
#585858
#626262
#666666
#767676
#808080
#8A8A8A
#949494
#9E9E9E
#A8A8A8
#B2B2B2
#BCBCBC
#C6C6C6
#D0D0D0
#DADADA
#E4E4E4
#EEEEEE
Actually I needed to make some modifications because two of the codes were wrong.
Then I just needed to adapt the size of the picture to the console size using tput cols. I used double spaces to make image aspect ratio looks better... and voilĂ ! Some grep to seek the code 1..256 corresponding to each color and print them with echo and some colors escapes characters!

The only thing I don't like is how slow it is but I cannot find what to do in order to improve it other than using a programming language to seek the color code (using a hashing table would be so faster....)

For those who would like to use it, you can get the code at GitHub.

Have a nice day!

Mar 3, 2012

Some Verlet

Working with my friend in the game engine I talked last post, we got something really nice and fun using Verlet integration. He wrote that part of the code and I added the display with OpenGL, I also created a cloth using constarint and mapped a texture on it.
The game engine is going well, even if we already have a working collision system and some basics physics that only works with AABB (non rotaed rectangles), integrating something better could be cool. Weeks ago I implemented a SAT collision detection that allow to detect collision between any polygons in a fast and easy way. Yesterday, my friend implemented the SAT with verlet, having some kind of simple physic engine (which is pretty fast too!). There are still some corrections to do but work is going very well!


Here I let you a video showing the clothes in action:

Oct 21, 2011

Some progress in Grav!

Hi! I have been coding a bit the game, but not very much because of the exams, in fact I still have two next week, but these one are about compuer science. Anyway, what I have been working on is the timer, the sequences, the play... everything to be more precise.
You can now play a classic game, that looks a lot to super gravitron with the same sequences but with a better and more intuitive movement control, you'll see veyr soon what I'm talking about ;)
Your stats are now saved automatically to the server, you only have to create an account an the beggining with an ptional password (not implemented yet in the game but already done for the database). By stats I mean the time you have been playing, the deaths, the best time, registration date... I may add more stats later, I accepts any suggestions :)

The connections are called in threads, so they doesn't interfer with the gameplay.






Post some comments if you read something, I would really appreciate it, it fells as if nobody read something that blog!

Aug 30, 2011

Having some fun with the Blood

Here it is: