Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 25 26 [27] 28 29 ... 31

Author Topic: Cyberdorf Systems: Dwarfputing an A.I. (0.1.1 Alpha)  (Read 112930 times)

BloodBeard

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #390 on: January 29, 2012, 11:55:36 pm »

Update:
Spoiler (click to show/hide)

And the start of another area of machinery:
Spoiler (click to show/hide)

I've reduced the amount of doors I use to only the bare essentials after discovering the impact on FPS that constructions appear to have. I didn't think it would be as large as it has been, but screwpumps especially seem to hit hard even if they're not doing anything. Before gearing my region file for the 0.1 Alpha release I was getting about 20 FPS, and even though the final release had water in the channels, a running windmill farm and half a dozen more dwarves, I was getting a good 25-26 FPS simply because I removed the pumps and things from the unused AI display mechanics.

I'm considering deconstructing all of them and keeping the parts stacked nearby, only to be rebuilt when I want to test something or make a release. Mechanism linking is the part that takes the longest and if I can squeeze out an additional 5-10 FPS I think it might be worth it. Right now i'm running at 17 FPS and that drops to around 12 when all my dwarves are working. It's pretty crazy considering my region file is only 14.1 mb. That's less then a standard umembarked region.

Aaaaaaaaaaaaargh. Why FPS? WHY? I'd rather this project to meet its doom from my overreaching but I don't know if I can go much further knowing that I haven't even scrapped the surface and already my speed 0 dwarves have lost their mojo. I must contemplate...

ashton1993

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #391 on: January 30, 2012, 06:12:18 pm »

Well the new DF release is supposed to achieve higher frame rates, when that releases in a few weeks will old saves be compatible?
Logged
Wow, that's actually really friggin' awesome looking.
That is brilliant.
That is hilarious, Ashton. I love it.
OMG yes!!!  Thank you!!!

Totally not a narcissist.

BloodBeard

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #392 on: January 31, 2012, 02:11:42 am »

Well the new DF release is supposed to achieve higher frame rates, when that releases in a few weeks will old saves be compatible?

I wouldn't count on it. Even if it is faster I doubt it would be a significant gain, really the best thing I can do is get a computer that isnt a dinosaur.  :P

I'm going to try deconstructing the pumps and see what I get.

BloodBeard

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #393 on: January 31, 2012, 08:16:07 pm »

Deconstructing the pumps got me up from 17 to 21 FPS. A little less then what I was expecting, and my hopes would still be pretty low of being able to get things done in a timely fashion if I didn't realize the frames I could be getting if I set my G_FPS_CAP to even lower then 20. I put it at 1, and though it made nagivating my fort when paused a hassel I got a nice 33 FPS when my dwarves were idle and around the mid 20's when working. With double the frames I was getting before i've stayed off the inevitable for a good while.

Now onto the fun part, designing the logic for all the new bits of machinery.  :'(

p.s. Doortufts' created wealth when all the pumps were built was 803 million turtles.  :-X

BloodBeard

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #394 on: February 01, 2012, 02:37:42 pm »

This technical update brought to you by Aperturist !!SCIENCE!!

(I thought it was clever)

The text display works like this:

W E L C O M E _ T O _ T H E _ M A C H I N E . _ _ _ _ _ _ _ _ _

After each letter is typed it automatically advances to the next tile with each tile  being controlled by 15 pressure plates. Word recognition however looks like this:

W E L C O M E
T O _ _ _ _ _
T H E _ _ _ _
M A C H I N E
_ _ _ _ _ _ _


It's very similar in that after each letter is typed it advances to the next tile, except when space is pressed it bypasses any unused tiles of the maximum characters-per-word limit of 7 and moves on to the next word. Each of these tiles is made up of 30+ pressure plate-pump combinations so there is a lot of wasted space when typing short words, but it makes for recognizing words MUCH easier. There's only 5 possible positions a word can be in that need to be taken into account, meaning I only need 5 pressure plate-pump combinations per word.

Word rec will also make it easy for me to put in place a set of rules of what can and cannot be typed by the user. 0.1 Alpha is pretty much a sandbox text display, but the next version will have rules like these:

-'!' '?' '.' '_' enter, backspace and clear will all be deactivated at the start as they have no use.
-If a 7 letter word is typed, only '!' '?' '.' '_' backspace and clear will be available.
-If you're typing your 5th word, space will be deactivated.
-Enter will be deactivated untill '!' '?' or '.' is typed.
-If '!' '?' or '.' are typed, only enter, backspace and clear will be available.
-On the 32nd slot of the display (the last one), only '!' '?' '.' backspace and clear will be available.

With these rules in place double exclamation marks at the beginning and end of a word won't be possible, sorry  :P. It needed to be done to prevent you monsters from possibly breaking the AI by typing some weird shit.

Since word rec works on the same advancing/backspacing logic as the text display i've begun transcribing my messy notes onto microsoft excel. It works quite nicely, I can add logic to each of the cells so if one that represents a pressure plate is changed from false to true, all the cells that represent gears it is linked to change. I've also discovered the underlying logic behind some gears like this XOR:

=OR(E6,I6)-AND(E6,I6)

That's on a cell representing a gear, and E6/I6 are cells that represent pressure plates. If both plates are on or off the gear is deactivated, but if only one of the plates is on the gear is activated.

Here's what it looks like:
Spoiler (click to show/hide)

The numbers are gears and the TRUE/FALSE's are pressure plates. It makes things easy to see what is linked to what at a glance.

ashton1993

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #395 on: February 01, 2012, 02:58:01 pm »

Oh god, never link that A.I. to this technology, there is every possibility of it taking over the world. Linking an A.I. to that stuff would literally give it the capability to take over the world with no exaggeration whatsoever, pay attention to the bit where she says "It can even print the components that make itself perfectly"
Logged
Wow, that's actually really friggin' awesome looking.
That is brilliant.
That is hilarious, Ashton. I love it.
OMG yes!!!  Thank you!!!

Totally not a narcissist.

MagmaMcFry

  • Bay Watcher
  • [EXISTS]
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #396 on: February 01, 2012, 03:59:20 pm »

Aww, just let it take over the world if it wants to do so so badly.
Logged

darklord92

  • Bay Watcher
  • [CREATURE:SERGALNORTH]
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #397 on: February 01, 2012, 11:27:11 pm »

Looks like we've made Glados, all you have to let it do is runs your forts walls and doors.

Genetic
Lifeform
And
Dwarf
Operating
System
Logged
Form walking potato man out of corpse. Absorb anyone else in the house.
We have a successful derail.
The Vilous Mod - Jingle berries!

Loud Whispers

  • Bay Watcher
  • They said we have to aim higher, so we dug deeper.
    • View Profile
    • I APPLAUD YOU SIRRAH
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #398 on: February 02, 2012, 02:42:21 pm »

Meh, having this thing take over the world can't be that bad :P

ashton1993

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #399 on: February 02, 2012, 05:37:21 pm »

Meh, having this thing take over the world can't be that bad :P
Well my beard's only 2 feet long in real life so not being up to the A.I.'s standards there is every possibility of me being smothered in magma
Logged
Wow, that's actually really friggin' awesome looking.
That is brilliant.
That is hilarious, Ashton. I love it.
OMG yes!!!  Thank you!!!

Totally not a narcissist.

BloodBeard

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #400 on: February 03, 2012, 04:21:09 pm »

Argh, I fucked up and started making logic cells that were beyond the capability of DF mechanics.

Surprisingly this:

=IF(A52,0,IF(OR(AND(B25,B18),AND(C25,C18),AND(D25,D18),AND(E25,E18),AND(F25,F18),AND(G25,G18),AND(H25,H18)),1,0))

can't be made using pressure plates and a single gear. RESTART!
« Last Edit: February 03, 2012, 04:23:01 pm by BloodBeard »
Logged

ashton1993

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #401 on: February 03, 2012, 04:49:10 pm »

Argh, I fucked up and started making logic cells that were beyond the capability of DF mechanics.

Surprisingly this:

=IF(A52,0,IF(OR(AND(B25,B18),AND(C25,C18),AND(D25,D18),AND(E25,E18),AND(F25,F18),AND(G25,G18),AND(H25,H18)),1,0))

can't be made using pressure plates and a single gear. RESTART!
Oh noes! How much time did you lose? Also how many months do you think you are from releasing 0.2 and what do you hope the A.I. will be capable of?
Logged
Wow, that's actually really friggin' awesome looking.
That is brilliant.
That is hilarious, Ashton. I love it.
OMG yes!!!  Thank you!!!

Totally not a narcissist.

BloodBeard

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #402 on: February 03, 2012, 06:24:50 pm »

It's not a huge loss, I just need to take a few banks of gear-cells that were too complicated and add intermediary steps. I really have no idea how long it will take for another release (which probably won't be 0.2) but don't expect it to be anytime soon. I hope that the AI will even be able to do anything, but one thing I think would be great is if it could respond to user input in a way that I can't predict.

BloodBeard

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #403 on: February 04, 2012, 02:04:09 pm »

The problem was I was trying to make word advancement without adding more gears and it wasn't possible... The heart of the logic that i've been doing are banks of specific gears that are only activated in one part at a time, the part that's being worked on. When pulling a lever on the keyboard it's trying to type that letter in every possible location, but it's these banks of 'selector' gears that keep it limited to 1. For word advancing I just needed another "tiered" bank of selector gears that are only engaged on the word being typed. Spacebar disengages the gears on the current word and engages the ones for the next. Nesting ftw.

One thing I can't seem to figure out is how to get this one line of code in excel to work... It's a gear-cell linked to 21 other pressure plate-cells and each of those cells need to be capable of overriding each other's logic to turn the gear on and off. I don't need it to work, I can manually change it but it's bugging me... I know there's probably a simple solution but it's eluding me...

BloodBeard

  • Bay Watcher
    • View Profile
Re: Cyberdorf Systems: Dwarfputing an A.I. (0.1 Alpha)
« Reply #404 on: February 06, 2012, 04:17:19 pm »

Spoiler: Giant image (click to show/hide)

Brain hurts have been hard at work. Word recognition logic is complete with only a few previously mentioned problems encountered. The spoilered image is an example of a smaller version and what the gearing configuration would look like if you typed a 3 word sentence with each word being 5 letters followed by a stop. 15 pressure plates, 1-5 additional ones to indicate what kind of stop was used is all the AI would need to recognize what words were typed and in what order. How it uses that information is a whole 'nother story (of which i'm avoiding...), but if it is able to and has come up with something to say i've got something for that:


I've still got some optimization to do and find the best way to initiate/disengage it but I was able to utilize the word recognition to allow the AI to type out on its display anything it wants to say. The downside is that adding support for words will be a giant pain in the ass. I'd need to destroy and rebuild gears critical to word rec, display logic and any existing word support. Right now I only plan on adding support for 1 word for when I make a release so it won't be that bad, but when/if I do decide to add more it'll have to be all of them at once. My plans of adding little by little doesn't look like it'll happen.

As for how i'm going to proceed after finishing up the logic, i've determined that the AI's display isn't a critical part of word rec and I will be able to go ahead and make another alpha release that demonstrates word rec without it. Some of the AI's display logic still needs to be built in conjunction with the word rec, but the grunt of the linking is in the display itself.
Pages: 1 ... 25 26 [27] 28 29 ... 31