RE: CEO v0.54 Unit Preview - [Gluttony]
How exactly does the assimilation of Gluttony work? Is it an additive feature or a replacement feature? And which powers get priority? Also, what about passives????
I can see why Grand says this piece could take up half the game's total code, even in jest. As someone who dabbles in code, I can see how writing the algorithms to set what function is mapped to each square would be difficult.
If I were the coder, I would probably write an order of operations something like this, where the highest one on the list is the one that takes priority:
- [Magic] Transform into Ghost
- [Magic] Destroy
- [Ranged] Destroy
- [Magic] Petrify
- [Ranged] Petrify
- [Magic] Freeze
- Swap/Attack (Yellow square)
- Move or Attack (Black square)
- Move only / Attack only (Blue and Red squares) on equal footing
...and then add in some voodoo code that has Blue + Red combine to become Black, or Black + Swap = Yellow, or etc.
The one thing that's missing is to have an option for "Move or [Magic] Destroy" (or other magics) as one square, so that Gluttony can be the one unique piece that doesn't have ugly movement options when it gains close-range magics.
As for Gluttony's base moveset and cost... well, Lust, Envy, Wrath and Pride have king-like movement and Greed is rook-like, so Gluttony should have either a knight jump or a bishop set. Something close to Knight+ at base could work, especially if it gains diagonal attacks at higher tiers to differentiate itself from the higher-tier Knights. I don't like a strictly bishop set for this piece because Gluttony doesn't feel like the sort of piece that would be content to start off colorbound.
From the Grand's reply to Kerdon's post, it sounds like the newest move type on a square is what is kept rather than an order of priority.
in terms of code, the hardest part has been resolving the million edge cases where certain combinations of move types create new behaviors. Some examples are:
these examples alone were a nightmare to resolve on a basic technical level, but even then the ability triggers are still kinda busted in their behaviors sometimes creating scan-order ambiguity. It will also have a heavy development cost moving forward where each new move type needs to pass through the filter of this effect, similar to hostage/lifestone but more extreme. I have concluded it will be impossible to cover every possible outcome in the first iteration, but also would rather no specific scenario actually manages to crash the game so it has required an abnormal amount of effort to create a stable version of this unit. However, after testing started, I immediately decided it was worth that effort. This unit is insane.
Ah, I can see now ! This is a smoke and mirror thing again, another mind trick game of yours Grand. Although this time, much more understandable without substance abuse (at least the bait part), and therefore effective on more of us.
We all were fooled and drooling over the possibilities of one single unit, which supposedly consumes movesets of other units. No, wake up, and see through it, my friends !
This is a real soul eater, disguised so well we were inviting him with open arms. It's an elaborate abomination, and it's not destroying and feeding on other units. It devours and banishes into void countless game features, quality of life upgrades, suggested improvements or even a port / rewrite to technology that isn't lying on it's deathbed ! For time is the essence for all of creation, even the one by and from the Grandest of them all :) .
/impersonatingGrandsMindGamesOff
On a practical part of this little roleplay jab: I wish there was way (or maybe your will ?) to utilise other people to help you with (at least some) parts of development (above mentioned sacrifices). Seems that quite a few people playing CEO have developing background / skills. I'm sure you know devs of other games too, and there is not nor ever was shortage of wishes, suggestions and ideas from players. Have you given thought to involving someone to help you ? This might be the best addition to both speed up things you have planned, or add new ones you can't stack on top of already required / filled time.
I mean, don't you wish you could enhance yourself with skillsets, morale, tempo gain and tactics of other champions and / or minions ? And don't tell me you're guilty of Pride (7th and last to be added of the sin series), assimilate and gain some virtues on the way. :)
lmao
As much as I would like to have someone helping me with code, I think my programming style is probably not compatible with other people. I have completely made-up conventions and methods, because all formal programming education was largely ignored in favor of just making games myself and disregarding any proper development styles while learning through experimentation and attempting to reach astronomical goals (such as the undefeated spider sequel having millions of passive skills). This has put me into a position where I am doomed to work alone, but also if working in AS2, I think it would take an army of developers to match me. CEO AS3/C# however is a lot more snail-paced, mostly due to it being multiplayer, but the fragmented and chaotic coding style mostly remains making it seem very risky to have anyone tinkering with it.
Since CEO is the only AS3/Multiplayer game I've made, there is also some multitude of variance within the source from changing or adapting these methods across the years, and the final factor is that it's a live game - meaning there isn't much room for messing around with it to progress along any learning period while adjusting to my coding style. I think I would need to make a test server before anyone else modifies the code to avoid risk, or have someone extremely talented involved in which case they probably have a project of their own.
I may or may not also just be one of the types that works best alone, since it eliminates a lot of logistical concerns if everything is done by the same person, more thought can be put into each of those individual things by skipping past any chance of overlap or synchronization issues. There are probably 100x more disadvantages to working alone than in a team, but as is my standard I like to twist negatives into some advantage whenever possible and amplify it to whichever maximum there is to find, and I think that applies here since I've worked alone for 15+ years.
If I were to guess, there is some possibility of community-made unit art being used in the game, but I am not sure how many people are around that would be willing to attempt it in the flash vector format, and it seems strange to even ask people to try that when I am so picky. However, a huge amount of time in making new units is spent drawing and re-drawing a unit 100 times to have them look correct at every zoom level, because some units look great up close then on another monitor they're a tiny blob of static noise. If there were already art made with that in mind for some particular unit, it would drastically reduce the time it took to add them into the game (unless its gluttony send help) I also think that after some time, these forums will show their true colors, and contributions such as auxiliary tools (piecemaker) or vector unit art can start to be more properly rewarded.
Speaking of proper rewards, do you know that ABC spent all of his contribution on units targeted for testing/confirming reported bugs? He never really played much, he just worked forever on piecemaker and bug reports, but I was too poor to ever pay him, and he was usually not treated very well by the community. If he shows up here, things will be different. I have been told this blockchain forum idea is useless and crazy, but the people saying that have no idea where it leads. By the time anyone notices what is happening, this community will have already become a blockchain leviathan.
How would this work then?
![Beautiful.PNG](https://steemitimages.com/640x0/https://cdn.steemitimages.com/DQmbumDowMB36mXivopTf2ud557EZQTK61Vg4QXvd1z7BNn/Beautiful.PNG)
This is the moveset of Nexus+++, Gravity Mage+++, portal +++ and Summoner+ (++ and +++ cover Nexus' ability target).
I wanted to make it beautiful.
Does it really matter how it works? It looks monstrous. Besides, if your opponent was running Nexus+++, Gravity Mage+++, portal +++ and Summoner+ you prettymuch win the game without even doing much to begin with.
Kidding aside, I have no idea which ability target it would port things to. Default answer is the normal one for the moveset it took the squares from but clearly that might not be the whole story.
It's beautiful and cursed and beautiful.
it works in a very convoluted confusing yet technically predictable way - some combination of scan order and searching for valid targets, so portal effect would snap to occupied target based on scan order and beacon summon would snap to empty target based on scan order... or something like that anyway, it's kinda nonsense but that behavior is the least buggy version of gluttony stealing ability targets I have made so far.
Yeah, and I don't think passives are kept unless it's an "ability passive" like Samurai or MoonFox.
-main_gi
This is correct. Not only would gluttony gaining passives make it 100x harder to code, but gluttony stacking various passives from units like behemoth/antimage would get out of control very quickly.
Virtues would suddenly have a nice shield against gluttony, so that would be interesting, but probably better to avoid stacking passives. It would also make keeping track of what gluttony has become a lot more complicated.
ex: gluttony eats hostage and a few elementals, then suddenly looks like a graceless meme.
I think eventually there could be a 'passive-stealer' type unit, but for gluttony it's moveset only.
hahaha, some of the gluttony actionsets look like graceless memes already (like queen with armor)
somewhat related, the CEO infopanel is pretty small in terms of possible description size. In our game there are already mouse-over-to-see-keywords, so if we were ever to add a passive stacking piece (very unlikely), a potential solution might look like:
and you could read all of them in the keywords, maybe with some ridiculous scrollbar setup to let you read all of them.
-main_gi
yea, the complexity cap is mostly guarded by this and my own lack of willpower to upgrade it or add scrolling, but the mouse-over thing seems like it will eventually be needed for certain effects to exist. Currently the number of things to justify it is small enough that they could just be rolled into some perceived 'learning curve' (ex: gemini twin), but after a certain point it will no longer be reasonable. (ex: if gemini twins had a scaling moveset) However, by having that limitation it kinda forces things to veer into the direction of being more intuitive, so something like 4 different gemini twins is never even done in the first place.
It's all some kind of pseudo-manipulation onto myself to gain some type of advantage out of a thing that would normally be a negative, but the downside comes when I make effort to fight against it by reducing descriptions down to the point of being vague. Sometimes I just can't let go of a particular effect and get into a battle with the limitations I've placed onto myself. It also causes some linguistic weirdness trying to get some particular phrase to fit onto a single line instead of 2, or some description to fit into 3 lines instead of 4. I spend an unreasonable amount of time fighting these imaginary problems, lol.
I think any CEO-like game that gets a similar amount of expansions as some MTG-like game (so like 5+ sets to total to thousands of units) will eventually need keywords too. But honestly I quite like condensing descriptions too and I also like trying to fix them. There are some effects that also feel awkward to state all their effects and can tempt an intuitive wording. Like Hostage and "caught between" - Ryan made a piece with that sort of effect and basically it can be worded like:
The second is more intuitively clear on the first read, the first is more mechanically clear. That's just an annoying tradeoff.
The sources of infopanel ambiguity I remember: referencing other units (including all promotes), some types of transforms causing death squares and some not (NO HIDDEN INFORMATION), semi-keyword effects (like Dove and Angel enchant not mentioning that it's lost on attack/can't target King, when DOVE IS RARE AND PLAYERS WOULD GET THAT PIECE FIRST), and fudged turn timers (ex. Butterfly actually being 20.5 turns and all enchants being +0.5 turns).
By the way I have to ask what you were thinking when you did these changes:
Enchant status reworded from "immune to melee attacks" to "immune to melee death". I thought this meant you could knock the armor off a HauntedArmor even if it was enchanted with this reword, but you didn't change anything.
Envy action being called
What the hell is an enemy unit type? Does it mean Envy can turn from a [Champion] [Basic] [Legendary] to a [Minion] [Clan] [Rare]? I mean all of that looks ridiculous so the only thing you can reasonably think is "oh it's a clone ability", but I don't know how "type" could possibly be read that way. It would really be more clear if you deleted the word "type" from it.
-main_gi
Yeah there are alot of descriptions that need a bit of clarity. Somtimes you just have to do a bit of testing, e.g. seeing how void interacts with magic, ranged and special. (teliport, move and teliport)
good points, especially regarding dove/promotes. Promotes are probably the best arguments in favor of CEO needing expanded info panel rollovers even in its current state.
I vaguely remember some weird interpretations derived from the way magic immunity works and how that would relate to melee immunity for unblockable swaps, but this may have also had something to do with other effects. I honestly don't remember why it was changed to this but it does make it sound like armor would be breakable while enchanted. At this point it wouldn't surprise me to find that I changed the wording just to reduce the character count by 2, lol, but enchantment in general probably needs an overhaul to simplify and balance it.
this I remember more clearly - it was to indicate that the cloning is done in regard to the unit type itself rather than whichever moveset it currently has, such as broken armor or a voided unit. If it were simply made to clone a unit, interpretations could go either way, so despite 'type' being a little erroneous I decided it would be more intuitive this way.
So, I think Envy is a big offender in vagueness because the infopanel is already very small. It also copies value too, which is a question I often heard with LifeStone (people wondering if they can revive a value-boosted Pride or a value-lost MoonFox). I think you'd need some sort of informal keyword for it, like
So you'd also have
I would suggest "base value" and "base version", but that is already an informal term for the +0 version of a unit, unfortunately.
-main_gi
you're probably right, I think it's common for a developer to become blind to this type of thing from having a skewed perspective of what initial interpretations might be. In terms of lifestone, there will probably be a lot of people that think reviving gluttony will act as a second life to continue the rampage with all new moves intact, but it doesn't work that way.
I also think over-explaining is a problem to avoid though, such as taurus rush or castling, I have not had good incentive to simplify these down to the level of 'leap-attack' but always feel like there is something fundamentally inelegant about having such a large description for a move type. Between taurus rush and leap-attack, I'm still not sure which form of description is less confusing, lol.