Grid Sage Forums

Grid Sage Forums

  • November 25, 2024, 06:20:57 PM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  

News:

LINKS: Website | Steam | Wiki

Author Topic: Cogmind Machines  (Read 4474 times)

Draco18s

  • Cyborg
  • ***
  • Participated in the Alpha Challenge 2015
  • Posts: 108
    • View Profile
Cogmind Machines
« on: January 08, 2016, 08:21:54 AM »

So this is borderline general discussion, but I thought I'd poke at some of the aspects of the Cogmind level/world that aren't necessarily gleanable from the game and may not even have any differential meaning to the player at all.

As we know, the floors of the complex have various machines scattered about that "do stuff" as a player all we can so is blow them up.

My question is: so these machines have a purpose to the NPC bots or are they just arbitrarily machinery?

If the former, what kinds of things do these machines "do"? I don't care if mechanically they sit there looking imposing, I'm interested in the fluff.

I know some of them are matter reservoirs and some are generators, but that's it.

I'm asking because I'm trying to populate my own level with "stuff" and am having trouble figuring out what kind of "stuff" that would be.
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4479
    • View Profile
    • Cogmind
Re: Cogmind Machines
« Reply #1 on: January 09, 2016, 05:03:42 AM »

I waited to see if anyone else would comment on this first, but no, so here I am :P

For background material, I've written about this a few times on the blog. You know about the interactive machines, which serve purposes that you can also access in some ways. As for all those others, the gray ones, they're categorized as so-called "non-interactive machines." I've written about the placement of both categories in my article on "Furnishing a Dungeon."

Looking at it now I never really discussed how I determine what goes in each area, so I can mention now that each of the machines I created, over a hundred of them at present, belong to one of many "themes." A map can specify which themes it contains (e.g. energy, research, matter...), and individual machines also have a weighted chance to be chosen for a given local area so that some will be more common than others.

Most of those non-interactive machines exist for pure flavor/atmosphere, though as you know from the beginning we've also had explosive ones, which can have an impact on tactics and also tie in to terminal hacking in multiple few ways. In the latest version I went a step further and had several of the matter-themed machines spit out matter as they are destroyed, given them more meaning in that regard.

Beyond that, in recent months I've started adding "unique" non-interactive machines, which appear in blue and have special effects if you destroy them. The first were the two internal garrison machines also described on the blog. Then I added the Energy Cycler in Alpha 5. Destroying these results in map-wide effects. Another such machine is coming in Alpha 6.

So I'm working towards giving machines more meaning in general, but there will always be some pure flavor machines that serve to augment the atmosphere, while of course providing obstacles to hide behind. Tactically they are interesting because you can mostly see through them, but generally can't or won't shoot through them. (The enemy certainly won't shoot through them on purpose, and you can use that knowledge to your advantage.)

Does that mostly answer your questions?
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Draco18s

  • Cyborg
  • ***
  • Participated in the Alpha Challenge 2015
  • Posts: 108
    • View Profile
Re: Cogmind Machines
« Reply #2 on: January 09, 2016, 11:18:52 AM »

A bit, yes!

Most of those non-interactive machines exist for pure flavor/atmosphere

Exactly why I was interested in what they "did" for the complex.  My theme's quite a bit different, but similar enough that I can translate a general concept.  I won't have any terrain destruction, so the explosive/matter vomiting effects aren't something I'm going to have to deal with, but I absolutely needed cover and things to hide behind. So some thoughts to ruminate over on "what, exactly, are the robots doing with all this stuff?" is what I was looking for.

I'll take a read over those articles. :)
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4479
    • View Profile
    • Cogmind
Re: Cogmind Machines
« Reply #3 on: January 09, 2016, 07:20:01 PM »

In a more general sense, "what are they doing with all this stuff" is part of the lore, and something that you gradually figure out as you explore the world, so I won't go into it here ;)

Currently there is terminal hacking you can do to learn the answers to this and other questions, both in a general sense and a specific one in terms of what each floor of the main complex (and outlying areas) are responsible for. More areas and themes to come!
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Draco18s

  • Cyborg
  • ***
  • Participated in the Alpha Challenge 2015
  • Posts: 108
    • View Profile
Re: Cogmind Machines
« Reply #4 on: January 10, 2016, 08:57:37 AM »

Heh, I didn't mean in terms of global goal (e.g. "Mining the moon for resources in order to fun a war against aliens") I meant on a lower level, "Mine resources here, process it into raw materials there, store it until its needed by an assembly line that builds more bots."

There's more to it than that, obviously.  But I'm trying to see the forest for the trees. :P
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4479
    • View Profile
    • Cogmind
Re: Cogmind Machines
« Reply #5 on: January 10, 2016, 07:58:09 PM »

Yeah, the intermediate-level relationship between different machines themselves is definitely more abstract.

In theory this could be made into another mechanical facet of the game, as some players have requested in the past, but it would distract too much from the main focus. I like the idea of having more strategic options, so where possible I'm adding in ways to affect machines or ways in which destroying machines affects other aspects of the game, but don't want to go further than that.

But again, I'm talking mechanics here and you're looking more at simply their meaning.

On that front, it's certainly easier to come up with a greater variety if it doesn't have to make perfect sense within the context of a larger system. Such a system, if implemented, would also then beg to become an integral part of the mechanics... :)
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Draco18s

  • Cyborg
  • ***
  • Participated in the Alpha Challenge 2015
  • Posts: 108
    • View Profile
Re: Cogmind Machines
« Reply #6 on: January 11, 2016, 11:51:34 AM »

Fair enough. I'm just trying to get that overview for Cogmind and see if any of the general concepts are translatable to my own game. In some sense a chest-high wall is a chest-high wall regardless of what it is textured like. I just wanted "stuff" that fit the theme.

For example, I just set up the data storage rooms yesterday. Largely speaking this is where the player will find their target (not always, but frequently) or other juicy goodies like passwords or data that can be sold for cash.




In addition I've got some notions on other room types and stuff to put there, but it still leaves a good third of the environment empty.

It's kind of funny really. I had the idea for this game years ago and took a stab at it a while back, but I've been redoing it bigger and better more recently. But the parallels to Cogmind are staggering. Still different, but a lot of similar themes. I think I mentioned it once, but it was your post on reddit detailing map gen that lead me to Cogmind in the first place, as I was trying to find a better method to build the largest structure.

One of the things I have planned is for AI entities that are neither allies to the player nor allies to the complex. Their actions would put the central AI on alert and cause havoc for the player as the individual patrolling guards are in a heightened sense of awareness, but at the same time, the player could utilize those entities as a distraction: "chase him, he's a threat. Me? Imma just going to crack this safe..."
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4479
    • View Profile
    • Cogmind
Re: Cogmind Machines
« Reply #7 on: January 11, 2016, 06:59:18 PM »

Sounds good!

As an indie game you likely have to take the sparse route, just enough to be suggestive, but picking what exactly is suggestive enough, and also believable, is a lot of tough decisions, even more so in 3D, which is what you're apparently working with here.

Of course, with 3D the approach can also be quite different than with something like Cogmind. Here I mostly just come up with an ASCII pattern and give it a name that fits the theme, whereas in your case you have the option of just modeling/drawing something and throwing it in there without even a name (as long as it has no bearing on the mechanics or other content).
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Draco18s

  • Cyborg
  • ***
  • Participated in the Alpha Challenge 2015
  • Posts: 108
    • View Profile
Re: Cogmind Machines
« Reply #8 on: January 11, 2016, 10:18:34 PM »

As an indie game you likely have to take the sparse route, just enough to be suggestive, but picking what exactly is suggestive enough, and also believable, is a lot of tough decisions, even more so in 3D, which is what you're apparently working with here.

Right.  And I'm no 3D modeler, but I've gotten away with Sketchup (for modeling) and LithUnwrap (for UV editing).  And the theme is super barebones anyway (like, seriously, Tron-style edge glow).  It's all supposed to be a VR representation of underlying hardware; utilitarian.  But the potential is there for allowing the player to own "themes" that would replace all the bare-bones models with some kind of "sculpting" that would make it look like whatever.  It'd be trivially easy to add, codewise, but a massive undertaking 3D model and texture wise (resources are loaded via string constant, so having a directory that's supplied via runtime variable is trivial).

Quote
Of course, with 3D the approach can also be quite different than with something like Cogmind. Here I mostly just come up with an ASCII pattern and give it a name that fits the theme, whereas in your case you have the option of just modeling/drawing something and throwing it in there without even a name (as long as it has no bearing on the mechanics or other content).

Certainly something I'll have to do.  I'm just not good at coming up with random doodly dads without having some idea of what I'm trying to actually make.  Some of the themed constructs would be a lot easier to just insert-random-thing-here, but I'm starting with the utilitarian view first.  The "themes" shouldn't really give additional cover or obstacles, just differentize them.

Anyway, thanks for the input, even if it was "you just make stuff up." ;)

I'm super proud of those maze layouts too, even if it's really simple process.  Just the Mazectric rules for Conway's game of life (B3/S1234) run about 250 generations with a little pruning along the outer edges (doors auto-set the cell to "dead" so that they remain passable, floodfill from the first door, then disconnected areas are discovered and connected via best-guess) which allows the banks to line the walls or create dead ends, yet still have every machine be reachable (the ones in a corer are reachable, diagonally).  In the rare case that an open (dead) cell is truely unreachable via best-guess connection, it's left alone and the global pathfinding map has it marked as filled (same as the cell a machine occupies) just so the AIs don't try to path there (not that it's a problem yet as no AI code has been written to perform NPC duties beyond simple patrol routes).

Oh, and the wide hallways are the standard routes, the narrow paths are the secret passages we all know and love.  Technically they serve the reverse purpose as Cogmind's secret doors, letting the player sneak about in ways that the guards cannot follow, but fill the same game-mechanics space as the air vents so commonly used in stealth games.  Its also hard to tell, but they'll go up-and-over the regular passages and will connect between floors (screenshot shows only a single floor complex, but multiple floors are possible).

And due to the way they generate, it is possible for me to dictate how many of them spawn, and eventually subselect from this (representing backdoors located and removed by the complex) or add new ones.  Removing one secret path might actually mutate a different one (as they generate iteritively and try to avoid one another).  Which is actually really clever from a theming point of view.  You can see one path that tried to take a short dogleg towards its desired destination, found a room in the way, and went around to the right.  If the total path length so far had been long enough, it would have terminated prematurely on one of those two rooms.

...I should stop rambling, I think I'm maybe a little too excited about what I'm doing and have no one to share it with. XD
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4479
    • View Profile
    • Cogmind
Re: Cogmind Machines
« Reply #9 on: January 11, 2016, 10:33:11 PM »

I'm just not good at coming up with random doodly dads without having some idea of what I'm trying to actually make.
One useful approach for something like this is to seek out and absorb some visual inspiration from elsewhere, for example do Google image searches and just browse the results (which might also in turn lead you to other interesting sources of inspiration). Coming up with lots of content from scratch without any reference whatsoever is quite difficult (hence few people do it that way :P).

...I should stop rambling, I think I'm maybe a little too excited about what I'm doing and have no one to share it with. XD
Haha, you have a devblog? Sounds like you probably should, and it can serve as a jumping off point to help get the word out about your game while also being a nice record of things you've done.
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Draco18s

  • Cyborg
  • ***
  • Participated in the Alpha Challenge 2015
  • Posts: 108
    • View Profile
Re: Cogmind Machines
« Reply #10 on: January 12, 2016, 06:50:41 AM »

I'm just not good at coming up with random doodly dads without having some idea of what I'm trying to actually make.
One useful approach for something like this is to seek out and absorb some visual inspiration from elsewhere, for example do Google image searches and just browse the results (which might also in turn lead you to other interesting sources of inspiration). Coming up with lots of content from scratch without any reference whatsoever is quite difficult (hence few people do it that way :P).

True enough!  I'll try and find some time for doing that; other tasks take up about 96% of my waking time, leaving 4% of my day for "the everything else" I want to do.

Quote
...I should stop rambling, I think I'm maybe a little too excited about what I'm doing and have no one to share it with. XD
Haha, you have a devblog? Sounds like you probably should, and it can serve as a jumping off point to help get the word out about your game while also being a nice record of things you've done.

I don't.  I'm also not really one for that sort of thing.  I'm more comfortable with one-on-one conversations (I realize this is a public forum and other people can read it, but I'm still addressing you personally).
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4479
    • View Profile
    • Cogmind
Re: Cogmind Machines
« Reply #11 on: January 12, 2016, 06:54:41 AM »

Well, dev blogs are really just a convenient way to have multiple conversations with a few people (among many other uses), assuming anyone is interested in the first place... A lot of dev blogs out there don't have any commenters.

Although yes it is more passive as in that you wait for them, rather than having a particular topic and proactively bringing it up on a forum like here.

But blogs do eat up more time as well. Precious, precious time...
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Draco18s

  • Cyborg
  • ***
  • Participated in the Alpha Challenge 2015
  • Posts: 108
    • View Profile
Re: Cogmind Machines
« Reply #12 on: January 12, 2016, 07:09:11 PM »

But blogs do eat up more time as well. Precious, precious time...

Of which I have none XD

Oh yah, took me a while to locate this, just because of how old it is.  Seeing through walls!
http://s28.postimg.org/mw484ultp/Wall_Hack.png

The shader that handles that is so friggin' complex now.  It actually handles several things (setOverrideShader() is awesome), all similar and mutually exclusive for a given object.  One is seeing things through walls, another is notification icons (also visible through walls), and highlighting the outlines of stuff (learning how to use the stencil buffer was a challenge).
« Last Edit: January 12, 2016, 07:14:23 PM by Draco18s »
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4479
    • View Profile
    • Cogmind
Re: Cogmind Machines
« Reply #13 on: January 12, 2016, 07:32:16 PM »

Shaders are magic to me. Actually, that describes 3D gamedev in general :P

You can really use that technique to your advantage in making environments seem less sparse than they are, while also being mechanically interesting.
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Draco18s

  • Cyborg
  • ***
  • Participated in the Alpha Challenge 2015
  • Posts: 108
    • View Profile
Re: Cogmind Machines
« Reply #14 on: January 12, 2016, 10:00:03 PM »

Shaders are magic to me. Actually, that describes 3D gamedev in general :P

Haha.  I'm no 3D wizard myself.  The little robot there was actually made by a friend.

But yeah, shaders are pretty dark magic.

I had to do the outline shader* myself, too.  All 165 lines of it (there's some screenshots there, too) because simple object-scaling wasn't good enough.  It misses interior negative space.  That shader basically turns every triangle of the original mesh into 3 camera-facing quads using vector magic math.  If I'd wanted to get super accurate, I could have meshed the corners together with the quads formed by adjacent triangles so that higher thicknesses didn't start showing ragged corners.  It would have been 3 times as many calculations for a tiny improvement: a 5-10 pixel outline is sufficient and it doesn't get ugly until about 20 pixels.

*It also uses the stencil buffer and stacks wonderfully with the wallhack.
Logged