Saturday, September 20, 2014

Testing

So this occurred awhile ago, but I felt like showing off a bit, as well as alleviating any fears people might have about 'yet another power system.'

Unfortunately, I do not have a screen shot for a before, and you'll just have to take my word for this, but a single dimension usually runs around 4-6ms / tick.

What is this, you might ask?  This is a 10x10x10 cube of wiring, all transmitting power in every direction.  The pink cubes at the bottom left a re debug blocks that simply generate power, while the blocks in the top right do the same, but consume it.

What this picture actually shows is 1000 tile entities all distributing power in every direction, every tick, and only adding ~.5 ms to the tick time.  The algorithm also does not allocate any memory while it is running, adding no overhead due to Garbage Collection.  To drop TPS below 20, the mean tick time needs to go over 50 ms/tick.

Multiplayer

As you may have noticed, there is another player in that picture.  I also tested the Assistants system, to allow other players to interface/remove your machines.  Additionally, packet sending, GUIs, etc.

It's all there, and it all works.  Which is nice, because it should mean fewer surprises in the future.



I'm in the final stretch guys.  Just a few more weeks (and one long conversion weekend) and I should have a 1.7.10 alpha.

Thursday, September 18, 2014

News!

Hey guys, just started up grad school again, so my time is going to be whittled away towards homework and other things.  Regardless, I still have progress to report.

Configs!

That's right!  I promised configurability, and now you've got it.  I implemented a registration system to easily register class constants to pull their values from the Femtocraft configuration file.  This means that you can alter things like power usage, ticks to craft, or other values.

I generalized the configurable loading system so that it will even work with instances of classes.  Remember that flexible tech tree plotting algorithm? I'll give you three guesses to how I combined the two.

If you guessed: fully configurable technology tree, you guessed right!

That's right folks.  By default, Femtocraft will generate a technology tree with dependencies, names, recipe hooks, and other things. Set a single false to true in the configs, and instead Femtocraft will parse the Technology section and build up a list of Technology instances from that.  Yes, this means new Technology nodes can be made in the tech tree from configs alone.

Some of you may be worried about how built-in Femtocraft tiles or systems might break if their dependant technologies are removed, but due to the configurability of the classes, the names of technologies that the machines look for can easily be swapped out in the configuration files.



Also, to support more than simple text rendering for Technologies, I also wrote a parsing system.  Mod pack makers or others have a sub-system for rendering things such as Crafting Grids, Assembler Recipe, Temporal Recipe, or Dimensional Recipes anywhere in the description text.



Soon, I will also port over the Femtocraft crafting recipes and other defaults to load from configs as well, offering full customizability to aspiring tinkerers.

Work has not stopped, guys!  Stay tuned for more updates!