[W13IfD] Final, and a little more process

FINAL APPLIED ILLUSTRATIONS

A low-fi turnaround to get a sense of the gold, where proper rendering takes insane amounts of time which I won’t bother with:

A LITTLE SUMMARY TO REFRESH

In Memory of Sun, otherwise known as the sun is dead, time to drink, smoke weed, and die. To mourn the sun, a wistful gift box of commemoration.

Have some alcohol decorated with the forlorn memory of when we used to have fermented grain mash; weed, with the plaintive memory of when cannabis still grew; immolation kit, with the distant memory of when tinder was abundant.

A LITTLE MORE PROCESS

Following from previous week, I tried to use free mockups. As suspected, though, it was really hard, where mockups are flat images (which have really weird texture breaking for non-flat surfaces. Also, they don’t have 360° to show off the entire illustration. So, original models it is!

White means transparent, which means gold is overlaid:

Incidentally, each piece is just a collage of, like, 3 models, of which I grabbed different angles for a pretense of variety, then magic wand.

Something I’d have liked to do, but eventually deemed pretty not-important-enough, is seamless illustration for the cylindrical ones.

[GD] Dev Log, alternatively known as the suffering of a century. also, an endings guide

You can click to scroll to the endings guide, and of course it has spoilers

Week 13

  • Recompiled entire project, and when I say recompile, I mean make a brand new project and slowly drag in things from the old project while trying to avoid compile errors, because my old project became unsalvageable from the mess
  • Created .yarn dialogue files… Many of them…
    • Included Destroy and Instantiate of GameObjects to change out dialogue files… Because I didn’t know how to… Replace the dialogue files via script directly…
    • Provided hints on surroundings, what to expect, what might be needed, etc
    • Provided pathway to some endings through dialogue
    • Projected my paranoia 2k20 of what people want to say to me
  • Connected Yarn Spinner to gameplay
    • Created command to destroy bugs once they’re done (assumes a certain sequence, but no one has been able to sequence break yet, so shouldn’t lead to any game breaking?)
    • Derived player jump capabilities, and a hidden counter for a certain ending from Yarn Spinner dialogue progressions, with bugs and NPCs respectively
  • Removed namespaces. Not very significant, but significant to me, because that was really troublesome.
  • Connected the ending scenes to the game scene
    • Created a click-based mechanism for a certain segment, looks very like you could break the game, but by some miracle it doesn’t happen
  • Aesthetic things
    • Included some sounds and music
    • Touched up sprites slightly, made a few new sprites
    • Adjusted sizes and fonts of dialogue and UI things
  • Adjusted difficulty again, in terms of difficult of platforming (i.e. easier)
  • Gave up on certain bugs lmao, visually annoying but theoretically harmless, and tragically appropriate

Week 12

  • Added Yarn Spinner for dialogue management
  • Recompiled entire project to fit Yarn Spinner systems, which includes… Everything…. Bugs, portals, resetting, endings… Basically, it was like redoing the entire project from scratch, and trying to copy-paste whatever I thought could be reused
  • Fixed the levels a bit more, again for less frustration, less sequence-breaking
  • Fixed the “R” prompt, where it previously didn’t cover all the space it should have
  • Created the 3 endings, and no spoilers, but it included new systems of input, new animations, new option-based dialogues, new variables….

Week 11

  • Finished the remaining level designs for Forest & Field
  • Adjusted levels slightly for slightly less frustration and slightly more sequence-breaking nullification
  • Fixed bugs related to getting stuck in between platforms; you can now only pass through platforms which are 1 unit in height
  • Added Debug.Log, which shows the current state of your jumping abilities
  • Added error message which activates when attempting to use a function which hasn’t been unlocked
  • Adjusted “R” prompt; now also plays an error message, and returns you to a “last checkpoint” than “last accessed portal”

Week 10

  • Fixed dialogue and dialogue trigger issues; it now collides properly, disappears properly, and plays properly
  • Removed unnecessary portals and added “R” prompt; whenever you press it, you are returned to the last portal you came through
  • Added levels for Field
  • Switched levels to tile sets from sprites
  • Added preliminary sprites for interactive items
  • Added a cheat code, just for fun; if you figure it out, you get the debug controls

Week 09

  • Created basics of game, from player to dialogue
  • Allowed for variations in jumping capabilities through key pressing, in anticipation of allowing it to occur through bug fixing

Things I Should Have Done But Never Got To Doing

  • The bugs auto-going into your inventory than having to pick up, as long as you’re close enough
  • Animations, to drive home the difference between the player as a literally square while everyone else is animated
  • Allowing dialogue progression with Z key than left mouse
  • Sizing, where the UI goes bonkers when it’s not full-screen

How to get different endings

There are 3 endings in total, corresponding to 3 potential responses to bugginess (i.e. being insufficient, flawed).

ENDING A: MY ETERNITY

Ending A is triggered by a hidden counter, countSadness. This is alluded to by Tomato, who mentions the flute as an indicator of your negative feelings. You can increase or decrease the counter through dialogues with NPCs, though there’s no fixed pattern as to who increases/decreases it. In fact, it might be possible for someone to decrease it, then later increase it for you.

Tomato

As a general guide, whether it increases, decreases, or has no impact, depends on what the NPC tells you (i.e. if they’re supportive, degrading, or neutral).

The meaning of this ending is to give up; resorting to self-harm when you’re faced with bugs and insufficiency. My Eternity of falling to shame, self-degradation, suffering and tears.

 

(The next two endings actually need a map reference, so)

And, of course, the Axis goes on for an insanely long time.
Locations, and intended sequence

 

ENDING B: VILLAGE LIFE

Ending B is triggered by collecting all 7 ordinary bugs, and speaking to Daisy. In other words, the default ending which you’d probably aim for from the start. Most bugs are fairly easy to access, with some areas being significantly harder, or straight up impossible if you try to sequence break. Some NPCs will thus advise you not to do certain things yet, or the like.

The meaning of this ending is to face your problems; if you’re plagued by bugs and insufficiency, work to get rid of them. A Village Life that you’ve rightfully earned, with acceptance by everyone else.

Ending C: ASCENSION

Ending C is triggered by reaching the top of the Axis, which necessitates that you collect the gold bugs (it is narrowly possible to do without Midair Control+, but the rest are crucial). A sort of secret ending, where only Clover and Crysanthemum allude to this possibility. Basically, why fix bugs when you can just become a bug yourself? And, maybe eat(?) your friends while you’re at it.

The meaning of this ending is to rise above and manipulate instead; use your bugs and insufficiency to your advantage, and break away from the norm. Ascension to a higher plane of existence, beyond the ordinary.

[W12IfD] i cannot visualise to save my life,

and thus, I’m using 3D models as a base again. I’d like to thank past me for having the foresight to teach myself this skill.

I also happen to find that free mockups are kind of… difficult.. to work with, because the sizing never turns out right (and the lag is atrocious), so I tried making models and unwrapping the textures myself. Also, this means I get more control over what shapes and sizes the labels are.

(Regardless, I may resort to free mockups eventually, where this is incredibly excessive.)

Based on recommendations by Lisa, I tried out using gold material, and glow effects. I’m leaning towards gold, though, where I’m too rusty (no pun intended) at drawing, so it’s too sketchy, impressionistic and painterly to be appropriate.

From here on out, what I’ll do is to 1) make an extensible background, 2) make the plants properly (see image directly below). Then the rest is just arranging the composition well, overlaying the metals and shadings, and adding any flavour text. Also, I need to deal with my 4th composition.

[W11IfD] creating a starting point

Bright illustrations in a dark world; that kind of contrast would surely be heart-wrenching. In Memory of Sun is the overarching theme, with a tagline which may or may not be the sun is dead, time to smoke weed, get drunk, and die.

The illustrations would thus, obviously (?), be for things like 1. weed packages, 2. alcohol bottles, and 3. self-immolation kits. Parts of a gift hamper for the anniversary of the sun’s death, for you to go out with style! At your own discretion, than hypothermia or oxygen deprivation!

Establishing the tone

One of the things I used to get started was experimenting with the colours, through a 10 minute digital painting exercise. What I’ve concluded is that I think the first works best, where the warm, analogous colours are much better at providing a sense of harmony and softness.

In other words, if you’re already living in a dark world, I feel like the first would make you feel most crushed. After all, your environment already serves as a high contrast to the illustration: there’s no need to actively incorporate it into the image.

User personas

Here are user personas to express what I mean. Incidentally, I’ve realised that things like trait spectrums are useless for my understanding, so I’ve neglected that entirely. Instead, I focused on “how the death of the sun has affected them” (Ironically, I’m seeing a lot of Anna-like behaviour amongst NTU students right now.)

This means that I can go all out on creating a memorial of the sun which is fully focused on its wistful past glory, its overwhelming yet gentle radiance:

Not all of these include sun, just the feeling of wistfulness amidst desolation

Two drafts for illustrations

To get visual continuity, I considered what Lisa mentioned in class, about extensibility. As such, I looked into similarities and differences between each item, to get an idea of what I can differentiate or not. For me, this similar factor was the fact that they’re all derived from organic plant matter:

This is exacerbated by that plants rely heavily on the sun for sustenance, so it ties in pretty nicely, that these products of the sun will similarly go extinct.

As also implied above, I did some research into the relevant forms.

For the 3 items, I learned a surprising amount about variations in weed and alcohol package shapes. I actively tried to choose 3 shapes which would be markedly different, i.e. a rectangular than cylindrical alcohol bottle, and a stout than elongated weed container.

For the plants, I searched up how they grow; it may or may not be evident that I have a much clearer idea of the forms of grain, than the forms of weed. I struggled a little with tinder, since tinder is an umbrella term which can consist anything from tree bark and fibers, to dry leaves and seeds. Thus, I picked whatever would be the most visually intriguing / easiest to fit into the extensible template.

The first draft

This one is basically of scenes of the relevant plants with the sun. While my initial thought was of just a scene, I later considered a down-up perspective, since it conveys the idea of growing “towards the sun”, than just a side view.

It’s easy to apply to grains and cannabis. It’s a little harder to apply to tinder, where I don’t think it’s apt to include the entire tree: after all, trees are visually dense, and has multiple components like wood and leaves, all of which can have different meanings.

As such, I tried focusing only on dried leaves, as can be seen:

The weakness of this, in my opinion, is that the sun takes a very minor role in the composition. It’s kind of like how the sun is used as a contrast to the main object in stereotypical Asianstyled illustrations. Which is a style I do enjoy, but which may not be apt, where the sun should probably be the focus.

Ways to keep this composition while emphasising the role of the sun might be things like a) dyeing everything in orange hues, b) increasing lens flare, or even just c) exaggerating the size of the sun.

The second draft

This one tries to tackle the issue of the first draft, where the sun becomes a focal point. I notice that depictions which properly capture the sun’s radiance often focuses on negative space, such that the sun itself is empty space: instead, it’s the presence of darkness around it which makes it shine.

The plants are thus used only to fill surrounding space, and honestly I was thinking of tamago kake gohan when I made this:

What I don’t like about this version, though, is that it doesn’t make use of the forms of the plants. That works for tinder, where wood is flat anyway, but it feels sad to not see stalks of grain, or cannabis extending towards the sky. That makes it kind of boring.

The biggest issue

In both cases, I think the biggest problem is that I don’t really know how to render the sun’s radiance. After all, that kind of asymmetrical glare seems easier to capture in photography, or a painterly style? And, without it, I don’t think I could get the kind of brilliance and softness that I want?

The closest I’m seeing is something like this, but even this feels kind of, too clean.

Some stuff i used

  • Young Woman (link) | Old Man (link)
  • Colour Palette (Gentle) (link) | Colour Palette (Strong) (link)
  • NanoMortis (link) | Fish (link) | NieR:Automata (link) | Final Fantasy XV (link) | a field of snowdrops (link) | Blurred sunlight (link)
  • Grain (link) | Weed (link) | Leaves (link) | Wood (link)

[W11IE] well, it’s week 12.

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.

As you can probably tell by how badly rendered this is, I am presently not alright.

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.

https://steamuserimages-a.akamaihd.net/ugc/177162877531165201/E838BEC0660F853B52114A7BF45D2FB71C942B04/
Example from Scribblenauts, where whatever you type is conjured into existence. Over 10,000 words can be registered.

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:

  1. Make a list of at least 5 keywords (and synonyms/related words),
  2. Get some images related to those words,
  3. Learn how to use the relevant softwares, to
    1. Tie it into a stream,
    2. Create image overlays onto a live stream,
    3. Make them activate when certain chat commands are given
  4. Work with any possible bugs, like spam and/or multiple simultaneous commands
  5. 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:

  1. [Keyword]: [related terms which will cause the same effect]
  2. Food: hungry, hunger, lunch, dinner, breakfast, eaten, eat, ate, snack, rice, chicken, tidbit, tidbits, etc.
  3. Sleep: sleepy, sleeping, bed, tired, exhausted, insomnia, nap, pillow, blanket, sofa, couch, night, moon, stars, dark
  4. Covid19: covid, coronavirus, pandemic, lockdown, stay at home, inside, home, school, online, blackboard, oss, microsoft teams

A potential list of relevant softwares:

other not-so-relevant things

(Images of the things I previously did, of which I will probably no longer be using. So long, and thanks for all the fish.)

 

[W10PDaP] on the adm gallery

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.

For example, an (un?)intended (mis?)placing of the projector causes lines to manifest on walls.

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.

[W9GD]

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.)

SOME REFERENCES

  • Code Monkey series on Jumping (link)
  • How to make a Dialogue System in Unity (link)
  • Super Mario Maker 2: No Jumping Allowed (link)
  • IDK it was a cute square so I was reminded of this (link)
  • And like 3711748 Unity forum questions

[W9IfD] turning data into forms

← Previous Post | Next Post →

(You can generate the cover here.)

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 the Final 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.

(mockup credits) (data credits, and a lot of wikipedia pages)

[W7IfD] making pencil comps for a digital generation is, uh,

← Previous Post | Next Post →

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.

Automatic line makings, to get a gist for the overall form. As can be seen, it will likely involve many arcs, curves and loops, and a tall form which isn’t symmetrical.

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.

Their tagline aptly summarises why: it has “the power of Processing times the reach of JavaScript”. In other words, it can achieve more than web-based Javascript alone, while being more accessible to creators and audiences, since it’s for web.

A FIRST “PENCIL” COMP (LINK)

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:

 

[W7.5GD] Suffering

i submitted at 0943, checked again around 1330, and was disappointed, as always, that i uploaded the wrong file, there’re bugs. life is suffer

VERSION BY-200214

  • Implemented base version of Tetris
    • Includes generating blocks, falling mechanic, movement, rotation, play area, line clear, collison
  • Implemented variations
    • Assigned to Key Pressing
      • Changed constants to variables
      • Included variations for falling speed, reverse controls, auto-rotation, camera zooming, changing block types

VERSION BY-200221

  • Cleared up unnecessary code
    • Compiled into a single script, than attached to multiple objects
  • Removed GetOutOfJailFree & HOLD indicators
  • Implemented HISTORY indicator of past variations

200221 Shah (player) & Mus (key presser)

    • Shah is visibly done with Mus, who is abusing his abilities
    • It’s quite funny nevertheless
    • Falling Speed of Blocks is outrageous at 0.1f
    • Impossible to play at all after a certain point
    • An additional suggestion to go the route of a key presser who has to fulfil certain tasks before he can ruin the player’s life, e.g. minigames, or a timeout

200221 Kee Yong (player) & Shah (key presser)

    • Pretty much exactly the same sentiments

200221 Wei Ting (player) & Me (key presser)

    • Wei Ting is doing acceptably alright, since I try to act like an impartial algorithm
    • Not enough variations to be intriguing

In other words, rerouting the variations to activate through an impartial algorithm at specific invervals, than a partial algorithm at random intervals

VERSION BY-200228

  • Modified variations to a random algorithm, from key pressing
  • Implemented UI
    • A NEXT indicator area, to show the upcoming piece
    • SCORE tally of various items, such as total time elapsed
    • HISTORY indicator of last 5 variations
  • Fixed bug where I Piece didn’t rotate around the correct point
  • Fixed bug where O Piece rotates
  • Fixed bug where Zoomed Camera doesn’t follow the falling piece
  • Cleared up unnecessary code
    • Removed variations for changing height and width of play area

VERSION BY-200301

  • Modified algorithm to be weighted, than 100% random algorithm
    • Instead of picking a random variation, the algorithm now picks a type of variation, then rolls for an outcome. 75% odds of getting a favourable outcome for that variation
  • Implemented new variation types
    • ~2% chance for in-game music to change to 1 of 4 songs
    • ~4% chance for in-game background to change to 1 of 5 backgrounds
  • Implemented SCORE system
    • Implemented counters for things like Total Number of Blocks, Total Time Elapsed, and so on
    • Implemented score algorithm, giving different weights to different segments contributing to score
  • Implemented Tutorial at start of game
  • Implemented Restart option (R) & Tutorial Skipping option (S)
  • Implemented Speed Up (Q and/or W)
  • Fixed bug where counter and visible grid didn’t align

200301 Prof (player)

    • Confused by names of variations,
    • Can’t tell what variation is occurring,
    • Doesn’t know that effects stack (than being dispelled),
    • Despises the auto-rotation (especially in conjunction with high falling speed)
    • Confused by information overload of UI
    • Total score of about 8.6k

200301 Wei Ting (player)

    • Too focused on playing the game itself,
    • Doesn’t notice that variations are occurring and affecting gameplay,
    • Just thinks she’s not good at Tetris
    • Total score of about 1.3k

In other words, fix the UI and information hierarchies.

VERSION BY-200306

  • Modified algorithm conditions and weights
    • If the same variation is called up, instead of having no effect, it may reroll to give another another variation
    • Impossible to get absolutely no effect for a round. Increased chance of failing a roll to 40%, from 25%
  • Modified Rotation Lock, from auto-rotating clockwise once per second, to rotating clockwise once per left/right keys pressed
  • Modified SPD function
    • Pressing Q and/or W will cause falling speed of blocks to increase, not just the countdown to variations
  • Modified UI by, like, a lot
    • Modified HISTORY segment to ACTIVE segment, which states presently-active variations than past variations
    • Modified SCORE indicator area, to only show at the end of a game
    • Modified text for about everything to be less Debug.Log-based
    • Implemented bar (and removed text) in indicating countdown
    • Implemented icons and animations for Key Press functions (Q, W, S, R)
    • Implemented tutorial image for Movement keys
  • Modified activation conditions for certain keys
    • Restarting (R) and Skipping Tutorial (S) now requires holding for 1 second, than pressing the related key once
  • Modified SCORE counters
    • Reduced max Score to 99 999, than 9 999 999
    • Reduced Speed Up bonus
    • Increased Line Clear bonus
  • Implemented Game Over condition
  • Fixed bug where I Pieces and O Pieces weren’t centralised in the NEXT indicator area

CREDITS

  • Music
    • ff5_bigbridge (link)
    • Tetris – A Theme (link)
    • Tetris Attack – Poochy’s Theme (corrected errors – final submission) (link)
    • Video_Game_Themes_-_Zelda__Ocarina_Of_Time (link)
  • All background images from Pixabay