Posts: 5,606
Threads: 47
Joined: Mar 2007
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.
Posts: 6,675
Threads: 131
Joined: Mar 2004
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.
Posts: 3,680
Threads: 23
Joined: Oct 2012
Huh, yeah, didn't think of it being a programming reason. That's very interesting.
Posts: 5,606
Threads: 47
Joined: Mar 2007
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.
Posts: 12,510
Threads: 61
Joined: Oct 2010
(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
June 5th, 2018, 14:54
(This post was last modified: June 5th, 2018, 14:59 by T-hawk.)
Posts: 6,675
Threads: 131
Joined: Mar 2004
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.
June 5th, 2018, 14:57
(This post was last modified: June 5th, 2018, 14:58 by Modo.)
Posts: 268
Threads: 0
Joined: May 2017
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.
Posts: 12,510
Threads: 61
Joined: Oct 2010
(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
Posts: 5,606
Threads: 47
Joined: Mar 2007
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!
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.
Posts: 8,751
Threads: 75
Joined: Apr 2006
The other thing with Crawlers is, if I recall correctly, they can be used to rush wonders without penalty. Lots of advantages there...
Darrell
|