Qubicle 2 Closed Beta 1

Qubicle2Beta1

As you may know, we have worked very hard on the successor of Qubicle Constructor for quite some time now. It took us so long because we have rewritten every single line of source code to  incorporate all your feedback and the experience we made with QC1 to create the best product possible. We want to thank you for your support and all the thoughts and opinions you shared with us. You made this possible!

Though there are still a lot of features missing, some of them quite obviously, we thought it’s time to finally lift the curtain and present what we have achieved so far.

In short Qubicle 2 Beta 1 includes:

  • New UI design: get quick access to your favorite actions, swatches and tools. Assign keyboard shortcuts for nearly everything.
  • New  data model: structure your models by grouping objects and building object hierarchies. Lock objects to avoid modification.
  • Improved tool handling: Use all tools in all edit modes, draw on walls, draw freehand lines, draw across multiple matrices in a single stroke.
  • New matrix editor: edit single slices directly in 3d. Use the new Auto 2d mode to work on an automatically picked 2d canvas.
  • New and improved modifiers: Align and distribute objects, use boolean operations, transform objects relative to your viewing direction, and many more

The official video

Watch the following video made by Tim Wesoly the developer of Qubicle 2 showing and explaining the new features. And please excuse his terrible German accent and the boring presentation, he’s a great developer, but entertainer, not so much.

Detailed list of new features

  • New flexible user-interface
  • Open/save all supported file formats directly without import/export
  • Easy keyboard assignment
  • Improved OS clipboard handling
  • Quick access bar
  • New object type “Compound” enabling object hierarchy
  • New modifiers including Invert, Sepia, Fill, Extend, Enlarge, Align/Distribute, Boolean operations Union, Intersection, Difference
  • Mesh export pivots
  • Improved detached handling
  • Context sensitive translation, flipping, rotating
  • Improved display option handling
  • Camera light
  • Improved tool handling including tool options, drawing on walls, freehand drawing in all edit modes, integrated slice edit mode, new auto slice mode, voxel highlighting
  • Object highlighting/manipulation
  • Object locking
  • Improved swatch map handling including ASE (Adobe Swatch Exchange) import, auto names, favorites
  • New logging system including warning/error messages

Still missing basic features

  • Save/Export
  • Render
  • Color mixer
  • Swatch map customization
  • Cursors

Still to come

  • More tools: Rectangle, Box, Sphere, Pyramid, Extrude, Plant, Paint, Ring
  • 2d and 3d brushes
  • New object type Map for very large object handling
  • First person view (map only)
  • New object type Terrain / Heightmap Layer (map only)
  • Chunk import/export (map only)
  • New voxel mode Blocks (aka poxels, aka textured voxels)
  • New voxel mode Parts
  • Minecraft .schematic import/export
  • OBJ, STL, Collada, FBX export with mesh optimization
  • More voxel importers/exporters
  • Object hierachy outliner
  • Library
  • Scripting
  • UI skinning

How to get Qubicle 2 Beta 1

The Beta 1 is closed and can only be downloaded by our customers. If you own a license of Qubicle 1 you will get a newsletter containing the link to our new update center and the instructions to download the beta.

How to report bugs

If Qubicle 2 doesn’t work like it should or maybe not at all, please don’t panic. At this point in the development process it is unfortunately far from unlikely that you can run into serious problems, maybe your graphic card is not 100% compatible or you will get some nice, probably German, exceptions. That’s ok, we will deal with it.

To report bugs please use our new help desk. It is quite self-explanatory: create a new ticket and please add a screenshot and the contents of log.txt which you can find in the folder documents/Qubicle2/Beta1.

As soon as we have collected enough data we are able to create a knowledge base to help with frequent issues.

Enjoy!

We hope you like Qubicle 2 as much as we do. It’s a giant step for us. If you like to give some feedback use the comment section below or our forum.

Sincerely,
The Minddesk Team

Modding Stonehearth: First Steps

Hey guys, happy new year!

2014 is finally there and it’s going to be an amazing year for me. So many great things will happen, like the release of Qubicle 2 and all the voxel games that are currently developed.

One of those games – and probably the most anticipated – is Stonehearth. I just downloaded the alpha that came out two days ago and was able to have a first look at it. Starting a game made with the help of my tool is just awesome, I guess I don’t need to tell you that. I can’t wait to see all the mods you gamers out there will create. Since Qubicle Constructor was used by Radiant to create all the models and Qubicle 2 Play Stonehearth will be the officially endorsed voxel editor, the first thing I did was finding out how to mod and how the game engine handles the voxel data. Naturally there’s no Wiki for modding at this early stage so here is my first contribution:

Modding Preparations

Stonehearth will be a very modder friendly game. In fact even the models and scripts provided by Radiant are mods. After installing the alpha browse to stonehearth/mods and you will find two files: “radiant.smod” and “stonehearth.smod”.

The “radiant.smod” file contains scripts that I assume are the core libraries. No need to tinker with these files – at least for now.

The more interesting file is the “stonehearth.smod”. It contains all the voxel models – and other things like ui skins etc.

Both files are renamed zip files. So in order to access the data in the file “stonehearth.smod” simply rename it to .zip and extract it:

  1. Browse to stonehearth/mods
  2. Make a backup copy of “stonehearth.smod”
  3. Rename “stonehearth.smod” to “stonehearth.zip”
  4. Unzip “stonehearth.zip”

You now have a folder called “stonehearth” in your mods folder containing more folders like “ai” and “call_handlers” etc.

In the “entities” folder you will find various QB files. QB is short for Qubicle Binary and one of my exchange formats. You can directly open/save QB with Qubicle Home/Master and the upcoming Stonehearth Editon (more info below).

Since I need to zip and rename/overwrite every time I want to change something the first thing I do to speed up this tedious task is writing a batch file doing this automatically for me. Here’s my little step by step guide using 7-Zip a free compression tool:

  1. Download and install 7-Zip
  2. Create a text file and save it as “pack.bat” in the mods folder
  3. Open the file with a text editor and add the following lines
"C:\Program Files (x86)\7-Zip\7z.exe" u stonehearth.zip stonehearth\
DEL stonehearth.smod
RENAME stonehearth.zip stonehearth.smod

First Modding Test

Ok, everything is prepared now and I can run a simple test:

  1. Open mods\stonehearth\entities\trees\oak_tree\medium_oak_tree.qb
  2. Change the Hue/Saturation with the correspoding modifier
  3. Export as QB
  4. Double-click the pack.bat
  5. Start Stonehearth

Great, I have brown trees now, that was quite easy!

I guess it’s better to not change any sizes, positions or names of matrices. But that needs to be tested/confirmed.

Export Settings for QB

If you have a Home/Master license use the following settings for the QB export:

  • Z-Axis: Left handed
  • Color Format: RGBA
  • Single Object: Depends (Yes for most files)
  • Hollow: No
  • Compression: No
  • Encode Visibility Mask: Yes

Most of the QB files consist of a single matrix. An exception I found is the body model which uses 26 matrices. I guess it’s better to leave the body the way it is for now.

Qubicle Constructor 1.6 Stonehearth Edition

Since Qubicle 2 is still in the making I will setup a Qubicle 1 Stonehearth Edition coming out next week. It will offer most of the features of the Home Edition and cost $11. If you purchase a license you will get a free Steam redeem code to upgrade to Qubicle 2 Play Stonehearth once it is out (only if Qubicle 2 Play Stonehearth is greenlit). So you can say the grace period starts next week. Qubicle 2 is currently scheduled for release in March.

Features not included in Qubicle 1 Stonehearth Edition:

  • All exporters except for the QB exporter
  • Landscape generator
  • Heightmap importer

Happy modding!

The info provided in this brief blog post is just a sneak peak at what will be possible. And I will do my best to make modding Stonehearth much much easier than described with Qubicle 2.

Last but not least, I am sorry I wasn’t able to post any more news on Qubicle 2 lately. But don’t worry, everything is going according to plan, I just needed the time I wanted to spend on the blog for business talk. Stay curious and have fun modding Stonehearth!

Cheers,
Tim

 

The New User Interface Week 2

Actually it’s week 3 because I had to skip my weekly blog post last week, I moved to my new cool apartment. But apart from hard physical labor I was of course busy working on the new user interface. Let’s have a look at the work in progress:

screenshot_week_2

Quick Access Bar

At the top holding buttons labeled with F1 to F12 you can see the new Quick Access Bar which enables you to quickly launch your favorite actions either by pushing the button or by using the function key. An action is basically anything that’s located in the main menu so it can be modifiers or creators or file operations or anything else. You yourself decide what action is assigned to what function key. By clicking on the rightmost button – the one with the grid – you will get an overview of all available actions. You can use that overview to launch any of the other actions or to easily assign actions to function keys.

Header Bar

Located below the Quick Access Bar is the Header Bar. It tells you the name of the current object you are editing and gives you fast access to display options like shading or wireframe. There are more buttons to the left and the right. Maybe you can guess what they will do – I will reveal that in a later post…

Work Area

The great empty grey area in the center is the work area where you will edit your objects. The lighter area on the left will be the tool box. There’s obviously still a lot to do here…

Swatches

And then there is the new swatches panel. It replaces the old wonky color map. The leftmost button will open the color picker and the rightmost button will give you an overview of all available swatches. Instead of 64 colors – that’s what QC1 supports – you can now manage up to 256 swatches. Just like with the Quick Access Bar you can select your favorite swatches and assign them to the number keys 1 to 0 (there’s a typo on the screenshot – should be 0 instead of 10). The reason why I render the swatches in 3d is QC2 will support Poxels (textured voxels). But that’s worth another blog post.

Hope you like what you see so far. There’s still so much to come that will make you work so much easier. Wait and see…

Until next time! My couch is calling. Sandman comes early these days.
Cheers,
Tim

 

The New User Interface Week 1

Hey guys, welcome back!

I hope you had a great week just like I did. I am currently working on the new ui (user interface)  of QC2 and I simply love it. It’s my personal cream puff of software development. I am in happy mode.

The working steps

This mayor task block is divided into smaller tasks: analysis and concept, screen design, component development and finally wiring.

Step 1. analysis is actually a permanent task, I do this all the time. It simply means that I look at the current status which is QC1 and analyze what can be improved and what worked well. For example the skinning engine I use in QC1 causes some trouble when you use your Windows installation with increased button sizes for higher readability. Or it sometimes happens that when you try to arrange the colors of your color map you accidentally drop a color outside of the area and it’s deleted. Those issues are not really show stoppers but I want to get rid of them because I want a great user experience.

The analysis of QC1, your feature requests and my visions lead to a ui concept. In a big company you would write that down, let it review, refine, review again and so on. Since I am the only one developing QC2 I skipped that part. Who cares, I’ve got it in my mind.

Based on that virtual concept I made the screen designs. Last week I announced to present them this week but I changed my mind, sorry. I guess it’s more fun to show you a current status each week giving me more time to explain the new parts. So this is what it looks right now:

screenshot_week_1

Still not much to see yet but that’s because I programmed the base components this week. I develop my own ui framework from scratch completely based on OpenGL. There are plenty of ui frameworks out there but I simply don’t like to use third party frameworks, I never did. I try to develop as much as possible on my own, saving me a lot of nerves and time in the long run. And like I said before: I simply enjoy ui development. And I am pretty fast at it.

QC2 supports skinning!

One great feature of my new framework is, the ui is completely and quite easily skinable by editing some bitmaps. I am not sure if I will allow my users to create their own skins, maybe, maybe not, I am not sure yet. But what that allows me to do is to offer customized QC2 special editions that have the look and feel of the product that it’s made for. Think of a voxel game like Stonehearth or the obvious Minecraft and you can mod it with a QC2 edition that looks like the game. That’s pretty cool, ain’t it?

So game developers listen up: you want to develop a moddable voxel game: better call Tim.

Next week: more beautiful buttons.
Have a great time!
Cheers,
Tim

Will Qubicle 2 Be Available On MacOS?

that’s the number one of the most frequently asked questions about Qubicle: ”Is there a MacOS  version?” I am asked this at least once a week since the first release of QC1 back in January 2010. My standard reply would be: “No, there’s no MacOS version yet, but QC2 will be available on Mac, too”. And I must admit I didn’t have the best feeling saying this because until recently I had no real plan how to get there.

Despite the fact that I am a proud owner of two iMacs and a MacBook Pro, I run Windows on all of them. I am getting confused looks all the time because of this. But what can I say, I like the look of the Macs but I think Windows is the superior OS. And since I am running Bootcamp I can always switch to MacOS whenever I like (which I don’t).

I am developing on Windows since I am 14 years old and have no experience at developing on MacOS whatsoever. I once read a book about Objective C, the main programming language for OSX, and my impression was that me and Objective C won’t get along very well. It’s a weird language to say the least.

So, no, I wasn’t very fond of the idea to have to release on MacOS. The best approach I could think of would be to have one code base and be able to publish on Windows and MacOS without being forced to switch to another programming language. I lost quite some nerves to find that solution but hell yeah, I found it. I almost gave up but then I accidentally discovered a tiny code snippet on a Japanese site that would solve all my problems.

I don’t want to get too technical so long story short, here’s the very first screenshot of Qubicle 2 on MacOS (actually it’s the first screenshot i ever made on MacOS):

QC2_MacOS

There’s not really much to see yet because the user interface is still missing. But it’s working and the Windows and MacOS versions are running on the same code base. There are quite some differences between the two OS and I am looking at a lot of work arounds that need to be done. But  I can change the current FAQ status of “Will QC2 will be available on MacOS?” from “Yes, but most-likely not with  the first release of QC2″ to simpy “Yes!”. What a relieve.

Next week I will present a first look at the new user interface. I just finished the screen designs and can now start with the part I like most about developing QC: coding the UI.

Have a great week!
Cheers, Tim

New Object Types Part 1: The Container

Hey guys, welcome back!

This week I will reveal the first new feature which is an object type called Container. But before that I want to introduce the old object types once more, there have been some changes, too.

Voxel

The word voxel stands for volumetric pixel and is just a fancy word for cube. In QC1 every voxel has a single color value which is used for all six faces. In QC2 there will be two additional voxel modes to choose from which I will discuss in a later post. Still a voxel can either be visible or invisible there will be no semi-transparent  voxels in QC2 (for good reasons).

Matrix

A matrix is like a box filled with voxels aligned in a regular grid. A matrix in QC1 has got following properties: size, position, name and visible. The size was not limited which will change with QC2. The maximum size is currently 128³. In QC2 a matrix has got additional properties: a parent object and the optional states designVisible and locked.

The difference between visible and designVisible is as follows: invisible objects are invisible in the workarea and in renderings whereas design invisible objects are only invisible in the workarea.

Locked objects obviously can’t be modified.

The parent object property enables me to introduce scene graphs aka tree structures.

Parenting

Parenting is very usefull if you want to translate or modify a group of objects. For example think of a body model which is divided into  smaller parts like head, torso, arms and legs. In QC1 you would have to select all bodyparts to move them to a different place. Once you select something else your previous selection is lost and you will have to select all body parts again to performe something similar. To avoid this tedious task you can now parent objects. So in our case you would create an object called body and parent the head, torso, arms and legs to the body. If you select and translate the body all bodyparts are translated.

So every matrix in a scene has got a parent. But the convention in QC2 is, a matrix can’t have children. So you can’t parent a matrix to another matrix. Possible parents for matrices are models and containers.

Model

The model object type is similar to the one introduced in QC1: a model contains an arbitrary number of matrices, there can only be one model in a scene and the model must be the root node. That’s exactly the same as in QC1 and I keep this object type in QC2 only for the sake of backwards compatibility.  The only difference in QC2 is a model can also contain containers.

Container

A container is a valid parent node for matrices. And it may contain other containers as well enabling you to create tree structures of unlimited depth. To stick with our example from above  you can have a container called body which contains all the body parts and you can have a container called crowd which could contain multiple bodies, and so on. So containers enable you to structure your scene. That’s pretty cool, but a container can do more:

E.g. when you want to rotate multiple objects in QC1 they all rotate around there own local axes and you will have to properly translate them after the rotation to get the result you want. In QC2 you would do as follows: select the objects, temporarily pack them into a container (standard shortcut [P]) rotate the container and finally unpack the container (standard shortcut [SHIFT-P]). The objects will be at the place where you expect them, saving you a lot of time.

Another cool thing is a container has got a size which may be bigger or smaller than it’s content. And a container’s content that is outside of its bounding box won’t be rendered. That’s great for multiple reasons let me explain you one:  you can use this for a lossless resize because the contained objects stay intact.

The real reason why containers need to have a size will be revealved with the second part of this article: New Object Types Part 2: Maps and Sectors.

Thanks for listening!

I hope you were able to understand the new object types without images. It may sound complicated but it’s actually super simple. Next week I will hopefully be able to present the first screenshot of Qubicle on MacOS. I am currently having a hard time getting this done.

Have a great week!
Cheers, Tim

My Personal Goals

Hey guys,

welcome back. This time I want to reveal my personal goals which are more general and might not seem to affect your user exeprience at first sight. But they have a large impact on how fast I can develop, which leads to more features. Furthermore there are some nice side effects.

Clean Source Code

I worked 7 years on QC1, everything about QC1 is based on the ideas that occured to me during my one and only true flash of insight back in 2005 (I might tell you more about it in a later post).

Let me be honest: the source code of QC1 is far from clean. It’s quite surpring how good it performs. When I started with QC I wasn’t the coder I am now. I studied IT (before media design) and learned the basics of object oriented programming but for years before I started to work on QC1 I exclusively used scripting languages like ActionScript or PHP. So I obviously had a rough start working again with a high-level programming language. But with time I got better and better and it’s only natural that not all ideas were perfect from the start and the code got a bit messy over time.

So, as I mentioned earlier, QC2 is a complete, 100% rewrite. It’s obviously a lot of work but I enjoy it quite a lot. All core classes are now shiny and new and include everything I have learned and discovered during the last 8 years. And they are written with official coding guidelines.

My no. 1 – the meat and potatoes of long term software development – clean source code: so far so clean – and ultimately satisfying.

Plug-Ins

This is the thing I actually enjoy most about my new internal data structure: everything is now plug-in based. I can add (or remove) new features by simply including a single file to the project. Everything the program needs to know – like how and under which conditions the action may perform, where it’s located in the main menu etc.- can be found in that file. It automatically links into the system. Adding new features is so easy now it’s a bless.

And there are some nice side effects, too:

  • I will be able to set up tailor made special editions in no time. Like I can decide which features should be in the edition and simply add the corresponding files to the package. Done. No more internal wiring or compiler directives, it’s piece of cake now. If you want an editor for your voxel game of choice, no problem.
  • And QC2 will be scriptable, enabling  you to edit your models with code. This feature may not come with the first release, but the foundation is laid.

Fast Responsive UI – Always

QC1 has limitations. If you want to create big models with millions of voxels  it’s getting slow and you will lose track. It’s simply not made for that task.

With QC2 I focus on insanely large models. The hard wired max is currently (128*128)^3, that’s 4.398.046.511.104 possible voxels. That’s a large number and may be subject to change. I haven’t made tests yet.
Nevertheless I guarantee fast and comfortable editing. The reason I can do that is because I have added some new object types and rules which I will reveal in my next post.

See you next time with more info about those mysterious new object types. You will totally love them!

Cheers,
Tim

The New User Manual

Hey guys,

let’s face it: writing the user manual is not exactly the best part of software development . There are people on earth who actually like it, well that’s definitely not me. I would love to be able to pay someone doing this for me. Thinking about how much time I will have to spend on writing the user manual makes me sigh. Normally I am a professional procrastinator on this field but this time I want to try better. At least I firmly intend to do so.

So, today I have set up a Wiki

But easier said than done. I have installed this forum some days ago and it was like, wow, that was easy! So I thought Wikis should be easy to  install too because a lot of people actually use it. Nope. Far from it.

After spending hours on trying to install various wikis and failing I ended up with the obvious choice which I didn’t want in the first place: MediaWiki. That’s the one Wikipedia uses. It’s not user friendly but at least I got it running. So, voilà: my new Wiki is online. The QC2 part is blank for now because I don’t want to spoil new features before I talk about them here.

Help appreciated

“Ok, I could help”, you might say, “if I get my hands on QC2 earlier, why not? But how can I help if I don’t even know the features”. Exactly, you can’t *sigh*. But what you can do is if your mother tongue is not english you can help localize the pages. German, french and spanish would be great I guess. Well if you like to help, please contact me. That would be so much appreciated!

Ok, enough with this pathetic I’m-a-poor-guy-talk, what needs to be done needs to be done. Next time: my primary personal goals.

Cheers,
Tim

Edit: I have spent some time now adding the old QC1 user manual to the new wiki because I wanted to get familiar with the system. Turned out it’s actually not as annoying as I thought. I should have done this earlier.

About This Blog

Hey there,

this is a blog about me developing and releasing the second incarnation of my software called Qubicle. The purpose of this blog is to reveal the new features bit by bit (proverbially). Unfortunately releasing a software of this scale is not only about development. So I want to talk about this too. It might  give you an idea about how much work is involved (if somebody could please invent the magic button for everything apart from development, call me and I am your first happy customer, thanks).

The Author

My name is Tim Wesoly, I am 37 years old and live and work in a beautiful part of Hanover/Germany called Nordstadt. I have a degree in design and tried to study IT years before that (but failed because I used to be very lazy back then which luckily changed). So I am quite talented in design as well as in software development which people say is quite rare.  I listen to music all the time (rdio ftw!), love to play frisbee in the park and probably spend too much time in my home cinema. And I love my work. It’s the center of my life.

The Software

The sofware this blog is about is called Qubicle and it’s a voxel editor. I started to work on Qubicle in 2005 during my design study here in Hanover. Back then there was no editor on the market that was able to create the things I had in mind, so I made one myself. In 2010 after years of research and development I decided to release the 1.0. This was before Minecraft, so I had no idea whether somebody out there would like the voxel style as much as I do. 3 years later with two more products on the market and happy customers all around the world I can say it has been quite a success.

Half a year ago (in February 2013) I started working on QC2, for the third time actually. So I am already some month in the making. This blog will document my way to the 2.0. I want to reveal all the new features, announce release dates and I would like to discuss all of this with you. Feel free to ask questions or suggest new features. I really like to know your opinion.

One last word: If you have followed Qubicle for some time now you might know I already started a blog about QC2 nearly two years ago. If so, please forget everything you have read there (if you havent already). QC2 as I had it in mind back then was more or less an extension of QC1, a QC1.5 so to speak. QC2 now is a complete rewrite and is based on different core ideas.

Alright, let’s do this!
Cheers,
Tim