Author Topic: The Nanocaust  (Read 895 times)

Offline BadgerBadger

  • Hero Member
  • *****
  • Posts: 580
  • BadgerBadgerBadgerBadger
The Nanocaust
« on: July 18, 2017, 10:58:00 AM »
Florid Description: In some far flung corner of the galaxy, a plague of nanobots has arisen. Some say they were a last ditch effort to destroy the AI from renegade human scientists; others say they were a forgotten weapon from a long dead race. But wherever they came from, these nanobots are an insatiable plague. They will conquer planet after planet with their zombification weapons, and once they conquer a planet they will continue to build more of their race. If you've ever wondered what the AI dealing with when it wasn't fighting you, well......

Design Goal: I wanted a galaxy that felt more like a "galaxy" with lots of things going on, and less like a game board between you and the AI. I also felt like the notion that the AI isn't worried about humanity at the start would make more sense if the game contained things that could actually scare the AI. I was also inspired by https://bugtracker.arcengames.com/view.php?id=9936, and the name is borrowed from the book Century Rain.

Implementation: If you enable the Nanocaust special faction, one Nanbot Construction Center is seeded in the galaxy. It begins spawning a nanobot fleet with zombifying weapons. Once the nanobots clear one planet, they build another Nanobot Construction Center to produce even more nanobots, and then move on to the next planet.

At the moment the nanobots will conquer the galaxy outright in about 25 minutes. They need a lot of tuning to make them "Strong, but not too strong", and there are a bunch of cool additional features I have in mind (for example, if you can hack the original nanobot construction center, the nanobots will become you allies; this would be an alternative win condition). But since I have ironed out the initial bugs, I felt it was concrete enough to share my idea and ask for feedback. If people are interested in trying it out for themselves I can post the code.

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 30,655
Re: The Nanocaust
« Reply #1 on: July 18, 2017, 11:01:24 AM »
It certainly sounds fascinating!
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline BadgerBadger

  • Hero Member
  • *****
  • Posts: 580
  • BadgerBadgerBadgerBadger
Re: The Nanocaust
« Reply #2 on: July 18, 2017, 11:43:16 AM »
I would be happy to take advice on scope (ie how impactful the mode is in gameplay); for example, the Nanocaust could be constrained to a small corner of the galaxy until you disturb it, and only then does it really start to spread. I was also considering putting a cap on the number of planets the Nanocaust will try to conquer (for example, it starts only wanting to take 3 planets, and then every 20 minutes it will be willing to take an additional planet).

Does this sort of thing mesh will with the gameplay idioms you have in mind for AIW2? It is your game, and I would prefer anything I do to feel like it belongs in the same universe.

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 30,655
Re: The Nanocaust
« Reply #3 on: July 18, 2017, 01:16:04 PM »
That's really going to be more up to Keith -- from a gameplay standpoint, since the second kickstarter this is now his game.  I'm here for technical pieces with the front-end regarding art and how you interact with units and all that sort of thing, but I'm not involved at all in the actual game design process on this. 

We just can't do the "two cooks" thing (we learned that years ago), and with the reduced budget it was clear I'd need to support myself in some other fashion.  And at any rate, he's been the king of the AI War universe since version 4.0 or so of the original, and it was clear that people really loved what he was doing in a lot of respects more than what I'd done previously (in terms of how he refined things and how the later-stage details shook out), so that division of labor made sense.

Right now he's traveling because of some family stuff, and so won't be commenting on much this week.  I'll be out next week, as it happens, heh.  But then we're both around and in town for the duration until 1.0.

I'll be very curious to hear his thoughts on your mechanics as well, and if/how they get integrated into the game (as a Conduct, maybe)?
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline BadgerBadger

  • Hero Member
  • *****
  • Posts: 580
  • BadgerBadgerBadgerBadger
Re: The Nanocaust
« Reply #4 on: July 18, 2017, 01:43:18 PM »
Fair enough, I'll solicit Keith's opinion when he's back.

It's currently implemented as a Special Faction. The game start screen automatically shows all the Factions defined in the XML which is really convenient. The modding capabilities of the game are pretty great, and Keith deserves kudos for how easy it is to do cool and powerful things.

I modeled the Nanobot Constructor after the Dyson Sphere (so what it makes are Drones that spawn according to the build speed specified by the XML). For the nanobot ships, I made unique ships in the XML, and their guns use a DeathEffect  method I wrote. A Special Faction has a DoLongRangePlanning function (which is how the nanobots figure out what to attack next). To figure out how to place new Nanobot Constructors, the PerSimStep faction logic checks whether there are any planets that have been conquered by the Nanobots (aka the planets have A. a lot of nanobot fleet strength and B. minimal AI/human strength). It then calls GameEntity.CreateNew() on the Nanobot Constructor.


Offline Draco18s

  • Resident Velociraptor
  • Core Member Mark IV
  • *****
  • Posts: 3,905
Re: The Nanocaust
« Reply #5 on: July 18, 2017, 02:01:28 PM »
That's really going to be more up to Keith -- from a gameplay standpoint, since the second kickstarter this is now his game.  I'm here for technical pieces with the front-end regarding art and how you interact with units and all that sort of thing, but I'm not involved at all in the actual game design process on this. 

Just so you know, Chris, I really liked the late 3.x versions. Sure, there were balance problems or whatnot, but I liked the game. You were doing a great job with it on your own even if Keith has taken it to new heights. I don't think he'd have done as well without what you started.

So I wouldn't be so quick to discount your own opinion. If there's a faction you think might be neat, nothing is stopping you from with talking about it and having someone else (Keith, Badger, me...) from picking it up or heck, even working on it yourself like any other modder would.

Obviously you have your own project that comes first, but we still respect your opinion about AIW.

:)

Offline x4000

  • Chris Park, Arcen Games Founder and Lead Designer
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 30,655
Re: The Nanocaust
« Reply #6 on: July 18, 2017, 02:31:23 PM »
Cheers guys. :)

On the special factions thing, that of course makes perfect sense and I'm glad that worked!

Regarding my role and the 3.x days, etc -- certainly I definitely intend to give my opinions and so forth, and I don't plan on being completely absent or something like that.  However, as some of the base is maturing right now, my meddling too much at this particular point would be counterproductive for Keith, I think.  If that makes sense?  If I'd had Keith trying to design the 4.0+ stuff when I was still working on 1.0 or 2.0 back in the day, then that would have been an absolute disaster.  He and I worked together some on 3.x, with me being more the main, and then on 4.0 it was more of a split, and then after that it was pretty much all him.

Other people (anybody) saying things or suggesting things is awesome at this point already, but I have to be a bit careful what I say because I don't want to accidentally rock the boat in a way that isn't helpful for the process, if that makes sense.  I do put little notes on things like "I like this idea someone has" or "I think this one should wait" or things of that nature, but I try not to be a bottleneck in the middle of the discussion or push Keith toward specific features pre-1.0.

I would just be a really, really bad producer if I didn't let the lead designer actually do his thing at this stage in the game.  He has my respect and confidence, and so I'm trying to let him get past a certain point before I really start giving too much unsolicited feedback. Everything I've seen thus far has been proceeding well anyway, some GUI things aside which he and I have discussed at length, and which have since been altered (two builds ago).  That was more from a technical framework standpoint and how that merges into the variety of user experiences, though, so that was an okay thing for a producer to do without being a micromanager. :)

All things in their own time!
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline BadgerBadger

  • Hero Member
  • *****
  • Posts: 580
  • BadgerBadgerBadgerBadger
Re: The Nanocaust
« Reply #7 on: July 24, 2017, 04:52:53 PM »
So the current behaviour is as follows.

A single nanobot constructor is seeded randomly onto the map when you enable the special faction. A  Constructor produces drone ships like the Dyson Sphere, and once a constructor has been on the map for "long enough" it will upgrade into a more powerful form that produces stronger ships.

Every "short time interval", a constructor will send a few ships to attack a randomly chosen adjacent non-Nanobot world (if all the adjoining worlds are controlled by Nanobots, the ships on a planet just chill).

Every "longer time interval", the Nanobots will frenzy. Some ships are taken from each nanobot planet and they all go to attack a nearby planet. If they destroy the human or AI defenses, a new Constructor will be built and the controller will be destroyed (so the AI knows to try to recapture it).

There are a number of cool enhancements that can be made (periodic "Kill the King" frenzies that just bum rush either the AI master controller or the Ark. Making the Nanocaust hackable. Having a mini-frenzy whenever a constructor is destroyed. Adding some additional Scary nanobot ships), but I wanted to sound people (cough Keith cough) as to what they think of this as a basic approach/whether this idea sounds good to them anyway.

Offline keith.lamothe

  • Arcen Games Staff
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,257
Re: The Nanocaust
« Reply #8 on: July 24, 2017, 05:18:32 PM »
Sounds great to me :)
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline BadgerBadger

  • Hero Member
  • *****
  • Posts: 580
  • BadgerBadgerBadgerBadger
Re: The Nanocaust
« Reply #9 on: July 24, 2017, 11:39:31 PM »
For your testing pleasure, I give you.... The Nanocaust!

I'm uploading a tarball with 7 xml files and one .cs file, which contains the faction in a currently working and running state. The forum only allows four attachments at a time, hence the requirement for a tarball (On windows, I think WinZip or 7zip should handle a tarball). I applied these files to a build of .502 and it seemed to work fine.

The xml files are named to let you know which directory in the XML code to put it in AIWar2/GameData/Configuration/<correct directory based on xml file name>.

The Nanocaust.cs file should go in AIWarExternalCode/src/SpecialFactions, then you will need to recompile the external code.

Fair warning, the Nanocaust probably won't interfere with the first hour or two of gameplay at the moment. So if you just turn it on and play without cheats or map reveal, you may not even realize it is there. But you'll find out eventually ;-)

Offline keith.lamothe

  • Arcen Games Staff
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,257
Re: The Nanocaust
« Reply #10 on: July 25, 2017, 01:08:32 PM »
(sound of several trillion microscopic synthesizers humming "The Imperial March" in unison)

https://youtu.be/Sij3mK1O454



Many thanks :)
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline BadgerBadger

  • Hero Member
  • *****
  • Posts: 580
  • BadgerBadgerBadgerBadger
Re: The Nanocaust
« Reply #11 on: July 27, 2017, 01:04:34 PM »
For Keith, I present some nanocaust improvements. Code is tidied up in many places and should be more satisfactory. Tags and FInts are used now (fancy!). Some balance improvements; frenzies will start small but grow when they fail to capture a planet.

The Nanocaust now will carve out a small but steadliy growing empire for itself; it could have perhaps 6 or 7 planets per hour instead of "every planet in an hour", which is a much more sensible growth rate.

Also the initially spawned Constructor is now named the Hive; this will make it easier to implement Hacking later.
« Last Edit: July 27, 2017, 01:07:42 PM by BadgerBadger »

Offline keith.lamothe

  • Arcen Games Staff
  • Administrator
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,257
Re: The Nanocaust
« Reply #12 on: July 27, 2017, 01:34:48 PM »
For Keith, I present some nanocaust improvements.
Thanks, just tested those and they're in for 0.504 :)

I added an extra chunk of code to the game-second-1 logic to kill any guardians present on the planet, as otherwise if the hive is seeded on a MkIV planet it's likely to get killed before it can take over that first planet.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline BadgerBadger

  • Hero Member
  • *****
  • Posts: 580
  • BadgerBadgerBadgerBadger
Re: The Nanocaust
« Reply #13 on: July 27, 2017, 02:12:48 PM »
Thanks! The smiting of guardians is a great tweak and will hopefully let me simplify some of my early game logic. Thanks!

Offline BadgerBadger

  • Hero Member
  • *****
  • Posts: 580
  • BadgerBadgerBadgerBadger
Re: The Nanocaust
« Reply #14 on: July 27, 2017, 11:33:13 PM »
Quick question: if I'm not inside the Nanocaust code, how can I refer to the data inside the SpecialFaction_Nanocaust.Instance? I'm trying to implement hacking the Nanobot Hive, and I think the most efficient way to do this is to set a flag in the NanocaustMgr that can be checked PerSimStem.