Skip to main content

Build system hunger





So the past week(s) I've been revisiting the tools architecture in my engine. Some of the tools have ended up getting both a visual makeover as well as fundamental changes under the hood. Part of my tooling that care of asset compilation and verification has gone through several of those iterations.

https://www.dropbox.com/s/qzq7cn705hepnae/cli-interface.PNG?dl=0

But the last week in particular I've been looking into build systems and embedding python after having gotten wind of  google's bazel. My first impression of bazel is that it is quite elegant in the way builds are described declaratively, as well as the technology coined behind it. Incidentally, they seems to have opted for a similar strategy as my own asset management system. Both systems employ services that uses a database to store associated meta-data. And it uses the meta-data to ensure the smallest/fastest build. Now of course while I don't have several terabytes of art data to process, my small scaled pipeline doesn't showcase its full potential, however being able to decouple all art processing logic outside of the engine where it's less critical has already been a joy to work with. And now slowly bit-by-bit I’m revisiting the tools and upgrading them from prototypes into something hopefully more lasting.

https://www.dropbox.com/s/fi28aga2byx90op/resourcebench_2.png?dl=0

One of the things i've been really looking into are build systems themselves, I have already started to look into systems like SCons, waf, cmake, premake, jam, make, ninja, bjam. And compared to the elegance that bazel seems to offer, in my opinion, the alternatives leaves full to be desired.  So far I think premake has been one of the closest fits to what i value most, something simple but also keeping my workspace central. However one of the thing that bothers me with premake is that it incorrectly assumes the platform i..e. vs2008, 2010, gmake is an either all or nothing operation. All your projects get generated using the same platform, but parts of my code are in 2008, and parts are in 2012, and parts in 2015. This sort of arrangement isn't even posible to do with premake.

While lua is a nice language, small and compact, in general build tools are better represented with in a language that can support the diverse nature of build tools, and has a less oddities associated with it, 1-based arrays? No thank you I’ll pass that up. Python is really a great a alternative, especially as we can it in bazels landscape. So one of the things i'm currently doing is designing a premake alternative based on python, here are the preliminaries:

https://gist.github.com/phr34k/564535c16b35e0c24780

Comments

Popular posts from this blog

The 8 Best U.S. Cities to Visit for a Quick Vacation

The best thing about visiting a new city is experiencing the thrill of adventure. From delicious food to rich history, there’s always something new to do. Whether you live close to these cities or you’re planning on making a trip to the USA, here's 8 of the best U.S. cities to visit on your next vacation (in no particular order): 1. Portland, Oregon As Oregon’s largest city, Portland has steadily been on the rise as a hotspot for food and beer connoisseurs. It’s nestled between the Columbia and Willamette Rivers with a stunning view of snowy Mount Hood which only adds to the thriving artistic culture. Portland is also home to beautiful parks, bridges and bike paths, making this city a top choice for outdoor adventurists. If you’re looking for more breathtaking escapades, Portland is nearby to a few national forests including Mount Hood National Forest and Gifford Pinchot National Forest. 2. Nashville, Tennessee Nashville rightfully owns

Roadtrip germany

On our way to a road-trip headed to Germany, Frankfurt amz Main. We had the chance to stop by for one of my favorite foods as a child: Curry-wurst with fries. This brings back so much memories where we'd often go spent the Christmas weeks in Germany, going over the Christmas markets/fairs and enjoying the hot curry-wurst from the stands with snaps or gluhwein. Of course during a road-trip one cannot stop to have a little lunch too, yummie pie and sandwhich

A visual approach to programming

It's been a while since I had opportunity to write anything, with the added misfortune of a hardware deficit but seemingly still had some backups to recover old older entries. Over the years I've taken a interest in language theory and in particular visual programming. Inspired by Unreal Kismet, CryEngine Flow and BitSquid Flow; I too set out myself of creating a similar environment. Primarily I just wanted a visual language as I believed they hold a certain productivity value. My initial designs were of a very object-orientated nature. However this approach just never felt right to me. It means you are going to increase post-deserialization time due to v-table fix-ups but it is also takes dexterity to maintain the code hierarchy required. So what I really wanted to do was design a system a) that reduces post-deserialization times to a bare minimum b) was not inheritance heavy c) small enough to be embeddable. On of the interesting methods that I considered was generating m