As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

 
T-hawk Plays Alpha Centauri

Hmmm, maybe. But you have a list of bases for the player, or at least can easily get one, because you display it for the base overview by faction and when you scroll through your bases using the arrows. The same method/list could be used when distrbuting the b-drones.
Reply

I think the b-drone system came straight over from Civ 2 and maybe even Civ 1. It's just less obvious since those games allow a higher limit and don't quite so drastically encourage ICS.

It's the global base list because that's how they're stored internally. It's one array for the whole game and not a separate array per player because that's just how you do it in a limited world of DOS assembly or C programming; you don't want to resize and move around big arrays.

What is the easiest way to deterministically say "every 6th base"? "BaseId mod 6" and it doesn't get any simpler. It sounds complicated the way I described it but it's straightforward in code.
Reply

Huh, yeah, didn't think of it being a programming reason. That's very interesting.
Reply

It isn't like you need to copy the actual array to access the list by faction, though. Any number of ways to do it. And the game already does do it, since you can view your faction's base operations listing.

Anyone know for certain what SMAC was written in? I am curious.
Reply

(June 5th, 2018, 14:22)haphazard1 Wrote: It isn't like you need to copy the actual array to access the list by faction, though. Any number of ways to do it.
Yes, I'm not arguing that it should be done this way, just that this way is the lazy/easy way.  And it's hard to argue that a more knowable method is an improvement worth additional effort.

It's like...if I see a piece of crumpled paper next to the trash can, I assume someone tossed it at the can and missed, not that they chose that spot of carpet to carefully place their sculpture of paper.

Same thought process here - they figured 'this will work, it's easy and basically does what the designer asked for' and did it and moved on; this wasn't the result of a day-long meeting about the best way to design the mechanic.
Quote:And the game already does do it, since you can view your faction's base operations listing.
Well, it's possible they developed the code in the opposite order, or in parallel. Or it's possible that they were lazy and didn't want to find the other function to copy it here.
EitB 25 - Perpentach
Occasional mapmaker

Reply

The simple description: You iterate through the list of bases to filter by faction only when you need to.  You do to display your faction's list of bases.  You don't need to for b-drones with the simple implementation of "id mod N", so you don't.

The missing-techs mechanism actually works the same way. It's based on the sum of a few factors mod 3, which is simple and deterministic to implement and doesn't require iterating through the list.
Reply

I wouldn't be so harsh unless I'd have to take their place and see how would I do. Not fair to compare a group of devs working on a time table with the bigger comunity of players turning their product inside out and sideways.
Lots of lose ends? Sure, but we still value the overall product for it's innovations.
Reply

(June 5th, 2018, 14:57)Modo Wrote: I wouldn't be so harsh unless I'd have to take their place and see how would I do. Not fair to compare a group of devs working on a time table with the bigger comunity of players turning their product inside out and sideways.
Lots of lose ends? Sure, but we still value the overall product for it's innovations.

That's the other piece, you can't even really claim this is a bug, it's just obscure while playing. B-drones do get steadily worse as you exceed your efficiency limit, every base gets one drone per 'cycle', it fits the general goal of applying a penalty to expansion. The only thing it doesn't do is be predictable enough to micromanage to avert its effects before they happen.
EitB 25 - Perpentach
Occasional mapmaker

Reply

It definitely is not a bug. It is just weird and non-intuitive. My b-drones depend upon the global base list? Of course that is the first thing I thought of! crazyeye

And Modo is correct; not knowing their code base or the development pressures they were under, I can't really know just why they did this. Maybe a function to do things based on global base list already existed so they grabbed it; maybe it was written earlier and later changes altered it; any number of things could have happened. We can't know what was going on internally.

I just find it odd, and enjoy speculating since I make my living writing code. smile
Reply

The other thing with Crawlers is, if I recall correctly, they can be used to rush wonders without penalty. Lots of advantages there...

Darrell
Reply



Forum Jump: