Could you get a Unity game onto the back of a business card?

So some clever programmers have managed to get an entire ray tracer packed onto the back of a business card.

So this…

Produces this…

So some clever tricks are being used here to compact the code down to this level.

But could you do something similar with C# and Unity.

Or even better pack an entire Unity game/demo onto the back of a business card?

Great blog post about writing a mini raytracer → A minimal raytracer

Deciphering the Business Card Raytracer → Raytracing

My Attempt in UnityCould you get a Unity game onto the back of a business card? - Industries - News & General Discussion - Unity Discussions

1 Like

Easy.

3 Likes

Also an easy way to completely ruin a slot-loading optical drive :v

That’s so old fashioned.

You could go with a USB card.


But no elegance/finesse/skills needed.

3 Likes

just do a QR code on the card, that is a link to a webgl unity game.

7 Likes

Exactly.

But also, it’s a lot less old fashioned than expecting people to load your demo by typing its source into the computer themselves. What is this, the 1980s? :stuck_out_tongue:

4 Likes

We could easily make a full game fit on a business card if we use a font size of 1 :wink:

That’s an amazing hack, but I agree (in this day and age) a QR code to WebGL demo makes more sense (as who is going to type in that crazy minimized code and compile it).

One thing sort of similar I’ve been thinking about is having a video player on a card or a resume. Would be pretty cool to send out a demo reel clip and have it instantly watchable. I know some magazines have experimented with video, so it may be feasible, and I think a recruiter would be impressed with a video business card or resume.

Kids these days.

2971644--220737--1.jpg

4 Likes

Some techniques are getting close to cheap enough to be used for general-purpose labeling:

http://spectrum.ieee.org/nanoclast/semiconductors/materials/forest-of-carbon-nanotubes-stamps-transistors-onto-a-surface

Why not put a VR marker on it? Go all the way into this generation of tech.

1 Like

Could you do an origami business card google cardboard?

If you mean, could the business card be turned into a Cardboard viewer – no, the dimensions are too specific (for correct focus), plastic lenses are involved, and it has to be pretty large and sturdy to support a smartphone. Also, the app recognizes the viewer by sensing a pretty powerful magnet that is somewhat picky about correct positioning.

Your USB option or the CD option pretty much closes the book on the most sensible ways to address the problem if someone is dead set on doing this. I sort of like the USB thing.

1 Like

What about a game on a QR code…You get like 2kb for a game, should be enough right? :smile:

Why stop at storage, right? We can fit the computer itself (sans IO devices) in that space now.

http://www.intel.com/content/www/us/en/compute-card/intel-compute-card.html

2 Likes

Apparently there are ‘31,329 squares in every code’ in a QR code if you went for a game/DNA approach how many games could you fit into that space?

Or you could go with HCCB (High Capacity Color Barcode) about 3,500 characters per sq inch.

OK Here’s my attempt in Unity

using UnityEngine;using UnityEngine.Rendering;
public class UBC:MonoBehaviour{private int[] txt={524288,1432917,1906002,1383925};private Material m;
void Start(){m=new Material(Shader.Find("Standard"));m.SetFloat("_Metallic", 1f);m.SetFloat("_Glossiness",1f);int y=txt.Length;for(int i=0;i<txt.Length;i++){int x=10;for(int b=1;b<=1048576;b=b<<1){if((txt[i]&b)>0)B(x,y);x--;}y--;}G(10,10);GameObject p=new GameObject("ReflectionProbe");ReflectionProbe pc=p.AddComponent<ReflectionProbe>()as ReflectionProbe;pc.resolution=256;pc.size=new Vector3(20,20,20);p.transform.position=new Vector3(0,5,0);pc.mode=ReflectionProbeMode.Realtime;pc.refreshMode=ReflectionProbeRefreshMode.EveryFrame; }
void B(int x,int y){GameObject b=GameObject.CreatePrimitive(PrimitiveType.Sphere);b.transform.position=new Vector3(x,y,0f);b.GetComponent<Renderer>().material=m;}
void C(int x,int z,bool red){float t=2f;GameObject c=GameObject.CreatePrimitive(PrimitiveType.Cube);Vector3 s=c.transform.localScale;s*=t;c.transform.localScale=s;c.transform.position=new Vector3(x*t,-3,z*t);c.GetComponent<Renderer>().material.color=red?Color.red:Color.white;}
void G(int x,int z){bool c=false;for(int a=-x;a<x;a++){for(int b=-z;b<z;b++){C(a,b,c);c=!c;}c=!c;}}}

Not bad if I say so myself, what do you think?

To try it create a new scene or use the default scene, add game object, attach script and run.

PS It’s about 1223 characters.

1 Like


It’s not ray traced but it works quite well IMHO.

Could you get a working game in a similar number of characters, the smaller the better.

1 Like