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.