Pwning Enlightenment

Not sure what I'm going to do yet, but I'm sure as hell using those delicious Python bindings for the EFL libraries for whatever that comes up :D

Awards

Give this entry an award

Diary Entries

EFL (aka Exponential Frustration Levels)

So, I've finally got some time to experiment with the Enlightenment Foundation Libraries (EFL). And I have to say... the almost complete lack of any little documentation out there makes it hard to get started, only not that much.

Regarding the state of the existing documentation, most of it is outdated, but so far the concepts seems to apply still, so it's not as bad as it could be. Still, is quite some annoyance.

Thus, the only options left were looking through the really few actual examples (the Python-EFL bindings comes with a few examples, which were quite helpful), and reading both the bindings and the C source code.

Today I've played around a bit with the Ecore and Evas libraries, which are the "lower" level stuff. Ecore provides system interfacing, including mainloops, timers and such. And Evas is the stateful canvas.

Both are actually pretty simple to grasp, for abstracting quite a lot of things away, once you get around the problem of the lack of human-readable documentation. I specially liked the Evas way of doing things, not having to worry about rendering pipelines and optimizations, redrawing, and all those things really makes all the code a lot simpler, concise and sweet :3

Anyways, here's a simple pong game I've put together using the Python bindings for EFL. It's still a bit rough on the edges (and the collision handling is really awful), but should show a bit of how things work in the library. It's also somewhat well commented — for the parts regarding the libraries, at least.

https://github.com/killdream/pong

2 comments

Starting out!

So, `Nine Times' it is.

I was quite surprised Sausage King scored so high. It was the only theme I had no idea whatsoever of what to do, that wouldn't look downright obvious or silly. But oh, well.

My idea for the game is a Lego-like logic puzzle, where you must arrange different blocks to get through each level.

Each level is a 3d matrix in a 2d plane, with obstacles and a start/goal mark. The objective of the game is to transport your little character from the start mark to the goal mark. For such, you can combine Lego-like blocks in different ways to make weird kind of vehicles.

Blocks may be placed anywhere adjacent the character, or below the character itself, which basically gives you a Noughts and Crosses board. The way you win in Tic-Tac-Toe is also the way blocks are combined.

A block may be a Sensor, which measures an arbitrary condition of the nearest wall block, like distance, heat, energy. A Function, which takes the value of this sensor and maps it to another value. Or an Action, which takes the value of the row/diagonal/column and do something with it, like moving around, pushing blocks, etc.

Oh, well, that's basically what I have for now. I still need to figure out quite some stuff.

Now, to figure out how to fix this silly hg-git problem which is getting on my way. Seems like merging two different repositories by using `hg pull -f x && hg merge -rotherheadtip' is not a good idea when you're using hg-git...

Add a comment