Thursday, 31 March 2022

Development - March 2022

Before we noticed another month slipped thru our fingers. I would love to say that there was a lot of progression in the project, but I would lie. This was a month focused on technology, workflows, and boring improvements. Because of that, this post will be a little bit more technical so continue reading it on your own responsibility...

Development Setup

Because Coffemonsters is a really small group, for a long time our projects were developed in a really simple setup. We had a virtual server running:
* gitea (https://gitea.io/) to store code,
* perforce (https://www.perforce.com/products/helix-core) to store data
* mediawiki (https://www.mediawiki.org/) for some guides and documentation. 

It somehow felt that we did not need more. But recently thanks to my friend we got an infrastructure upgrade. He crafted for us a really nice development environment with a dedicated server running dockers (https://www.docker.com/), our own gitlab (https://gitlab.org), perforce, wiki, CI (Continuous Integration) builders, and a lot more. 

This was not a step that was needed but it was planned for a very long time. Thanks to finally doing it we can slowly start building CI  and an automated build system which will bring us a step closer to opening access to game builds.

All of that sounds great but it has some price, we are still in the middle of a transition to this new work environment. Most of the stuff just worked from day one, some others not so much. One of the things that went rather terrible was fact that we neglected some automatization scripts. This mistake resulted in significant maintenance work. The first part, "project generations" is mostly done and only took three weeks. This was the worst part because it was a blocking one. Now we moved to the second phase which we can do in parallel to our normal development: simplifying the environment setup. The goal is to pull a branch, run one script and be ready to develop the game. When we finish with it we will finally be able to start CI and create an automated build system. Sadly getting to this point will take some time and a lot of effort.

Tools improvements

Switching to new infrastructure was not the only thing that was done. We still working on improving the game which leads us back to improvements in some tech. Who would expect that doing simple ladder-climbing could lead to so many interesting problems?

One of them that fascinates me personally, is not a super technical one but related to tool UI (I still have a hard time acknowledging it). Everything started with switching to document-based tooling in the engine. The idea is simple: You want to edit a file just open it in the new tab (just like a browser). 
 

We never regretted going into this direction but there was one flaw with it. Some objects can contain embedded data. A good example of it can be a visual script that can be unique for every instance of the object. In the past, in an attempt of editing, we would just open a new detached window. It would be a blocking one so you could not change anything on the scene while you modify the script. 

With the document-based tools UI, we have a problem. The visual script doesn't have a file because it depends on data from the level. This makes the opening of a new tab for it weird and confusing. We would lose this way visual difference between embedded data and the one with the source.

This bother us for a long time but we did not really have a nice idea of how to solve it ... till recently.

Our solution to the problem would be building relations inside the tabs that will look like this:

Selected normal tool:

Selected tool owning embedded data (f.ex. Level):

Selected Tool editing embedded data (f.ex. Visual Script):

Look when there are multiple nesting:



As you can see this is still a work in progress but it looks promising. Thanks to this very generic approach we will be able to unify internal workflows and if everything goes right, completely forgot that the problem existed in the first place.

The Game

We know that all of you love LBA. Guess what? We too. That is why we would really want to bring to you our tribute as soon as possible. Sadly making the project takes place whenever we have time and energy to do it. You can probably imagine how hard is to balance normal life and work on this freaking awesome but ambitious project.

This limited amount of time forces us to prioritize one stuff over the others. This was the case this month, we got a great opportunity to switch infrastructure which would be hard to say no to. We tackled technical problems that bother us for a long time. But we also did not forget about the game. We did an awesome poster, some improvements in the player controller, we iterate over the new Twinsen model which soon should be ready to start bringing it to the game for tests (Last chance for complaining about its look). 

For some, this may be not a lot. In our opinion, we just took another step in the right direction and this is what matters.

Thursday, 10 March 2022

Tribute

When the announcement of the original project (https://twinsenslittlebigadventure.com/) was published, our work was thrown into chaos. We quickly needed to figure out what to do. There were so many questions in our minds: Drop the project? Continue original plan? Adjust to a new reality? What about the name? We could no longer use word "Remake". At the same time, we needed something to distinguish our work from the official project.

This is where the name "Tribute" came. It was a word that describes perfectly what we trying to do, why we do it, and on top of that nicely distinguishes our work from any other projects. This was the essence of all these years spent on development and all these changes we were doing. Everything to give a tribute to the games that all of us love and the people who created them. 

Six months later we believe in all of that even more. Official developers (https://www.2point21.com/) work hard on bringing us more LBA content. To avoid issues, a fan project like ours should never be mistaken for what they do. That is why we plan to shift some of our "branding" (if you can call it that way) to make it more clear for people that this is just a tribute, made by fans. Results of this work can be seen below. What do you think? 



 

Monday, 28 February 2022

Development - February 2022

Following last month's promises, we are still working on the tribute. This is not necessarily an easy task as this was a rather busy time, full of unexpected situations. So here we are in the times when the world is once again in chaos and a lot of stuff does not make sense.

The last post spawned a lot of discussion regards Twinsen model. Most of the voices were that you don't like the new look :/ This was a little bit heartbreaking but well, we could fight these opinions or just accept them and return back to a drawing board. Took us a few hours to process all feedback, replay comments, make a copy of the original model, and open the blender to start working. A few iterations later we have some proposition.


If you are interested in the whole progress you can see it at or discord channel (https://discord.gg/vBtsvRqWa7). For those who are curious, we attaching a comparison with the previous model in the engine.


This is still not a final version as some things will change over time. What do you think about it?

The truth is that changing of Twinsen model was the easiest part of the work. The biggest challenge this month was fact that the engine used by the game became really unstable :( At first, we thought that this was a result of one of many changes we did. Reality proved us wrong. The issue was that we made stuff more efficient..., yeah, by doing that, we surfaced some timing issue in our multithreaded code that was there forever. In practice, this was just a few hours of work to fix it. In reality, two weeks of intense tracking in the evenings, in the meantime, we started questioning our own skills and generally, sanity.

To protect the last one we did some experiments with the content creation. By doing that we tested tools, pipelines, and I personally de-rusted my skills in creating models. Results are not bad but also not great. 




Or conclusion from this is that we will mostly use these assets as an addition to the levels and not to create whole locations. We believe that we can do better using different workflows and plan to deliver.

Another thing that helped with our sanity, was adding of new developer UI (https://github.com/ocornut/imgui) to the game, and some fixes and improvements of the tooling. This will not affect the game directly but will make an investigation of the issues a lot easier. 


Finally, we were working on improving a player controller. We want Twinsen controls to feel more natural, include better feedback when he lands on the ground and some new animation. In practice, we are switching whole code to support State Machines that are also used for AI. For those who are not familiar with State machines, they are graphs (we created a visual tool to define them).


Graphs have nodes (boxes) that define different states and connections  (arrows) that define how we can transfer between them and conditions that need to be met. This is a simple, yet powerful concept which already proving to clean up our code a lot. 

With this, we are getting to the end of this month's update. As you can see we are busy, doing what we can to make tribute a real thing. We are a few step closer but there is still a lot more challenges ahead of us. 

Like always feel free to share, comment, join our discord channel where we post more often updates about development.  











Saturday, 29 January 2022

Little Big Adventure 2022

The last two months are pretty interesting ones for the LBA community.

  • We learned about the new name for the official games
    (https://twinsenslittlebigadventure.com/lba-new-name-twinsen/) 
  • We got a message from Didier Chanfray regards the plans for the IP
    (https://twinsenslittlebigadventure.com/a-message-from-didier-chanfray/).
In meantime Coffemonsters is silent ... Some may think that because of the announcement of the official project we gave up on ours. The reality is that we know we cannot compete in terms of news from [2.21], they are the creators of the official project. Members of Coffemonsters always were and will be supporting them in their work to bring us games from Twinsun's universe. 

But this also does not mean we gave up. While reading the message from Didier Chanfray we can encounter the sentence: 
"If you wish to create something around the original games yourselves, we've open-sourced the code for the original games and will support any fan project/mod to the maximum of our capabilities."
This makes us believe that there is a place for a project like ours. What we doing is not a competition to the official game but a tribute to the original games and people who created them. This is our reimagination of them and answers to the question: What if ...? 

This led us finally to the topic of our "LBA: Tribute" project which still moving forward. Like always we spend a lot of time on technology and tooling but we also try our best to never neglect the game. We recently added our first, rough version of the skeleton:



We have some nice use cases for it in the scope of the tribute (1st island). While iterating on camera and character movements we also created new clothes for Twinsen. 




From other important announcements, we plan to be a little bit more open about our development processes. This should translate into more development news at our discord channel (https://discord.gg/Tc9Hs5h9), more news about work in progress stuff, and our long-term goal is to release development builds to everyone. This should allow you to look into the newest changes and explore the world we created while waiting for the official game. The reasons why this is not happening right away, are technical issues that we need to resolve before releasing builds.

We believe that right now we have really exciting times for all fans of LBA. I know that we all wait for more news from https://twinsenslittlebigadventure.com/. But I also want to believe that news and progress from our small fan project bring some joy to your life. So, till the next one.

Sunday, 10 October 2021

27th Anniversary of LBA 1

Finally arrived LBA 1 release anniversary. This year it is a pretty weird one. On one side it is a happy one because we got the announcement that a new entry to the universe will happen. On the other hand a little bit sad because our celebration stream was canceled. I initially planned to replace my stream from it with another dev update, but then life happened. 

I got super busy, partially upon my own request. Specifically, I work on a presentation for the GiC conference where I will be talking about a custom resource management system. I think that this will be an interesting lecture, mostly because I will be talking about the engine that powers the L.B.A. Tribute. If any of you will be there somewhere around and see me don't hesitate to come by and say: hello. 

Now after this long intro, let's focus on the project. From the last update, nothing really changed. The plan is to work on this nice small demo containing only Citadel Island. I will release it when I will be done with it (Sadly there is still no release date). 

Currently, I am focusing on AI. I was not really happy with my previous solution and decided to improve upon it. A few AI-related presentations later I felt like I'm still lost. I understood what they talking about but still did not sorted stuff in my head to make a final decision regards my approach to it. This came later after few beverages (alcoholic and non) and discussions with friends. The last one probably helped here the most.

I decided to use behaviors graphs. How they work for those who don't know: when designing AI you building different states and defining conditions that need to be met to transfer between them. A simple example can be seen below.


Little did I knew, how this decision will backfire on me. The next weeks were full of UI work. Not a lot of AI but mostly thinking about how to make the creation of graphs possible in the toolkit. This was important for me because I would spend a lot of time using this tool later.

Right now I think I'm done with most of this work. It took forever, lead to some interesting discoveries, performance fixes, bug fixes, UI improvements, changes in the workflows, and generally a lot of boring topics that I will spare you. What is important, now I plan to continue work on AI with the new tools I designed. How this will go we should see soon.


Wednesday, 8 September 2021

Announcement of official LBA so what now ?

For those who missed it, official work on the next LBA project has begun. This probably lead to some questions about what will happen with the project I working on? 

I always knew that something like that could happen. I was working on it after hours, learned how to model, sculpt, do textures, make animations, built tools to create the whole world but in the end, never really delivered a playable game. Now that we have an official project coming I feel mixed feelings. I'm happy as a fan that there is finally this light of hope that will be one day play next installment in the series. On other hand, there is this frustration that after all that years of work I would need to drop everything without delivering anything.

Because I would like to avoid it. I will do something different. I plan to continue work on the project that will change a name from LBA Remake into LBA: Tribute to avoid any confusion that it will recreate the game. I will also stop worrying about any other islands and will just focus on recreating gameplay and story from the first one. When this will be done I will just release it so you could see the world the way I imagined it.

There is also a chance that I will be asked to completely stop working on the project. If ever come to this I will be worrying then and for now, focus on the stuff I was doing normally: adding another piece to the project which brings me closer to the day I will be able to share it with you. At the same time like probably most of you I will be waiting for more news about the official LBA project. 





Thursday, 19 August 2021

End of the summer

This was a long break from posting, but also a lot was happening in real life. For the past 5-6 weeks, I was mostly vacationing from the project. You know standard resting, spending time with family, and doing some repairs in the house. Of course, being a workaholic obligates, so there was also some work on the project involved. 

I spend some time remaking all old rocks and iterating a little bit on the placement of them on the island. I would say the results are not bad but there is still some work to do to make it perfect (or at least as close to it as we can): 


In the fact, this is more or less the only thing we managed to do for the game. Everything else is the black art of making a custom engine. We improved high CPU usage while we working with tools, improved loading times in tools, started building an automated system to create a build for the games, done a lot of bug fixes and life improvements.

This tipped the balance a little bit more on the tech side but well I had a vaction so I deserved it. Now to bring stuff to a more neutral position we returned back to our old test environment for a fight and AI: 


We doing more improvement in this area and plan to share all of that in the next dev update. Which exact data is still to be announced, but I would expect it in the opening week of September.

Now that weather is not so nice I will feel less guilty when I will be sitting at home and not appreciating the outside world. This means more content done ... at least in theory. We will see how this will transfer to the real world.