Corporate Drones

All your browser are belong to me

Maemo 5

I, for one, welcome our new OpenGL ES-powered Internet Tablet overlords!

Im about to install the new experimental SDK (just right beside Gregale) and start playing with this OpenGL ES thing. I hope to make a special BZK fork to play nice with it and render some cool and fast graphics.  Future looks promissing.

February 28, 2009 Posted by nomadsoul | Maemo, announcement, english posts, gamedev, mobile | | No Comments Yet

BZK for EZX – finally!

UPDATE: wanna try this? so follow this link – http://batterypoweredgames.blogspot.com/2009/05/angstron-2-droid-hunter-beta-test-2.html

After the last (portuguese only, sorry) post on how to configure a SDL toolchain for EZX phones (at least A1200 motoming) and some hard effort and tweaking, I could finally build and try some BZK games on my phone. The results are quite surprising:

- Angstron : Slow. Slower than the first build for N770! tested with -O3, but with full depth processing and lightning

- Riddler: Suprisingly, faster than Angstron! Actually , playable! Still need some love on screen resolution, as the text doesnt fit all in the screen. Gourgeous!

- Angstron 2: droid hunter – tested only level 2 ( the best thing I have in terms of finishing, with some few textures in place, one moving enemy and some good lightning). Not the fastest thing on earth, but playable. Will need some more usability thinking…

From now on, Im just aiming for two more plataforms: OpenMoko and Google’s NativeClient. First is fairly obvious, as it seems the most neutral plataform (while I dont like its UI at all. I guess I will always be a Maemo fanboy) , while I’ve never tried compiling anything for it and only ran it once, booting on my A1200 via USB and loading the system from the MicroSD.

On the other hand NativeClient will probably be available for Android (I hope so!) and thus, its a good veichle for this “java-only” phone.  Even if it dont make into Android, NativeClient is a very cool plataform to support.

And now, some screenshots!

27-02-09_2305

27-02-09_2254

27-02-09_2230

February 28, 2009 Posted by nomadsoul | EZX, Maemo, announcement, anuncios, do-it-yourself, english posts, gamedev, gaming, mobile, nativeclient | | 2 Comments

configurando um SDK para EZX (com suporte a SDL)

Conforme prometido, aqui estou novamente tentando ajudar meus colegas hackers a portar seus jogos favoritos pro celular e sacanear os losers do iPhone.

Admito que durante muito tempo eu tinha desistido, mas hoje resolvi tentar novamente. E dessa vez tomei todo tipo de cuidado para não fuder meu sistema novamente.

Tive que proceder do zero. Portanto , esqueçam os outros posts.

1) instale o crosstool , que é um compilador gcc para ARM Xscale. Eu instalei em /opt/crosstool, até para concordar com a minha instalação de CeGCC, em /opt/mingw32ce.

Com este pedaço, ja é possivel compilar aplicações console. Teste compilar alguma aplicação simples e uma complexa. Se funcionar, prossiga. (eu teste usando o conbed)

2) instale o SDK do Blackhawk. É fácil de achar no google. O nome do arquivo é: a1200-e2-e680i-SDK.tar.gz

Com este SDK , ja é possivel compilar aplicações gráficas. Experimente compilar o demo do pictureflow.dando certo, prossiga.

roube o script setenv-1200.sh do fonte do picture flow para algum lugar seguro.

3) instale aquele games-env-linux do russo ucraniano (desculpe pela confusão, lubomyr!) maluco (acho que lubomyr , o nome):  games-env-linux.tar.gz

Ao contrário das instruções doidas em russo ucraniano, eu joguei toda a arvore dentro da arvore do crosstool. O unico ajuste que eu fiz foi trocar a definição de prefix em /opt/crosstool/bin/sdl-config , de /usr/local para /opt/crosstool

4) copie /opt/crosstool/lib/libsdl.* para a raiz do seu cartão de memória ou para alguma pasta de sistema do seu telefone (não tenho cojones pra isso).

sempre que for compilar qualquer coisa, execute:

source setenv-1200.sh (dependendo de onde você colocou o script)

para testar, peguei a versão que eu tinha modificado do meu raycaster que funcionava em PocketPC e recompilei com poucos ajustes para EZX. a linha de comando foi:

arm-linux-gnu-g++ -pipe -L/opt/crosstool/arm-linux-gnu/lib -L/opt/a1200/lib -L/opt/a1200/lib/ezx/lib -L/opt/a1200/ezx/lib -L/opt/a1200/lib/ezx/lib/inputmethods -L/opt/crosstool/lib  -L/opt/a1200 -I/opt/crosstool/arm-linux-gnu/include -I/opt/a1200/ezx/include -I/opt/a1200/qt/include -I/opt/crosstool/include -mcpu=iwmmxt -mtune=iwmmxt -w raycaster.cpp  -o raycaster `/opt/crosstool/bin/sdl-config –cflags –libs`

Tentei seguir hoje (15/04/09) esse tutorial e essa linha de comando não funcionou comigo. Mas a linha de comando que tinha no SVN do BZK , pra compilar o Angtron2 funcionou:

arm-linux-gnu-g++  -L/opt/crosstool/arm-linux-gnu/lib -L/opt/a1200/lib -L/opt/a1200/lib/ezx/lib -L/opt/a1200/ezx/lib -L/opt/a1200/lib/ezx/lib/inputmethods -L/opt/crosstool/lib  -L/opt/a1200 -I/opt/crosstool/arm-linux-gnu/include -I/opt/a1200/ezx/include -I/opt/a1200/qt/include -I/opt/crosstool/include    -O3 BZKmainHunter.cpp  AppStart.cpp -g3  -w -o hunter_ezx `/opt/crosstool/bin/sdl-config –cflags –libs` -lSDL_gfx

Legal né?

Daniel “NeoStrider” Monteiro->H4X0|2++; ;-)

Update: pelos comentários, tem gente me confundindo com o wyrm, que creio também se chamar Daniel ( ja conversamos algumas vezes por IM e ele até me ajudou a rodar OpenMoko no A1200i). Eu sou NeoStrider, não Wyrm!

ai vão os screenshots:

19-02-09_202519-02-09_2027

February 19, 2009 Posted by nomadsoul | EZX, do-it-yourself, gamedev, linux, mobile | | 7 Comments

Mid Feb 09 Report

I just realised how screwed up I am! I “released” Riddler about 6 months ago and consistently looked at it for most of this time (but still I dont consider Riddler a finished product, as I consider Angstron) and never got it:

a HUGE typo in the game logo!

fundo_alt1

I dont know I missed that for so long. But thats it. these last two days I had a really HARD work to adapt the menu system I wrote about a year ago (back in Toronto) to work with vector graphics and parsing its contents from a XML (very similar to WML). Maybe its time to ditch all the art, and maybe even change the game name. The game itself doesnt contain any riddle! More on that later.

Now, for something completely diferent

You probably heard it before: ” Never optimize it early. Always make sure it works from end-to-end first, and then optimize it”. I just saw it on a book Im reading (again):  “Data structures and program design in C++” by Kruse and Ryba. Its a nice book. kind of a encounter of the old school and the new tendencies from late 90s. Kind of a entry-level art programming book. You would rather read this before reading Cormen or Knuth ( Kruse->Cormen->Knuth).

But about this lemma, I have a counter-argument when we’re dealing with open source software.  Optimizing it early attracts attendion and helps gathering momentum to the project. And every possible consequence to the Linus Law. And goes in acordance with “release it early and release it often”. Others will come and fill the gaps on functionality and fix bugs. The important thing is to show something compeling.

Of course, dont take my work to the last extremes. As my wise teacher , Vinod Rebello ,from college once said in class: “there’s always a trade-off”.  Developers might get frustrated by the lack of functionality or maybe readable code. Indeed, Im very surprised on how people could actually read the Linux Kernel code.  Its very annoying! But thing is: Linus released a very 386-optimized UNIX-like kernel and that attracted atention. Plan carefully your releases, even when releasing often. Repetitive and irrelevant releases might also get away with help. I learned this the hard way…

As a last note:

From the last post, I said I was about to test World of Goo. Well…

HOLY SHIT!!!111 Too bad I cant buy it from Brazil. This game is AWESOME! I dont remember playing a Linux game so well finished. Unreal Tournament 2004? not even close! I felt like playing some fancy video game in a last generation game console.

Other game taking my time is Warzone 2100 – a former closed source comercial game made open source and ported to linux. The game is simple, but very inteligent (well, not its unit IA)  and very adictive!

February 18, 2009 Posted by nomadsoul | announcement, anuncios, english posts, gamedev, gaming, jogatina, kudos, linux, phallacy | | No Comments Yet

World of Goo available for linux!

hoohay!

one of the coolest games I’ve ever seen seem to be available for Linux!

my first chance to try it!

a review is due to the next days!

February 17, 2009 Posted by nomadsoul | Uncategorized | | No Comments Yet

BZK_Vacuum2 for PocketPC – finally!

Thats right! I finally got it working!

And with minimal code changes!

Thanks for the CeGCC project for making this possible!

One thing worth of note:

Its extremelly slow (without any -O at compiling time and with gx.dll, on my iPaq 3660)

I must also add that the game menu is not very QVGA friendly. you cant really see the menu. Only part of the Angstron logo.

0212_2134150212_213424

This is actually a unfair comparission…with the Nokia 770. The build running on the iPaq was compiled with -O3 and the Nokia is running a -O2 build. The Nokia not only has a complete Linux OS, but also a lot higher resolution and sound. I didnt expected the iPaq to perform so slowly, but its quite proportional to their Quake versions. I probably have to rework the way BZK run on such plataforms…

February 12, 2009 Posted by nomadsoul | announcement, anuncios, defective-by-design, english posts, gamedev, gaming, jogatina, mobile, windows mobile | | 1 Comment

BZK update – 3D modeling fest!

One of my assignments from a Computer Graphics class was to implement external modeling support to BZK (in other words, not using MonoBed). And so I did over the new years eve. But I didnt have the right  time to test it. And I also ran into problems becouse I didnt know how to do snapping on Blender. Now I just tested it again and could do a simple level very quickly in blender and see it working very well on BZK. Part of the charm was due to the BSP compiler I had just implemented as the assignment came up.

Now, some nice screenshots:

Of course there are still some issues, but I will fix it very soon: for now, the most important now is the materials and the meshes that still doesnt show quite nicely.

In order for this to work, you have to activate the snapping on Blender. See the Blender documentation on how to do this, as this might change on the future – but remember: the boxes you lay on the scene will represent the rooms and they have to touch each other and be axis-alligned!

To use it on conbed: “conbed ImportOBJ world.obj world.bzk2″. You might have to adjust the file to use the meshes.

February 5, 2009 Posted by nomadsoul | announcement, anuncios, do-it-yourself, english posts, gamedev | | No Comments Yet

A Ubuntu Update

Great news, me fellows!

You probably remember my rants over linux about hardware compatibility. This last weeked only completed something I was very suspicious for very long time:

Ubuntu hardware compatiblity is now BETTER THAN with Windows!

To explain things a little bit:

Until ubuntu 7.10, my wireless dongle would FREEZE linux. That was got me very angry at that post. At 7.10 , ubuntu finally detected it, but couldnt make it really work. After that I gave up and got on with my life.

Until last weeked, were I brought my dongle to the GGJ, as a spare internet system. And it came into use gracefully.

After the GGJ, I got home and tried formating the XP (to get rid of the virus) and installed every possible driver for it and the damn thing doesnt work. On my sister’s Vista it worked after a lot of try-and-guess. And the thing is almost 2 years old!!!

Next is my Webcam: It used to work with XP but doesnt work with Vista nor Ubuntu…kind of. 8.10 finally detects it! I had a test with it, installing a video capture software. The image is completely messed, but its not a random image. The mess moves when I more in front of it – its just a matter of time!

Finally comes my bluetooth dongle, that requires LOTS of drivers to work on Windows, and works out-of-the-box in Ubuntu since I bought it (around 7.10).

And what about the Windows Apps I need? Wine is doing just fine too! Lost of game that I had already give up got playable! X Wing vs Tie Fighter works very well (except for the sound) , UT 2004 works well both on the windows and the native version! Road Rash works very well too! The only stuff not working right now is Star trek – Starfleet Commander: Orion Pirates and ActiveSync (yes, some Windows Mobile devices are actually good. Just like my A-11 that just resurected!)

Now, what about my rants on 8.10? I keep them. 8.10 is very unstable on my machine! (I suspect it is also quite unstable on the EeePC) I got back to 8.04 , that was very unstable at the begining too, but quickly got very good. I hope 8.10 also get good very soon. But I still need 8.04 for Google’s NativeClient. I hope I can get my webcam to work with it too.

February 5, 2009 Posted by nomadsoul | defective-by-design, english posts, linux, ubuntu | | 2 Comments

Global Game Jam update

Try our game!

http://www.globalgamejam.com/games/it-came-cave

dont forget to vote sincerely!

Ok,  now Im quite recovered from the big thing.

I’ve attended the Rio de Janeiro instance of Global Game Jam (it was on my university anyway!)

Anyway, after a lot of preparations, installing Windows XP, Visual Studio (from Academic Alliance) and XNA 3.0 and a Ubuntu 8.10 fresh dual boot I was “ready” for it. Kind of.

ggj13

Day 1:

In there I faced , in the first 5 hours of work, a unworkable enviroment. I didnt know where to begin. I wasnt used to create games creativily in such a crowded place. I rambled. And to complete my dispair: My XP got a virus from Carlos thumbdrive, the wireless only worked on Ubuntu (!!! more on this later) and this Ubuntu was very unstable.

Getting on track was a difficult step, but certainly a great step. Once I got the pace of things, it was very easy and after a faux start (I misundertood the theme), I started codding: The basic graphical core of the engine was done in about 2 hours!

After that, I spent another 4 hours on a SVG render for C# – Me and Rubia wanted sleek graphics that a sprite renderer couldnt provide. And SVG was the answer. Or at least looked like. After about another 2 hours since I started , I had a SVG (the BZK Logo) working on a GTK# window (code done in Mono!) and another 2 hours fiddling this code and the weird XNA polygon pipeline and I gave up. The SVG always laked a few vertices that made the image look wrong.

After dropping the SVG idea, I had to get some sleep. The sun was shinning again.

Carlos stood behind, still coding something like a random terrain generator or something like that.” He’s crazy anyway!”

Day 2:

After some 6 hours of sleep (looks like I had more sleep that some teams alltogheter and maybe I hold the sleeping record of the GGJ), I was ready for some more.

Time for some game mechanics. Carlos wants me to code it OOP, but Im all Structured-Programing here. There’s no need of OOP for such a project and such time constrainct. He kept complaining until very late of that day, while there still I had the chance to do it with classes, but I , as the captain, got as stubborn as I could to resist the idea. He wasnt really wrong at all. And neither was I.

By that time, the BZK gaming model came to my mind. Diferent states being diferent numbers and treated like different entities, but somehow related by a number range. The result is very buggy but its almost working.For the IA we had a very loose definition on how the IA should work and we settled on two basic algorithms , to make the monsters run into each other. One being very smart (“cheating”) and the other being dumb. (Angstron IA algorithm).

In the afternoon I decided to try to clean up Windows, as a new virus had appeared and was getting in the way. Unfortunatly, ClamAV couldnt solve the problem and I lost 2 hours on this. Damn it! I also finally came up with a good song for the game: We vs Death – And how we translate it. I already had this file in my computer, from a pack of CC music I downloaded. And after a quick check, their Creative Commons restrictions allowed me to use it! Great!

Also during this scanning time, I went out of the room with Carlos’s Palm Zire 72 to record some sounds. Mine got shabby, but then I discovered in Carlos a real voice talent! With him, we recorded some taunts the miner would say after killing the monsters. Carlos is a real Duke Nukem!

Almost in the end of the day, I finally had the smart IA algorithm working (after two tries) and everything else was in place. Rubia had just finished the artwork in SVG and during the final 30 minutes of the virus scan I was turning everything into sprites and adjusting the aspect ratio. After we got the final artwork in place, the thing started looking like a game! I got confident that  we could finish the game! Rubia was very excited. She never have seen any of her drawings turned into a interactive animation!

Carlos had just finished his algorithm and was getting it into the game engine (And he didnt test it before porting it from Delphi to C#!). He pointed that me the fact his algoritmo worked better with BIG maps and all I wanted was a small -no scroll- map. I was afraid the player would get lost in easily. But Erick (from the Torresminho Team) gave the idea of a minimap and showed me how to implement it. Finished! The sun shines very hot though the window – Time to get some sleep.

day 3:

Sleepy sleepy boy. Another 6 hours of sleep!I was working on the IA and the game mechanics. After a a while, I finally came up with a idea of a dumber IA algorithm. re-using a scraped IA and mixing it with the smarter IA. And it works VERY WELL!

Time to finish it up! Rubia got into creating still images for the “menus”, Carlos was fixing timming and I was finishing the game mechanics. In the end , we paired to fix the losing and victory conditions and we still had to code the game state for the tittle , game over and victory screens. In the end, we got it, but quite on mark. Almost 20 minutes to the deadline. And I perceive the gamestate as the only annoying bug in the code (aside from some defective “gameover detection code”). Quite good for a 43 hour gaming marathon. Too bad I overslept , lost too many time eating and scanning the computer. And there also the times I needed internet and I had to reboot for Ubuntu.

Aftermath:

The actually enjoyed this game more than I expected. While the code is messy, its functional and somewhat stable. Game Design-wise its  very solid(Carlos had the great idea) and entertaining. I want to port it right away! Carlos also told me so yesterday. Too bad XNA is not very cross-plataform on itself , but it should be very easy to port it to Java.

What I got from all of this:

- I can do more than I imagined

- I must trust Carlos even more (we always do our assignments togheter, as we know and trust each other’s methods)

- I got a SVG C# reader!

- I want to port Carlos map generator and make it generic

- Wireless is a bliss

- Audacity rocks

- Gimp and Inkscape too!

- Lack of sleep makes me moody

UPDATE: for a while, we were:

1º in Rio de Janeiro

1º in Brazil

4º in the Global ratings. Nice er?

Now the stats got completely scrambled again, but at least I had this peak!

February 5, 2009 Posted by nomadsoul | H4X0|2, defective-by-design, do-it-yourself, english posts, gamedev, gaming, jogatina, kudos, linux, ubuntu | | 2 Comments