Unique mechanics.

worthwhile stories.

mkb mkb

Blog post #2: Aback

I need to take a few steps back. Let me explain.

I’ve been doing quite a bit of work on my project(s), but not making a lot of progress. It’s been so long since I’ve been an amateur in anything I’ve been involved in, which is an interesting experience for two reasons. 1) It’s good to know that I’m doing something new. 2) I’ve realized that I seem to have forgotten how to learn— at least in how it relates to starting from the very beginning of a learning curve.

I’ve been so enthusiastic about the process; I just want to jump in and start making these games. But I understand so little about digital game design. I’ve been following all of these tutorials on mechanic development for my specific project(s), but since I don’t understand the base theory and logic of digital coding, for example, I can’t troubleshoot the errors that inevitably happen, and I can’t replicate any of the results without the tutorial.

Let’s get into what I’ve done this week.

Th. 9/12/2024

I played Hogwarts Legacy for 1 hour today— to refamiliarize myself with how the spellcasting toggle system works. I want to have something similar in Pareidolia— but instead of spells, directions of attacks— and thus, alla prima.

I did the front angle as a first concept for the MC, Alice. He has a Gothic-style stone right arm, WWI-era breeches and boots, and a harness with an “A” on it— for “Anothen” not “Alice”. (Anothen was the name of the top city of Ettingrad.) It also has a design for Mason, the sentient stone snake whip— including a little brush design at the base.

I did the Resources & Economy assignment for my worldbuilding class; I’m developing the setting for this game in that class. I made ten resources and outlined the economy. I’ll copy that in here.

Folkparts. Biological parts scavenged from fallen Folk. For example, this could be Baba Yaga’s middle finger, Pinocchio’s nose, a snortable amount of pixie dust, or anything else that might function for some dark, occult purposes. Folkparts are most valuable when they come from the bodies of Folk, but artefacts from those creatures are also sought after.

 *Folk are the fairy tale creatures.

Artefacts. These are artificial possessions scavenged from Folk (you don’t need to kill the previous owner in order to acquire them). The gnome prince’s pointiest hat, Cinderella’s crystal slipper, or Robin Hood’s hood are all fine examples of artefacts.

Crucifixes. This literary afterlife (“Epilogue”) of Ettingrad is composed of two themes: fairy tale whimsy and blood magic. I know that I said that Ettingrad is just an altered New York City; that was misspoken. The map was based on 1910 NYC because I wanted a distinct metropolis, but Ettingrad was always just Ettingrad; not New York City. This “city of two heads”— from when the MC was still alive— had dieselpunk weaponry and technology equivalent to WWI-era tech, but the architecture was composed of red stone. That stone was red— as are the ruins overrun by rampant plantlife in the “epilogue” version of the city— due to blood sacrifices made upon stone altars centuries ago. Those sacrifices imbued the stone with supernatural fortitude— among other things. That is why it was chosen as the primary building material of Ettingrad. But those altars were not just used for architecture! No, they were also used to make mystical foci, to channel the power of the dark entities that the blood sacrifices were dedicated to. Those foci— known as “crucifixes”— can be found in both the living Ettingrad and in the Epilogue. They are rare, and incredibly potent. They are necessary for the casting of blood magic. Alice, the main character, comes into the possession of one such crucifix— in the form of a sentient stone snake, segmented as a whip. (That snake is called “Mason”— because it is stonework.) To be used as a spellcasting focus, these stone implements must be engraved with “Passages” of narrative, evoking powerful emotions.

It is taboo to carve new stories into crucifixes; stone naturally erodes, and carving over pre-existing passages hastens that end. 

Litterae Terrae. The ground of Ettingrad’s Epilogue is composed of countless compressed sheets of paper bearing stories. There’s a reason for this. In the living Ettingrad, the most powerful individual in the city was a man named Seymour Snythe, who was an author-turned-publisher. His short stories grew in acclaim, and he used his earned riches to establish Wollumen Printing Press, a publishing company located adjacent to a park that he frequented as a writer, searching for inspiration. Needless to say, the public was starved for escapism, and, along with the recruitment of several rising writers, Wollumen became the most successful business in Ettingrad. 

Snythe innovated the field of writing by creating the first instance of “Animated Literature”— a bound product that wriggled into life as a creature of sentience. That creature— a small child named Rook— was forever bound to Snythe— and, upon Snythe’s death, Rook was de-animated back into a manuscript, and was buried along with him in the park that inspired so much of Snythe’s work. That power— the potent magick of the animated literature— it altered the world— and, during the climax of the Great War, it created the Epilogue, an afterlife of sorts for all creatures, fictional and otherwise. That is why the earth of Epilogue is compressed literature; it was the foundation of the realm.

And now Litterae Terrae is a resource mined by the Folk and used for all kinds of purposes— such as a component in medicinal processes, as kindling used for the creation of Everlasting Fire, and as food (for the least self-respecting Folk, such as Book Mice).

Iron. Iron has long been the bane of the Fair Folk, and thus, the Folk. It only exists in Epilogue in the Frosted Heart, the central ring of frigid ruins and poison gas. Human survivors covet it, and use scavenged iron scraps— repurposing, re-smelting, and reforging it into tools, armor, weapons, and talismans against the Folk.

Ether. In the outer circle of Epilogue, the rivers (based on NYC’s rivers in shape) are not frozen— as they are in the Frosted Heart of the inner circle— and have mutated by the proximity of so many Folk. They are sludgy, starry, lavender-colored morasses. Just as iron is toxic to the Folk, the liquid “Ether” of the Wyrdlands’ rivers is toxic to humans. It can also be used as a healing tonic for the Folk, and is cherished as such. Whenever ether is siphoned from the rivers, the surface does not drop; it stays constant; it merely becomes more viscous. The more viscous the ether becomes, the less effective it becomes as both toxin to humans, and as healing draught to Folk.

Since Epilogue is surrounded by an impassable outer circle, the rivers do not replenish from external sources. As such, the draining of the ether is a climate crisis of sorts for the inhabitants of the Wyrdlands. 

Miasma. The swamp base of the Wyrdlands is constantly bubbling with gas. Some scholars of Epilogue hypothesize that the gas— known as “miasma”— is the same as the toxic gas in the Frosted Heart— but that some chemical processing of the swamp environment purifies and detoxifies it. No one is certain. What is certain, though, is the power of miasma as a propellant. The technology of living Ettingrad is both nebulous and largely irrelevant to this project— but guns did exist there, and— few are certain whether this is true— they may have been purely gas-propelled dart guns, with darts tipped in bio-hazardous poisons. In Epilogue, that is true. Scavenged guns— found either in the Frosted Heart or in the outer Wyrdlands— fire darts, and thus, require a source of gas. While most Folk do not demean themselves to the level of gun-wielders (they think of human technology as farce), they do recognize the miasmous gas of the swamp as a potent propellant for these weapons. As a result, there are cash-strapped Folk who bottle miasma and sell it to humans. 

One early part of Alice’s journey is to travel to the gnomish settlement of Gnome’s Point, to procure a gas mask. Such protection is necessary for any creature to survive the toxic gas of the Frosted Heart— where Alice must go to resolve the conflict of the narrative. These gas masks don’t just filter toxins from the air; they also supply purifying gas to the respiratory systems of the wearer. They function on miasma. 

The toxic gas of the Frosted Heart is not just toxic to humans; if Folk wish to cross the Frosted barrier into the inner city, they also must wear such a gas mask— and, therefore, rely on miasma, as well. 

Ink. Ink in Epilogue is both a technological and a nutritional resource. Scavenged caches of bottled ink can be found all over, typically spawning in the origin spot of potent stories of living Ettingrad. Both Folk and humans can ingest it as food and drink. It is also used as ink is typically used: in the offset printing presses still functioning throughout the realm. Folk cherish stories and writing— seemingly without recognizing that they are products of it— and a beloved vocation for them is writing new stories. 

Flora. The Wyrdlands of the outer circle are overrun with rampant plantlife. The floor is most similar to a swamp biome, but the understory and canopy is more similar to a rainforest. Broad-leaved trees with thick, waxy cuticles catch moisture from the air and send it dripping ceaselessly downward. Verdant ferns sway in the wake of pressurized miasma. Reeds poke bravely out of the morass.

These plants are home to many Folk, and likewise prove a fundamental construction resource for those of more settlement-focused proclivities. Certain Folk— such as the feared Woodsman— fell great trees— but, for the most part, the plantlife is left undisturbed. 

Ash. The most simple of creatures, moths, flutter through the tepid air both in the Frosted Heart and in the Wyrdlands. These radiant, clueless creatures are without purpose; there is no sun to guide them. As such, they bumble around, knocking gently into plants and animals alike. If only that were the extent to their existence.

Through the sleet of the Frosted Heart, through the dense canopy of the Wyrdlands, downward, endlessly, cascade these glowing white moths. Even the dimmest can see that they are magick. And blood magic is not the sole area of magick in Epilogue; in fact, hemomancy is largely reserved for humans; the Folk rely on more whimsical arcana. More enterprising Folk long ago discovered that these moths can be distilled into a solid state of pure power. Taking inspiration from the sight of them falling palely from the sky, they named this resource “ash”. It is a worthwhile resource, and can be used to power the strongest spells. The rare human— for they are rare in this realm— might recognize the value that the Folk attribute to these lepidopterans, and may strike out to capture as many as possible— not unlike an entomologist of the living Ettingrad, but different in a vital sense.

It’s wild to write this, but I have to describe the economic system of this whimsical setting as a market economy. There is no currency, but rather valuable resources that are traded depending on the demand of the individual with whom you are trying to barter. There is no government interference— because there is no central government. There are Folk royalty, but they do not have domains large enough to warrant having a currency. Traveling merchants— Folk and human— pick up valuable resources (as detailed above), and trade them however fairly they desire. I would not say that it is growth-focused, though, nor that private entities amass power. The purpose of economic transactions is not to acquire wealth or surplus (except for the rare Folk who covet wealth, or larger bands of human survivors hoping to have a stash to fall back on); it is merely to sate the direct, current desires and needs of the individuals interacting with each other.

The resource that I am choosing to write more on is Folkparts. In the game that I will lead next year based in this setting, folkparts will be an equivalent to currency (just not with a fixed exchange rate). As the player defeats Folk, they can loot the bodies and scavenge biological parts of them. These parts will always be tradeable, and will always be in need. Everyone— Folk and humans— can use folkparts; they are potent base materials usable for endless purposes. It’s also interesting, because as an economic system in the game, there will be unique folkparts scavengable from slain Folk— contrary to typical “I killed a kobold and found its purse of 6 gp and 3 cp!” Folk don’t cherish money, so why would they have currency on them? Also, this system will allow for interesting bartering scenarios, where buyers can have unique needs that may require specific folkparts.

It’s imported everywhere (if that’s appropriate for a bound region)— but primarily in the Wyrdlands; it is exported almost exclusively from the Wyrdlands; there are few Folk in the Frosted Heart. Humans don’t have such a whimsical nature that would allow for, say, alchemical brews requiring King Midas’ fingernails. These humans, after all, are dead citizens from a biohazardous war. 

The state of the industry is pretty stable. There aren’t rampant poachers hunting Folk for their parts, but there are some bounty hunters who do do that. 

Typically, traveling or sedentary merchants are the purchasers of folkparts. In the player’s travels, they will encounter fascinating traveling merchants who will be only so eager as to trade either finished products or other folkparts for any that the player has amassed. There are also marketplaces where folkparts are— shamelessly— traded en mass. The Fai Fair (detailed in the map assignment) is one such example.

F. 9/13/2024

I worked on one blueprint tutorial that Shivansh sent me for about an hour. It’s a three hour tutorial— I’m going to finish it tomorrow.

I also started work on a side project: Crossed Stars, a top-down arcady space shooter inspired by Bosconian. It’s about a crew of unscrupulous individuals who will do anything for cash. I did some concept work for the eponymous ship that they fly. I’ll post that in here tomorrow. I’m making it in UE5, so that I can learn more about the engine— in order to work on Pareidolia: Unbound.

Bosconian (1981)

Sa. 9/14/2024

Today I worked on both Pareidolia and my side project, Crossed Stars. I started with CS, making a flip book of the thruster flickering on the eponymous ship. 

This is the eponymous ship, with thrusters on and off. It is the only playable ship with an animation— which I made via sprite sheets and flipbooks.

I used this tutorial on top down shooters. I ran into an issue that I brought up in the Game Studio discord: when I turn the space ship, the camera also turns— but the controls stay relative to the absolute environment. So controls get mixed up— which is one problem— and being all dynamic doesn’t look retro. Bosconian doesn’t turn the camera when the ship turns. I want it to be like that. I used this tutorial to try and fix it— to no avail.

I decided to work on importing the free 500+ Animation Sample pack from Unreal into Pareidolia. I quickly realized that I had forgotten how Shivansh did that. But I found this quick tutorial that refreshed me. The issue with migrating those animations into Pareidolia was, we had made a significant amount of code that wouldn’t apply— like keybindings to movements that are now significantly more complex. 

I decided to scrap the movement code from before, and just copy the perspective toggling sections over. Fortunately, it works! I had to readjust the camera for both 3rd and 1st person perspectives; the dynamic lowered head that the new orange avatar has while running forward kept butting into the 1st person perspective. Oh and I had to rename the Sample pack’s camera to what the previous code denoted as the 3rd person one. But that was easy. And I’m learning! There’s still so much that I don’t understand, but I’m beginning to understand the logic behind blueprints— and my very meager knowledge of C++ helps. 

Another thing about migrating the Sample pack in: I wasn’t able to convert the fixed 3rd person perspective; you can move the perspective around. That actually turned out to be a good thing; now, toggling back and forth from 3rd-to-1st person doesn’t have weird different angle jolts.

Sa. 9/14- Su. 9/15/2024

I worked more on Pareidolia— specifically the animations. I don’t have a clear plan on the order of things that must be done, but I was excited to get some crouching and ledge grabs in place, so I started following this tutorial series (24 minutes in). Following these tutorials takes so much time. I just have one screen, so whenever the instructor does anything, I have to pause the video and go back to Unreal, to replicate it. I’m making progress, though! The animation blueprint makes sense. It’s 12:41am. I’m going to get ready for bed. 

I just went into the playtest window and it’s jank. The joints of the arms are floating apart, and he doesn’t move, just glides. I’ll fix it tomorrow.

Su. 9/15/2024

I meant to go to bed hours ago, but Nathaniel in the discord suggested Global/World Rotation, instead of Relative Rotation— oh for Crossed Stars. So I did that— and I swear I tried it earlier tonight, and it didn’t work, but this time it worked! Hurrah!

And then I made a sprite sheet and flipbook of the stars in the background, and I imported that over the ground of the level— so now there are flickering stars, just like in Bosconian. I’ve been using this tutorial to make sprites and flipbooks.

And I just used this tutorial to add a minimap to Crossed Stars.

Later in the day.

I designed the asteroids for Crossed Stars, and added the Destroy Actor code for the artillery to eliminate the BrigBrig (Brigand Brigade faction) ship. The AI on the BrigBrig isn’t working, but the elimination does. I need to go into the BrigBrig code and reciprocate it— so that if it runs into the eponymous ship, it destroys both of them. And then, of course, retro explosion animations. Below are the sprite sheets for Bosconian.

These are the three asteroid variants. You will be able to mine them for ore. I need to go in and upgrade the quality.

Bosconian sprites.

Here are some references for the static portraits of characters that will pop up in the bottom right corner as they speak.

For Pareidolia, I did not end up finishing that blueprint tutorial. I started modeling the stone snake whip— the one that frees the MC at the beginning. I started in ZBrush, but had issues with subtools, so I moved to Blender. I couldn’t get mirroring to work right, and it needs to be symmetrical. 

I think the next step of the process for this project will be making and rigging that whip, animating the four attack animations, finishing the Viewfinder emulation, and socketing it to a refraction trail. I’m glad that I wrote that out. I honestly haven’t been working on Pareidolia a lot recently, just because I wasn’t sure what steps to take.

Research! I played For Honor for a little over an hour today. I knew a little about it going in, and I’m playing it to get a feel for and an understanding of the tri-directional attacking/blocking system. It’s surprisingly intuitive. For Pareidolia, I am intending on having a similar system for at least the melee attacks (and maybe the ranged knucklebones attack)— so it was good to get a feel for it in a comp.

This is For Honor. You can’t see it super well, but on each character (MC and focused enemy), there’s a tri-directional toggle— a stance for directional attacking and blocking. Having a visual for that is a good idea, as well.

M. 9/16/2024

Today I worked on Pareidolia (what this seminar’s project is). I found some attack animations on Mixamo, exported the skeleton that I was using (from the Unreal 500+ Animation Sample pack) from Unreal into Mixamo, and with some fiddling, I was able to import the resulting attack animations back into Unreal. I used this tutorial to attempt to keep the legs moving while running (from the 500+ pack) even while attacking. I couldn’t get it to work. I’m inserting screenshots of my work below.

I sent out a plea in Discord to get some help, because even though I was following the tutorial, I couldn’t get the legs to keep running. I ended up going to MACD; Shivansh tried to fix it. He was able to get it to work with a singular running animation, but not with the 500+ Animation pack. Turns out, though, that one big error I had made was referencing the first animation blueprint (before importing the 500+ pack) in the animation blueprint for the attack. So that’s one reason it wasn’t working. 

Shivansh gave me some advice. I’ve been going at this from a project mindset. I’m working on two projects of my own creation (not counting the Studio project), and whenever I need to learn something specific related to the next steps in those projects, I look up tutorials— and fall down a rabbit hole of copying their methods while not understanding what I’m doing.

Shivansh said to start with watching a couple of those really long UE5 tutorials that go into theory and general information. That will provide me with the foundation to troubleshoot errors that come up.

I guess I was just being impatient. I want to jump into socketing the Viewfinder-esque weapon refraction trail onto a snake whip— before actually learning a bit about the foundation of the program. So I’ll do that.

Tomorrow is Tuesday. Tomorrow, I need to write my weekly blog post and make the PowerPoint presentation for Sprint 1 of the Seminar. I also need to contribute my portion to the Sprint slides for Sprint 1 of Adam’s studio project.

That feels like a lot, and I’m not sure if I’ll be able to work on anything else. Going forward, I’m going to work on those things multiple days prior— and just update the Tuesday before. Because I need to keep my momentum going, and cramming those three things onto a Tuesday will, I feel, kill it.

Read More
mkb mkb

Blog Post #1: Ahead

This past week, I have gotten quite ahead. Let me explain.

Here are my milestones— set two weeks apart, starting next Wednesday.

Milestone 1 Goals.

  • Start Unreal Engine familiarization through tutorials.

  • Review GDDs.

  • Deconstruct comps (from a player perspective).

Milestone 2 Goals.

  • Continue learning Unreal Engine.

  • Start filling in GDD for the end project.

Milestone 3 Goals.

  • Start working on the greybox prototype.

  • Continue completing GDD.

Milestone 4 Goals.

  • Continue work on the greybox prototype.

  • Start work on developing the alla prima mechanic.

Milestone 5 Goals.

  • Finish GDD (including base script for vertical slice).

  • Finish basic development of the alla prima mechanic.

  • Finish the greybox prototype.

More explanation is necessary.

What is the project?

From my project proposal:

“Working title: [Pareidolia: Unbound]. 

“This project will be the researching and development of a unique mechanic in a functioning prototype. This project will cover all of the school year, and will set the stage for my Praxis project next year. Essentially, the movements of a 3rd-person character— specifically the movements of their attacks— will create a trailing streak, which will smear the two-dimensional image of the three-dimensional scene. This smear will act as a smear of wet oil paint composing the scene; the smear of colors, shadows, and details will reconstruct that with which it comes in contact— altering the three-dimensional layout of the environment. The working name for this mechanic is “alla prima”— the artistic term in Italian for wet-on-wet painting.”

“The end goal of the project— which will continue next year in Studio— will be an action RPG vertical slice. Aside from using alla prima to alter the environment (to bypass obstacles, solve puzzles, etc.), it must also be used to destroy certain enemies (typically stronger types, like bosses)— a finishing move. If alla prima is not used, even if a boss’s health is reduced to nothing, it will not be defeated. Both uses of alla prima require a consumable resource (working name: Inspiration Points). 

“It is currently called Pareidolia: Unbound, because of the meaning we attribute to meaningless stimuli— which really presents a fair analogy to the alla prima mechanic. In addition to this special mechanic, enemies will spawn only if the MC’s perspective in the three-dimensional environments aligns specific visual details that come together to compose an organic, character-presenting shape.”

Let’s delve deeper into what I’ve done this past week.

9/5-7/2024

I bought the Learn C++ for Game Development Udemy course, and put in 3.5 hours into it these three days. The entire course is 12.5 hours. I also bought the Learn Unreal Engine 5 C++ Programming by Creating an Action-RPG Style Open World Game! course from the same instructor. That one is 53 hours, and the instructor recommended completing the prior course first, so that is what I am doing.

I also did some research into comps. The only one that I found to be immediately relevant was Viewfinder. Viewfinder has a unique mechanic in which photographs can be placed in front of the 1st person perspective, and the structures and objects of the photographs become real and interactive. I found a tutorial on emulating that in UE5 (Viewfinder was made in Unity). More on that tutorial later.

Viewfinder (2023)

9/8/2024

I wanted to start implementing my findings as promptly as possible, so I started a tutorial on creating a 3rd person game. I slightly modified the process: changing where the camera is to have a more intimate feel; having perspective constantly from behind and to the right of the MC.

Ignore the T-pose. This is the perspective that I decided upon for the 3rd person angle. 

I fell down a rabbit hole of getting better animations for the movements, jumps, etc. I got the 500+ Sample Animations from the Epic Games Marketplace. I was not able to figure this out, but I used this video and this video to try and learn how to import the animations.

I got the “Brute” model from Mixamo. Obviously, I’ll create a unique mesh for Alice, but the bald-with-tattoos worked better for now, and I want something better than the standard robot mesh.



I set up the keybinds for basic movement.

9/9/2024

(2 hours)

Today I scrapped the Brute mesh because I got frustrated about not knowing how to import animations to it— back to the basic mesh. Then, I followed this tutorial to add a 1st person toggle. Well, really it’s a 1st person switch; I need to figure out how to have it go back to 3rd person when I release the trigger.

Updated 3rd person perspective.

Then I got 10 minutes into this tutorial on emulating Viewfinder in UE5. The plan is to follow the two parts of this tutorial and really get a handle on the Viewfinder mechanic, then add a combat animation with a refraction weapon trail; assign the “photo” to the trail.

Still today, but after walk: I realized that I don’t need the “flip flop” between perspectives if I want it to only go to 1st person while the button is pressed. So I deleted all of those nodes. It works, but two things can be improved upon:

1) If I try to go to 1st person, release, back to 3rd person, press to go to 1st person again— it doesn’t work; I have to press the trigger an extra time to activate 1st person perspective again/or have pressed some other button since. How to fix this? I currently do not know.

2) Going into 1st person perspective, release, back to 3rd person, press (twice) to go to 1st person again— the 1st person perspective is the same as where I left it; the angle of view is the same; if I previously was looking at the ground in 1st person, it returns to that same view when I go back into 1st person. I want the 1st person perspective to return to default whenever I go into it. How to fix this? I’m not sure.

This is what the blueprint looks like after removing the Flip-Flop, and swapping to a toggle.

9/10/2024

(1.5 hours)

I met with Shivansh, a second year graduate student. He helped me import the Animation Sample Pack from the Unreal Marketplace, and bind the running and jumping animations to my mesh. He also helped fix the issue where it took two taps of the trigger to re-enter 1st person. I’m not sure what he did— I’m pasting a screenshot of the blueprint code here— but it worked. He also tried to fix the issue where the 1st person perspective returns to what it had been before going into 3rd person. He couldn’t help with that at the moment, but he tried some solutions— none worked— and decided to look into it in his free time. I will do the same. 

Shivansh's code.

I also research GDDs, and started making my own. Here it is.

And for my worldbuilding class, I am tasked with creating a worldbuilding project. I have chosen to use this opportunity to develop the setting of my game.

I detailed the notable sites in order of how I think the game plot will go— at least at this time. The class is inherently skewed towards hard worldbuilding; I am determined to add some softness to my project.

Next steps:

  • Continue implementing the Viewfinder mechanic tutorial in the 1st person mode.

  • Add more animations, such as diagonal running, running backwards, and ledge grabs (I will need to greybox a ledge in).

  • Add a basic weapon attack animation, and link a refraction trail to the weapon.

  • Figure out how to use the refraction trail as the “photo” of the Viewfinder mechanic.

To remind you, these were the Milestones for #1:

  • Start Unreal Engine familiarization through tutorials.

  • Review GDDs.

  • Deconstruct comps (from a player perspective).

So yes, I would say that I have gotten quite ahead.

Read More
mkb mkb

Introductions

Game Design Seminar 2024-25

My name is Mason K. Brown. This is the logbook of my journey as a game designer for my Seminar (2024-25).

Read More