Space blob
Its a side scroller where you collect blue space blobs,
while you are youre self a space blob. Navigate around the red barriers.
Creaded in LÖVE 2D and converted to an java based android apk.
Download: Space-blob.zip
Contains README.txt and Space-blob.apk
Fake black hole
Not really a game, but I wanted to share this anyway.
The first thing I thought when I saw the real black hole picture was,
"Wow that looks like a root plot with kDarkBodyRadiator palette."
So I set out to replicate the spirit of it. After a bit of free time
during a teleconference, I produced this result.
Feel free to make and share your own version.
How to use it?
Save the code from below as FakeBlackHolePic.cpp
Install cern root and execute:
root -l FakeBlackHolePic.cpp
Get root from: Release 6.14/04 - 2018-08-23
void FakeBlackHolePic() { const double pi = 3.1415;// close enough // ring gaus double ringHight = 1; double ringWidth = 125; double ringRadius = 300; TF1 *ringFunc = new TF1("f1","gaus",-1000,1000); ringFunc->SetParameters(ringHight,ringRadius,ringWidth); // wobbliness gaus double wobblinessHight = 0.2; double wobblinessRadius = 420; double wobblinessWidth = 200; TF1 *wobblinessFunc = new TF1("f2","gaus",-1000,1000); wobblinessFunc->SetParameters(wobblinessHight,wobblinessRadius,wobblinessWidth); // TH1D make and fill as picture TH2D* pic = new TH2D("black hole","black hole",1000,-1000,1000,1000,-1000,1000); int imax = pic->GetXaxis()->GetNbins(); int jmax = pic->GetYaxis()->GetNbins(); for (int i = 0; i < imax; ++i) { for (int j = 0; j < jmax; ++j) { // get coordinates to calculate picture from double x = pic->GetYaxis()->GetBinCenter(imax-i); double y = pic->GetYaxis()->GetBinCenter(j); double radius = sqrt(x*x+y*y); // make the ring with a gradient double gradient = 1+0.6*TMath::Erf(-y/500); double ring = gradient*ringFunc->Eval(radius); // add uncertainty effect double wobbleShift = 50; double wobbleSize = 370; double wobblyX = sin((x+wobbleShift)*pi/wobbleSize); double wobblyY = sin((y+wobbleShift)*pi/wobbleSize); double wobblyAccent = wobblinessFunc->Eval(radius); double wobbliness = wobblyAccent*wobblyX*wobblyY; // set pixel pic->SetBinContent(i,j,ring+wobbliness); } } // change gradient start for other highlight color pic->SetBinContent(1,1,pic->GetMaximum()*1.15); // set contours high for color gradient effect pic->SetContour(200); // no axis pic->GetXaxis()->SetNdivisions(0); pic->GetYaxis()->SetNdivisions(0); // set palette radiative body color gStyle->SetPalette(kDarkBodyRadiator); // disable stats gStyle->SetOptStat(""); // make a square canvas TCanvas* c1 = new TCanvas("black hole","black hole",500,500); // draw pic pic->Draw("COL"); }