Other than the fact that I’m facing crippling mental issues, I can’t find a way to make my midterm concept adequately translate into a final piece. It’s impossible to make even a preliminary prototype, and, it’s already week 12, meaning it’s far too late to start from scratch.
In other words, I have nothing of substance.
I’ll just spend my remaining time looking at something which I thought of, after hearing Bryan and Merlin’s comments in week 11. The gist of what they said was that whatever I previously had wasn’t interactive and thus wasn’t particularly interesting, and that it was too convoluted to be viable even as a proto-proto-prototype, but the idea of an overlay on reality is interesting, especially if there’s a distinction between real-life graphics and not. (similar to what Prof. Elke showed previously)
Don’t ask me how I came to this conclusion, but yeah, my conclusion was to try out chat integration into live streaming.
My midterm concept was about entering another person’s perspective, where you get to view the combination of their inner and outer world, i.e. their thoughts and what they’re perceiving. So, this is like a really weird offshoot which may or may not be related, since you can type out what you’re thinking. Where those words get applied to the live stream, it’s like seeing your inner thoughts overlaid onto the perceived world.
Seems like it would work pretty well with all of us being stuck at home, anyway.
I’m aware that what you type doesn’t necessarily correspond to what you actually think, and I’m also aware that I will never be able to reach a particularly high level of ability to conjure items. I’m also aware that I don’t know enough about Python, the relevant programming language which works for this stuff, to do much.
Basically, I’m going in blind, and just taking this time to learn something interesting, because I know I can’t come up with anything substantial for the final assignment. For convenience’s sake I’ll start from Twitch, which already has a strong support for this kind of thing. I’ll shift to Youtube for the sake of accessibility, if and only if it turns out that Youtube does have that same level of support. Here’s what I’ll have to do:
Make a list of at least 5 keywords (and synonyms/related words),
Get some images related to those words,
Learn how to use the relevant softwares, to
Tie it into a stream,
Create image overlays onto a live stream,
Make them activate when certain chat commands are given
Work with any possible bugs, like spam and/or multiple simultaneous commands
That’s about it, really? The final presentation will just be something like everyone tuning in to the same live stream, and typing in chat, probably.
An example of me learning how to do this with StreamLabs OBS (thanks, tutorial).
An example of me learning how to do this solely in chat with chatbots (thanks, Fossabot):
other relevant things
A potential list of keywords:
[Keyword]: [related terms which will cause the same effect]
The most evident and most flattering component of the exhibition, in my opinion, is the visual continuity. You have lines of text running across the walls, lines of rope trailing across the rooms, lines of wires scattered all around.
ON THE MACRO LEVEL
As I’ve mentioned before, I think it’s quite evident that the overall Singapore Biennale theme is intentionally designed to be broad and vague, such that practically any artwork can justifiably fit within it. So, I won’t bother going into depth on how it fits the theme: besides, the time and/or movement-based link between “future of islands” and “every step in the right direction” is pretty clear.
Tomorrow Is An Island, as inland, a sin land is an artist-led project that speculates on the future of islands, deep time, the fate of ‘crisis’ as a frame of our predictions and conceptions of future time, and the exchanges between bodies and cities. The title deploys a sequence of anagrams that rescrambles with each new phrase, suggesting that the ways in which the next moment could retain recognizable components of the present but to disruptive effect. (link)
Nevertheless, the existence of the secondary theme distinguishes this exhibition from that of Gillman Barracks. This secondary theme of “Tomorrow Is An Island, as inland, a sinland”, is exemplified by two characteristics.
Firstly, the artists are all of “islands”. In this context, the two islands are Singapore and Switzerland. While a bit of a stretch, it’s justifiable when considering how small both are in comparison to nations like China or the United States.
Secondly, many of the works focus on systems, sequences, the like, as exampled by the shifting anagrams. The “visual continuity of lines” play into this. All the works also play with this in various forms, be it the shadows cast onto the floor, the shifting sediments, the flow of sounds and videos, so on.
Of course, this consolidated theme is possible only because of the small size of the exhibition. A bigger exhibition would inevitably have to resort to a generalised theme, to be able to cover everything.
ON THE MICRO LEVEL
The most eye-catching work, for me, was Forest Tales and Emerald Fictions by Monica Ursina Jäger.
An artist-in-residence with NTU, her presented work focuses on the “shifting topography of Singapore and Southern Malaysia”. Consequently, much of it involves urban infrastructure and natural scenery. Here’re videos: the first has the accompanying audio (from headphones), and the second, details close up:
Regardless, its attractiveness is due very much to the curation, where this work is complete and isolated. The leftmost area feels lacking, where I was there for the opening night, and thus can’t disassociate the “absence of the performance” from an “absence in the space”. The first area is slightly awkward, where it seems to contain “everything which doesn’t fit in the other rooms”.
As such, the singular space provided to this work stands out, where it feels intimate: there’s a seating area, the screens don’t feel overwhelmingly magnificent, the space is dark. Also, the setup is interesting, where it’s not even screens, and the throw distance is exceedingly small:
For me, the biggest takeaway is probably on how limited resources can actually be a boon. After all, it’s easier to consolidate with a smaller pool, and easier to know what you can’t do. At the same time, however, one must be aware of where they ought to allocate resources, such as in building walls and shelves, than trying outright to aim for complete minimisation.
After watching videos on how to code jumping, I realised there’s a lot more depth to jumping than I thought: for example, it can mean a world of difference if you allow the player to control movement while in air, or not. So, I decided to focus on jumping exclusively.
It’s playable-ish up to the 3rd or so bug, but I haven’t built the maps for the rest. I also haven’t actually tied the bug effects to the picking up of bugs; in this video, it’s literally just pressing the relevant key when you get the bug.
I’ve coded in all the required variables, except for dropping through platforms (i haven’t figured that part out yet, so watch out, prof, i’m coming to your inbox). Here’s another video to show the effects:
Issues which I have not figured out how to solve:
Aforementioned dropping through platforms
I can’t seem to find a suitable code which works with what I have, and me trying to hack at it doesn’t really work
Jumping lines when dialogue is ongoing (e.g. even though there’s 5 lines, only the first line shows)
Apparently tied to number of other dialogue box-using objects; when I reduce to only 1 Person, the dialogue plays fine
If I disable movement while the dialogue box is open, if the player is moving when dialogue is triggered, they will slide on forever until the dialogue box closes
I have.. No solution. It’s definitely related to the playerMovement() function, but I don’t even know why it would happen.
TO-DO FOR NEXT WEEK
I know I had a timeline, but I realise I greatly underestimated how important sprites are: the sizing will definitely be off once I implement them. Of the aforementioned issues, too, the only really significant one for now is the 1st one. So, I’ve decided to change it slightly:
I can see quite a few issues cropping up, like a) the sizing going haywire, b) the block tiling for platforms failing, c) failing to reference the correct bug, despawn it properly, or change the correct value, or d) the fact that my current Player has a really fun spin, to the extent that there’s no “right side up”: if I add a proper sprite, I might have to include code which stops it from doing so. (Unless I actively decide to make it have no right-side-up.)
What’s that about “game endings”? Well,
MORE IN-DEPTH CONCEPT ADJUSTMENT FROM LAST WEEK
My stretch goal is to amplify the emotional aspect, in terms of the parallels between “a buggy game” and “sadness over being incompetent”. As such, I’m thinking of having 3 endings, which have different activation conditions, and which correlates to “your relationship with bugs”.
I don’t know if I should spoil it, but I’m likely to forgo it since no time, so I’ll only talk about it if it comes to it, and just stick to the ~happy village life where you help the villagers catch bugs~ story.
The villagers may or may not have a role to play in this, which is why I’ve added them. That’s quite tedious, though, so I might leave them as hint-givers, as per right now. (They also don’t have changing dialogue based on changing progression rates, because I did that before, and boy, it was not fun.)
(It’s also kind of boring to only reach places just to get bugs, so I put people as hint-givers to mediate that.)
Last week, I came to class with multiple instances of code. The downside was that I genuinely had no idea how it would turn out, or any direction to guide me towards that end, so I figured that Lisa’s suggestion to incorporate data visualisation was a good idea.
Again, the theme of Fantasy is with respect to the fantasy of actualising impossibilities through technology, but I also used a more innocuous data set, in honour of something which is coming soon:
Yes, it’s a visualisation of theFinal Fantasy franchise.
PROCESS OF SETTING UP THE DATA
I have never touched data visualisation in my life, so I looked up tutorials by, once again, Coding Train. I decided against using real-time data, since it’s complicated, and there’re no API resources for the entire franchise (only FFXIV has a dedicated following). Instead, I created a JSON-based dataset; in total, there’s about 850++ lines of code.
I ran some tests to ensure that the data could be accessed properly, as well, and properly incorporated into other codes:
After which, I began testing different ways to combine data with visuals, and put them all together in a not-painful-to-look-at way:
The details regarding which data set corresponds to what visuals are available on the page. Nevertheless, there’re some fun facts which are fun only if you understand Math and Final Fantasy, such as that a) patterns are easily observable once you know what drives it, and b) that outliers make for… Interesting visuals.
Also, interestingly, a previously mentioned possible guiding philosophy was how basic elements come together to create complex forms. Due to that ellipses were used for practically everything, it surprisingly came to fruition as well.
As per the last post, I decided to work with generative illustrations. Where the theme is something like “the Fantasy of actualising impossibilities through technology”. And, of course, I don’t have pencil compositions, or even drafts of what I want. Here are the two main reasons why:
1. GENERATIVE STUFF JUST… DOESN’T GO WELL WITH PLANNING
As summarised by Spittel, there are two approaches to generative art: a) have no results, and let the computer generate as you play around, and b) have a very finalised idea, only allowing little randomisation.
I wanted to go for a mix of the two: keeping a vague idea of what I want the overall form to be like, while allowing the computer freedom to generate the exacts of what it turns out to be.
But, intention probably won’t match up to action, because
2. IT REALLY DEPENDS ON MY PROGRAMMING ABILITY
I can draw decently well, but coding full-fledged physics is……. While I wanted to aim for something like Shvembldr and/or Nick Taylor‘s emergent, organic forms, I’m not sure that it’s possible at my current level. The most I can do is probably to work with basic elements, like lines and circles, and randomise their colours, positions, and sizes.
As such, it seems unlikely that I can find a way to code the piece to be particularly close to whatever I would envision. Still, I’ll outlaw patterned works like cccbtt, where I think it’s too structured: the point is to show off how amazing technology is, which is more evident when more complex functions like sin() is involved.
SO, TO START OFF…
After looking into different scripting languages, I decided to go with P5.js.
As I’ve said, I don’t have pencil sketches, because it depends on how fast I learn. Instead, I just experimented wildly with codes that I learned, using random() and noise() on parameters like the x-y coordinates, or scale().
Here are some things I learned (or refreshed, it’s been a while since I’ve touched Java/Script) during the spring break:
From there, I picked out elements I liked, and tried combining them, or messing around even more. Half of this were not intentional, just that I didn’t really do object-oriented programming, so, uh.
I guess my first “pencil composition” would thus be something like this:
A SECOND “PENCIL” COMP
My second pencil composition tried to be more aware of the working style for generative pieces. Interestingly, there’s a sense in which coding is a “collage”, because you rarely write code from scratch: it’s usually about modifying other people’s codes to suit your needs.
As such, you’ll see that most of the practices here are based off codes that I grabbed elsewhere, like by The Coding Train:
*inserts a very typical project management picture from here*
Here’s a short summary to get us all on the same page.
Chapter 2 introduces us to aspects of project management. It first establishes a difference between goals and objectives, where goals are shared across all projects while objectives are unique to each project. The chapter also claims that all projects have 6 goals to manage, with 5 phases and 6 activities during the process.
Chapter 5 further delves into project planning. This covers the necessities of planning, the iterative process of planning, fishbone-sque breaking down of tasks, and so on. It also goes into 6 objectives of the project work plan, and details regarding each objective, as well as how to document said plan.
THINGS WHICH I’M INTRIGUED BY
The 6th goal is incredibly interesting to me, of “meeting everyone’s expectations”. It’s surprising to see that the human relationships between you, the clients and the employees is as important as it is. That’s also one of my weakest points, in balancing my happiness, with the happiness of others. Unfortunately, the book can’t give much information, since this is a very situational goal, but it’s still good to take note.
The only solution is probably practice. I’m very sorry in advance to every person who will have to put up with me.
The project manager’s obligation to fulfill other responsibilities is also concerning, especially in small projects, and especially where they’re expected to be generalists. After all, the way companies usually work is that you start as a specialist in a discipline anyway, such as “Junior Graphic Designer”. No one gets directly promoted to a more generalist role like Visual Design Executive. In other words, you need both depth and breadth.
The only solution, probably, is to “be good”.
NOT VERY IMPORTANT THINGS WHICH NEVERTHELESS MAKE ME SALTY
Something which really gets to me is the artificial division of goals into 6 categories. This is because I feel that many of the goals can be subsumed under a similar header, such as “To reach the end within the established limitations”. This would easily cover budget, time, and safety, where these are limitations which must be adhered to. It’s not a major issue, since it IS important to eventually expand on these different aspects, but it’s just conceptually annoying for me.
Something which also gets to me is their definition of efficiency. That, again, is probably a linguistic difference: when I was taught (the equivalent of basics of) project management in my extracurricular activities, efficiency was lauded over effectiveness, where effectiveness was about being successful, but efficiency was about being successful with minimal resources. I guess it’s not a major issue either.
I took a slightly different approach, starting with concepts than visuals, since my forte is in critical analysis. Here are examples of the numerous false starts I had when I tried to subvert my typical way of project development:
After which, I tried to take into consideration what is required of a cover illustration for Varoom.
It must be something accessible, where Varoom isn’t meant to be a culture- and/or country-exclusive magazine,
It should provide critical new insights into the discipline of illustration, where that’s what the magazine is about,
It shouldn’t be focused on a specific topic or subject, where it’s a cover image, not an article-based image
Since I chose the topic of Fantasy, I thought about what Fantasy would mean to all illustrators. Where fantasy refers to the “imagining of impossibilities”, the conclusions I came up with were these:
Fantasy in how basic elements come together to create complex forms
In other words, how dots, lines, and planes come together to create illustrations which look like more than the sum of its parts
Fantasy in how impossible forms can be created through new technologies and means
In other words, how computer-based generation can create illustrations which would be tedious and/or impossible by hand
While I sketched thumbnails for both, I fully intend to go for the latter. This is because the former may be an insight into illustration, but it’s nothing new: we’ve long established the benefits of those basic elements. Computer generation, on the other hand, is definitely something new to the industry, and thus provides a fresher insight.
Based on that, Lisa also suggested the works of Joshua Davis, a generative illustrator. So, here’s my finalised moodboard:
I note that it may be difficult to do pencil compositions for a generative illustration. After all, the point of generative illustration is that it’s randomised. For now, I’ll look more into generating illustrations: depending on what I leave to the computer to randomise, there may be things which remain constant, which can be presented in a pencil composition.
Alternatively, it may even be more worthwhile to create a prototype directly in code.
A magazine published by the Association of Illustrators (AOI), it was likely named after Roy Lichtenstein’s 1963 pop art painting. And, of course, its contents regard the field of illustration.
Typically, a magazine revolves around a selected theme, such as Empathy or Muse. It is then made of articles which consist of an illustrator’s discourse on that subject, accompanied by their illustrative works. Articles are thus often about illustrations and illustrators, of which has some convergence to the theme.
The first type of article regards the style of a single illustrator. Articles of this kind do not address a single work, as opposed to the thoughts of the illustrator. As such, it would focus more on the illustrator’s approach to illustration as a whole, than to each individual piece.
An example is Wei Shao and her insights on urban spaces in Issue 40 (Fantasy). While a seemingly realistic topic, it is her illustrations which bring out the fantastical nature of this subject, where the use of exaggeration, geometry and repetition bring out the surreality of our current urban organisations. In fact, her opinions on this topic are often reflected in all of her works.
A similar, but slightly different type of article is that which follows the process of a single work. Unlike the previously-stated type, this kind of article allows more insight into the making of a highly-detailed piece, than into the general workings of an illustrator.
Reportage: After the Earthquake, for example, discusses Reflections, a project by Harry Morgan. It was intended as a way to raise awareness of the Nepali earthquake situation, with its link to the theme of Issue 33, Collaborators, being encompassed in its cross-media and cross-persons medium. The article thus focuses on the this project and the processes behind it, than Harry Morgan’s personal style.
It is my opinion that the target audience is anyone with an interest in images and the process behind it. Varoom themselves seem to have a similar opinion, but expand on it more, by claiming to be “for creators, commissioners and lovers of great image-making”. In other words, creators who seek inspiration for their own works, commissioners looking for existing creators and/or ideas on what to commission, and lovers who’d just like to know more.
What I find most inspiring is how thematically-relevant the articles stay. Often, themes are designed to be as broad and inclusive as possible, so as to attract a wide range of contributors. As a result, however, the links between the theme and contributions tend to be weak at best, and superficial at worst. This isn’t the case for Varoom, where the editor’s efforts are evident: even words aren’t really needed, to see the link between each illustration and the theme. I admire that very much.
The takeaway, too, is to make something which is self-explanatory, such that even the form alone is enough to identify the theme.
What do you find inspiring?
What medium/s do they use? (Traditional, Digital, Mixed)
How do they creatively interpret the text for the article?
I follow a lot of illustrators, but none of them do editorial illustrations, surprisingly! After some reflection, I felt like the reason why was because the illustrators I follow tend to have personal styles and subjects which they enjoy illustrating, which doesn’t always match with the requirement of “commercialisation”. For example, loputyn has certain symbols she constantly employs, such as nude girls, in pursuit of the theme of “unity”, which could hardly be used as an editorial illustration.
Also, I think the “flat illustration” style is nice in its own way, since it’s clean, professional, minimal, and about everything that a client would want. But it’s somewhat overused, to the extent that it looks somewhat boring. So, here’s a list which actively avoids that.
His style reminded me of litarnes, whom I’m already a fan of. What I adore is the use of linework as texture, which also helps to maintain a simple colour palette. For example, that the small fishes are exclusively the same hue of orangey-yellow, with the reddish-orange lineart providing sufficient support to negate the need for shading. (His apparent fondness for Asia-related styles and images is also something I can get behind.)
Something which may or may not be a weakness is how the illustration is composed such that it can stand alone. I appreciate the piece far more for its technical beauty, than for its relevance to the article. In fact, the link isn’t quite clear until I know what the article is about: only now do I comprehend that the illustration depicts how large-scale fishing can have negative effects on the environment. At the same time, it’s a nice way of depicting a message without being too direct about it, allowing for some creative and fantastical elements.
It seems that Chin tends to draft in pencil, before scanning it in and working in Photoshop and Illustrator concurrently. A cleaner version might be done in Illustrator with the Pen tool, then ported over to Photoshop to “soften” the image. For example, the shape of the boat might be done in Illustrator, with a tool, but the colouring in Photoshop, by hand.
What I enjoy most about Tsevis’ works is that the link to the text is always immediately evident. This, of course, is because his editorial illustrations always depict the subject directly: in the above example, he presents Stan Lee’s portrait, which is something that the audience can recognise easily. He thus easily bypasses the possibility of an illustration being too complex to understand, through simplicity.
Even so, his works can be distinguished from photography in that the colours and building blocks of his compositions always add another layer of meaning. He composes Stan Lee’s face out of clips from comic books, and uses vibrant colours as an representation of Stan’s bright personality; for someone like Obama, he uses statistical numbers, and the dichotomy of blue (Democrat) and red (Republican).
I’m also fairly sure that he does these digitally, where he was inspired by things like ASCII & pixel art. Still, it would probably be possible (but tedious) for it to be analog.
(Also, it’s wonderful to see how the illustration blends into the article itself, where the article similarly uses the triadic colour scheme.)
Another collage-type style, where Snow disassembles and reassembles different parts of different images. This is also admirable to me, where drawn illustration can be somewhat easier: you can control every aspect, from the forms to the colours. For collages, you have to painstakingly find some existing thing which can be repurposed.
At the same time, it combines the merits of photography and illustration. In the above example, the use of technical drawings and photographs make the piece surreal yet professional. This is also supported by the muted colour palettes favoured by Snow. As a result, we see how most of his editorial clients tend to be from magazines for adults, about fairly serious and/or retro topics. There’s an obvious target audience going on here.
This is another case of something which can be done through analog means, but I again think he does it digitally. It would be difficult to get the cleanliness he does, otherwise.
Probably, something like this. In other words, someone who is curious about other people, and loves to read about their thoughts and experiences. Also supported if it’s someone who already has exposure to the field of illustration, whether in their workplace, or as a hobbyist themself.
I wrote this as my thought process and guidelines while making the 1st prototype, which has a video as found here:
So I figured, I might as well post it.
Literally, just the base game. I’m following this tutorial, though I’m unsure if I need to make any adjustments to prepare for implementing the effects and audience. For example, if I should already change the algorithm to select 3, then 1 from those 3 effects.
Things to consider, on if it should be excluded or included:
Very basics, like T-Spin, if the falling speed increases when Down key is pressed
Inclusion of a getOutOfJailFree thing. Start with 3x usage. If J key is pressed, clear the bottom 4 rows. This should be an anti-frustration feature, especially for new players who might be easily caught by new effects. You can acquire more usages through extreme luck.
If there should be a Next queue, and a Hold ability.
No transitions after certain number of lines cleared: most likely, the combination of effects will cause too much suffering, and I’ll need to put more anti-frustration things.
While the Player plays Tetris normally, different effects will manifest at certain intervals. I haven’t decided the exact timing, but it might be something like this. I assume that the Algorithm has 0 delay, and that there is an audience. If there is no audience, we can just assume that the Algorithm takes the role of the audience, just with 100% randomised selection rate.
(TIME): (PLAYER) / (ALGORITHM) / (AUDIENCE)
10 seconds: Normal Play / Nothing / Nothing
20 seconds: Normal Play / 3 Selected / Audience Voting
10 seconds: Normal Play / 1 Implemented / Nothing
20 seconds: Normal Play / 3 Selected / Audience Voting
And, so on, until the Player dies
The turnover rate might be too slow, so we’ll see how it goes.
A PROPER ALGORITHM
I decided against having a max limit of co-existing effects, since 1) that’d be annoying to make, you’d have to decide how to dispel effects, e.g. after 10 turns, or based on the number of effects currently present. 2) It’d help to increase the difficulty as more and more effects appear, plus the intended algorithm (as shown below) is supposed to be quite lenient.
I’ll try to avoid 100% RNG, since it might make the game too easy or difficult if you happen to get certain effects by luck. So, I’ll use a weighted percentage, based on an effect’s “type” and “last appearance”.
Types can be divided into Variables and Booleans, where some things are either on a scale, or present/absent. For example, fallingSpeedOfBlock is a variable, while reverseControls is a boolean. There’s a third category, which is just Specials, which includes things which shouldn’t be subsumed under either of the suggested two categories.
Last Appearance refers to the last time an effect was manifested. I considered a new category like Potency, but decided against it since the impact of an effect can’t really be judged easily (e.g. maybe Garbage might benefit/disadvantage based on circumstance).
The maximum chance of reappearing decreases with each increment. At the maximum/minimum value of the variable, the possibility of increase/decrease is capped at 0%. For example,
when fallingSpeed = 1.0, up to 100% chance of fallingSpeedUp & 100% fallingSpeedDown appearing (of original chance value),
when fallingSpeed = 1.2, up to 60% & 140%
when fallingSpeed = 1.4 up to 30% & 170%,
when fallingSpeed = 1.6 up to 0% & 200%,
Possible variables would thus include these:
fallingSpeedUp / fallingSpeedDown
stageWidthUp / stageWidthDown
The chance of appearance is constant, and will never fall to 0%. If same effect appears again, it simply switches the boolean value, such that the effect is undone if it’s already manifested.
Possible booleans would thus include these:
onlyLPieces, or onlyTPieces
AutoRotate (i.e. no manual rotate)
Things with a constant rate of appearance, and no on/off state. I have almost nothing right now though. Maybe under New Asset Based (see below).
onlyLPieces: similar to the boolean type above, but only for 10 rounds. May be slightly less painful than the boolean, so I might do this instead.
In fact, about any of the booleans can be shifted here, on the premise of “it lasts for 10 turns”. But I wouldn’t really want players to waste brain energy calculating when something runs out.
Usually, things with a constant rate of appearance, and things which may not affect gameplay too significantly. In other words, bonuses and Easter Eggs. The two here are New Asset Based, but I think I should add them anyway (or the first one, at least).
getOutOfJailFree: you can clear bottom 4 rows without penalty, by pressing the J key. Likely, a low chance of manifestation (like 2%), and should already be available at the start.
Skins: literally no effect, it just changes what the interface looks like. Probably also a low chance, more for player/audience entertainment, to make them feel pretty lucky! Maybe like 3 different themes, including the default theme.
Yeet me off the mortal coil
A special category for things I’ve considered. It’s either too painful for anything to bear, or it might be hard to implement since it involves additional things than just changing values in the system.
New Asset Based
garbageAbove / garbageBelow: introduces garbage to the level, either below the existing stage or falling from above (Constant)
newBlocks: introduces new types of blocks, such as 9×9 (Boolean)
changeVisibility: darkness except around falling piece, or zoomed onto falling piece, such that you can’t see the rest of the level (Boolean)
sideGravityUp: blocks float instead of fall now, including the original set of blocks, which will fly up into a new position (Boolean)
sideGravityLeft: blocks are pulled towards left, which doesn’t involve the original set, but all new blocks, upon being placed, will be pulled to the left (if possible) (Boolean)
Death Is Preferable
AutoMovement: can’t translate left and right manually, which would be absolute suffering, especially at high speeds, since you need to wait for the system to move it to your preferred location, and by that time you might already be dead
onlyMoveRight: similar to above, but you can only move blocks rightwards. Also, an easy way for immediate death.
noRotationAtAll: again, easy death.
The easier part would include changing the algorithm, such that it selects 3 effects than 1, then presents them. After which, the audience can choose 1 out of 3. I haven’t decided if the rate of appearance should be affect if an effect appears, but isn’t chosen.
The harder part would include bringing the audience in.
The Player selects “I’m a Player”. The system makes a room, and auto-assigns a Room Code. The Player plays as usual, with the algorithm doing the work.
If there is no Audience, the algorithm just continues selecting as per normal. (In other words, the Room Code is only used if the Player wants to share it with potential Audience.)
If there is Audience, but no Audience Votes, the algorithm just selects 1 out of 3 with 100% random rate.
If there is Audience and Audience Votes, the algorithm selects the effect with most votes. If there’s a tie, the algorithm selects with 100% random rate.
That also means that, on the Audience side, adjustments must also be made:
The Audience selects “I’m Just Watching”. The system requests the Room Code, which the Audience must input to enter the correct room.
The Audience gets to see the Player’s board. They also get to see what 3 effects are up for selection, and can pick within the Audience Voting time.
They select 1 choice. Once selected, they can still change their choice until the Audience Voting time is over. (Whether they can see the current number of votes per effect is unknown, but this might be interesting, since it might make the audience try to persuade each other to change their votes)
After Audience Voting time, the effect is implemented. The next Audience Voting time begins, with a new set of effects.
Things which I haven’t decided:
If there should be a maximum audience limit
If there should be a lobby where anyone can join any room (i.e. may have to provide private rooms as well)
How much time to allocate (e.g. 30 seconds for audience voting, 5 seconds for Player to see what effect was attributed before it’s activated)
If the Room Code should be just shown on the player’s screen (a little awkward for solo players, but useful for screensharing, e.g. like Jackbox)
How to make it work for mobile & computer (most likely, I won’t implement playing on mobile, but it seems likely that audience would use their phone than a computer)
Alternatively, I may consider other ways of implementing the audience, such as Twitch Chat (a la Dead Cells). For now, I’m intending to try out Mirror, the substitute for the recently-deprecated Unity NetworkManager component.
I’ve been recommended to use a single script for everything, which is the fairest judgment possible, because the cross-references between scripts right now are too… Much.
So I shall work on that, and attempt to implement the Next queue in the meantime. Also, to attempt to create an algorithm that selects the effects, than selection based on key presses.