#90 Why Zines Work
A DIY Information Theory
Morgan Stern explains Why Zines Work and sneaks in an entire theory of information joining Miller's Magical Number, neural mirroring, and me
seen from United States
seen from Finland
seen from United Kingdom

seen from Russia
seen from Singapore

seen from Malaysia
seen from China
seen from Germany

seen from United Kingdom
seen from Morocco
seen from Congo - Kinshasa

seen from United States
seen from Armenia
seen from China
seen from United States

seen from Malaysia
seen from China

seen from Netherlands

seen from United States

seen from Malaysia
#90 Why Zines Work
A DIY Information Theory
Morgan Stern explains Why Zines Work and sneaks in an entire theory of information joining Miller's Magical Number, neural mirroring, and me
Drink Mechanics!
Updated on 27 July 2020, brain still dry, yay!
Overview
I am back again! This devlog will be a relatively shorter one, since I spent most of my time fixing bugs. Boring stuff aside, remember the secret mechanic I mentioned in my previous devlog? Well, now you get to see it! Introducing...... The Drink Mechanics Prototype!
Prototype
That’s right, this is a new mechanic we decided to add to Yi’s Eatery!
Well, to be fair, we did make a drinks fridge for a reason... The initial plan was for the customers to order drinks occasionally, but we decided to scrap that. So now the drinks fridge was lonely and sad, without a purpose in life, thrown to a corner with the counter... Well, we’re having none of that here! In an attempt to make use of both the drinks fridge and the counter, we decided to introduce a new mechanic!
Drink interaction
Interact with the drinks fridge to spawn a bottle
After a 5-second cooldown, they can spawn another bottle
Unable to spawn more than 2 bottles
In other news, I also added a method to check if more than one player is at the sink, so only one player can wash plates at a time.
Review
As mentioned earlier, this week’s progress has been more of fixing bugs and polishing some mechanics, aside from implementing the new drink mechanic.
As always, much thanks to @thecatnoodlet for drawing those snazzy drinks UI at record speed! She also posted a tutorial on concept art, if you’d like to take a look!
I will be working on networking the customer mechanics this time, so that should be exciting! @theeggnoodlet has worked really hard to get them out, and she’s doing an amazing job, so do check out her devlogs too!
Finally, @theboynoodlet has been doing his best to get the final, polished 3D assets out and he has been making wonderful progress! He’ll also be dropping an article on asset creation soon, so don’t miss out on it!
Networked Mobile Mechanics Update
Updated on 21 July 2020, yay progress!
Overview
Hi! I’m back, yay! So this past week has just been me trying to fix bugs and try to get things working. Now, I’m proud to present a completed mobile mechanics prototype! (without the customers) The base mechanics for the players are now done, so I just need to add in the customers! As always, I’m going to give a brief rundown of what I fixed/added!
Prototype
You may remember from last week’s post that while I was able to network some mechanics, I was unable to get some working... In this prototype, those issues have been fixed!
Both players can now:
Ingredient Interaction
Spawn ingredients from respective shelves
Drop ingredients on the floor and pick them back up
Drop ingredients onto the ingredient tray
Ingredients rot if left on the floor for too long
Ingredients and rotten ingredients can be thrown away
Dirty Dishes
Pick up dirty dishes from the table
Bring dirty dishes to the sink
Stack up to 4 dirty dishes in the sink
Place up to 15 clean plates on the plate tray
Networked Objects
See what each player is holding on their head
Ingredients dropped on the floor, rotten ingredients
Ingredients placed on the ingredient tray
Dirty dishes in the sink
Clean plates on the plate tray
Pick up one any ingredients on the floor
I’m really glad this prototype now works, since it’s been a headache ever since the errors occured... It’s pretty much complete now, except for the customer mechanics (to be added soon) and another... secret mechanic!
That being said, the credit doesn’t go to me entirely, since I did request for some much needed help from a teacher.
Review
I was struggling very much with the commands and remote procedure calls (RPCs), since I really still couldn’t understand what networking is about. I spent about 3 or 4 days trying to fix these issues, but could never quite pinpoint what went wrong where. Which is why I reached out to my teacher and asked him for his help, since he is experienced in networking.
He got back to me quickly and when we went through the different mistakes I made, I realised two things:
1. My networking knowledge is shallow, and my foundation is not strong, so I get so many concepts wrong
2. My script structure really needs to be improved and be more consistent...
The mistakes were not something I could have ever figured out myself, I’m sure, since most of them stem from my lack of understanding of networking concepts. Things like how to use RPCs and when to use Commands, or when I should use a static variable and when to use a SyncVar, were all very much still foreign concepts to me. Even though I thought I might have gotten the hang of networking, in the end, I was still quite clueless.
That is why I will be spending my time restructuring my code, as well as using RPCs and Commands in a smarter manner, and where they are needed.
In the next update, I hope to have accomplished that and grasped a better understanding of networking! Until next week! <3
Networking Prototype Draft
Completed on 14 May, 2020
Overview
As you all know, our game is a cross-platform VR game, so there needs to be some way for players to communicate with one another!
During the past 2 weeks, I worked on the networking prototype draft, and this is what I came up with!
Currently the VR host (chef) is able to:
Host a room for mobile players (servers) to join
Set themselves as ready
Delete the room and boot all Servers out
Start the game when everyone is ready
The mobile clients (servers) are able to:
Join a room that has been made by the Chef
Set themselves as ready
Leave the room
Move around in the map scene once the game starts
Review
Some of the problems I faced stemmed from my lack of knowledge about the topic, networking is something I have never done before so I had to learn everything just before doing this. I chose to use Mirror Networking as it supports LAN (local) connections, which is what our game needs, and there were a lot of concepts and terminologies I had to learn.
A considerable amount of time was spent figuring out ways to get a system that allows the host to host a room, and for players to be able to join the room without having to enter the localhost’s address, as that doesn’t provide a good user experience for the players. It took a few days tinkering about and trying different methods of network discovery, and finally, settled on having the host advertise the server when they start a room, so that the mobile players can find rooms immediately and join.
Some of the more crucial concepts are like synchronising values across the network. it was kind of tough to get a hang of it, and even now I still have my doubts. The synchronising works a lot like static variables but across networks, so I sort of got it.
It was also tough getting the player identities synchronised across the network, and not just on the server, but with the help of others, I was able to get it working!
That’s all for the networking prototype as of now!
There’s a lot more I have to learn about networking but I think making the rooms taught me quite a bit and I can apply them for future networking mechanics!
Networked Mobile Mechanics Prototype
Updated on 14 July 2020, my brain is dry and my laptop screams eternally :)
Overview
It’s been some time since my last update, so sorry, I’ve been busy trying to figure things out and also went through a bit of a burnout a few weeks back. This prototype is nowhere near complete, and is more of my attempt on networking the mobile mechanics. As per usual, I’ll be sharing updates and changes made in more detail, so let’s get to it!
Prototype Draft
In this prototype, I updated and restructured the mobile mechanics scripts to be networked and work with both players instead of just one. First, I’ll go through what a single player can do, and then talk about what both players can do. The new methods have been bolded for clarity, with the previous versions listed beneath each one!
The player can now:
Interact with ingredients
Spawn ingredients from the respective shelves
Drop ingredients on the floor and pick them back up
Drop ingredients onto the ingredient tray in a pre-determined position
Ingredients now rot if left on the floor for too long
Ingredients could not rot
Ingredients can now be thrown away, while rotten ingredients must be thrown away
New implementation of trash bin!
Wash dirty dishes
Pick up dirty dishes from a table
Bring the dirty dishes to the sink
Stack up to 4 dirty dishes in the sink
It used to be just 2 dirty dishes
Wash one dirty dish at a time, while near the sink
Place up to 15 clean plates on the plate tray
Plates now have their own tray, they used to be placed with the ingredients
When networked, the players can also see:
Networked Objects
What each player is holding on their head
Ingredients that have been dropped onto the floor
Ingredients that have been placed onto the ingredient tray
Ideally, there should be more that both players can do. As such, I will be working on implementing networking for:
Dirty dishes in the sink
Clean plates on the plate tray
Picking up ingredients and dirty dishes
Currently, only the host is able to perform these actions
The base mechanics for all these methods have been implemented, however, I am struggling a little with the networking commands and am still trying to figure that out.
Regardless, I am proud of my progress, as networking mechanics is something I have been putting off for quite a bit, and have been absolutely dreading since the project first started. It was also the reason for my burnout for 2 weeks or so, so I’m glad I’m almost back on track!
Review
This was a pretty challenging prototype to get out, even in such an incomplete state. The problem mostly came when I had to network the actions players could take, since there was a lot to take into consideration. One of the first hurdles I faced was figuring out how to let the player pick up networked objects. Luckily, this guide from the official Mirror site made it easy to start so I could get the hang of it within a short period! Then came the tedious part of having to reorganize rewrite and relocate my scripts to fit the networking criteria. There was a lot of Synchronizing being done, and even more commands and server callbacks being made, so it took quite some time to ‘port’ all my existing mechanics to be compatible with networking.
I won’t bore you with the details but it was just very challenging and confusing at times, as I am still not experienced with using any sort of networking API, even one as convenient as Mirror. I eventually got about half of it working, and decided I could fix the bugs later on, since I didn’t want to spend 5 hours trying to fix bugs and neglecting the other responsibilities I had.
After getting the draft out, I went ahead and built on the ingredient rotting mechanic that my fellow programmer @theeggnoodlet made, so that it now actually worked across the network! Did I mention she is also working on the customer mechanics, and is doing an incredible job at it? Do check her blog out for the latest updates on that part of the mobile mechanics!
I’m sure you’ve also noticed the snazzy User Interface, it looks much better compared to the previous prototype, doesn’t it? They were made by the amazing @thecatnoodlet! She will also be sharing some tips for concept art sometime this week, so I highly recommend you check out her blog too!
Last but not least, our 3D modeller is hard at work with getting the final assets out, and he’s been doing absolutely well so far! Do head on over to @theboynoodlet‘s blog for updates and a sneak peek into what he has been doing!
This post dragged on a little longer than expected, but that’s fine, since I did have quite a bit to update! I will be working on fixing the bugs as well as implementing customer mechanics whenever @theeggnoodlet passes them over. See you soon!
Networked Customer Mechanics
Updated on 3rd August 2020, somehow my brain still works?
Overview
This will be another short devlog, since there’s not much to update on. As mentioned last week, I have been working on networking the customer mechanics between mobile devices and progress has been slow, but I’m slowly getting there!
Prototype
Customer Interaction
Players can both:
Pick up customers from the waiting area
Seat them at an empty table with enough seats
Take their orders and these orders are the same on all players’ devices
I have a few more tasks left to do, but the main problem was with networking the customer orders, so I’m glad that it’s over (I hope).
Review
I spent most of my time converting the customer mechanics done by @theeggnoodlet to be used with networked players, then I moved onto networking the actual interactions. Using commands, server callbacks and RPCs, I somehow managed to network some things...
I also required much help from my teacher as always, but I’m happy with the progress for now, and will continue to work on networking the customer mechanics!
Meanwhile, @theboynoodlet has made huge progress on the 3D environment assets, and @thecatnoodlet has made some pretty particle effects for our game! @theeggnoodlet has also been hard at work with getting the core VR mechanics out, so do check them all out! They are all making amazing progress <3
By this week, I hope to have completed networking customer mechanics and at least have started on networking the VR and mobile devices!