24 December 2020

Merry Christmas 2020

 Last year I shared some creators that helped me learn about game development. This year I'm gonna pass on some life advice kind of. If you play certain types of games, listen to music, are a bookworm, movie aficionado, or a weeb listen up. This goes out to you.


We Pass On Information By Telling Stories

The anime and manga "Dr. Stone" is an interesting example. In some chapters and one of the episodes, they mention the "100 Stories" that are passed on from generation to generation keeping important information.[1] Even better this is not made up. It actually matches up with real-life as well. Not only did Carl Jung research archetypes consciously or unconsciously hidden in stories, but we also tell our children stories that coincidentally have a moral. You might just do it as a bedtime story because you got one or two read for you or because you liked them but there's more reason for it. Whether it's teaching children not to take apples from strangers[2] or not to steal from others[3]. Another great example is the book "There's No Such Thing As A Dragon", which is also used by Jordan Peterson to illustrate this point. In this children's book, a dragon representing an issue is ignored within the household. Through the action of ignoring it, it grows bigger and bigger causing trouble all around until the family stops ignoring it and deals with it.  This tells us not to ignore problems and solve them, else they might get worse and blow out of proportion.[4] Those are all children's stories though.


This Is Not Limited To Children Stories

But, this is not limited to those. The bible is another example. It contains a lot of stories, instead of facts and you can learn from all of them. Whether it's questioning morals and decisions or showing what is righteous and what isn't. I would even go further to say this is also the case for animes. Seeing how a person has to struggles against being oppressed and abused in all kinds of ways[5], or people dealing with their own psychological issues.[6] Asking the question of what justice is and how it can be twisted.[7] Showing that you shouldn't rely on your talents too much and that regardless of how weird your quirks are you are like everyone else a human.[8] Things like you should think for yourself.[9] And even the topic of racism.[10] These are all examples of life lessons you can take from these artworks and there are probably many more.


So Keep On Consuming... However

Another thing that can be seen in many stories is to keep a balance and this is the case of the consumption stories as well. So, don't overdo it, make sure you balance your life well and wear the title of a weeb, bookworm, or movie aficionado with a smile and stand proud.

With that all being said, sorry for the lower quality I ran out of time from working on other stuff especially focusing all my writing on the seminar paper. I will be back writing blog posts after this semester. (Probably have to take a break for when I write the bachelor thesis too)
And have a Merry Christmas despite the current situation!


[1] https://dr-stone.fandom.com/wiki/100_Stories and Dr. Stone episode 17

[2] "Snowwhite"

[3] "Goldilocks and the Three Bears"

[4] https://www.youtube.com/watch?v=J54FMA895OA

[5] "Rising of the Shield Hero"

[6] "Persona 4: The Animation"

[7] "Death Note"

[8] "Mob Psycho 100"

[9] "Psychopass"

[10] "GeGeGe no Kitarou"

11 November 2020

Among Us Kill Distance

025VisionShortKillDistAmongUs
Ill 1.: x0.25 vision,
short kill distance
~GreenyNeko
Searching the right settings for the Among Us survival horror mode, I've analyzed the kill distance. In particular, I couldn't find anything about it online.


Preparation & Approach

Unwilling to bother four friends to start a game, I created three instances with BlueStacks. I hosted the lobby with the phone and filled it with them. For the map, I arbitrarily chose Skeld and decided on the bottom garbage chute since it has lines with a fixed distance. I'll place the imposter at the bottom right and approach with a crewmate until the kill button lights up. Given different settings, I'll make screenshots, which will show an estimated kill distance.


Ill 2.: x0.5 vision,
medium kill distance
~GreenyNeko

Getting The Screenshots

For all settings, I keep imposter and crewmate vision equal. First, I've tested if kill and view distance correlate, which wasn't the case. With this knowledge, I started the first round with x0.25 vision and short kill distance (see ill. 1). I continued with x0.5 vision and medium kill distance (see ill. 2). And lastly, x0.75 vision and long kill distance (see ill. 3). I didn't do any further checks since long is the highest kill distance option, and we already know that other settings don't affect it.




Conclusion
Ill 3.: x0.75 vision,
long kill distance
~GreenyNeko

Looking at the screenshots, we notice a relationship between the two distances. Namely, the kill distance is a bit smaller than the view distance. We could estimate the former to be x0.225, x0.45, and x0.675. The exact gap would require pixel measurements and determining the player's collision box. Unfortunately, the game scales with the device's resolution. Thus, requiring all screenshots on the same. I might do this at a later time. In particular, when I compare it to my estimate. For now, I am happy with this result.



05 November 2020

Video Games and BINGO!

A while ago, I got into speedrunning with one of the most popular games, Super Mario 64. Aside from the usual x-star categories, having watched some, you might have stumbled upon bingo. If you haven't, let me explain.


Video Game Bingo

superMario64BingoFieldExample
Example Bingo Field for Super Mario 64 generated on
https://www.speedrunslive.com/tools/sm64-bingo/
In a video game bingo, you complete random mini-challenges. These include  100% completing a level, getting a certain amount of lives, or doing something optional. Whether it's for fun, to beat a specific time or battle other people.[1] You place the challenges in a 5x5 grid, and as usual, you win by getting a bingo, which is a completed row, column, or diagonal.[2] Though variants of this requiring you to achieve multiple winning conditions like double or triple bingo exist. You might as well do the whole board, but that defeats the purpose of choice. You could also split into teams and work towards a goal together.[3] And you can do this with any game!



Bingo field created by
GreenyNeko on bingobaker.com

Can You Make Your Game Bingo Friendly!?

Comparing games like Super Mario 64 and Tetris, we notice a limit during brainstorming mini-challenges for Tetris. Thus certain games, are better suited. But why? A noticeable element is the increased optional content. However, in a rhythm game like Osu!, we have lots of options on what songs to play. We notice a lack of diversity when looking at the bingo I made for this game.[4] Therefore variety in the optional content of a game is key to make a game Bingo friendly.



Conclusion

Regardless of you trying this for yourself or making your next Bingo-friendly-game. It's a fun way to spice up old completed games or having more fun with friends. You can make your own Bingo card, check out others on Bingosync or SpeedRunsLive, or check out videos on people doing those runs.
Have fun and until next time. :P



[1] https://www.youtube.com/watch?v=CQF3AyVlNq0

[2] https://www.speedrunslive.com/tools/sm64-bingo/

[3] https://www.youtube.com/watch?v=X3DuqbqpSaY

[4] https://bingobaker.com#cfa78ff4d69fc7ed

31 October 2020

Among Us Meets Hide-n-Seek Meets Survival Horror

imposterVisionHidenSeek
Imposter vision hide-n-seek
by GreenyNeko
Halloween is around the corner, and Corona won't ruin the festive spirit. Even if we may not go outside, we can still celebrate other aspects of Halloween. I also plan to celebrate it. First, I planned to stream VR horror games. However, to appeal to all ages, I decided to go with Among Us instead. But it's not a horror game? Well, not if you play it ordinarily.



Classic Versus Other Game Modes

normalGameVotingOff
Voting in normal game
by GreenyNeko
You probably know the classic game mode. Players report dead bodies and call emergency meetings. The crewmates find the imposters and vote them off or complete all tasks. Imposters need to kill enough crewmates, blend in, and sabotage the ship. That is not the only way to play the game, though. People are creative and come up with their own rules, just like when we were young. Hide-n-Seek is one of these made from custom rules. The ability to change those also supports this to a certain degree. Now, how does Hide n Seek work?


Hide-n-Seek Mode

Hide-n-Seek plays with only one imposter. With their view and kill distance set to a minimum, they have to find the crewmates and kill them. Crewmates get a head start and hide on the map. Players don't report bodies, don't call sabotages, and don't press the emergency button.  The last person alive wins when the game ends. A variant of this has the players finish all tasks to win. Another changes the game's settings just a little bit to create a scarier atmosphere.[1]


Barely outside of imposter vision
by GreenyNeko
Survival Horror Mode


For this mode, the same rules as in Hide-n-Seek apply, but with some changes. First of all, sabotaging communications is allowed. Second, the player view distance now should be below x0.75 to improve the atmosphere. However, it should also be higher than the imposters' view to allow playing around them. I've noticed, when the view distance of the imposter and player is the same, it sometimes feels random to die. If imposter and crewmate view is equal, death seems random. Next up, players who die should stop talking, which helps the atmosphere to make you feel more alone as the game goes on. Switching off common-tasks is recommended since these encourage the imposter to wait for players on these. And lastly, I recommend playing on Skeld.[2]


Atmosphere & Future Steps

We have a small map with narrow hallways and a maniac running around. Players with a limited field of vision going from crowded to alone filled with dead bodies. The gameplay is comparable to Dead by Daylight, where you need to do tasks to win while avoiding the murderer. Due to the increased view distance, you can outsmart them, saving you with a fast-beating heart. Best of all, this is a spooky experience for all ages! Though, this is honestly just a theory. I'll find it out on Halloween 2020 at 3 pm UTC on my stream. Let's see if I can get this post out before, haha. Happy Halloween!


[1] https://www.reddit.com/r/AmongUs/comments/gsm9mu/hide_and_seek_custom_mode/

[2] https://www.youtube.com/watch?v=HryURpJSN4o&t=1h11m14s


16 October 2020

Among Us For Language Learning?

Some time ago, I wrote a blog post about language acquisition and games. Instead of making a game now, let's use an existing one. And what better game than the currently popular "Among Us"?
Other games do work as well, though. ("Keep Talking And Nobody Explodes")

Why Among Us?

AmongUsSkeldMapGerman
Among Us Skeld Map With Translation
~ by GreenyNeko
So, why specifically Among Us? Despite its fantasy setting, some of the vocabularies are practical outside of the game as well. Compared to other games, players need to describe the situation as detailed as possible while the imposters try to manipulate information believably. On top of that, the game encourages communication, specifically via voice. The fun and popularity play a role in this choice too.



Language Acquisition-Learning Hypothesis

Summarizing the Acquisition-Learning Hypothesis, we learn a language through comprehensible input. In the game, intelligible communication is fundamental to win the game. Whether or not you're an imposter or crewmate. Being unable to get your point across is sus. In this scenario, language production goes hand in hand with comprehensible input. The talker is the teacher, and the listener is the student. The game's context helps to make messages intelligible. Even with limited language understanding, your game's knowledge helps comprehension expanding your proficiency by filling the gaps.[1]

How To Get Started?

Technically you can jump right in and figure things out, but you might lose the first few rounds. Alternatively, you can acquire a language by watching other people play. Similar to how kids don't talk at first.
AmongUsGermanAcquisitionComic
Among Us German Acquisition Comic
~ by GreenyNeko
Possible ways to learn the game's vocabulary would be
  • listen to Youtubers play "Among Us" in the target tongue (preferably with subtitles)
  • change the game's language to the target language (if applicable)
  • translate the game and most relevant vocabulary
  • lookup a list of the words
Now gather learners of the target language and a few natives. Among Us requires 4-10 players, but you know the saying the more, the merrier. Lastly, try to only speak in the target language, even if you only use single words. (report, blue imposter, etc.)

Off You Go!

Continuing to play this way will steadily improve your understanding through active listening and thinking. It isn't limited to this game but feels like it's a better one. Good luck with your language learning journey.

Have I mentioned this Among Us research I have going on?
It only takes 10-20 or 30-40 minutes!
>> Click to check it out!

[1] www.youtube.com/watch?v=NiTsduRreug

06 October 2020

Among Us - Can You Find A Venting Imposter On Mira HQ?

Not every research has success, and I used not to post those. Combined with the limited time, having to learn for exams, I didn't write any. Thus, I'll start posting failed research as well. Since you can learn from fails too.


Hypothesis

amongUsMiraHQMap
Screenshot of Mira HQ on Among Us Mobile
With the "Y"-Tunnel circled and the door
log marked ~ By GreenyNeko


Mira HQ is a map in Among Us, that is famous for its Y-shaped-tunnel. Each exit of the tunnel has a sensor, triggering a log when a player passes it, but not when venting. As such, you can't read the imposter from the door logs should be possible. To prove this, we'll look at the Crewmates' sensor combinations and compare them to the possible Imposter combinations. Another question is if the imposter can counter this. But first, we'll organize the information in a useful way. Therefore removing unnecessary details and keeping the relevant (sensors, Crewmate/vent pathing, cardinal areas).


miraHQSimplifiedPathingMap
Ill. 1: Crewmate/Vent Pathing in
Mira HQ
~by GreenyNeko

Simplification

We take the MIRA HQ map and draw in the paths between rooms, between vents, and the sensors. (see Ill. 1) However, we still have more information than needed. We only care about the sensors, so we reduce the paths to the north, south-west, and south-east. The result shows how players will trigger the sensors. (see. Ill. 2) From here on out, I will label south-west as west and south-east as east.


miraHQRelevantVentAndCrewPathing
Ill. 2: Log Relevant Crewmate/Vent
 Pathingof Mira HQ 
~by GreenyNeko


Crewmember Logs

Given the nodes on the crewmate path (shown in green), they can be west, east, north, or in the tunnel. Additionally, triggering sensors puts it on cooldown for the player. Thus doubling back causes only a single log, not two.


So, we get these combinations:

  • WN - The player went from west to north or is in the tunnel.
  • WE - The player went from west to east or is in the tunnel.
  • NW - The player went from north to west or is in the tunnel.
  • NE - The player went from north to east or is in the tunnel.
  • EW - The player went from east to west or is in the tunnel.
  • EN - The player went from east to north or is in the tunnel.
  • N - The player is in the north, or the tunnel. (NN, NNN... N+)
  • S - The player is in the south, or the tunnel. (SS, SSS... S+)
  • W - The player is in the tunnel or the west. (WW, WWW... W+)

We read NWE as:

  • The player went from north to west, doubled back, and went east.

Doubling back makes the logs ambiguous. Thus, we can't tell the player's exact position or path.

We read NWWE as:

  • The player went from north to west and then from west to east.
  • The player went from north to west, doubled back multiple times, and went to the east.


Imposter Logs

The imposter can use the pink and green paths. Ergo, all combinations we found so far count here too, as well as the ambiguity. But if you think a person vented, you can check the logs. Seeing an imposter in the west, but there is no recent combination of SW/NW, and they appear in the log, they vented. Unsuccessful research? We just solved it! Well, you can't tell the difference if the imposter vented and then double backed on the sensor at the target location. Especially since doubling back is not uncommon on sensors.


Conclusion

Since both imposters and crewmates produce the same log combinations, and imposters can hide venting through doubling back. Reading who vented isn't reliably with a good imposter.

I have planned two more blog posts on Among Us, and if you're interested, I got some research going on. It takes 30-40 minutes to complete.

>> To the research

18 August 2020

8bit And 16bit Color Palettes

It took me quite a while to understand how 8bit and 16bit palettes work.

To spare you the search, I've decided to write this guide.


Motivation

Creating authentic 8bit and 16bit graphics requires understanding palettes. There are programs and algorithms, which transform your images into 8- or 16bit. Since algorithms cannot guess the intention behind the color choice and miss the context, creating them yourself is more flexible and results in higher quality. It also prevents the loss of details due to quantization. Additionally, to some, pixel-art is about control, and creating the palette gives such.


8Bit Graphics

During the era of the Nintendo Entertainment System, the technology worked with 8bit. Therefore the color of a pixel is represented by eight ones or zeroes. Today a pixel carries up to 32. You might be familiar with the red, green, and blue or RGB, where we split a color into three components. However, dividing 8bits into three colors is ambiguous. That's why there are formats for palettes. RGB332 is the most common for 8bit. It means we assign 3 bits to each red and green, and two bits to blue. A lighter orange would be 111 100 01, which would be 7 for red, 4 for green, and 1 for blue. That's nearly 0, so almost black.

comparisonBlackAndOrange
Comparing the colors.
Left: Black; Right: Our Orange


What Is A Palette

Better idea: We map each RGB value onto a level. 

For example, let's map the following blue levels:

00 -> 0

01 -> 79

10 -> 155

11 -> 255

The color levels (right-hand side) the bits map to is our palette. Back then, hardware limited us to use one palette for all drawn on the screen at the same time. Years later, the Super Nintendo Entertainment System was released. Powered by 16bit, our capabilities increased immensely! A typical format for 16bit is RGB565. Today we use 24bit ("true-color") and the RGB888 format. Some formats use RGBA, followed by four numbers, where A (="alpha") stands for the transparency.

Side note: The sum of the numbers does not need to add up to the number of available bits. Ergo RGB333 is a valid format for 16bits.


Creating A Palette From Colors

Using preexisting colors to create a palette takes three steps. First, choose a format. Then add them to your palette.

Let's use the following colors for an 8bit palette of the format RGB332:


Red
Green
Blue
Black   
000
Color 2
212211198
White  
255255255
Color 4
248216198
Color 5
248197198
Color 6
232173159
Color 7
979943
Color 8
11723473

The format gives us 3 bits for red and green and 2 bits for blue. The formula for the number of representable levels is 2bits. That is enough for 23 = 8 levels of red and green each and 22 = 4 levels of blue. However, our colors have six unique levels of blue (0, 43, 73, 159, 198, 255). Therefore we can't represent all eight colors.


Quantization

Quantization, the third step, will help us here. For this one, we'll merge close color levels.

Our two colors:

248 red, 216 green, 198 blue            232 red, 173 green, 159 blue

will then (for example) become:

248 red, 216 green, 198 blue            232 red, 173 green, 198 blue

By choosing a good looking and distinguishable color level, we can optimize this better than an algorithm. Then we continue adding all needed colors and quantify them to our palette. Now with our palette created, we can color the pixel art.


Tips And Tricks

Reminder: In 8bit and 16bit video games, everything on-screen at the same time uses one palette. Therefore use the same palette for all associated sprites.

The difference between darker colors is harder to notice. Thus use less dark color levels.


Examples


senkoPixelArt16Bit
Senko Pixel Art, 16Bit Palette (RGB565)
 drawn by GreenyNeko

This pixel art of Senko uses an RGB565 palette with the following color levels:

Color1234567891011121314151617...32
Red097126155174197205212222227232248----

Green04654608399106163173188197207211216224234255...-
Blue0434860738893101118159175198236255--



Notice that there's still space in the palette marked by the "-"s.

Senko Pixel Art, 8Bit Palette (RGB332)
drawn by GreenyNeko


This one uses an RGB332 palette with the following color levels:

Color12345678
Red097126155174197212248
Green4683106156173197216234
Blue43106175198


16 June 2020

Mobile, Mobile or Mobile Games?

The "graphics" versus "aesthetics" misunderstanding between players and developers isn't the only problem. Even developers confuse each other with terms like Mobile, Mobile, and Mobile Games. Though, this issue arises from the ambiguity of abbreviation. The full terms would be games on mobile devices, games developed for mobile devices, and mobile context-aware mobile games. But what is the difference? Why are they all just called "Mobile Games"? And how to categorize games like Diablo Immortal, Merge Dragons, Weather Farmer, Emulators, Pokemon GO and Candy Crush?

Mobile Games as Games On Mobile Devices

Showing a game with simulated analog stick and buttons.
Non-natural input on smart-phone.
https://pixabay.com/photos/game-play-mobile-game-android-game-4622800/
"Games on mobile devices" is the broadest category. If a game is available for a mobile device, such as a phone or tablet, it is a mobile game, more accurately, a mobile device game, which abbreviates to a mobile game. Ported games are a massive subcategory of these. Their typical controls are buttons and analog stick simulations, like in Diablo Immortal or Emulators. As such, they can't belong to the next category.



Mobile Games as Games Developed For Mobile Device

Showing a game that uses touch to drag and swap candy
Natural input on smart-phone.
https://www.piqsels.com/en/public-domain-photo-jfxiz
A game designed for mobile devices uses device inputs naturally. Since a game developed for a console is a console game. A game developed for a mobile device is a mobile game. Hence the confusing terminology. An example of natural input on smartphones would be tapping to select an object, or dragging your finger over the screen to move an object. However, natural-input does not match all games. Thus, "one does not simply [develop an MMORPG on mobile]"[1]. Merge Dragons and Candy Crush are games developed for mobile devices, but not the next one since they don't use contexts.


Mobile Games as Context-Aware Mobile Games

Showing a game that uses GPS and AR as contexts
Game using GPS and area context
https://www.flickr.com/photos/140521268@N03/27947940226
When using the device's position, surrounding area, light level, etc.. We get a context-aware mobile game, specifically, a mobile context-aware mobile game. Since it is a game and contains "mobile" twice, it is a mobile game. Researchers are still researching these relatively new mobile games, but they already provide a plethora of possibilities. Their era got initiated by Pokemon GO. And present features such as considering weather-data like in Weather Farmer.[2]

Conclusion

Now you know about the different mobile games. You understand why they're called mobile games. And you know their differences and what determines their category. Keep in mind these categories do not determine the game's quality, though they relate to their uniqueness. You don't see games using your location or weather on a computer, for example. That wouldn't work well either unless the player is using a laptop.

[1] Lord of the Rings - One Does Not Simply Walk into Mordor Meme
[2] Technical University Munich: IN0040 Social Games

29 May 2020

We All Might Possess Eri's Quirk From My Hero Academia

Occasionally, I watch Youtubers review games or animes, and I saw the episode discussing Eri's Quirk. On the same day, I talked with another person about my fasting. Then I realized the connection. But, let's clear things up first.

Who Is Eri And What's Her Quirk?

"My Hero Academia" is an Anime playing in a world where people are born with special abilities, called quirks. They pass these down through genes. In the fourth season, they rescue a girl named Eri. Her ability rewinds a person's body to a previous state. Using it too much will revert the person to a baby and eventually to stop existing. While this sounds like a bad thing, rewinding injuries is possible as well.[1]

Just Fantasy Right?

So, reverting injuries, returning your eyesight, undoing cancer, etc.. Living forever. These all seem surreal, but they're not far fetched. Our bodies heal and repair themselves already, which is done by reproducing cells. However, every time reproduction happens, there can be errors, mutations, and damage, the current principal behind aging. There's a solution, though.

Longevity Genes - Core Of The Quirk

The longevity genes repair the damage done to the DNA during reproduction. However, living organisms have two modes of living. The "growth and reproduction" mode, during good times, and the "protect and repair" mode, under severe conditions. These conditions can be reached by eating less in general, eating less meat, being uncomfortable cold or hot, and during high intensive exercising.[2] During the latter, the genes will slow down aging, But, the quirk doesn't only slow it. It also stops and undoes aging.

Gene Therapy

dna, building, block, nature, gene, medical, built, blue, animal themes, animal
Image of DNA from
 https://www.pxfuel.com/en/free-photo-jrtql
Using gene therapy, scientists reset the epigenome of mice, resetting their age. However, when not careful, the cells may become pluripotent ones. Meaning they don't know their purpose yet - being tumors. Switching this procedure on and off on mice worked well. Unfortunately, given the approximately 37.2 trillion cells of a human[3], we're not there yet. But now it doesn't seem as far fetched anymore.

So, In Comparison

To recap and compare. Both Eri's quirk and gene therapy can revert cells to a previous state. Allowing the healing of damaged cells, blindness, cancer, and more, enabling us to live forever. Additionally, they both share the problem of resetting too far. But neither scientists nor Eri, have figured out how to control this. We're unable to revert a lot of cells at the same time, while Eri isn't able to control the intensity or ending it. Another difference is, we don't need to evolve this quirk. It's already built-in for us.


[1] My Hero Academia: Season 4 Episode 13 & 14
[2] How to Slow Aging (and even reverse it) - https://www.youtube.com/watch?v=QRt7LjqJ45k
[3] https://www.wonderopolis.org/wonder/how-many-cells-are-in-the-human-body

13 April 2020

Is Implementing COVID19 Related Content Into Games Really That Bad?

I never expected to write a blog post related to COVID19. Though I kind of ended up in a discussion that even got me muted on a Discord Server after backing down and apologizing informally for the missteps I've done (like ambiguity). The big topic of today is: "Is it okay to build in references, memes or jokes about catastrophes like pandemics into your games."

Making Fun Of Pandemics!?

Now, why would you ridicule something this serious and terrible? Do you have no decency? Are you unable to see the seriousness of it?

These are probably the first thoughts that would come to mind.

With some exceptions, I do believe that the majority of people do know about the gravity of the situation. Many people are begged and forced to stay at home, almost everyone is tense, conflicts arise, and negative emotions ensue. This built anxiety, situational depression, sadness, and others take a toll on everyone. And everyone deals with it differently. Some people laugh at funerals, the same who will most likely make fun of COVID19. It is their way of dealing with it. Is it insensitive? Maybe, maybe not.

Insensitivity And Getting Offended Nowadays

People always get offended by all kinds of things, which is okay in and of itself. However, disallowing the people to deal with their problems could worsen the situation. I don't wanna go into what happens with people who have anxiety and situational depression and can't deal with their problems.

Responsibility And Prejudice Of Game Developers

But as a game developer, you are a public entity. 
This is something that bothers me deeply. If we can make jokes in person and our art can contain these jokes, why not the games we program? Because games are in-between software and art?

You're just adding it to make a profit off of it.
Well, this is a good point but also prejudice to some extent. Are there companies who would like to do that? Definitely. Does every company do that? No. Even more fascinating, if a company earns money with Patreon or ads, they automatically try to make cash off of COVID19 when implementing anything related.

Deeper Into The Gray Zone

We can go even deeper by integrating charity into it as well. Games, gamers, and game developers can do big things. The media doesn't approve of it or may not even mention it, but GDQ (Games Done Quick) and other events can raise millions of dollars for charity.

Maybe It's Too Early

Well, to close it off, I understand that companies or game developers don't want to do this. It is very risky to receive negative publicity for it, and it adds oil to the already tense mood.
But maybe one day, we'll be able to let go, just smile with positivity for a short moment to relieve ourselves from the negative emotions and enjoy ourselves.
Also, be alert, not anxious. Take it with humor, but do take it seriously.
Stay safe.

10 March 2020

Designing A Gaming Bot For Discord (Initial Approach)

Whelp, I made it. I figured out all the things I wanted to figure out before writing a blog post about making a gaming bot for discord. So, without further ado, let's get into it.

Prologue

When I say gaming bot, I'm not talking about a discord bot connected with your game. Instead, I mean a bot, which responds to user commands. You can compare it to a text RPG. Before making it, I used an approach that I can only advise you to do too. But, make your own decision after reading it.

The Approach

Planning to use any preexisting platform for your game requires you to brainstorm the possibilities. Like with different hardware (mobile games versus PC games), not every game mechanic works. Looking at the input and output methods that are available to us and analyzing these tools allows us to build the game's horizon.

Familiarizing Yourself With The Platform

Discord is a modern chat platform. It allows users to interact with each other on servers, in groups or private chats. All of those three have both voice and text capabilities. The latter also features emojis. Whose are of use to react to others or for usage in your message. Reactions can also be taken back and reapplied.
Additionally, the text message can contain attachments, which will be displayed if they're video, audio, or graphic files. Else they appear as a download instead. URLs are displayed similarly, except for downloads, which are shown as previews instead.
With the ability to edit, delete, and format your messages, there are even more possibilities for bots to do their charm. Unfortunately, we are more limited than that.

Familiarize Yourself With The API

In the end, even a limitless platform restricts the game or bot with its API.
Luckily, all elements listed before, which a text-based RPG would require, are implemented in the API. I could go into the API in detail, but I think I'll leave that for another post when I write about the gaming bot and the design choices in more detail. Anyways, let's look at the capabilities we have for the game.

Screenshot of my RPG Bot
Using Emojis as an input method.

The Input

The primary input we get is user messages. We can search for specific patterns in there or use the API

calls to filter for commands. Another one we can get is through reactions from users to the bots messages allowing us to use arrow emojis to flip through pages of content, for example. While this doesn't sound like much, they are already powerful tools in our tool belt.

The Output

Screenshot of my RPG Bot
Using embed for layout and emojis for
graphics.
There's a lot we can do output wise. From sending simple messages showing content to formatting them, using embeds to implement layouts, emojis to represent graphics, or even posting generated or resource images. Given the list of Discord features, there's a lot more than these I came up here now. But, it is a start if you don't have one yet.

Conclusion

Well yeah, this is the approach I choose when developing games for hardware or platforms that aren't as familiar. I hope it helps you make better design choices. And maybe I'll post about my gaming bot? We'll see in the future.

Discord Dhuum challenge. Anyone?[1]

[1]https://itrunsdoom.tumblr.com/



01 March 2020

Acquiring Languages and Games

Since I'm coming close to writing/performing the last exam of the semester, it's about time to continue learning Japanese. What I did not expect was the number of videos about language learning vs language acquisition, which ended up in my feed. Curious as I am, I watched them, of course. And here is what I've been thinking about it.

Language Learning VS Acquisition Summary

Firstly, what is language acquisition? The idea behind it is that you do not learn the rules (grammar), vocabulary, etc. of the language (language learning). Instead, you acquire it the same way children or babies do (language acquisition). But how do babies learn the language? By being immersed in it. We start not understanding a single word, but after some time, given their context, we can figure it out. The more words we acquire, the more we can derive through what we already know. Supposedly we do not obtain through repetition as many apps do it. (for example Duolingo) [1]


My Approach To Such An App

For maximum immersion, throwing the player into a fictional world instead of asking questions about language makes more sense. The goal is to create a virtual environment tailored to obtaining it similar to acquiring it by living abroad. This virtual world most likely needs the player to navigate it, which means we have to teach the user words that describe these actions. (right, left, up, down, north, east, west, south, jump, etc...)

Like in real life, the player can be asked to complete quests. Starting with simple ones such as: Bring this orange to the fruit store to the right or bring this sword to the northern guard. Whether the words "right" and "northern" are marked, is a question of difficulty I would say. The idea of these quests is to teach the user the meaning of those words. Important is ensuring that the possible mistakes the player makes are limited. They might not notice subtle hints, and we don't want them to get frustrated. Naming the store of the orange quest "store" is a positive example of this. On the other hand, the sword fetching quest is going to be frustrating, since the player might not know what north, sword or guard is.

From there on out, it pretty much builds on top of each other. Slowly teaching the player vocabulary and later on grammar through context. For example, let's assume the player learns German. They already know the word "springen" (engl.: jump). Putting NPCs that react to him with "Du springst" (engl.: "You jump"), then they get subtle clues to what "du" (engl.: you) could mean. If some children say: "Wir springen" (engl.: "We jump"), and they do it, we get more clues about pronouns. This may not even be the best approach, but you can see what I'm aiming at here.

Conclusion

So, as you can see, if this approach does indeed work, it might be possible to create a fully immersive game, which supports you on your way to acquire- instead of learning a language. Done through reading and hearing, and interacting with the world and its speech.

However, this is just my thoughts on it. Whether or not it works needs to be put to the test, and maybe this post sparks a conversation between people who develop language learning applications.

[1] https://www.youtube.com/watch?v=illApgaLgGA

01 February 2020

I Was Ignorant About Shaders

Congratulations, University. January is the first month on which I didn't post on this blog for a whole month. I've been working on four different projects: Specifically Audio, Assembly, Interactionmethods, and Shaders.

Me And Shaders

When I had first come in contact with shaders, I've been ~8 years younger. Back then, I first started to learn to program with the DirectX SDK. I never really understood shaders back then, and they were annoying. I never really did anything with them. From there on out, it took seven years until I came across them again during studying when I saw the project of a fellow student talking about his shaders. The game looked amazing. One semester later, in the Realtime graphics course, we were taught DirectX as well as shaders. It was- fascinating but pretty technical. It wasn't until I took the "Modern Techniques for Shader Development and Imagesynthesis" course.

The Epiphany

Until then, I didn't think much about shaders, but the courses made me realize how important they are and how easy it is to write them. Most of the animations, particle systems, post-processing effects, and other things making your games more beautiful, are probably done using shaders. Vertex shaders, geometry shaders, fragment shaders, image effect or post-processing shaders, and compute shaders give you the power to push your games to a new level of aesthetics and beauty.

What If Shaders Are Not Your Thing?

Of course, it's not the end of the world if you don't write your shaders. There are shader assets out there that you can get. You can make other people write them for you (like me :P), and most engines come with standard shaders. So, no one is forcing you to get into writing shaders. However, I still want to make you realize how important they are and that it is possible to create great things with them.

How To Get Started?

The university course I took taught all techniques by using case studies. So, get out there, take a game and try to recreate the effect. Oh wait, maybe you should start with some tutorials on the basics first. Read into how Vertex and Fragment shaders work and make your own in Unity since you can get started right away there. Check for some websites that teach shading while using case studies. The tutor of the course has a website called lexdev.net.

Shimmy, Shimmy... Out And Away

That's it from my side for today. I'll come back with more posts eventually, especially after the exam phase. Also, I started to use Grammarly again, given your feedback on the blog posts that didn't use it compared to the ones that do. Thanks for that feedback, btw. Oh yeah, I could write my case study or tutorials in the future.

Liked the post? Noticed an error? Wanna discuss the content or leave a comment*? You can join or check into the discord to do so! (*Note: Comments are disabled to avoid saving user data on this website.)
>> Join Discord

About Me

My photo
I'm a junior game developer and software developer and I created this blog to share my ideas, thoughts and whatever I'm working on or doing.