Endless Sky

imageLately, I’ve been playing a game called Endless Sky.  I’m thoroughly enjoying the game.   I don’t have the time right now (15 minutes) to go into the detail details, but, I’ll throw this out if you’re interested in the game – my evolution playing the game.

First Starting Out, with a Mortgage, I had to count the hops + calculate loan payments.  Only take jobs that I could do with a positive; if I had any cargo space left, look to which system I was going to, figure out Trade differences, and buy/sell to squeeze a few more cents out.   Run away from pirates!   If you die, you restart at the last planet you were at.  Pay of as much of the mortgage early as possible – I would pay off any extra bringing my prudent reserve down to 50k. 

Sell and upgrade to a newer ship whenever you can.  There’s no Buy/Sell penalty; you can go back.  and you can save the game.

Then as you get slightly larger ships, you have the ability to take multiple jobs to multiple sectors and really explore.   You can earn maybe 1 million per transit of the system using a … it looks like an SR71 blackbird, crew of 3?  Phoenix?  Beware of keeping your ship small enough so you don’t pay too much overhead in crew.

Then, you get to maybe 10million in net worth or so – you can get a really big ship, where the profit from a meager +100 credit/ton times 500tons of cargo gives you a nice $50k, in 4 hops.  At this point, missions / jobs don’t compare. 

This is where I am now.  Next up – I plan to get up to maybe 3 large ships (Behemoths) so I can earn > $500k per transaction.  As soon as I get there, I’m going to start buying a buttload of small fighters, and set myself up to have my own swarm.    I figure if I have 20 ships with missiles, any opposition will get 20 missiles at a time.   And lots of lasers.  Swarm.  Yep.

Then I’m going pirate hunting.    So I can demand Tribute Smile 

Here’s something NOT to do:   Do not run with a SR-71 + 6 berserkers.  The way that I had it set up, each berserker was about 1.5million.  When one of them got blown up and I didn’t realize it and I saved the game.. I lost 1.5 million.  I could not make that back up quickly.   So, yeah, save the swarming for later where 1-2 trades = 1 ship.

I did a  google sheet about ships, crew costs, trade potentials, DPS, etc.  Will share on request. 

Fun Things Lately

I don’t know when I’ll have time to do a proper update, so here’s a list-dump of geeky stuff I’ve been up to lately:

  • I started playing Cities: Skylines two days ago.  My brain is processing all kinds of patterns around roadways and pedestrian paths and stuff like that. 
    • imageimage
    • Left was my 6th or so city.. Right is my 8th or so city.  I keep trying to get things “perfect”. 
    • I made a chart of “Noise Polluting” vs “Ground Polluting”, and another chart of “Who wants to be near whom”. 
    • My best idea so far is a big Triangle with Commercial, Industry, and Residential at each corner.
  • My 3D printer broke, and then resurrected itself – there’s a loose power wire going to the extruder.  Its jiggered so that it works for now.
  • I volunteered to make a unique 3D print for a fundraiser basket.  I started off in blender, ended up doing it mostly in OpenJSCAD.  Here are the draft (left) and almost-final-but-slight-oops (right):
  • At work, not much is new.    Still working in an fairly simple MVC app, which deals with gathering user input, filling out PDF’s, and submitting information to various external services.
    • A little bit of PDF parsing and modification that I’d never done before.
    • A little bit of image-detection using some System.Drawing libraries (to detect if what the user uploaded was a valid image)
    • Mostly churning through smaller tasks in preparation for a release.
    • A lot of dealing with configuration migration problems.   Finding a way to export and import configurations between environments so that changes only need to be hand-typed once, and then can be copied from environment to environment. 
    • Next week I get to start investigating 3 services I’ve never talked to before.  Exciting!

Code for doing Explosions

Playing FortressCraft Evolved, I played with explosives.  I was not particularly happy with how the explosives were handled – and I was on vacation, and I had no internet access, so my creativity got into my brain and I tried writing code that would handle explosions better.

I shoved the code here:  https://github.com/sunnywiz/explosion2d

Here’s the basics of what I did:

  • I did this in 2D instead of 3D because easier to Console.WriteLine()
  • I created a TwoDSpace<T> so I could store an arbitrarily large number of T’s in a 2-D plane
  • I created a function which mapped out, given a center 0,0, what the distances were to each X,Y. 
    • I kept distances as squares, so I didn’t have to do square roots.
    • I did it with an initial max-radius, but the final version in my head would jit-figure out what it needs and save the resulting calculations in a static – it only needs to calculate it once.  Bigger explosion might need to calculate some more.  
  • That function can then call to a lambda, giving it:
    • the X,Y of the point that is being visited by the explosion
    • an array of parent points for the explosion and the ratios by which to weight them
  • The caller then says, “circle visit an explosion starting from here”, and keeps track of the force per X,Y that is being experienced.  The caller is responsible for all the code that says “Ores are hard, but dirt is soft”, for example, or “Diamond cannot be damaged by the explosion”
  • I think its pretty fast. O(r^2), which given its a 2D explosion in 2D, is expected. 

Fun Fun stuff.   I miss the days of mud coding.   You just don’t need to do explosions like these in real-world paid programming.

FortressCraft Evolved: Tier 1 Tour

I am continuing to thoroughly enjoy FortressCraft Evolved, an early-access game on Steam.   Just about every week, I wait in anticipation of the stuff that DJ Arcas is putting into the game.  This last time, it was an auto-excavator to automate creating large vertical shafts and a conveyor belt builder. 

The final vision of the game is something where there is a definite resource-gathering, base-building, automating story, combined with a Tower-Defense game as the local Fauna try to dispatch your base (and you).  

I’ve probably worked on 4 or 5 worlds now.  Every time, I learn of something I could do better, and then I have the desire to start over and be more “perfect”.   68 hours into the game now.  And I only just (last game) got down to Tier 2 technology, and there are three Tiers so far that I could play with.

Here’s a tour of my latest world, with my preferred way (so far) of doing things.  This is at Tier 1 level, probably 3-4 hours into the game.

Central Power Hub and Smelter

image
Back
image
Front
  • I’ve ended up putting a coal storage hopper under the Central Power Hub (CPH) (the thing with the laser shooting out of it).  The CPH draws coal from it to burn to create energy.
  • I then put a Pyrothermic Generator (PTG) next to the hopper.
  • Both the PTG and the CPH burn coal to generate energy, and charge up the battery (big block with a sphere in it).  It seems like between the two of them, they can generate energy at about 10 units per second?  (I’m averaging more like 7, but I’m not running it at max capacity yet).
  • This provides enough energy to run the smelter (front picture, “insert more ore”), as well as send enough power down the single laser to the rest of the base (only ore extractors right now).
  • The smelter takes in raw ore from the hopper below, and deposits the smelted bars into the hopper on the right (Front view).  If I need to leave for a while, the hopper on the right gets a conveyor leading to another hopper so I can keep collecting while I’m AFK without the system backing up.
  • A single conveyor belt brings the ores in.   This is enough for 4 types of ore, at the first upgraded level of drill motor (which means it generates 4 ore every N seconds instead of 2).  
    • At first, I though “meh, why build an upgraded drill motor when I can just build a 2nd extractor for cheaper”.  But, when I got to the 4x and 8x drill motors, I understood the wisdom of investing early.

Vertical Access Shaft

image
The Roof
image
Looking Down
image
Looking Up
image
Important Floor (Looking down, mid-fall)
  • My first worlds were wide more than they were tall.. at first.  What I found when digging down is, you very often hit an ore vein on the way down.  So now, I pretty much try to dig down rather than out, in search of ore. 
  • I rely on the grappling hook (F) to get me back up.  I use two torches on the roof to signify “which way is out” (its easy to get turned around) (See the “Looking Up” picture in more detail)
  • Now that we have falling damage (just this last week!), I have to build in ledges along the way to jump down to.  Note that once I have a battery at a level, I can jump and take the fall damage (energy loss) and then recharge from the battery.   I always put a torch under the ledge.
  • My guess is in the future, the grappling hook fire distance will be decreased and I’ll have to build room for lifts.
  • I line one side of the shaft with power, and the other side with conveyors.  Right now, I’m only at tier 1, so a single laser is enough going down, and a single conveyor is enough coming up.  So far, the most I’ve needed is 3 lasers and 2 conveyors, but I haven’t gotten very far.
  • Any level always has a “lip” around it, for safe landing purposes.

Floor / Level Exit from Shaft

image

  • I send power down into a battery, and then send it right back down the shaft again in the same vertical line.
  • Note that if ores block the laser’s path, sometimes I manually dig through the ore, or else I’ll shift the shaft to the left or right to accommodate. 
  • At higher power levels, I set up the lasers next to each other, and likewise a receiving bank of batteries.  Because the batteries share with each other, it evens out the power flow at that level.
  • I try to dig my conveyors one deep from the floor so I can walk over them with impunity.   I have to route them to the other side of the vertical shaft to keep them out of the way of the lasers.
  • I started to build lasers so that they were above my height, however, I’ve given up on that now.  Its just easier at ground height.

Coal Generation and PTG’s

image

  • I’ve found that for up to 5-6 PTG’s, I can have a single extractor generating coal onto a conveyor belt that then leads to the PTG’s. 
  • Long before I get to my 2nd or 3rd PTG, the coal generation has exceeded storage space and there’s plenty of coal for all the PTG’s.
  • It takes about 3 PTG’s to fuel the max capacity of 2 unaltered T1 lasers. (30 vs 32).   Until you build a second smelter, or an autoexcavator, you don’t even approach the halfway point of a single laser.
  • In this case, rather than send power to the coal extractor via laser, I just added a PTG right there.  This was the second vein of coal (having exhausted the 10-coal courtesy seam that the easy level gives you), and it was only 13-15 conveyors away from the base.

 

That’s all I have time to share at the moment.

I wanted to make an actual log of the first few hours of gameplay – like “what task was I trying to achieve” and how quickly I could achieve it – however, I have run out of time, so that level of documentation will have to wait.  What I can say is that the tasks changed very quickly, every 5-10 minutes.  Besides, this is version 1.14e, which is far from the finished version, so the task list will likely change a lot in the future.

I am still super-excited about this game, and I eagerly await the next drop (bombs!!!??) and the eventual mayhem when mobs become antagonistic.  (I hate camo-spiders already.  They scare the goobers out of me. sneaking like that.  Worse than creepers)

Fortresscraft Evolved

I have been playing a game called “Fortresscraft Evolved”, an early access (developer still working on it) game that my coworker Mike mentioned at lunch the other day.  I really enjoyed Minecraft, so I decided to give it a try.

It has given me an entirely new build order to investigate.   And, there’s a lot of “routing” to think about.   I’m loving it.  (Note, I’m specifically playing survival mode)

There’s a ton of tutorials out there.  I’m not going to do a tutorial.  But I am going to mention a bunch of things that I learned about, to calculate (for myself) an optimal build order.   Granted, “optimal” really means “suited to my liking”, and granted, the furthest I’ve gotten in the game is to automate coal retrieval, but, this is where my thoughts are at.

Here were my most recent questions:

Extractor Priority

You start off with 3 extractors, but there are 4 initial ores to think about – Coal, Tin, Copper, Iron.   Which one to ignore?

At first, this question was complicated by me not knowing about super dig.  (link,  scroll down to “The Extractor”).    Given superdig, where you convert 1 energy for 1 dig (run out of energy fast) for a x% possible resource gain, I can quickly get about 40-50 ores out of a vein with the power that my suit holds.

This means that ore extractors are more for having a “passive” gathering strategy – power dumped in now, yields ores later, that you can go pick up – and in the long term a more efficient one (more ore gets salvaged, less destroyed)

To determine what I want, I choose my end goal:  I want to

  • automate getting coal from the coal vein to the furnace to generate power.  (2 storage hoppers, and 40-50 conveyor belts)
  • put a storage hopper by each extractor (tin, copper, iron = 3 storage hoppers)
  • build an extra extractor so we have an extractor on each vein (1 extractor)

I could also assign a bonus goal of automating delivery of tin, copper, iron to the smelter – I think for that I’d need 200-300 conveyor belts, and +2 storage hoppers (one for holding the ore, one for holding the bars).  I’ll also need a bunch more torches.  And some suit upgrades.   Here’s the spreadsheet I put together:

image

So, it looks like Coal, Tin and Iron should should get your initial extractors; and then Copper when you build one for it later.    This is all prior to the search for Lithium, which I’ll make a separate spreadsheet for later, if I get that far.

* Note: this list is already out of date.  Watching the author play, turns out that PTG’s are better at power generation than CPH’s, so I should really add a PTG to the above list.

Ore Discovery

Unlike Minecraft, this game has an Ore pinger/scanner.  Problem (for now) is that it either pings (a) Unknown ores, or (b) Known Ores.   Once you discover an ore, to find a second vein of that kind of ore becomes problematical – too many positives.  The solution suggested online was, when searching for a new ore, ONLY research it after you have found a LARGE vein.    Note that you will probably find things in this order:

a) Snow, Rock, Dirt, Leaves, Trees, Stone
b) Coal, Tin, Copper, Rubble
c) Deep Stone  (heh.  Nice one, DJ – pisses me off every time)
d) Iron.

Vertical Navigation / Getting to the Ores

My first attempt, I started building the standard “stairs” down to get to an ore.  It took a while.   I did not know about the grappling hook.  Which might get nerfed in the future.

Second attempt was to build an elevator shaft, but have a ledge at the top, so that I could grapple my way out of the shaft.    I would strategically place lights so that if I’m facing a light, that means it’s the way out.    However, I was being pretty at things, and that took a while.

Third attempt, I used super dig (ctrl-right) and zoom (Z) to my advantage

  • Do not dig straight down unless there was a ceiling above me that I could grapple back up to.  Instead, try to dig at an angle.
  • After locating an sizable vein of an ore, either super-dig, or hold down the dig key, and just dig towards that ore, not being pretty about it.  The idea is to be able to run/fall down to the ore.
  • Build a “wall” at the entrance of the hole to grapple back up to.
  • On subsequent visits to the ore, clean out annoying blocks and add in some lights on the way.
  • Make it pretty when doing conveyor belts.
  • Use a hill as a natural backdrop to grapple back up to.

It also appears that as you are falling, you can still control your fall using WASD.   Watching the main developer DjArcas play on twitch, he builds these large chevron beams (probably using build-to-me Ctrl-Left) that he somehow jumps down onto (without missing).   (If you watch the episode from 10/25/2014, at about 2h:30m or so, he’s building things / starting this world out)

If you are lucky enough to find a large cavern, dude, You’re in luck. 

 

Ok, enough for this blog post.   I am enjoying the game, its got a nice build order story and some nice layout challenges for laying out conveyors and power and stuff.    Recommend playing, I’ve gotten a good 10 hours of play out of it so far (and I think its $9 or so).

Firefall– I am enjoying this game!

In the realm of geeky, one of the things I am doing that I have not talked about here is .. playing the closed beta of Firefall

Last night my wife gave me permission to upgrade to “Commander” level in my investment – which gives me a lot of in-game currency to buy the “pay-for” builds, and a Motorcycle to get around the map faster with. (they call them LGV’s)    On a $/hr enjoyed ratio, I’ve already enjoyed this game enough to justify that investment.  

image

Last night, after the purchase, I started to get serious.  I’m building a spreadsheet of what kinds of resources I need to keep my eye out for, in order to build the “better” gear.   

My goal:  to have decent Tier-II gear so I can solo a Light Personal Thumper

A quick crash course to frame this goal better:

  • Not my picture, this is taken from a forum post about a proposal. I thought it was very cute.There are 5 major resources, with 3 sub-species each.   (See Xls Screenshot above)
  • When you mine them, they come in different qualities.  
  • When you build components, the quality of the material you put in affects the stats of the item you build.  So if I want more damage from my Heavy Turret II, I need to use a better quality Conductive Metal.   
  • If I’m short on Conductive Metals, I could use another metal.  However, a high quality Computational Metal used instead of a Conductive Metal would yield a lower quality.  
  • To get resources, mostly you “mine” them using a “Thumper
    • You run around the map, scanning the ground with something called a “Scan Hammer”.  It tells you what the concentrations of stuff are at the spot you’re standing.    Concentrations shift over time.
    • Pick a spot, and call down a specific size of thumper.  
    • The thumpers supposedly annoy the surrounding fauna and they come attack the thumper.  Your job is to defend the thumper so it doesn’t get down to integrity=0 and blow up.
    • The resources mined are shared amongst the people who helped defend it in some manner.
    • The smallest thumper (Stock Personal) is easy to solo.  I can send it back at Integrity = 80% or so.
    • The next size up is the Light Personal Thumper, and I cannot solo that.   I can’t kill them fast enough.

There’s other stuff to do around the game as well:

  • There’s an overall story line of an alien invasion (“Chosen”) with a different atmosphere (“Melding?”) with zombies (“Tortured Souls”) and they occasionally try to take over human territory (“Drop Ships, Incursions”) which makes it quite annoying to try to mine an area.   If they take over an area for too long, they convert the atmosphere there and its effectively “lost”.  (I don’t know if it can ever be taken back – probably not yet, but maybe in the future)
  • You can fly around the map using a glider.  Gliders do exactly that: let you glide from a high elevation to a lower elevation – the higher off you start, the longer you can glide.   There are achievements to unlock here (distances, sight seeing, death from above, etc)
  • There are roads that can be used to ride your motorcycle (“Light Ground Vehicle”) between places at high speed (which is quite fun).
  • There is PVP that can be queued for (not my cup of tea)
  • There’s something called a “Melding Tornado” which involves some dimensional shifting monster spawing blah blah dropping resource blah blah stuff.

A lot of the stuff (Chosen, Tornado) is pretty difficult to solo, however, the population is pretty quick to respond if you ask..  once you get two or three people working on it, most of the tasks are doable.

Things I like about this game:

  • I like that the difference between a newbie (stock armor, no enhancements) and a veteran (T2 armor and above) is in the same order of magnitude – unlike most other games.    The monsters are the same for both – the veterans can handle more of them at a time.
  • Amazing sound.   Explode a grenade and listen to the echo from the walls.
  • Good Graphics
  • FPS Shoot’em’up adrenaline
  • Jumpjets are fun
  • Good people playing the game.  That will change when it goes public, but right now its awesome.
  • The battleframes are different enough in styles of play – each one has its own fun. 

Okay, so done. This is what I’ve been playing for the last month or so … it replaced “European Truck Driving Simulator” as my go-to game.   I hope I’ll be playing it for at least another month or two.

image

Almost all the images in this post are borrowed from other resources, which I have linked them to.  This last one is me using GiantManiac’s thumper as a photo shoot.

Minecraft #1/2: What I love about Minecraft

imageThe last two weeks I’ve been spending every free waking hour (and some I should not have spent) playing Minecraft.  A lot of people don’t get it.. and that’s okay.  I have a lot of thoughts floating in my head, so here’s my geeky post.  #TrueToSelf  (image: view of HobbitHole v2.0 – showing tree farm, animal farm, sugar cane and wheat)

What I love about Minecraft – Background

Back in the 90’s, I coded the equivalent of BCL’s on an LPMUD (related: LPC programming language) named Vincent’s Hollow.  (Its dead now – the software doesn’t run on any modern O/S).  Some of these included: the standard monster model, weapons, armor, statistics/enchantments, talk and chat system, email client, etc.   It was the most fun I ever had coding in my life.   (In addition to learning OOP and how to build amazing reusable systems, I also learned what it takes to lead (herd) a group of volunteer programmers, teach people to code, and in retrospect, the most important, to love people for who they are.)

I also loved the games NetHack (well, Moria to be exact) and Ultima 5.  They had a top-down game play that worked well for me – using my imagination to see what that world looked like. It was seamless, I did not see blocks, I saw beaches and woods and paths and stuff. 

As I proceeded in my paid career.. every new technology I learned – and I’m dating myself here — Clipper, SQL, Perl, C#/.Net, Signal/R, Mongo – I dream[ed] of writing a Mud with it.  It has never truly left me.  (related: when I saw WoW, it raised the bar so high that I could never touch it.  The dreams subsided for a while) (related link: my 2004 attempt at a mudding livejournal.  Precious.) 

While being a Mud “director”, I also spent a lot of time thinking about where gameplay could go.  I saw people get up to the level max of 20, and then.. then what?  Not everybody wanted to code.   So I started designing what I called “Frontier Land”, where you could either gather resources yourself to build castles and civilizations, or rope the locals into labor (if you paid them well enough) to do a lot of that for you, so that the competition could be taken to “who has the coolest most successful city”.    It was going to be a randomly generated world, with forests, villagers, mountains, monsters, etc.  There was going to be a monster mode where you could “become” a monster (not leaving a certain area) to go and kill players.  There was going to be a Karma mode where your actions to help or hurt other people (never liked griefers) changed your “luck” which stayed with your soul.. and to create a character, you had to be born into the world (to parents), when that character died, it was gone, but your soul went back to the lobby.

Enter Minecraft

I look in the game, and what do I see..

  • A blocky, unlimited, randomly generated world
  • Where you can build systems and processes and stuff
  • With a client and server model, multi-player

It definitely taps into several of my core patterns.  It is feeding a part of me that’s been hungry for a while.   Right now I’m still exploring it as a game, but there’s a part of me that is looking at a bigger picture.

Aside: Minecraft also feeds my love of LEGO which is the predecessor to blocky worlds for me.  When I was 12, I used to try to recreate the dioramas of canyons where Wile E. Coyote would chase the Roadrunner using LEGO.

So What Now?

  1. I have a whole other post brewing about  a “build” order of adventures in Minecraft.   (It was going to be part of this post, but single-responsibility, KISS, so I’m refactoring it out to its own class… err, post.)
  2. My dreams of writing an awesome mud(lib) (again).. now are transformed.  I want it to look like Minecraft.   I could do it in C#, and Signal/R, and .. and.. and.. oh yeah, only at the opportunity cost of everything else in my life.    Darn it.   #LotteryNowDangit
  3. I have several adventures left to experience in Minecraft – carts, rails, mapping, lava, villages, and cats is the short list.

So What Now — Second thought – transformed

Why build new when there’s already something that works?  What if Minecraft started allowing for Lua scripting .. so people could write behaviors into the world in creative mode… building some amazing worlds, games, adventures.. for adventure mode?

It could inspire a gazillion kids into their first programs.. like Muds did for my generation of tweens.

Not to mention recreate C-Robots – program your monsters to a fight to the death.. arena.. with Lava flows to avoid.

In Conclusion

I’ll put in a link to the adventure build order post when I get that done.   I’m pretty sure my wife is going to wake up any moment now, and I have promised this day to making our house better.   And… POST!