Thursday, October 23, 2014

Major Hurdle Vaulted


That's right folks.  1.7.10.

Just have to do some last bug fixing, but so far packets work.  Sound system does not.  Oh well, that never really worked well anyways, so will just have to figure out the new one.

But it feels so good having it ported now.  No more block or item ids to track.  Netty message system makes packets so much nicer.

Now we're literally on the home stretch.

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!

Saturday, August 9, 2014

Hi Reddit

So I guess no more hiding for me.

As such, this is both an acknowledgement post and a miniature update.

I have just finished my summer job, so time has opened up again.  I am continuing to work on this, and am slowly but surely whittling down all the little odds and ends. 

I'm not certain whether to release this as 1.6.4, or to spend a couple days updating to 1.7.10 before the first release.  The issue there being, 1.6.4 is dying off and almost everything has gone on to 1.7.*.  If I release 1.6.4, I can't guarantee many fixes/updates to that version, as I'm probably going to try and update it asap.  However, if I don't release a 1.6.4 version, there are still several large packs that haven't updated yet, and I miss potential users there.  Oh well, something to think about for the future.

Otherwise, I'll be updating this some more in the near future with all the extra things I have been working on but just haven't found the time to format together into a post.


Sunday, June 8, 2014

The Status

I'm officially a Programmer TA for the NHSGA Program at Carnegie Mellon this summer.  Yay!

This also means that the job comes first.  However, I want to be true to myself and continue to work on this.  Unfortunately, due to moving out / moving in, and recent family matters...I haven't touched this code in the last 3 weeks.  However, there's actually not all that much left to do, if I can crank it out.

I still am planning for an Alpha release by the end of this month.  That means, everything below works.  Maybe not well, maybe not perfectly, the design is likely unfinished and technology / decomposition trees are likely to change...but it will be out.

Here's an update on what I have been able to work on though.

finished
in progress
unfinished

 

Research

Gui
  • Graphing Algorithm
 TileEntities -
  • Research Console
    • For putting research materials into, and performing the actual work of researching.
  • Research Computer
    • Allows players to view their current Technologies, and see what is required to advance into other areas.
Items -
  • Portable Computer
    • Portable research computer

 

Industry 

Deconstruction/Reconstruction
  • Rebalance  
Systems
  • Assembler Recipes
  • Time Recipes
  • Dimension Recipes

Ores -
  • Titanium
  • Platinum
  • Farenite
  • Malenite - Nether
TileEntities -
  • Encoder
  • Reconstructor (Micro, Nano, Femto)
  • Deconstructor (Micro, Nano, Femto)
  • Furnace (Micro, Nano, Femto)
  • Crystallizer (Micro, Nano, Femto) Being moved to mining submodule
  • Horologe (Nano, Femto)
  • Entangler (Nano, Femto)
  • Vacuum Tube (discriminating)
  • Vacuum Hub
  • Suction Pipe
  • Compression Chest (Micro, Nano, Femto) Being moved to storage/utility submodule
Items -
  • Ores
  • Schematics
  • Deconstruction/Reconstruction materials
  • Interface Devices (Micro, Nano, Femto)

 

Power

  Algorithm -
  • Performance enhancements
  • Event-based connections for TileEntities
 Systems -
  • Fission Reactor
  • Fusion Reactor/Plasma

Ores -
  • Thorium
TileEntities
  • Cable (Micro, Nano, Femto)
  • MicroCube
  • MicroEngine
  • Atmospheric Charging Base (Micro)
  • Atmospheric Charging Coil (Micro)
  • Atmospheric Charging Cap (Micro)
  • Orbital Equalizer (Micro <-> Nano)
  • NanoCube Frame
  • NanoCube Port
  • Geothermal Charging Coil (Nano)
  • Geothermal Charging Base (Nano)
  • Fission Reactor Core (Nano)
  • Fission Reactor Housing (Nano)
  • Null Energy Equalizer (Nano <-> Femto)
  • FemtoCube Frame
  • FemtoCube Port
  • FemtoCube Chassis
  • Stellarator Core (Femto)
  • Stellarator Housing (Femto)
  • Stellarator Focus (Femto)
  • Stellarator Optical Maser (Femto)
  • Plasma Turbine (Femto)
  • Plasma Condenser (Femto)
  • Plasma Vent (Femto)

Items
  • Micro
  • Nano
  • Femto

Sunday, May 4, 2014

Progress Update 2


 It's been awhile.  Finishing the semester and all that.  Job for this summer is coming through, which means it's extremely likely I'll be TA-ing at the NHSGA program at Carnegie Mellon this summer!  Yay!  However, it also means that I won't be able to work much on this for a large chunk of the summer.  I'll likely be heading out around the second week of June, which means that my time frame will move to to compensate.  Hopefully, I can finish the rest of the basics this month, leaving June for bug testing/catching.  Depending on the timeline, I may release earlier than that.

This will be a short post so I can get back to work.


finished
in progress
unfinished

 

Research

Gui
  • Graphing Algorithm
 TileEntities -
  • Research Console
    • For putting research materials into, and performing the actual work of researching.
  • Research Computer
    • Allows players to view their current Technologies, and see what is required to advance into other areas.
Items -
  • Portable Computer
    • Portable research computer

 

Industry 

Deconstruction/Reconstruction
  • Rebalance  
Systems
  • Assembler Recipes
  • Time Recipes
  • Dimension Recipes

Ores -
  • Titanium
  • Platinum
  • Farenite
  • Malenite - Nether
TileEntities -
  • Encoder
  • Reconstructor (Micro, Nano, Femto)
  • Deconstructor (Micro, Nano, Femto)
  • Furnace (Micro, Nano, Femto)
  • Crystallizer (Micro, Nano, Femto) Being moved to mining submodule
  • Horologe (Nano, Femto)
  • Entangler (Nano, Femto)
  • Vacuum Tube (discriminating)
  • Vacuum Hub
  • Suction Pipe
  • Compression Chest (Micro, Nano, Femto) Being moved to storage/utility submodule
Items -
  • Ores
  • Schematics
  • Deconstruction/Reconstruction materials
  • Interface Devices (Micro, Nano, Femto)

 

Power

  Algorithm -
  • Performance enhancements
  • Event-based connections for TileEntities
 Systems -
  • Fission Reactor
  • Fusion Reactor/Plasma

Ores -
  • Thorium
TileEntities
  • Cable (Micro, Nano, Femto)
  • MicroCube
  • MicroEngine
  • Atmospheric Charging Base (Micro)
  • Atmospheric Charging Coil (Micro)
  • Atmospheric Charging Cap (Micro)
  • Orbital Equalizer (Micro <-> Nano)
  • NanoCube Frame
  • NanoCube Port
  • Geothermal Charging Coil (Nano)
  • Geothermal Charging Base (Nano)
  • Fission Reactor Core (Nano)
  • Fission Reactor Housing (Nano)
  • Null Energy Equalizer (Nano <-> Femto)
  • FemtoCube Frame
  • FemtoCube Port
  • FemtoCube Chassis
  • Stellarator Core (Femto)
  • Stellarator Housing (Femto)
  • Stellarator Focus (Femto)
  • Stellarator Optical Maser (Femto)
  • Plasma Turbine (Femto)
  • Plasma Condenser (Femto)
  • Plasma Vent (Femto)

Items
  • Micro
  • Nano
  • Femto

Tuesday, April 22, 2014

Technology Tree Cont'd

Well that was fun!

For the most part, the algorithm is finished.  It may require a few tweaks here and there, and will ultimately be slightly customizable by the user in question (i.e. choosing x and y padding), but it will get the job done splendidly.

Well, I won't keep you in the dark any longer.  Bear in mind that this is generated on a per-user basis, however, it attempts to minimize # of connections, then total distance of lines, so it's very likely that most (if not all) of the trees end up looking like this one.

Any node without an icon is simply that - I just havn't gotten around to making art for everything yet.  The color of the line corresponds to the tech of the Technology it's leading towards.

Micro
Nano
Femto
Temporal
Dimensional

Voila.
Hmm...  looking at this now, it might be useful to prune unnecessary prerequisites.

 And here it is, pruned.