Guess what…

August 23rd, 2011

I wrote in the previous post that the guys working on some grids for us stopped responding. Well, I hurried too much with that statement. It turned out that they were on vacation and after that they just forgot to reply :D. They got back to me after they saw the progress post, and it turned out that they were still alive! Till now they have made one of the grids, which is fantastic.

My apology to the guys for misinterpreting the whole situation, and I hope that we will avoid such accidents in future.

Progress anyone?

August 17th, 2011

Hi everyone. It’s been some time since the last progress report, and I suppose you already started wondering if there will be any. Well, I wanted to keep you in suspense for some time. Nah, I’m kidding :).

The reason I prolonged the news report publication is that I wanted to make a bigger surprise. Unfortunately, some people failed to make their part, and this will not be such surprise, as planed. Though it still may be a kind of.

Without getting into much words, I show you this table, that speaks for itself quite much:

Demo progress

In case it does not, here is some explanation. The table above comes from our team-only management system, that helps us keep track of the Prequel content and progress of various parts. The table itself gathers progress of the world areas (grids and scenes) for the demo. As you can see, almost all the grids and some scenes are already done. The only thing that raises worries are the three not started grids at the bottom. These are the things that failed. Some time ago two guys (brothers) offered us help with the map design. We saw their previous work and was amazed of how talented they were. So amazed that we outsourced the three maps so they would make it. Unfortunately, after one very promising image of half-made work we lost contact with them. At the moment it’s been over two months since we got the last e-mail from them, and we have no idea what is going on. I think we will wait for them till about a month before the demo release, maybe they will get back to us. If not, we will make the maps by ourselves.

So, almost all Grids are done! Now we will focus on the Scenes and scripting. This is much harder task though, and I do not dare to estimate how long it could take :)

Thanks you are still with us!

News news news!

April 29th, 2011

In one of my last comments I said I would post some information in about a month. It’s been over two months since then, but finally it’s here :)

The first news is Beta 8 of the LBArchitect which was not planned. That’s right, not planned, because I thought the features of beta 7 would be enough to make the Prequel demo, at least. And then I got an idea of an improvement, that should not take much time, so I made it, and then I got another quick idea, and another… and now we have code completion lists for almost all things that can be listed, Layout import in Factory and almost complete LBA 1 Scenes reference :D. But it was worth it. If you are curious what I am talking about, read below.

Code completion

If you ever tried to do something in the Architect’s script editor you probably know it already - it’s the thing that pops out when you type a space at the beginning of an empty line, or press Ctrl+Space. It is merely a list of available commands with short descriptions. So now the list can hold way more than the commands. It gathers all the information from the current Scene and shows possible parameter values for almost all commands. For example, for MESSAGE-group commands it displays list of possible text line indexes, for SET_TRACK command it displays list of available Track names and indexes, for SAMPLE-group commands it displays list of sound samples… and so on. The screenshot below says it all:

Code completion

Selection enhancements

The keyboard selection editing feature was supposed to be present in Builder since around 0.8 version (long time ago), but it was poorly implemented and at some point it just stopped working. Now I have improved it a bit: it now allows to move the selection (not selected fragment, but the selection itself) in all 3 dimensions using Numpad keys (NumLock must be turned on): 7 and 3 move in X axis, 1 and 9 - in Z axis, and 8 and 5 - in Y axis. Also pressing Ctrl key allows to resize the selection instead of moving it. This is especially useful to select areas that have empty spaces in their corners (like house roofs), or the corners are not accessible with mouse. I have also improved the selection displlay. Now it will draw additional boundary of the whole selected area (mostly where the selection is empty) that will make it esier to select what exactly what you want and position it precisely where you want.

Selection boundary

Scene Reference Manual

Most of the time I have spent on this version was writing the LBA Scene Reference Manual. Every time I was sitting to work on a Scene for the demo, it ended with testing various Script commands, because I didn’t know exactly how they were working. Then I came into conclusion that I would never finish anything with such workflow. And I decided to write a reference first. This way if I don’t know how a particular command works, I can just check it in the documentation.

Reference manual

The documentation is almost complete. It only misses descriptions of some properties and commands that are still unknown to me. But for now it is more than enough for sane script writing.

Factory: two small improvements

One of the improvements is that when the ‘Sort by index’ mode is selected in Layout view, it will now try to utilize as much of vertical space as it can, while keep index order of the Layouts. See an example on the screenshot below.

Sorting Layouts

The second improvement, much more useful, is a possibility to import Layouts from external Scenarios (and only from Scenarios for now, but it should not be much of a problem). This way using Layouts from other areas is much more easier now. It is especially useful when we create a new Layout in one Scenario, and then want to copy it to other Scenarios.

If you want to try the Scene editing for yourselves, here you can download the 8th beta of LBArchitect: LBArchitect_1.0.0_beta8.zip

But enough of Architect already, now something about the Prequel

I told you once that I would carry the project on alone, if I had to. Now, I am throwing Architect development away (unless a horrible bug is found), and getting to the Prequel design for serious. It turned out that alexfont is able to help me with that, so I am not that completely alone, though he is busy with current work (so am I). We thought the whole thing over thoroughly, and came with a sane plan, that we believe, is the best way we can go, having previous experiences in minds. There is a drawback of it, that I cannot tell you about now. I can only say that it is disappointing, but it is inevitable, and we will try our best to make the disappointment not as disappointing as it could be :D.

I have got two pictures for you. The first one is concept art of the Near Pharmacy area of one of the islands:

Near pharmacy - concept

The image has been drawn by Luke in the very beginning of the Prequel project, so it can be called an antique :D. But nevertheless, it is still up to date with the story, so it became one of the first maps I have created. The map below is finished, and ready to set up a Scene in it (though some small changes may be necessary to match our current concept).

Near Pharmacy

I hope this will bring back your faith in us, at least as much as it brought back our faith :).

Architect beta 7 is now released!

July 26th, 2010

I don’t have much to say about the release, since almost everything important has been already described in my previous posts. Since the last one I was mainly fixing bugs. Though I have made two changes that are worth mentioning.

First one is the buttons panel Layout, you can see it on the picture below.

New button layout

Nothing special, just rearrangement of the buttons. They are now better logically and visually grouped. I did it mostly because I needed space for a new button, and it didn’t fit in the old layout :).

Ah, right, the new button. So that’s three changes :). The button is Aim button, it is called Aim Tool. It allows you to copy position in Scene coordinates that is pointed by the mouse cursor to the system Clipboard. The position the can be easily pasted in zone coordinates, targets, camera positions and so on.

The last important change is the advanced opening dialog.

Advanced opening dialog

I have removed the LBA1/2 choice from individual items and put it on top of the window instead (it wasn’t possible to change use different LBA versions for items anyway). Now each item has ‘Original’ option which means LBA1 or 2, whichever is selected at the top. This should make it more clear, and cause less bugs. Also the “LBA mode” of opened stage will be determined by the top LBA setting, not by chosen Grid file, as it was before (and that caused bug so if new Grid was chosen for creation, the stage version was unknown).

For those who don’t remember what previous posts were about, here is a quick list of most important changes since beta 6:

  • New Grid handling style (Fragments opened together with the main Grid in Builder),
  • Automatic Fragment creation in Designer, Fragments referenced by names in Builder,
  • Designer main window layout altered and split into two lists: Grid list and Fragment list for easier manual Fragments creation,
  • Automatic generation of HQD files in Designer base on user-defined map descriptions

Also while browsing through my previous posts i have stumbled upon my first Architect progress report, at the end of which I have stated: Planned Beta 7 release: about two months from now. That one was posted in August 2009, now it is July 2010, so almost a year have passed since then. What a great fail at foreseeing :D.

The beta 7 can be downloaded here: LBArchitect_1.0.0_beta7.zip
Mirror: LBArchitect_1.0.0_beta7.zip
Source is also available: LBArchitect_1.0.0_beta7_src.7z
The beta 7 version also has its own article on my website: moonbase.kazekr.net

So Architect beta 7 is released and I said we would continue development when that happens. But despite the fact that almost a year have passed away, we still don’t seem to have any decent model/animation editor (Link was working on one, but he didn’t have time and will not for the next few months). So for now we are able to design Maps (and I hope we will get to it soon), but we’re very limited about character model editing. I have an idea to make a converter from a popular 3D object format to the LBA format. This approach wasn’t tried before because the LBA format is not compatible with any other format. It contains some ’sub-objects’ and ’shades’ that don’t seem to have equivalents in common 3D editing tools. Now I have got some ideas on how to overcome this problem, and maybe something can be achieved. However, I can’t promise I will succeed.

I haven’t discussed anything with our team members yet, so you are most likely to hear from us about the progress and decisions we make.

Anyone noticed?

July 21st, 2010

Bugtracker list of issues

This means that I have just fixed the last issue for Beta 7 :D.
It is still gonna take a few days till the release because I have to make some preparations, and write an article of course.

Another discovery

May 13th, 2010

Intrigued by Lightwing, who asked me on MBN forums if the 256 Fragments limit discovery actually meant that we could have 256 Grids (he didn’t understand me), I got an idea that maybe we could move the Fragments up without actually touching the hard-coded Fragment index value by just using space reserved for Fragments and putting Fragments after. I have tested that, and guess what: it works! The actual number of Maps (Grids + Fragments) we can use without engine modification is 376 (with a small drawback that Grids and Fragments numbers separately cannot exceed 256 - this is because their indexes are stored in one byte). I don’t think any LBA modification project will need more Maps than this, so it’s a great news.

This however has implication that manually created Fragments will be harder to use (their indexes will have to be modified to reflect their actual positions), but I don’t think we will need them, since we have Auto-Fragments :).

It’s alive!

April 28th, 2010

After a quite long period of development without any message I finally have finished the most important features of Architect that were planned for beta 7 release. Here I will give you a short description of each one of them.

Maybe not the most important…
…but I have converted Builder and Designer to Borland Developer Studio 2006 (Turbo Delphi) environment (they were previously developed in Delphi 7). The good side of the conversion is that BDS2006 has much better debugger, editor, and (almost) everything than version 7, but on the other hand, it can’t install third-party components (freeware personal version), and I use some of these. Fortunately, the only limitation is that the components can’t be installed into the IDE, thus managed vsually, however they can be used by manually calling in the code. I had to put them into the code giving them previous positions and properties. In addition I have modified the SpinEdit component (wrote my own frame-based version actually), so that it is easier to use and have more features: built-in large change buttons and automatic colour change when the entered value is incorrect. And another good thing is that the code is now ‘integral’, i.e. it doesn’t require any external components to be installed into the IDE thus making the code more accessible by others and easier to manage for me.

Now for the features
As I wrote about in the previous post, I was working on a feature that helps creating Fragments or Disappearing Ceiling Grids, as they are also called. I don’t want to repeat what I wrote there, so I will give only a brief reminder: the whole thing is about making the program(s) to automatically manage necessary Fragments based on how they are used in particular Scenarios. Users can reference the Fragments by their names, so they don’t have to bother about numbers, indexes, and planning all these things right at the beginning of their projects. Let’s get down to business.

Auto-Fragment tests in progress

The above screenshot shows the Fragments usage in Builder - in the object editor for Zones of type 3 there is a field called ‘Auto-Fragment’, which contains one of the Fragments from the current Scenario (or nothing). If it contains an existing Fragment name, information about this will be inserted into the Scenario for further use. Below, in the Script Editor, there are also some Fragment names used as parameters to the SET_GRM command (this command ‘turns on’ the Fragment display). The command still needs a numerical parameter, because the real Fragment index is not known at the time of Script compilation, so something needs to be inserted at that place in the code. In this case the information about referenced Fragment is also included in the Scenario.
By the way, if you’re curios about the program’s window borders (not the ‘classic theme’) - I recently decided to try the new Windows 7 Aero interface, and I wanted to try how it interacts with the program. The result was very good (it didn’t crash :)), so it seems that Architect is compatible with Windows 7 (64-bit edition). The other screenshots have the regular window borders because they have been taken on another machine, where I have Windows XP.

After editing is finished we can use the Scenario in Designer.

The new Designer layout

Designer also have been slightly modified. The main change is separate list of files that will be used as Fragments. In LBA Fragments are kept in the same file as Grids (lba_gri.hqr), they just start at specific index (121), so if one wanted to make a single Grid that uses a Fragment (not using the Auto-Fragment feature) he had to put 119 blank entries between the Grids and the first Fragment to make it work. This wasn’t very convenient, so I decided to make the separate list and the program will manage that automatically. Another change is some column rearrangement - the file columns are small and description column has been added to the right. The files columns now have less space for displaying the paths, but if two or more adjacent columns contain the same path they will be connected to make more space and only one path will appear. This may be a little confusing (especially for Fragment list where map index will be displayed in the Bricks column), but I think it will become more more convenient than the old way, after some trials. If one needs to see the full path, manual editing is now available. The description column serves two purposes: it keeps information what room each row contains for easier orientation, and it is used for automatic HQD files creation (yes, I made that one too :)).
In order to automatically create necessary Fragments for the Grid, just add the Scenario in the Grid list and that’s it. If the Grid inside the Scenario has by-name references and the Scene path points to the same Scenario file (that’s important), all necessary Fragments for the Grid will be extracted and added at the correct indexes (after manually created Fragments), and these indexes will be put into the Scene file at correct places. Actually the Fragments list doesn’t have to be used at all. It can be hidden.

The next screenshot presents project options’ first page, that contains the Auto-Fragment setting with detailed explanation.

Auto-Fragment feature info

There is also an option to manually set the first Fragment index in the lba_gri.hqr file, though it’s probably hard-coded in the game engine. I have made it because maybe it will be possible to change that index by hex-editing the lba.exe file in the future. And of course it will be useful if our custom engine is finished one day. I have made tests and discovered a great thing. Until now we have thought that the maximum number of Lba Maps (Grids + Fragments) was 256 (because the Grid indexes are kept in one byte in the compiled scripts). I have found out that the actual number is number of Grids that fit in below Fragments plus 256 Fragments (because Fragments are actually called by offsets starting with 0, so we get another 256 possible values). I have tested it in the game, so it’s not only my guess. If we can change the first Fragment index one day, the number will rise to 256 (or 255) Grids + 256 Fragments.

The last screenshot shows the result in the game. It’s not anything spectacular, actually I could have made that without using any of the features, I described here :), so it can’t be a proof. The screenshot simply shows Twinsen passing through one of the Zones that are set up to show a Fragment on such event, and the flower piece is the Fragment, so apparently it works :).

In-game Auto-Fragment testing

When I started writing this post I thought about sharing my test files and projects with you, so you could test that for yourselves, but then I realized that the Architect was not released yet, so you wouldn’t even be able to open the files. Thus, you will have to wait till the beta 7 is finally released, which will be soon, I hope.

The planned issues that I plan to address before the release are listed on the roadmap page in the bugtracker: http://sacredcarrot.xesf.net/mantis/roadmap_page.php (you have to select Little Big Architect from the combo box on the right, I can’t link to specific project pages).

By the way, I wonder if the Architect components couldn’t have better names. Factory seems good enough, but Designer may be somewhat misleading, as it is meant for design HQR files, not scenes or areas. Maybe the Builder and Designer names should be flipped over, or completely renamed. What do you think?

Current developments

January 14th, 2010

There’s been some time since the last news from me, so I decided to tell you what I am doing right now, and why it takes so long, so you won’t lose hope :).

I’m now working on a feature that will help the overall development of the LBA world areas. It is an automatic Fragment management in Designer (if you don’t know, it is a program that allows ‘compilation’ of separate Grid, Scene and Scenario files into HQR files that can be read by the game engine). This is how the game works: the lba_gri.hqr file contains Grids (which define terrain look and shape) and Framgents. Fragments are small parts of Grids (they have exactly the same format in LBA 1) that can be merged with a base Grid to change (replace) a specific area of it. For example the basement ceiling that disappears when Twinsen enters the north door in his house has been made with the Fragment feature (the Fragment contains transparent cells replacing the ceiling and nice egdes replacing the walls). Fragments are placed in the lba_grid.hqr at specified index, and they are referenced by their index relative to the first Fragment. It means that all Fragments that are going to be used in the game should be planned before starting work on the Grids, because later if you decide not use one of the Fragments it will have to be marked as ‘empty’ (blank entry in the HQR). It can’t be deleted, because this will change indexes of the Fragments above the deleted one (so indexes in the Scene will point to wrong Fragments). It is not much bothering, but can lead to many mistakes and problems.

The idea for the feature I am working on now is simple: reference Fragments by their names instead of indexes. If you want to use a Fragment in a Grid, add it to the Scenario (it will get automatic name, like ‘Framgent_1″, that can’t be changed yet), and use its name in the Script and in the Zones of type 3 (they automatically trigger Fragment replacing when player enters inside). Architect will add information about which Fragment is associated with which place in the Scene to the Scenario, and when you use that Scenario in Designer, it will automatically add all necessary Fragments and put their final indexes to the Scene. This will eliminate the need for manual creation and planning around the Fragments.

And now why it is taking so long: apparently this is much harder to make than I expected. the Builder part is finished (but not tested, so it may contain bugs), and I am now starting to implement it in Designer.

The second reason for the delay is the real life :). I am involved socially much more now than before, and therefore I have less time to work on this.

I hope this year will bring some more interesting developments in the Prequel :).

Architect Beta 7 snippet

October 13th, 2009

The following issues have been resoved now:

  • The main menu items for Fragment support. Specifically: opening Grids as Fragments (intended for use with the original LBA 2 Fragments which are in the same format as regular Grids), copying selection to a new Fragment, closing the current Fragment and closing everything - it restores the program to state like it have been just started.
  • Popup menu items for selection: Selecting everything, deleting the selection, and the meaning of “Copy sel. to…” and “Copy sel. the a new Fragment” have been changed. Now they don’t copy the selection, but move it, deleting the selected part from the original. This change was necessary, because I realized that there were no way of doing it with the options working as “copy”. This was because the selection is cleared while switching Fragments. Of course there is a possibility to copy instead of move by pressing Ctrl.
  • All opening ways are now working for both regular Grids and Fragments,
  • I have fixed some bugs,
  • And I have added list of recently used Scenarios to the File menu for quicker opening. You will probably get an impression that Scenarios are something like “projects” in other software - this is a good association, and in fact I’m aiming to make them as comfortable to use as I can.

You probably wonder why these little things took me so long. This have been caused by two reasons:

  1. I have less time recently. I can work on Architect only once per couple of days, and not for long each time.
  2. When implementing these things I have found many bugs and inconsistencies that I just couldn’t leave that way. For example the selection moving feature didn’t allow for putting the selected area below [0, 0, 0] position, so for example when choosing Select All and trying to reposition the contents one couldn’t move the stuff “back” so a part of it would be off the rear wall. Even if there was some empty space between the contents and the rear wall - this in turn is caused by the fact that empty areas are also selected with Select All function (yes, it really selects [B]all[/B]). Another thing was a bug that caused normal blocks being cut out while playing aroud with invisible blocks. There were some more, that I don’t remember, and that took me quite much time to fix.

Not much to show this time: just a screenshot of the File menu after changes. It’s getting quite big already.
The File menu

Architect Beta 7 snippet

September 8th, 2009

I have just finished fixing the modified/saving system. Unless it is bugged I shouldn’t have reasons to touch it any more.
Remember the dialog that popped up when closing Architect with unsaved files?

The old dialog

I have modified it to be more user-friendly and also informative. It now looks like this:

The new dialog