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.

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!


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.