Krzysztof J. Weblog

Indie game developement, pixel art, open source and linux

RaspberryPi Zero Timelapse

June 25, 2017 — Krzysztof Jankowski

ZeroLapse

I finaly dicover the perfect use for my Zero. I want to build the ultimate timelapse device.

Parts

It will have:

  • moving arm
  • infrared camera 5MP
  • scripts to automate the process

For now I'm working on the timelapse workflow. I'll have the moving arm in few weeks.

Setup

I ducktaped the camera to window and power up Raspberry with good power bank. Cron is runing raspiLapseCam.py script at each reboot.

piLapseCam.py by James Moore

I leave the Pi computer for and hour and then grab all images it takes.

gallery

Postproduction

Then I use bake.sh to make a 2K video file.

ls *.jpg > list.txt mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=2.39/1:vbitrate=8000000 -vf scale=2048:858 -o timelapse.avi -mf type=jpeg:fps=24 mf://@list.txt

There's always room for image quality improvements. LightWorks is perfect for this.

LightWorks

Colors

Final Videos

Tags: raspberrypi, photography, video

Benefits of being a Hipster

June 20, 2017 — Krzysztof Jankowski

Subtitle: Don't get in the hype of buying latest and greatest each year

Every company in the world will try to convence you that having a latest gadget in any category is a must have. That this year product is the best ever. But the next year it's the same story. I will share my story as an example.

I always wanted to have a pro video camera. I never like to use DSLR for video. And mirrorless cameras are even worse. Smartphonce are just silly. I like to use real camera. The one I can easly hold and balance in my hand. That have most important buttons in easy to access places. Semi-pro camera cost around 20K PLN ($5292). This is a huge price. So what I did?

I bought a semi-pro Sony VX2100 video camera for 1500 PLN ($397). In the time that camera was the best semi-pro camera around I has 15 years old. It cost much more than 20K back then. It was a dream to have one. Now 15 years later I have it.

And it's better than I could emagine. I am blown away of the image quality, camera build, super ergonomy in usage. And evrything works so smoothly. Even auto-focus is faster than legendary Canon 5DmkII in still mode. And at top of that all the battery holds for 850 minutes of work. 14 hours of operation. This is insane in todays world standards.

The only downside it have: SD resolution. Do not think as SD quality. No. It's super, almost film like footage but rendered on 560i frame. It sounds like very little. But in reality the most important part is always the content. And adding to it superb colors and low-light capabilities I get very nice image of it. Then I blow it up to 720p and it looks as the movie on DVD. Do you remember those? The same hype as today 4K. But we all watch those videos online (more compression) and on small screens. Smartphones and small portable laptops. In eader way SD quality is still enough.

So what about this super sharp 4K? I will test that in another 10 years. When I can get Sony semi-pro camera just taking some money from monthly paycheck. Because more than megapixels I love just making that damn videos! To master the skill 10 years will be not enough. So why bother about pixels and just concentrate on good lighting and composition.

And the conclusion is that in todays world nobody will quesion my camera choice. Evryone just thinks it's a hipster thing and they even like the "SD quality". It's a win-win situation.

Tags: notes

Front-Trends 2017 Or How I will-change

May 28, 2017 — Krzysztof Jankowski

Front-Trends is in my opinion one of the best conferences for web developers in Poland. It has it's ups and downs but overall quality is always high.

Front-Trends

This year there it was less awesome than year ago but still I learn something, get inspired and spend a nice four days in Warsaw.

Venue

Venue

Meh. In 2016 it was epic place, this time it was just a big hangar. No TV outside to watch talks. Only few sunbeds to sit. And garden umbrellas that were closed most of the time. Another thing I missed from last year was lack of comfortable sits in the main room. Sad but true.

Just look at the picture below.

Venue

Food && Drinks

As always delicious and vegan friendly. At last this doesn't change.

Talks

Venue Venue

Enough of the hate. It's time for commenting on the main and most important thing - talks. Overall professional and at high level. I selected most interesting ones so you can watch them when they become available on the web sometime in the future.

Highlights

Venue

  • The Power of CSS - Lot of code examples and an important tip to use 'will-change' property.
  • Field-tested interfaces For the Next Billion - most people on the web have low spec android with little to no internet access (and electricity)
  • Alternative Reality DevTools - grate ideas for the future of browsers developer tools
  • Rendering Performance Inside Out - a lot of valuable knowledge about rendering and detailed information how 'will-change' works
  • Easy and Affordable User-Testing - a few interesting tips for easy testing apps with real users
  • Changing the Layout Game - a lot of code examples and CSS hacks!

Besides some awesome talks there was one particular thing that I recognize - a lot of (front-end) girls. It's known that IT conferences are mostly a guy things. But this year there was a huge diversity. I thing at last one third was women. This is a big step up. We can be proud of it.

Missing Parts

Venue

Each year there is some kind of micro-controllers talk(s). This time it was named IoT to be more trendy. They're not front-end related but gives a nice and light pause between more hardcore talks. Each time I listening to any kind of IoT lecture and hope for some security advices. It was sad that we all know that this is a problem but to this day I did not hear of any resolution for this. What was hilarious is that someone hijack internet enabled drone live on stage. And try to fly it away. Security. Yeah.

Venue

Another thing that I missed was lack of highly technical talks and code examples. Year ago there was even live coding. This time it was more talk and confusing charts. Some times it was so low tech that we feel offended. In a room full of professional developers we saw tutorial how to make a web page as icon on your smartphone or how to use RGB values to change colors of a pixel. In 2017.

Fun Parts

Right at the beginning at the registration booth I was asked if I'm the guy with the 'big, strange laptop?' :) So yes, I become recognized by my DELL Rugged Extreme computer that I use to make photos at conferences.

As usualy the Code Wise provides beer. This time they made custom bottles! How cool is that?

Venue

Summary

Venue

It wasn't perfect but overall I spend a nice three days in Warsaw. I learn something new witch is the main purpose of the conference. I meet lot of people from last year. I eat good food. I certainly come back next year.

Tags: events, javascript

(What I Love in) Pico-8 Fantasy Console

January 31, 2017 — Krzysztof Jankowski

Pico-8 Fantasy Console

Introduction

Pico-8 is a new player in the game engines war. But instead of fighting for better graphics than UE4 or for having more plugins than Unity it's just a simple, cute and nostalgic game creation environment.

Its simplicity and integrated tools are the most distinctive strengths. This will not be the full review nor tutorial. I'll just highlight the best parts of it after some time of use.

Restrictions

Happy Little Island

Pico-8 have strict restrictions like 8x8 sprites, 32KB cartridge size for code, gfx, sfx and maps. Only one, 128x128 screen resolution and simplified LUA code base. But thanks to this it's super easy to make game and final binary will run on almost any computer including Raspberry Pi Zero!

The code reminds me of BASIC from 8bit computers. And brings memories from my childhood when I did my first programming on 486 PC. Looking at today's trends people like this approach.

Complete Toolkit

Pico-8 is a complete package: code editor (and compiler), pixel art editor, map editor, sampler and music composer. All of this for only $15. Yes, it's not free. But good things costs. And considering that you will be able to create a full game using one application it's a small price. I don't know of any other game engine that have that ability.

True Pixel Art Heaven

Pixel Editor

Graphics in Pico-8 are inspired by 8-bit era (hence the name). Screen size is always 128x128 and sprites are based on 8x8 grid. Also there are only 16 colors to choose from.

For me this is a perfect setup as I always use 16 or 32 palette for my art. I normally make sprites 16x16 (or more) but I did a lot of art in 8x8 in the past. And restricting size and palette is good for practicing. It force you to re-think and come up with all the tricks to make the sprite recognizable while good looking.

In daily developing I'm using Aseprite as my go to graphics editor. Pico-8 have own, build-in editor. I's not that powerful but still much better than most of the competition. It's simple but have all the tools needed for pixel art.

Good Manual and BASIC Like Language

Code

One of the fundamental things about game engines are manual. Without it it's unnecessary harder to develop. I'm looking at you - Godot Engine. But on the other hand when manual is too big and too complicated it scares junior developers.

Pico-8 manual thanks to it's simple language is short and straightforward. Covers all functions and engine capabilities. It's a very good base at learning new language.

Language itself is highly BASIC inspired but uses LUA simplified syntax. It's changed mostly to fit small screen estate of the (built-in) editor. Also it have all the functions to do graphics and music things. Putting a pixel or a sprite ona screen is as easy and pleasing as in BASIC.

Why I love BASIC languages? Because right after I open the environment I can write few lines of code and have something on the screen. Doing this, drawing pixel art sprites, on modern engines is harder than it should and requires lot of configuring. It's not just "put a sprite on x and y. I need to import sprite (from external editor), make some node with sprite object, configure it to show me that file. Then configure engine to have proper resolution and not blurring the sprites. And all this uses so much processing power as under the hood there's still sophisticated engine. For 8-bit kind of games it's over-engineering. That's why Pico-8 wins in this scenario. It looses badly if you want to make anything 3D or vector. But that's why we have special tools for special needs.

Pico-8 is perfect for simple, pixel art games (and programs). Also small games are easier to do and maintain. And finish ;)

Exporting and Sharing

Exporting finished game and sharing the process of it's creation from the Pico-8 is a dream. It has everything I ever wanted to have in a game engine.

gif

I can make screenshots in on simple click. I can make game cover in another. But that's nothing special. But then it goes to 11. I can make GIFs very simple. This one feature is so useful and unseen in any other engine. Normally making GIFs from game is unnecessary complicated process involving few applications and few rendering times. In Pico-8 I just set a starting mark and then end it with a hotkey. After that immediately I have a pixel perfect GIF to share. Brilliantly simple and useful. Why no other tool have that? It's one of those little details that makes big differences.

Another cool thing is extremely simple exporting to JavaScript/web. One command and I have two files ready to be pushed to the server. And from my testing it works on every OS, browser and device I tested. I know it's only a 32KB simple programs but still - export to HTML5 works as a charm and that's a good thing. I know engines that still have trouble with this (Godot) or requires a stupid plugin (Unity).

Happy Little Island v0.8

And the last but most awesome thing is exporting the cartridge (Pico-8 game) as a PNG file! Yes. The files are so small that they can be embedded into the PNG file itself. So the file is a .png that opens as a image of a cover with description. But when opened in Pico-8 they works as a proper cartridge - runs an embedded game (The image above this paragraph is an actual cartridge you can run). It's so brilliantly cool :)

As a bonus, the Pico-8 cartridges (.p8 not .png) are git friendly. Basically any text editor friendly. They are just a plain text divided by the code, graphics, map and music. Once again simple and easy to maintain.

Publishing

The Pico-8 have build in game browser - just like App Store in iOS devices. Anyone can publish and all those games are open-source. So anyone can look at the code, learn from it and modify for fun and experiment. This feature is always advertising as a key thing.

For me it's just a nice thing to have as I don't use it often. But that doesn't mean it's not needed. Anyone less skilled will appreciate it. And whatever people will use it or not it teaches developers that open-source is a good and needed thing.

Raspberry Pi Zero Console

Pi Zero

Last thing I want to mention is that Pico-8 runs on Raspberry Pi. Also the Pi Zero. And community made a special distribution (super small) that change the Pi to the little console. It boots directly to the Pico-8 (in a few seconds!) and supports Xbox controllers out of the box.

Full setup contains Pi Zero + XBox retriever and whole thing connected to the monitor. And that's it. Power up and I have a Pico-8 console ready to play. I will provide this on each trade shows we (P1X Team) show up from now on. And we usually do 2-3 in a year. The closest one will be in April (Pyrkon).

I just mention this because it's impossible to do this kind of (cheap) console for Godot, Unity or Unreal Engine. Another small win for Pico-8.

Sound

sound

This fantasy console have a fully featured sequencer and synthesizer for chip tunes. But I'm not a musician and can't compare nor review it properly. I can make sample sound effects for my games and that's great. In the past I use mostly xsfr and this is kind of similar. And once again - it's build in so no external tools are needed.

Conclusion

It seems like the Pico-8 is the best game engine out there. No it's not. But it's one of the most solid ones. And for 8bit games with pixel art graphics (and chip tune sound) it's the one that will just work.

I just love to make some small experiments/prototypes in Pico-8 in the free time. It's so simple and just works as intended.

I can easily share GIFs to the awesome twitter community. When I finish my first completed game I will publish it to the Pico-8 console itself so any one can play. I already test this feature for the Work In Progress category and it was easy and fast.

Graphics restrictions pushes my pixel art skill to the limit and beyond. I learn a lot trying to fit my vision in those few pixels and code limitations.

For anyone that wants to make first steps in game development or veterans that want something small and simple to play in the evenings I highly recommend Pico-8.

Tags: pixel-art, pico-8, game-development, raspberry-pi