Hello there,

I’ll have to be brief because we are still in the middle of the conference and I need to rest for the last day tomorrow.

This year I have decided not to submit any presentation at the Blender Conference (it has been 3 years in a row presenting projects, I thought people should get a break from me). Nevertheless, I felt into the mistake of telling Ton that I’m going to give a talk + a workshop at the BlenderPRO in Brazil. I suggested that if he needed more content for the conference, I would gladly make translate my material for that conference.

I didn’t hear back from him (or may have missed something). And guess what I found yesterday in the conference schedule? You are right, I was officially responsible to give a 1 hour presentation about Python and Blender for artists that haven’t (or are scared of) touching code.

Yesterday I couldn’t really work in the presentation (I went to the Rainbow Warriors inauguration party – the new GreenPeace boat – really nice). So today I had one hour to put together the slides.

presentation slides (2.2MB)

crossword sample file /only the script (< 1MB)

Once again, I apologize for people that attended the talk and had to see a presentation done in such a rush (luckily I have been gathering examples from my previous projects). I hope people got something worth of their time there ;)

Extra Extra

Another file I forgot/didn’t have time to show is the “image_change” add-on. The file with the documentation and the script can be found here:

texture_imagechanger.zip (133 kb) + pencil_test_sample.zip (12 MB). It’s an addon to help pencil tests artists (i.e. to have 2d animation loops textures controlled automatically and animatable. I still have to update the file to use the change_frame callbacks, but that will be later (right now it’s using the “old” pydriver script link hack, worthy checking). The first take on this (pre-addon) was for the Detail Library Pencil Test.

Additionally, although worthy a separated post, I updated my file for offline dome rendering. I was showing it for some friends at the conference and may as well share here: fulldome_rendering_pak.blend (< 1MB).

I believe Blender is actually ready to have a python add-on to handle the whole dome rendering automatically. I have no time to explore this idea right now, but if someone wants to give it a try and need help let me know.

Any questions don’t hesitate in contacting me. And follow me on twitter: @dfelinto

Extra, this is the Dr. Epilepsy demo I mentioned:

Android Hello World

An image is certainly talkative. But if I may complement:

I recently got an Android phone (Nexus S). This model is marketed as a development cellphone. And it’s indeed. If you are developing any application for the mobile you can connect it through the USB port and debug your app from your desktop while it runs inside the phone. It’s amazing 🙂

My interest with android development was deeply inspired by the fantastic work that has been done for the Game Kit project. This game engine is compatible with Blender, runs on diverse desktops (Windows, Linux and Mac) and can be compiled for iOS (iPhone/iPad) and guess what? … Android.

The support for Android is still not 100%. Something seem broken with their graphic layer. But I expect this to be fixed very soon. In the mean time, if you are as anxious as me, you can do some ASCII art in the framework they provide. Real 3D render still has to wait.

I still see the Blender Game Engine as a strong prototyping tool. But it’s nice to see other publishing alternatives.

Dalai Felinto

Related Links:

* do you want to learn more about the Blender Game Engine and curious why I’ve beenn so busy lately without time for blogging? My book with Mike Pan is close to be finished and, lucky you, still available for pre-sale.

Hello there 🙂 Happy 2011 for everyone. Today is the last day of January, and it happens to be a day where I’m inspired for our first post this year. In this blog there is no such a thing as apologizing for not writing. As Gandalf once said, a wizard is never late, nor is he early, he arrives precisely when he means to. Good luck explaining that to your girlfriend.

The end of last year was a bit busy. October (as you can read from the last post) was filled with too many travels, talks, workshops. That takes a lot of time and drains a lot of energy. On top of that it makes me re-think a lot whatteheck I’m doing here. I don’t want to rely on one single tool, but the more you work with something the more you are required on that. You specialize into something and that start to be part of your life and identity. And what happens when the tool you love doesn’t seem to be going well? Well who guessed that I’m talking about the Blender Game Engine guessed right. There is nothing to worry about, it’s only that there are so few developers out there engaged in this project that I couldnt see a bright future ahead.

This year I’m to publish a book with my friend and college Mike Pan. The book is focused on the Blender Game Engine and its application on real projects. I can proudly say that I pay my rent with BGE work and I hope in a near future more people can do the same. Actually the motivation behind this project is to provide substantial information on quirks, way of thinking, how to plan, for the BGE. I myself would love to have access to such a book when I was starting, and even later while working harder with it I could certainly use some guindance. So rest assured that the book is being written with a lot of love and with a commitment for quality – the “so you don’t make the mistakes I did” thing. Ah and they are some jokes too. Not many, maybe more on my part, I don’t know. What I know is: the book is available for pre-sale with 36% off. Go get it ! It will be published after the final Blender 2.5 stable release so it can cover everything.

The thing about writing a technicall book is that you go over every single detail of the specific software. While that is fine for regular users, this is quite angusting for someone like me that knows things could be done differently. Working with the same tool daily already raises those growing discomforts. Writing about them even embarrass me. One of those things is the way of rendering texts in the Blender Game Engine.

Blender Game Engine uses a bitmap font (created from a software hidden in the deep corners of the internet) applied to a face. You cannot apply scales for the face that it messes the drawing. Neither can you change the UV map. And the available characters are is way too small. C’mon Portuguese is my mater language, we need accents and latin simbols – çáúíé.

Frustated with that, and with the blessing of my boss (which is starting a cooperative program between UBC and Nippon Foundation therefore could see the longterm usage of native unicode support in BGE) I got my hands dirty and put something together. It certainly helps to have friends smarter than me, and Diego Borghetti – who I met after the Che Blender 2009 in such a great time visiting Buenos Aires and Licuadora Studio – was the one to help me with the Blender way of doing text. He implemented the new ttf drawing code for the Blender interface, so definitively the one ackowledged on that. That plus Benoit Bolsee (the BGE coordinator and my personal guru :)’s review and suggestions and voi lá (image cortesy of Mike Pan showingcase the feature).

And then today I was reading a blog on game development and ran again into the same topic. Check it out:


“You’ll need to be able to render fonts. I use AngelCode’s excellent BMFont utility to convert any font into a PNG with a text data file. Font renderers will need to support all justification modes, and it is very handy to have a render-in-box method that will word wrap text into a box area. This comes in handy for drawing requesters. I also like to have support embedded commands like change text colours or jumping to a tab position so you can easily syntax highlight messages without having to split it into font draw calls.”Rolling an iOS Game Engine Without Breaking the Bank : #AltDevBlogADay

So I googled it and found this BMFont from AngleCode – http://www.angelcode.com/products/bmfont/

I’m yet to see if this work in the BGE out of the box. It seems that it supports some Asian characters. I keep thinking that this should be happening under the hook, with you providing the ttf and the Game Engine doing the conversion. Then eventually for releasing you export it as a bitmap font.

I’m still convinced that real true type fonts are the way to go. From the artist perspective is way more logical to work with. Maybe my generation is spoiled and the current workflow for bitmap fonts is better. I don’t know but I simply can’t convince myself on that. In the mean time, Blender Game Engine can handle both. At least no one can complains.

I can see how some ttf fonts may restrict the distribution of the source. But if the file is packed into a Blender file it shouldn’t be a problem, right?

More on Blender Game Engine development

At some point in the end of last year I had to decide between help making Blender Game Engine a better tool or to write about it. You can’t write about something that is constantly changing nor I have all the time in the world to dedicate myself for both projects. To set my mind in peace I started a small short term roadmap that I would like to see addressed before the final Blender 2.5 release. The list is this public google document. A friend of mine, from the Brazilian Blender community decided to look at some of the items. Vitor Balbio is known by his award in the Blender Game Contest 2010 with his Lucy and the Time Machine. He is also interested in coding for my roadmap quite attractive for him. He first implemented the option to set/unset the mouse visibility from the UI. Although it sounds simple (and the implementation is trivial for someone acquitanced with the source code) it does envolves changes in the DNA,RNA and UI files of Blender. Ok that may have sounded gibberish but those are important parts of Blender code that any big change has to touch it. After some help (I did the blenderplayer part and changed some small things in his patch) we got the patch into trunk and Vitor’s motivation was way up high 🙂 For Portuguese readers you can find in his blog a testimony of this experience. It reminds me of my excitiment with my first compiled Blender, the first changes, the first patch … 2008 was a changing year in my life. I’m glad to pass the torch and spread the hapiness and share the knowledge.

Next in line was TexFace.

One of the things that embarassed me to explaing how to make a Text in the Blender Game Engine is that one needs to (0) magically get a bitmap font somewhere (1) go to edit move (2) create a UV (3) go to the mesh panel (4) toggle Text there. How many times didn’t I create a UV for an object only to turn its collision off? It’s so disturbing. Please don’t take me wrong. I really appreciate all the effort that has been made into Blender/Blender Game Engine.

The problem I see is that it seems to me that Blender has growed up and the Game Engine didn’t catch up. More than that. The beauty of the BGE is its integration with Blender. But then how one can explain duplicated options in both systems that simply do not “talk to each other”? So one day during lunch I brought my sketchbook under my arms and had Mike and I brainstorming on how things could be different. We got to an initial design based on moving almost all the options to inside the Material panel. The nice thing about this is that some options were there already. For example, instead of setting Light for a face, we can use the Shadeless option from the material. Instead of Collision, why not to make the whole Physics settings (friction, force, …) a toggleable option? Ob_color was indeed there already too.

With that idea in mind that things were possible and could have a better design I dared to present this for some developers and users at the Blender Conference. Ton (Roosendaal) pointed out in the coders meeting that some of those options were optmization tricks for the Playstation (1? 2? I’m not even sure). And although a bit relutant even him agreed that they could go away if a good design comes in to take its place.

Well what you see up here is the first stage of the design of Mike and me, the efforts from Vitor and some couching from my end. A lot of tools in Blender lack just that, a better design. It’s easy to complain about something, but to but time to think on all the consequences of an eventual solution, this is something missing. And this is not exclusive to programmers, more and more I see artists helping with feature design and UI planning.

Getting back on track: the next step is to implement the actual functionality – what you are seeing is not only a mockup, but still it only defines saveable properties with no real effect whatsoever. My idea is to keep the BGE internal structure and convert those material options to the old mesh properties. That way we take a safe route and avoid deep rewriting (it’s going to be already a big challenge for Vitor or whoever had taken over this task). I’m excited. And frankly I will be glad to rip off whatever I have written in the book on TexFace to open room for the new material options. Let’s hope he succeds!

There is one big drawback with this change. There is no possible way of doing backward compatibility. In other words, Blender 2.49 files that were relying on those options will have to be updated manually. That shouldn’t be a big of a deal and in my humble opinion it’s a good trade-off. And if we don’t do things now, when will we do?

feedbacks are appreciated

I don’t know, those are only late night rants and pondering

By the way, I just re-watched Ratatouille. I know realized that I really like Brad Bird’s work. From Iron Giant to the Incredibles and Ratatouille. He is great. I’m saying that because Toy Story, although my favorite movie of all times, disappointed me a bit on its 3rd film. I probably had my expectations set way too high there. I will watch it again and again to see what is behind that. At some point I may like it =)

Speaking of mixed feelings on Pixar movies. Wall-E is a beautiful movie. The first part is a masterpiece for me. But there is something in the second half of the movie that simply gets too carried away for me. My current guess is that the kind of “patriotism” shown there seems too much “American” (and by American I mean North American, which does not include Brazilians like me). It reminds me of Spider Man 2 when they replaced the scene where a disasters happens (involving a trains or a plain, I don’t remember) with a cheerful scene with New Yorkers helping Peter Park against the bad guy there (was that still the green goblin? I think so). All that only because of the 9/11. You know we, Brazilians are very patriotic. Some may dare to say that we are even way too much. But when you have to show it in a public way like this seems a bit over the top. Be proud for some real thing, not this “we are Yorkers ehhhh o/” talk. Dark Knight has its moments of that too, but I will take it easy on my rant here. It’s a good movie after all (although I was hoping for both boats to explode).

I just realized that I got side-tracked here (: What I wanted to talk about Wall-E is:

1) the book Art of Wall-E is sensational. The movie itself is full of pantomima. It’s a silence movie on its best. It makes me watch more Chaplin with new artistic eyes. The book explain a lot how was difficult to convey a world that does not exist and where there is not much dialog (no dialog at all when it comes to Wall-E and EVE). A must have/borrow/take from the library. I got mine for CAD14.00 – I love when those books go on sale.

2) the Blu-Ray is unique. It really is. Instead of only voicing-over the movie with the director explanation, you can see the reference images the artists used for the initial scenes on top of the screen while the movie plays. That’s finally a good use of Blu-Rays. I hate BluLive and I hate even more DRM. But I can’t help staring breathless for a HD crystal clear image. It’s the magic of our times.

Books and Blu-Rays. Technologies so far apart in the modern man evolution and at the same time equally fascinating.

That’s life, this is 2011 coming up at full speed

May this be a great year for all of us.

This October has been a fantastic month. It started with the Cosmic Sensation project. I’ve been talking about this project very briefly, here and there. Yet is not the time to cover it into details. But making long short in the last month the project finally got to its end, and it was amazing. It involved working with the Blender Game Engine, a 30 meters immersive dome and cosmic rays sensors. The reason why now is not the time to exhaust the topic is because in a few days I’m going to present it in the Blender Conference o/. It’s always a joy to attend this annual Blender international meeting and having something interesting to show there is even more rewarding.

Cosmic Sensation

I remember when I started with Blender some years ago that there were not so many professional showcases of what Blender could do, what people were doing with it. Nowadays it’s easier to find (really) nice projects made with Blender, however the Blender Game Engine still lacks some show and tell in my opinion. So whenever I have the chance (and thanks God it has been a few in the past months) to talk about the BGE I feel like giving myself a gift. It’s a bit like this blog. In the end I’m the target audience here 🙂 It’s as if I’m trying to please another Dalai that may be out there reading it and cheering together. Anyhow the presentation is going to be in the first day in one of the first hours (right after the key note actually). If you want to hear more about science, dome and some possibilities with realtime technology you are more than welcomed to watch the online stream (11:30am Amsterdam time – keep an eye on www.blender.org for the link of the streams). Also sharing the stage will be my friend and Blender artist Mike Pan. Together with Martins Upitis they were the art production/creation team in the final phase of the project. So stay tuned !

View Conference

Also in the same month, in the same continent: since I’m taking the time to cross the ocean, I may as well make the best out of it. Riccardo Covino – a friend, a great artist and someone I have been working with in a BGE project – is on charge of Blender workshops to be hosted during the VIEW Conference in Turin, Italy. The VIEW Conference (for my surprise) is a huge event, full of big names in the animation industry and a really condensed schedule (one of those that make you second guess whether you should bother taking time to eat). Being in Italy of course to eat is one of the priorities. And on top of that – to make my attendance in Pixar’s talks even more complicated – I will be given one workshop on the Blender Game Engine. I felt quite honorated with this opportunity and I will do my best to gather more users to our beloved engine. Get your buzzword dictionary ready, for this is the abstract of the workshop:

Production Pipeline with the Blender Game Engine

This workshop will introduce the audience to one of the most famous open source game engines. Starting with basic examples, such as pre-made assets for a simple logic game. After covering the basis we go over more complex files exploring (and modifying) them while understanding their design. The ultimate goal is to provide to all the participants of the workshop a real taste of how Blender Game Engine has being used for professionals in the industry.

It’s nice to see the Blender Game Engine figuring side-by-side with other Blender functionality showoff (there will be workshops on Fluids, Smoke, Post processing, …). I will see if write about it once it’s done and put the sample files online. The Cosmic Sensation project will also be spotted again here once the talk at the Blender Conference is done.

Break a leg, shall we? 😉

Take care,

Este ano a BlenderPRO alcançou um patamar impressionante. Com três dias de evento o espaço de convívio, trocas, aprendizado e diversão está em suas devidas dimensões. Infelizmente por motivos geográficos e patrocináficos eu não pude comparecer. Ainda assim conseguimos organizar uma oficina online sobre desenvolvimento da Blender Game Engine.

Luis Retondaro e Erick Henrique - parabens por todo o trabalho

Foto da direita pra esquerda: Luis Retondaro e Erick Henrique : meus mais sinceros parabéns por toda a disposição, trabalho e generosidade em tocar este sonho coletivo chamado BlenderPRO

O meu principal objetivo com esta oficina, era o de naturalizar a figura do desenvolvedor do software livre.  Mostrar um pouco como qualquer pessoa pode se envolver e o proesso não tem grandes mistérios. O público-alvo variou desde pessoas experientes em programação a usuários da BGE ávidos por entender um pouco mais do que acontece em seus bastidores.

Read More →

[English: this is a small devianation after attending Sintel’s Premiere in Utretch. Portuguese only, sorry] 

Ontem foi uma daquelas noites mágicas que fazem a gente uma vez mais entender porque estamos nesta jornada. Acho que o dia que o Blender for o melhor programa do mercado eu paro de usá-lo. Eu não quero um programa 3D. Eu quero lidar com pessoas e suas imperfeições. Ambições, frustrações e sonhos. Um programa perfeito é um programa apático, uma maquina de Coca-Cola ®. Um programa vivo precisa de você, ele depende do fator humano pra funcionar.

Sintel Credits - photo by Mike Pan

Eu estive pensando esses dias, na tentativa vã de entender porque eu gosto de bugs (te juro). Acho que um bug é uma forma do programa de te dizer que ele está ali, vivo, querendo saber mais de você. É uma forma de tentar te acordar da “Matrix” do mundo de consumo das galinhas que nascem nuggets e das vacas que nascem hamburgeres. Eu confesso que nunca fui a um matadouro. Mas já tive meus momentos de matar galinha (o que me rendeu valiosas lições de vida e histórias pra contar) e já olhei as entranhas de nosso querido programa de perto. De tão perto que assusta. E essa é a sua verdadeira natureza. E é ela que revela o quão viva é sua estrutura, estrutura essa da qual cada um de nós faz parte.

Read More →

English: Article to be translated. In the mean time an online translator should work 🙂 Those are general tips to optimize your BGE applications.

É engraçado que com o passar do tempo a gente esquece que estas coisas muitas vezes são mal-documentadas e acabam escapando do conhecimento da maioria das pessoas. Então, como resposta a um email de um amigo, resolvi escrever esta pequena lista de dicas para melhorar a performance de seus jogos com a Blender Game Engine.

Display List:

Artista: faz seu jogo ficar mais rápido. Só funciona para objetos não animados. Não funcionava no Blender 2.47 (!). Talvez esta seja uma das razões de muita gente não entender suas vantagens.

Técnico: Display List (ou D.L.) é uma forma de passar um objeto para a placa de vídeo apenas uma vez. Esta lista de polígonos é compilada uma única vez e cada vez que seu objeto precisa ser chamado a lista é executada. É bem rápido. Bem mais do que Vertex Arrays (a tecnologia anterior). É tecnologia antiga, atualmente substituída por VBO (Vertex Buffer Object). Apesar do Blender 2.5beta ter suporte à VBO o mesmo não se extende à Blender Game Engine. Mas não adianta manter as expectativas altas, VBO não é mais rápido que Display Lists. Ele é mais eficiente no manejo de memória (ou seja, usa menos RAM). Além disso ele é meio caminho andado para se implementar Hardware Skinning na BGE. Existe um patch quase completo para a BGE suportar VBO. Nos meus testes realmente não notei nenhuma melhora considerativa de performance (mesmo em modelos bem pesados).

Read More →

Movies have scripts, videogames have scripts, so why not a Python script can have its own?

* Note: this post may be too nerdy technical for your taste. If you simply want to check the PasteAll.org add-on you can get it here *

Saturday night, I had a really good time and wasn’t planning to sleep any soon. After the long afternoon enjoying the scenarios of Tuscany and Florence to play Assassin’s Creed II was also out of question.

So why not “geek” out and start some personal project?

Have you ever been to PasteAll.org? It’s a very nice website used to quickly share a text, an image or a .blend file. It’s used by a lot of Blender developers and bug reporters to avoid flooding emails and IRC channels with tons of pasted lines of code. I personally use it often to share patches or python scripts and being a lazy person an exigent user never got used to all the necessary steps I need to go through to have my text shared there (it’s actually pretty simple, but well, I’m a hard to please user ;))

PasteAll.org screenshot

With no big pretensions but to amuse myself, I decided to create an add-on (a.k.a. plugin) to integrate PasteAll within Blender 2.5. This was also a good way to learn the recent changes in the API.

Read More →

Problemas e Soluções para Licenciar seus Jogos – Issues and Workaround for Game licensing with Blender Game Engine

English Readers: for the time being use a translator or read in BlenderArtists a short version of the workaround presented here on Blender Game Engine license issues. 

Recentemente tenho percebido muita gente preocupada com a questão da licença da Blender Game Engine. Acho isso um ótimo sinal, pois indica que o mercado de uso profissional da mesma só faz crescer. Pois bem, atendendo a pedidos segue este artigo. Como um bom vinho ele foi feito seco ( que desculpa esfarrapada, está sem imagens porque estou com preguiça mesmo 🙂 ).

O problema:

“Quem roubou o meu queijo?”

O código do Blender é predominantemente GPL e em uma licença própria da Blender Fundation. A GPL especifica (em definições meio vagas) que qualquer programa derivado do código original (bundled with the original code) deve ser licenciado como GPL também. Isto é feito para evitar que alguém pegue o código do Blender, altere algumas coisas, e queira distribuir o mesmo sem compartilhar suas melhorias.
Um detalhe: se um estúdio alterar o Blender para uso interno, mas não redistribuir o mesmo, ele não é obrigado a fornecer as mudanças realizadas no código do mesmo.
Isto contudo não afeta arquivos .blend, renders, scripts, texturas, … que sejam criadas com o uso do Blender. Ou seja, você é livre para usar o Blender comercialmente e licenciar suas criações artísticas do jeito que quiser.

A Blender Game Engine contudo tem um problema. Para distribuir seu jogo você precisa criar um executável (run time). O que o Blender faz é pegar seu arquivo .blend e colocar “dentro” do blenderplayer – uma versão enxuta do Blender contendo apenas as funções correspondentes à Blender Game Engine. Por mais bizarro que isto pareça, este arquivo executável se enquadra na categoria de “derivados” do programa original (por ser um híbrido de seu arquivo com o blenderplayer em si), e portanto deve ser licenciado como GPL.

  Read More →

I graduated last year as Architect and Urbanist. There is something about it that still beats me. Since then I’ve been working as I never did before. Some of my work with Blender is easy to connect with my original field – architecture. Nevertheless I keep myself busy going into directions I wouldn’t think I would be taking when I started my graduation. What can I say? It’s time to look at them and try to prepare myself to the new opportunities to come.

Desde que me formei muitas coisas aconteceram. É hora de celebrar todas elas e relembrá-las mês a mês. Muitos trabalhos surgiram, e muitos ainda hão de surgir. Mesmo tangência minha área de formação (arquitetura e urbanismo) eu tenho obtido bastante satisfação pessoal/profissional. Acredito que o Blender é uma peça chave desta equação. Me ajudando a conhecer pessoas, saberes e caminhos.

Architect and Urbanist ;)

We got some budget from a research and started to design and build a dome at my former university (with the full support of my dad – Valdo Felinto, a great architect without whom that project literally wouldn’t even have started)

Conseguimos uma verba de pesquisa e começamos a construção de um domo na minha (então) ex-universidade (projeto meu com meu pai, que fez também todo o trabalho de marcenaria e o projeto pra lá de artístico da estrutura – Valdo Felinto.

Read More →