Skip to main content


Showing posts from 2016

Saying goodbye to 2016 from the clouds

Or almost. Yesterday I had the possibility to fly a paraglide, thanks to an experienced pilot of our local club. We wanted to repeat today, but I have some unavoidable compromisses (not that I fear to repeat the flight).
My english is rather limited to describe the experience. I will just repeat what a canadian pilot that lives here told me before taking off: You like flying, so you probably have dreamed of flying or floating in the air. This is the same. Quite accurate. Excepting for the shakes when wind blows.
During 30-40  minutes we floated over the mountains, sharing a not so little piecde of sky with three other pilots: the canadian and two germans, who, I have to say, had incredible sails, even with winglets and airbags.
Regrettably, I lost all the pictures and videos last night, when I was trying to copy them to PC. An unfortunate Shift+Del in the wrong place. But I will fly again soon.
It was a pleasant event in a year that haven't been good for me.
This is my last post …

Fixing my 3rd person camera

Yesterday I forced myself to forget about the stress and work a bit in fixing the third person camera system. I wanted to migrate the code to something controller independent, a single code that handles keyboard or controller. I succesfully implemented a basic prototype, but not having a controller to try it, I had to use  my joystick again.

The results prove that I am in the right path, but no more than that. A joystick can not emulate a controller, or at least, that's what I think (at least, I am sure that the analogic stick can't be emulated). My experience with controllers is limited to less than an hour of use in my whole life, and was long time ago since last time I played with one. Can't remember if the cross button is analogic or 4 separate buttons (I guess it depends on the model), how they are reported, and many other issues. And buying one is out of the question, at least for a few months.

Also, the new system introduces new factors, for example: what to do whe…

Knowledge can be everywhere

When I started the project I didn't expect to learn much from it. It s a simple 2D game, after all. But I was wrong. Seems that The Labyrinth of Knowledge will not only teach the players, but also the developer.

A couple of weeks ago I had to rewrite the character movement system, when I finally found how to properly implement a virtual joystick. At the same time, I use the experience to fix the keyboard based input system and now it is multidevice. I tested it with my old joystick, as I don't have access to any other controller. It works! Of course, a joystick can't properly emulate a controller, but at least, I could test the movement.

Also, I had to implement a chase algorithm for the Ignorance minions: the ghosts! I'm still polishing it, but works pretty much like the one in the original game. Unity has no path finding in 2D, A* is a bit complicated to implement and I wanted something basic.

So far, the demo is almost complete, but a few graphics are still blockin…

Today is The Bad Luck Day

It is official. Today is the The Bad Luck Day. Started the morning with a trip to the airport, which is no less than an adventure in a city with very few public transportation, specially for places out of the urban perimeter. Useless effort, my friend wasn't allowed to leave the plane, even when it was scheduled to wait 2 hours in the airport. Shit happens.
Then got more bad news. I was awaiting for a publisher proposal to publish in USA, which now seems to be vaporware. I contacted another publisher, in Spain, and they kindly accepted to review my books. Now Im in the same place, waiting for an answer.
Then I got even more bad news: seems that I have been visiting a couple of  web sites considered as forbidden. Using a VPN to access sites blocked to Cuba (because you can use it to hide where are you going) and reading alternative news are not allowed in my office. This could represent a severe punishment, like loosing my job, or maybe nothing.
Im wondering if, to complete the da…

We have not enough RPGs

I want to play an RPG. The problem is that there are not many choices. I want something like The Witcher, Dragon Age, or Mass Effect (the first one, before they reduced RPG elements to bare minimum). Lately, large studios are avoiding the genre, and we are forced to rely on indies to get titles that really go back to the roots.
The old school RPG is a risk for the big companies, too much work, for a not big enough market. They insist on saturating the market with disposable FPS, and they think that implementing silly features like fights in zero gravity or more Quick Time Events they are being innovative. It is time to face the truth: an FPS is just about following a linear story and shooting at everything, no matter how much you try to disguise it.
We only have a couple of studios who dare to face the challenge: Bioware and CD Projekt RED, and their titles are like Halley comet: one each 75 years. Please don't mention Bethesda, with Fallout 4 they proved that they are taking a …

Support Saviour, the first cuban indie game

Saviour, our first indie game, has started its crowdfunding campaign on Indiegogo. Official site haven't been updated, so I didn't knew about it.
They have reached $6861 and the goal is $10,000, so, I guess they will succeed. Anyway, if you can, support them! They are facing hughe challenges, as game development is still a sort of mine field in Cuba.

Nulla dies sine linea

My friend Victor Hugo (who is a writer, but not the old french writer), brought to my attention this phrase during the interview I made him. Attributed to Pliny the Elder, it means "no day without a line", and it is now my slogan.

As I have mentioned before, creating a discipline is essential to become a writer. It can be a mere 300 words, a couple of lines, or simply fixing something.  Doesn't matters the amount, whatever you do brings you closer to your final goal.

If you find yourself some day without ideas, perhaps you should try planning ahead the structure of your novel. And of course, taking 2-3 days for resting and letting your ideas to settle  is not totally forbidden.

New anthology (and Im included!)

Orbita Juracán, an anthology of cuban science fiction writers is available on Amazon, and Im happy to say that Im among the authors included. The book features a dream team of writers, from great clasics like Daina Chaviano, Yoss and Bruno Enríquez, to more recent and young authors (Im recent, but not young).
In case you can read spanish, I strongly advice you get this book. Haven't got my copy yet, but Im sure that the selected stories are of exceptional quality.

Off for a while

Due to hurricane, I will be awat for a ocuple of dyas. Lets see how much of my old house survives, although forecast models set the probability cone mostly over Guantanamo province.

Anyway, hurricanes can change direction at any time depending on athmospheric conditions. We won't know for sure until tomorrow afternoon.

Scalzi, on long books

John Scalzi (author of some great science fiction books, and Hugo winner) has an interesting article about long books and productivity, that I strongly recommend. Pay attention to the comparison in the end, between Scalzi and Moore, and between Scalzi and Martin, in terms of word count.

I use to write a few hundred words daily (almost every day, really), reaching 1000 some days. So far, my books range between 45 thousand and 62 thousand words, enough to be considered novels, but too much for most literary competitions, which set the limits around 40k words or 120 pages. I tend to go straight to the action and avoid excessive introspection or ramblings, which usually are up to a 40% of long books text. My friend Yoss says I have a good synthesis capability.

To write 100.000 words, a small percent of Jerusalem, and much more than my current average, supposing I had the plot to justify that, I would have to work for about seven months. Which, I think, is not that bad, considering that u…

Savior featured on major news site

Savior, the first cuban indie game, got featured in an article published in one of the major official news site, There are no precedents, as far as I remember, because games without any educative components are a sort of taboo for the official media, except for highlighting how bad are they for children.

Even when the cuban public can't contribute to the upcoming crowdfunding  campaign, this opens the possibility of more indie projects getting big exposure to the public. The authors agree that cuban players will probably get a pirated copy, and they are totally ok with that.

The crowdfunding campaing, on IndieGoGo, will start in October, so, stay tuned, because I will let you know.

Slow month

September has proven to be an improductive month. Game project is going slow, and the current novel is not going as fast as in August. I still keep my discipline, so I produce three times what I did before, but compared to July-August, I'm under my goal.

Coming back to office and an unexpected visitor have introduced some little disruptions in my routine. But eventually I will get used to it and recover. Also, Im trying to get into Android development. Yes, with Java. another language to learn, but this time I hope I can get some benefit from it.

I hate the first stages when learning a new technology. I feel like dumb, and everything is hard to underestand. Specially, when the schedule is tight, and many things are against me.

Specially, Android requires lot of stuff that are unreachable from Cuba. Even when Google guys have been visiting the country, and they even sponsored a DOTA tournament in Havana, getting the Android SDK is almost impossible. Contradictory. Eventually, I wi…

Back from holidays

After some (maybe too many, and still counting) depressing days, Im back to work. By work I mean the office I hate so much.

As I said, lot of depressing days, but I managed to finish the fourth book in record time. I have been hitting the wall with all I have, which in this case is only my head. There are four, maybe five years ahead before the readers in my country can enjoy (or suffer) it and I can get paid, so, I have decided to seriously search for some foreign agent.

Programming have been relegated a bit, because things are getting complicated. But there are advances too.

More problems with unity 5.4

Ok, maybe I rushed a bit to consider that Unity 5.4 was error free. Monodevelop  keeps the same code autocompletion problem: this time it works for my project classes, but it doesn't for Unity API.

So, guess what, I have almost zero desire to program. Instead, I have spent some time working on the game plot and quests. Not the same, but anyway, it is something.

Vacations==more work

Last week we had carnivals, with three free days! And next week I have to take my vacations, as I work under school calendar. No work until september. Which means, more work at home! And long boring periods too, because during summer my room is too hot to be there. But at least I will have a couple of hours in the early morning, and the nights.

Last week I finished the novel (a few holes are left), and decided to spend some time again with the project. It is hard to go back to programming, specially when Monodevelop has a lot of annoying bugs in my PC, related to autocompletion and indenting. I hope they are fixed for 5.4. Anyway, I managed to fix some little details and also wrote a few more lines in the plot, which is asking for a big replanning and refactoring.

As usual, lack of proper planning is the source of problems. I had a good idea for the plot and a good starting location, but I had not connected the story with the actual location. Now I have an initial scene without quest…

Fourth novel almost finished

I have been following my own advices and I'm glad to say that the fourth novel is reaching the final stage. I'm surprised! Of course, finishing is not the end, after that comes a log process of review and polish. As usual, I have fell short of the initial estimate of page count. Very short. This will require some work to introduce more action in the plot, without affecting the rhythm of the story.

Also, I have started to work on detailing the game story a bit more. Got some little help from a friend on this, but after some quick review I noticed that we really don't have an story, just a few random events. No open world, no plot twists, no substance. So, I have to go back to step one: proper planning. It is a big world, so, it will be a large work.

Also I have  to program sometimes, which means I'm doing three tasks at same time (I'm better than iOS!). Again, I'm surprised of how well Im handling this. The trick consists in prioritizing tasks according to insp…

Why do I think that Fallout 4 sucks

Fallout 4 is the source of hot flamewars in NMA forums, usually between old guys who played original titles, like me, and some new generation players. If you want to see people really angry, go there and post saying that Fallout 4 is the best game ever, and that 1 and 2 are boring turn based games.

Let's face it: Fallout 4 is not a good Fallout game. Its oversimplification of the RPG system totally destroyed any relation of the title with previous games; it is just something different! The story is not that good and Radiant AI system sucks very bad. It is not even a  good RPG or game at all, ranking as a mediocre one from every point of view. At least, of my view.

Fallout 3 was a bit dull and far from being the most brilliant game in the saga, like a mentally retarded younger brother,  but still was a good RPG. New Vegas, despite having to work on top of the foundations set by Fallout 3, was an excellent RPG and a good Fallout.

I like Bethesda games like Oblivion and Skyrim. But …

Linux Mint 18

Just a few days after release, I downloaded and installed Linux Mint 18 Sarah. Im usually not eager to try distros as soon as they are released, but it has been a long wait. Since 17, there have been some minor releases (17.1, 17.2) and I wanted to see some real change.

But specially, I wanted to see what side did they take on the Wayland vs Mir issue. My question about that on the forums some years ago didn't received an answer, it was too early. But Sarah demanded a decision.

And the answer has been to offer both. So, probably you will be able to use Mir and follow a more Ubuntu line setup, or follow the rest of the community and use Wayland. In this case, Im not in a hurry to test Wayland, not yet. At least, not until Cinnamon and all the desktop is 100% ready for the new graphic server.

I have to say that Im pleased with the change. One of my biggest complaints was the Windows network browsing, in Mint 17 it was slow and most of the time it freezed Nemo, the file explorer. So…

Combat system prototype

I have been spending much more time in writing than programming lately, trying to break my own personal record (in the previous two months I reached 10 pages), but in the few minutes I dedicated to the project, I managed to achieve some results. The combat system prototype is almost ready for testing.

I decided to change from my first approach, based on auto-attack target, to a more active one: now the player must click to issue an attack or ability instead of being a passive watcher, with some interventions to queue abilities. Of course, this could be subject to changes after the first test phase.

Why can't I go faster? The combat system is also revealing limitations in the item and abilities systems, Im stepping in uncharted territory here, implementing stuff without a previous base. There are not many detailed tutorials around describing how to do this.

And the good news: soon the official 3d art will start coming! I hope I can show some screenshot.

Wanna be a writer?

Here are a couple of free advices for you: get discipline and motivation.

I have been working lately to finish my fourth novel before the end of the year, and polishing the last details in the third before august. Without taking too much time from programming. Obviously, I haven't had too much success on the later. But at least, I have confirmed something: discipline is crucial, and also is motivation and some previous planning.

Before starting the fourth novel book, I tried to put together some basic structure, a few lines describing what happens. In the end, it proved to be insufficient, but also the correct way to avoid getting stucked too often. It didnt avoided long periods of not writing at all, but the solution for this was to find the right motivator.

In my case, I try to channel all daily experiences good or bad, to my "fuel tank". Specially the bad ones, and I have a large supply of those lately. So, I have been able to keep working daily, duplicating my produ…

At last, we have a cinematic editor in Unity3D!

Probably the best feature in the upcoming Unity3d 5.4 is the new cinematic edition tool. Don't know if there is something else, do you? Honestly, I don't care.

Even when Unity's  largest user base are indie developers, a few people are using it for more complex titles. And, indie or not, I think that a cinematic tool that can be useful at any moment.

Not sure how will I get it (official site is unreachable from my country) when it is released, but definitely, I will.

E3 is boring

Maybe it is because I started following E3 conferences recently: since last year, but I have the impression that this year is boring. The conferences revisit the same games presented in 2015, and even games already launched, just to talk about minimal content releases.

So far I have seen EA Play, a totally insipid presentation with gameplay videos composed of a frantic succession of planes, to make us think that Titanfall 2 multi player is fun, or show really very little gameplay of Battlefield 1. Bethesda E3 conference was not impressive neither, and Ubisoft was saved perhaps by South Park: The fractured but whole. They even needed a lot of people to jump to scenery to tell us how fun is Watch Dogs 2.

The only thing that changes from one year to another are the indie games under the umbrella of large studios and maybe a new title, the other 80% is a little variation of the previous E3. And that 20% not always make worth the time spent watching an hour of boring presentation.

I still…

More bugs fixed

No additional work lately, but I have kept working to fix old bugs. Yesterday, after a couple of DOTA matches (against bots, of course), I took a look at The Key of the World again. I had been struggling to solve an annoying and really old problem: the character animation was not triggered when it started to walk. What I couldn't achieve between 8:00 PM and 10:00 PM, I managed to solve it in 5 minutes at 12:00 PM. Obviously, bug solving rituals must be performed at that specific time. I should have used some black candles and human skulls too.

My mistake was that  the method I used to detect if the NavigationMesh agent reached the destination coordinates was incorrect. There is no function in the class to do this, so you have to calculate it manually using Vector3.Distance(). The changes are already in the repo.

Not dead

I havent been updating this blog lately, in part because lack of news, and also because, after all, there are just a couple of faithful readers.

I had to stop working on the game demo to focus on finishing the third novel. Actually, I have worked very little on it, and much more in the fourth book. The final pages are always a problem for me, and I don't mean literally the final pages, but a missing part here and there (the end is already written). Anyway, progress is progress, even in the wrong book.

This weekend I went back to coding and solved a bug that was annoying me in the inventory drag and drop. It was a login mistake I made, using GetComponentInChildren() instead of properly looking for the child gameobject and setting the image there. So, the image was not assigned correctly and I got a white square when tried to drag it.

Also, I spent some time trying to figure out how to implement a node editor, like Mecanim, it will be useful for dialog editing. The docs about this…

More retro gaming

This time with Deathtrack, a racing game. In Deathtrack you drive an armed car through some circuits, trying to beat your opponents (who are also armed).

I was a real expert on this game, capable of winning with any car (there were 3 available) without upgrading anything, except for the engine, maybe. Yet, seems that age hinders my gaming abilities and now it is really hard for me to complete the track among the 2-3 first places.

Please share, and like! And perhaps there will be another retro video in a couple of weeks.

Retro gaming!

Here you can see some gameplay footage of a really old game, made in Cuba. It ran on 8080 PCs with MS-DOS, and here Im using Dosbox to play it under Windows or Linux.

Labyrinth of Knowledge was very addictive, and Im working to implement a remake using Unity3d, with mobile devices as main target. Regrettably, the project should have been ready for january, but was delayed, so I cant have any release date, or even screenshots.

Progress report

The problem of advancing in a project is that things start to get more complex. I have implemented a few features I wanted, and currently Im going slower than before. The taks in this stage are few:  changing from one scene to another, dialog system and item system.

The second is specially complex. Dialog system is not difficult (when you have spent several years researching and implementing all the possible ideas), yet, the problem lies in how to provide a tool that eases the work of creating and modifying a conversation. A dialog is a big tree, with branches that share leaves, and both of them being subject to constraints like player attibutes, items or quests status. It requires some equally complex tool to manage such amount of information without loosing your mind, or with a minimum reliability.

Regrettably, there is not a free solution for this. The best seems to be Dialog System, which costs $65, and I havent bee able to try it because the donwloaded package is corrupted or it…

How to develop cooperatively... in a single pc

It is time to seriously think about bringing more people to the project. The big problem is that none of those potential candidates (not many, really) have internet access. How do you set up a working environment when all your team is disconnected, and will be for the next 2-3 years?

I have been thinking about that since a month ago. Using the same PC by turns is annoying, but could be a Plan B. Preferably, a Plan Z. Putting several PCs in a single room is impossible: that would require renting a place (it is a zero budget project, remember), and setting  work hours, like an office. I think that creation shouldnt be restricted to specific hours, and videogame development is mostly about creation.

The best solution seems to be to set up a git repository in one PC, and let the developers bring their work in flash drives. I have been doing it for some time, working at home and then pushing the changes to github from here. But that doesnt works when part of your team lives more than 50 …

Unigine 2.0 scores one

Like 7-8 years ago no commercial engine supported Linux. Every game developer knew that Linux users were a few, and they only played free games. I was working with Ogre3d then, and suddenly, Phoronix came up with this fancy new engine that supported Linux natively, Unigine. Impossible not to fall in love with it.

But soon I realized that Unigine was a sort of platonic love. The developers refused to provide the engine for evaluation, unless you were an established studio (which probably, didnt need to try another engine). Very few people knew how to properly use it, as I discovered later, when hired for a project. The documentation was scarce, and you had to figure out how the things worked by looking at the provided samples.

Since then, most of AAA engines became free to use and implemented Linux support, leading to even more videotutorials and such. Unigine, still closed, still very expensive, has been relegated to some post, once in a year. Like today, when I read in Phoronix that…

Combat system, almost there

Started some basic combat system today, although the foundations were actuallyimplemented yesterday night. Now the player can fight with any NPC, until one of them falls dead. The required item/skill subsystem still isnt in place, mostly delayed by my research about the opetimal solution to store the item definitions.

In my previous project, I used an XML file describing the item attributes, not only the RPG related (damage, etc), but also the visual ones, like where does it gets attached. It also had a property system to let objects have complex features, like providing a bonus to stats or skills, inflict/reduce different types of damage, etc. The drawback is that manually editing the XML is tedious and error prone. For this prototype I decided to try something else, like ScriptableObjects. But seems that ScriptableObject is too limited, because it would require a hughe class describing every possible item attribute for all item types. Also, for nested lists I think I will have to i…

Weekend progress

I had to make a short stop during weekend, because a light migraine that started annoying me on friday. I took that as a warning that I should do something else, and I decided to play a bit Age of Decadence, which, by the way, is not a fantasy game, but a Sci-fi one, cleverly masked. The post-apocalyptic world of AoD is the result of some old war that sent humanity to early medieval ages, although some old technology appears sometimes.
Its a a ruthless game, with an incredibly high difficult level, not fun if you want to fight. In AoD, 1vs1 and 1vs2 fights are hard, 1vs3 is plain suicide. You wont be able to complete many quests, simply because you dont have the required skills, and sometimes you will have to change loyalties in order to advance.
But, I also found some time to work on the project, and managed to implement a few changes. I had to force myself to halt development until I sit and properly design some way to store item information to avoid making the same mistakes I made…

And this is how it looks

My first project, an open source isometric (in 3D) RPG. Started about a year ago to learn Unity3d, previously made with Urho3D, with an even older attempt in Ogre3D.

The current code has an almost working inventory system, with item equip, dynamic dialogs stored in XML, limited quest support, and the isometric camera system that took me some effort to implement in my first days with Uniy3d. The bugs: deferred rendering doesnt works with ortho projection (not my fault, but Unity's), idle to walk animation transition problem, lighting problems, and the combat system doesnt works yet. Almost there: drag and drop items and actions to quick slot bar, save and load, get items from containers and some widget to check ongoing quests.

Get the code in Github and learn from it; some of the 3D assets can be downloaded from our OpenGameArt collection, and they are almost commercial quality! Im in dire need of hardware upgrades, so, any donations are welcome.

Inventory system

Im almost there! I have been working lately on inventory system, including the UI part, which required some revision of the actual foundations: the item system and how to use them. After a week of coding I figured out how to properly use UI events, with a few details to polish, but 80% is there. My advice: always use IPointerDown interface and similars. It will save you lot of time and clicks. You can even create the event trigger by code, no need to add it in editor. I used the old project to test and find design errors, to migrate the improved code to TPS prototype later.
Yes, the next project, unless the team decides to go back to isometric view, will be a third person RPG. Im working (a lot!) to polish my coding skills and have transferred part of the design and writing tasks to a friend. Which means that I will only supervise the design and write part of the whole game story.
There is a large obstacle in the road ahead: legal issues. I wont get into details here, but I can say t…

When zero budget really means zero... or less

My plans for 2016 included to get myself a new PSU (or a refurbished one) and reach the 8Gb, which seems to be the rule for game requirements lately. More RAM also helps heavy engines like Unreal, and maybe Unity3D would get some benefit from the extra memory. Then my phone broke and I had to take all the saved money, and a bit more, to get a new one. Took me a year and some good luck to save it.

Now I found that I also need an Xbox controller. I already have a joystick (was a gift, didnt paid for it), which I promissed myself that I would never sell or trade, after selling my first one in a really low price. Of course, there is no way that I can buy the controller, same as there is no way I can have the PSU and RAM I need. At least, not until I sell my next book, probably delayed until 2018 (by the way, in case you are interested, my first novel is in Amazon, buy it and support a game developer!).

The problem with zero budget development in Cuba is that it is really zero budget. If …

Coding marathon

I have been coding for a week, like 3-4 hours every day, and also writing the game script, RPG system, and a few pages in my last novel. I have been trying code in the test project (the one I abandoned) and then doing thi things "right" in the prototype. Im pleased to say that I found how to properly implement drag and drop. The sample was there in my PC, waiting for me to look at it, and it was totally different to the approach I was taking.

I was trying to avoid using IDragHandler and the other interfaces, because I thought it was harder, yet, I was wrong. Actually, it is easier. Of course, I needed some basic code I took from the sample, but from there I have learned to implement not only drag and drop, but also mouse button events, mouse enter/exit, etc. All this while keeping control of what GameObject generated the event, via BaseEventData and derived classes.

Im working to implement drag and drop in the inventory for The Key of the World, which will take a few days, …

Working on new project

Well, sort of. I have started coding a prototype, but this time I focusing on laying some solid foundations before I got into other things like gameplay. For example, I took some time to study the correct structure of a project. Still I dont have idea about whats the optimal setup, but at least now the game instance class is a singleton. That allows to test each scene independently; in the previous project I had to start from the main menu to have access to all features. Using this singleton I always have at least some basic systems working.

The second feature I started to develop from the beginning is the save/load system. Not very advanced, but I havent worked too much on this besides some limited position/rotation serialization. But the idea is that it evolves together with the project progression. I have been looking for directions to achieve optimal save and load speed/size, yet that info seems to be scarce.

And third, but quite important: internationalization! For a reason I won…

The weapons of the future are not so... futuristic

Even when I have the freedom to decide what kind of weapons are we going to have in the future described in the story of our next game, I wanted to make a little research. After all, 40 years are not so many years, yet they are enough to ensure that technology will change, I thought. In a world were nanotechnology and graphene will rule, military tech has to be different.
Well, seems that our future military tech is not going to be so future. Maybe it is classified information, but seems that besides using polymers for cases, we wont be seeing many changes in the next decades.
Ammo technology havent been changing a lot lately. Even next gen stuff like flechettes and caseless ammunition is not so next gen, and has been extensively tested and its weaknesses proven, and discarded. Thats the reason why they are not ben used on the battlefield. The real next step: energy beam weapons, are still far from our reach. To achieve lethal results, the laser must focus the target for a long time,…


Yesterday one of the informative TV programs we have was dedicated to Internet development in Cuba, with a second part scheduled for next thursday. As I expected, it was mostly grease.

According to the big boss exposing how good we go, currently there are no plans of having Internet at home. The investment required is too big. The pilot program havent even started, and it is not clear when it will, because part of equipment havent been bought yet. I had to attend the newest team members, so I couldnt call or even watch the complete program, regrettably.

The Google offers for help building the infraestructure have been declined, or ignored. Besides, a few articles have appeared trying to justify why it is not wise to accept such offers, based on technological sovereignty issues (yes, because chinese are our dear brothers and letting Huawei to sell us all of our infrastructure doesnt compromises technological sovereignty), technology transfer and interoperability.

But, we will have mor…

The Key of the World officially closed

Surely nobody will care about this, but I have decided to quit developing my open source isometric RPG. The commonucations with my main artist have became awfully difficult lately, I havent received the models I asked like 6 months ago, and community interest==null. you can get the current code from Github repo, and some of the art from OpenGameArt. I will keep adding code to test features, and will upload more models when I have time, but I wont be actively working to achieve a release or add more content.
As usual, lack of time is the cause. I have as many financial troubles as any regular guy, I need a new phone, some PC parts and fix my roof. So, I have to focus on projects that can produce a real profit, like my novels. The Key of the World collected $0 donations, so I guess it wont help me to solve my problems.
Im sorry, but some times the Real Life comes to bite your ass and drag you back to reality.

The secret lies in the layout groups

I have been working lately to solve my chronic ineptitude with  Unity3d GUI. One of the pending issues was to deal with complex widgets, where all elements overlaped each other when the resolution changes. I had a hunch that perhaps layout groups were the solution for this, so I decided to spend some time doing tests, as I could not find a decent tutorial (which later, I did, in Youtube).

And indeed, I solved most of my problems with the layouts. They help to keep the widget children organized, deals with resizing, etc. I managed to fix the inventory window in my RPG project and now it is almost finished. The only left issue is to implement scrolling for the item list.

Vulkan and open source engines

It is weird, but even when Vulkan has embraced the open source philosophy (open drivers, tools, etc), Im not seeing too much enthusiasm to adopt it in open source game engines. I have been following mostly Godot and Urho3D, yet Ogre3D and Irrlicht doesnt seems to be rushing to implement the new renderers.

It is worth to mention that Godot promissed they would delay the long needed refactoring of its 3D renderer until Vulkan release, but now they say they wont be using it, favoring GL ES 3 instead. The other engines seems to be dealing with lack of man power (Urho3D leader left the work on hands of community, as he is not working on Vulkan renderer right now) and base code designed for older APIs, specifically, DirectX 9. Lot of work is required to adapt this code base, not only for Vulkan, but for DirectX 12 too. Well, nobody said that developing a game engine was easy.

The advantages of Vulkan have been widely detailed. From engine point of view, it would centralize all renderers in…

And the Most Popular award goes to...

Was checking the blog stats during my long lunch break, and something caught my eye: the most visited post is the isometric camera tutorial. Probably one of my best achievements with Unity3D, I think that I even have visits coming from Unity3D forums. Cant tell it for sure because Unity3d site is unreachable lately.

Took me sometime to put together that code, because I was just starting, but mostly due to a logic error. And, I have been thinking to refactory the system, this time with a freely movable camera, and discard orthographic projection. Orho projection is the ideal for isometric cameras, but Unity3D has some weird bug that prevents using deferred rendering in that projection mode.

Considering that my experiment with third person camera didnt produced perfect results, I have been wondering if my next official project should stick to isometric view. In our first deliberations the team agreed to use third person camera because we had excellent artists that can produce good look…

Dealing with bad internet

Lately it is getting worse to develop games in Cuba. Since a week or two, the Unity3d site doesnt load; it is not blocked, like was a couple of months ago for a few days, but simply stays there, waiting.

Today, I have tried to download LunarG Vulkan SDK, but Im getting 403 errors, and the download speed is slow. And the project Im working has one month delay, because the artist mail can handle attachments. Yes, a technology as old as mail, cant properly work.

And the hope of having a relatively decent Internet connection at home have pushed away by the government, due to economic crisis.

No Lumberyard for me

Unless you have been living under a stone during the last week or so, you probably know that Amazon released some free CryEngine derivative. Being totally broke as I am, the word free tends to attract my attention, specially if we put it together with other works like commercial quality game engine. I took no time to start downloading Lumberyard.
I have a slow connection in my office. I would rather say that I have a prehistoric connection, subject to filters, rules, vigilance, etc. Yet, I can download big things if resume is supported, and Lumberyard zip file seemed to support it.
I got my first sign of problems last friday, when suddenly, 2Gb of Lumberyard downloaded were simply discarded. Ok, thats a sensible loss, but lets start again. This morning, I discover that, instead of 5-6Gb, I have again 2Gb. When I stopped the download, I lost those too. Lumberyard zip is 10Gb. Also, when decompressed, those 10 become 40, and I currently dont have so much space available. I can mek it, …

My experience with Kindle Direct Publishing

Well, almost a month now since I published my first novel on Amazon KDP to see what happens. And the result: nothing happened, as expected. Lack of promotion, mostly.

We, readers, tend to be some sort of weird people. We want to find more books, yet we avoid the danger of unknown authors. For a reader to accept a book, it must be recommended by another reader, or by some big publisher marketing campaign. That means somebody risked his/her time before you to read the book, and considers it worth reading.

As I havent gathered a large number of readers on internet (all my good reviews come from locals), I have sold just a few copies. Definitely, Im not going to become famous this way.

So, my advice to new writers is, above all, to find a few good spots to promote your ebook. Specially, try to attract your friends (regrettably, mine bought the printed copy and cant review my ebook on Amazon). Get some cover, if it does not has an illustration, at least make it different from Amazon cover…

TPS with free look tutorial, version 2 (and bugs)

After working a bit to improve the third person camera system I mentioned a couple of days ago, I found a few problems that I could fix, and other I cant. Here is the updated code:

public class PlayerControl : MonoBehaviour {

    public GameObject pivot;
    Animator anim;
    int direction = 0;
    int FORWARD  = 1;
    int BACKWARD = 2;
    int LEFT = 3;
    int RIGHT = 4;

    // Use this for initialization
    void Start () {
        //cam = gameObject.GetComponent<Camera> ();
        //Cursor.visible = false;
        //Cursor.lockState = CursorLockMode.Locked;
        anim = gameObject.GetComponent<Animator> ();

    // Update is called once per frame
    void Update () {
        Vector3 rot;

        if (Input.GetKeyDown (KeyCode.W)) {
            direction = FORWARD;
        } else if (Input.GetKeyDown (KeyCode.S)) {
            //go back
            direction = BACKWARD;
        } else if (Input.GetKeyDown (KeyCode.A)) {
            direction = LEFT;
        } …

Third person camera with free look in Unity3D

I first experienced this camera system in Mass Effect 1. Was a bit annoying during a couple of minutes, but then I got used to it and started to like it. Was also used in The Witcher 2 and 3, and I wanted to implement it for a future RPG project we are designing. But my lack of math skills prevented me from implementing a working prototype, until a few days ago, when I figured out a way to achieve it.So, I decided to post this little TPS tutorial, in case it can help somebody.

Look at the following gameobject hierarchy:

The relevant objects are player and Pivot. The first one is the player (model, collider, etc) obviously. The second is the parent of the camera and handles its rotations, via the following script:

float rotationY = 0F;
    Camera cam;

    // Use this for initialization
    void Start () {
        cam = gameObject.GetComponentInChildren<Camera> ();

    // Update is called once per frame
    void Update () {

        if (Input.GetAxis ("Mouse X") !=…

Two earthquake swarms active near my city

Still alive! Had to leave my office yesterday very early, just to catch another earthquake at home. According to the experts, the term is earthquake swarm. the problem is that not one, but two swarms are currently active in the sea, in front of the city.

The records indicate a pattern of one catastrophic event every 80-100 years, last one was in 1932, so, the next 7-8 degrees earthquake could be close. For developed countries, 7 is barely a noticeable event, but for a city with lots of homes in poor conditions, and even new houses built without meeting any safety standars, the risk of devastation is hughe.

So far I have escaped with a few cracks in the wall and a new leak. But dont know what tomorrow will bring.

My dreamed rig

I have a little sorrow in my life: never have been able to build a PC to my entire satisfaction. Lack of budget, of course.

If I were to build my dreamed rig, how it would be? Well, probably I would choose some i5, maybe 4th or 5th generation, something with 4 cores. Nowadays 8Gb seems to be enough RAM to play any game and develop, so I would stick to that. My PSU of choice is a 620 watt Antec, or similar, had one of those that worked flawlessly. I tend to favor Asus motherboards, so, surely that would be my choice.

Not sure if I would have an SSD, but the main storage would be some 2 Tb traditional hard drive, plus some external drive. Even when I consider that optical disks are becoming irrelevant, I would include a BluRay drive, and a card reader.

Although I have been an ATI/AMD user for years, it is mostly because budget reasons. I have good experiences with Nvidia cards, so I dont discard that my  video card could be a 970. Otherwise, Fury Nano looks good. For sure, it would be…

Days of fear

After two nights of almost no sleep, things seems to be going back to normal. The city, or the whole region, actually, experienced a weird increase of seismic activity, which started last sunday at 1:27 AM. We had in a few hours a dozen of perceptible shakes, including one of 5 and 3 above 4 degrees in Richter scale. Most of the citizens had to move to parks and open areas and sleep there.

Monday wasnt different, we were awaken at 1:30 again by a shake, me and my girlfriend remained in the coach for a couple of hours, until we finally went to bed again. According to the news, more than 400 earth movements happened during sunday-monday, and the are still happening while Im writing this, but only a few are perceptible.

Definitely, I need to become rich as soon as possible, to move to Havana. No earthquakes there, and surely wont miss any more invitations to gamejams and book fairs!

Working, working...

It is surprising, but Im working a lot lately. Maybe I work much better (or faster) when Im under pressure, and have had a lot of it. I dont consider myself the target of all the problems in the universe, but the truth is that Im getting more than my fair share of needs: need shoes, need new phone, need to repair the house...

The Android game Im developing is going well, only delayed by the artist. In the last 4-5 days I have implemented most of the basic features, now I just have to work on the enemy AI, fill the questions database and design 30 different mazes, with progressive difficulty levels. We are not using procedural mazes because the idea is that you can match your skills with other players, and having each one play random mazes is not the right way to do it.

Probably, the most complex issue Im facing now is how to keep the questions the most neutral or generic possible. Does a north american knows who is Lionel Messi? Is Francis Ford Coppola a name too exotic for the avera…

Parental duties

Last saturday I took my daughter to the amusement park. Or what is left of it. Never worked 100%, not even opening day, back in the ages when I was a boy myself. But back to the topic, I had a long overdue task of taking my baby for a walk, something I avoid because the sun hurts me and the public transport is a problem in this city.

But eventually I had to.  Spending a couple of hours every saturday with her is not enough, so, to the park we went. Almost 4 hours that she split between riding the amusements without fear, or my shoulders (she doesnt walk). Very strong and independent, she wants to be left alone: "let me loose dad, Im not going to fall, Im holding here". She is too young to underestand that being a parent is mostly about fearing, and probably will only underestand when she has to care about their own children. And I cant avoid feeling scared and proud at same time.

It is something I no longer try to explain to non parents. The automatic love that starts at th…

Seems Im not going to have an Oculus

The Oculus price is far beyond expected, because they decided to optimize over cost. Even the previous price of $350 was a bit out of my reach, but now it is completely impossible. First, let me explain that I dont buy my PC parts with my symbolic salary: about $40 USD. I usually do something. Some extra job, some help from a friend, etc. This means that Im behind technology all the time, my CPU is a generation (or two, or three) old, my display is 4-5 inches less than the average, storage is always insufficient and the RAM is the barely needed.

So, my PC is far from the minimum requirements to provide a decent VR experience. And, unless some miracle happens, I wont be spending any more money to improve it this year, besides the PSU and RAM Im buying next month.

Anyway, this is not that bad. I dont like to be an early adopter, and in this specific case it is good to step aside and see what happens during this year. We have Oculus, but also HTC Vive, which means it is going to be an i…

Fallout 4 is probably the worst plot ever written by Bethesda

Ok, I have been playing Fallout 4 every day for more than a week now, until I got underrail and left it abandoned. So, I guess I have enough evidence to say that this is the worst story created by Bethesda. Fallout 3 was simple and stupid, but man...

Lets start with Minutemen. Almost in the beginning of the game, you find this people with this great idea of helping the Commonwealth. An hour later, you find out that the quests are a sort of procedurally generated, which is not bad per se. What is bad, is that the universe of possible quests is very small. So, very soon you end up saving the same settlement two of three times, from the same threats, until you decide to forget about Minutemen quests.

But hey, there is this Brotherhood guy that appears right when you are getting bored of saving villagers. I have played with the Brotherhood in every Fallout game, so I expected this time not to be different. Guess what: it was different. From the first words of Danse, I thought that this B…