Browsed by
Month: September 2019

Spend a night at the North Pole

Spend a night at the North Pole

Starting April 2020, the North Pole will no longer be only for intrepid explorers and polar bears. The northernmost point on Earth will get a temporary hotel. 10 heated glass igloos will be transported to the safest part of the glacier.

Luxury Action is a Finnish travel company behind the mobile igloos. They will only open for one month, when travelers can reach the hostile environment by helicopter. 

Now all you have to do is cough up €95,000 ($104,604) for the experience, which includes two nights in Svalbard (an archipelago halfway between Norway and the North Pole), flights and logistics from Svalbard to the North Pole and then back to Svalbard, a night at the North Pole, and all meals, security, and guiding. 

Read more about it here: https://www.afar.com/magazine/north-pole-igloos-will-be-the-northernmost-hotel-in-the-world?utm_source=Sailthru&utm_medium=email&utm_campaign=091719%20Igloo/AllInclusiveCruises&utm_content=A&utm_term=Daily%20Wander%20Newsletter


C# App hangs when BitmapDecoder.CreateAsync is called

C# App hangs when BitmapDecoder.CreateAsync is called

Calling ASync functions from UI event handling routines/the main UI thread in C# turns out to require some basic knowledge to avoid getting into deadlocks. I sort of jumped in without doing much learning, so here were some of my learning resources as I made the inevitable mistakes:

https://stackoverflow.com/questions/12507749/winrt-app-hangs-when-bitmapdecoder-createasyncstream-is-called

https://social.msdn.microsoft.com/Forums/en-US/8bed034e-a8f6-4322-a801-79f014815dd9/bitmapencodercreateasync-never-returns?forum=winappswithcsharp

https://stackoverflow.com/questions/12235085/winrt-loading-static-data-with-getfilefromapplicationuriasync

Debugging tips:

https://medium.com/bynder-tech/c-why-you-should-use-configureawait-false-in-your-library-code-d7837dce3d7f

https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1.result?view=netframework-4.8

C# and Universal Windows App file handling:

https://docs.microsoft.com/en-us/windows/uwp/get-started/fileio-learning-track

https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions

The details of fighting game logic

The details of fighting game logic

Making a button-mashing fighting game like Street Fighter has some surprisingly sophisticated logic when it comes to frame-perfect animation hits and combos. Strange Wire does an awesome job describing the difficulties and some ways to solve them.

What are those difficulties? Problems like checking hit and hurt boxes at the right parts of animation frames. Attaching events at the right parts of the animations can be tricky – especially if animators are still tweaking them. And the ever-present issue of keep the code clean.

Definitely worth a read whether you’re doing 2D to 3D fighters.

https://strangewire.blogspot.com/2019/09/frame-specific-attacks-in-unity.html

Incubus – 1966 Esperanto horror film featuring a pre-Star Trek William Shatner

Incubus – 1966 Esperanto horror film featuring a pre-Star Trek William Shatner

On a strange island inhabited by demons and spirits, a man battles the forces of evil!

Esperanto is a constructed auxiliary language devised by Polish ophthalmologist and linguist L.L. Zamenhof in 1887 to foster harmony between people from different countries. The vocabulary stems mostly from the Romance/Latin languages with additional input from Germanic, Slavic, and Greek languages.

Who knew that it would be used to make a film? And a film that stars a pre-Star Trek William Shatner. The idea was that use of Esperanto was intended to create an eerie, other-worldly feeling and makers claimed they hoped for greater international sales.

It was thought lost forever when the negatives were destroyed, but a single copy was found in 1996 in Paris and used to create all current videos of it. Give it a watch or read more about it here: https://en.wikipedia.org/wiki/Incubus_(1966_film)


The interesting possibilities of Google Stadia

The interesting possibilities of Google Stadia

Stadia disclosure at PAX Dev: https://www.gamesindustry.biz/articles/2019-08-29-how-to-get-your-game-released-on-google-stadia

Google has released the first round of game announcements for Stadia. But this isn’t your father’s Steam store.

“It was important for us with Stadia that we moved away from the Wild West that exists in some storefronts today,” Bautista said, speaking at PAX Dev. “Just because a studio has a game idea doesn’t mean we’re going to allow them to publish that game on our platform. Just because a developer or publisher releases a game that was a success, we certainly aren’t going to allow ten, 20, 50 fast follows to come after that.”

Google is hand curating their game list. Which is not totally surprising since this is new technology that has been tried and failed before. They require devs to fill out a form – and told them to do so carefully and thoughtfully. It will be reviewed and if accepted, you’ll get an email to submit even more material about your company and pitch. If you pass that stage, Stadia reviewers will then determine which projects to prioritize. If selected after that, you’ll be invited to discussions of a tailored sponsorship package. So, quite a process.

It was mentioned that projects will be evaluated especially on their viability for the Stadia platform. Projects that have specific functionality that is either unique to or shines on Google Stadia will probably be prioritized for partnerships. Example: in Orcs Must Die 3, they have a game mode that allows for orc hordes in numbers not possible on a local system, but easily handled in a cloud environment with massive parallel compute.

Nodes and instances

You can develop directly in the cloud itself or you can use one of Google’s “nodes.” There are two kinds of nodes: server development nodes, which are very large physical devkits that go into a server room at your studio and have four different Stadia instances on them; or desktop development nodes, which have a single instance.

With the near complete takeover of engines like Unity for development, (engines that increasingly have cloud compiling and other cloud services for game development) the creation of a complete cloud-based development environment could be foretelling the next big transformation in game development.

In fact, Google urged applications to consider the unique capabilities offered by running on a cloud-based platform – and put them into your overall game design. Image horde modes on the order of hundreds of thousands of animated characters. Something impossible on a single platform, but easily done on a massively parallel environment like the cloud. The ideas and new gameplay modes that might be generated are really interesting.

New features

Google Stadia will have other features that developers could take advantage of in unique ways. One that’s been shown before is Stream Connect, which shows multiple viewpoints on a player’s screen at once and is ideal for strategic play.

Another is State Share, a function that allows someone to compile game metadata into a shareable link, that can then be shared to others. For example, you can take a capture of a character wearing specific armor, with a specific weapon, at a certain level, and then send that state out via a YouTube stream, text, or email. Anyone who clicks on it can then experience the game in that state, which can be used to share a game with a friend or as a promotional tool.

Crowdplay, a feature that was teased in the initial Stadia reveal at GDC. It allows a livestreamer to play a game and viewers can queue up to play with or against them, jump in, and join the game instantly. 

Unanswered questions

The biggest selling point of creating a game for Stadia, or other streaming service, is that it has instantly been ported to any platform that supports Stadia. Consoles, PCs, mobile devices, etc. Anything that accepts input and is powerful enough for low-latency video streaming.

However, as has been discovered before, interface/controls are 70% of a game’s experience. Accounting for countless different display form factors and input schemes made game development extremely painful and error prone on early Android devices. A typing tutor game makes sense on a PC with a keyboard, but would probably be a terrible idea on a phone.

There is also the elephant in the room – latency. The United States is a huge marketplace, and internet latency and bandwidth can be radically different from place to place. Even in fairly ideal situations, latency on GoLive was deemed no substitute for local gaming experience. However, turned based games like Civilization and other non-twitch reaction time games (Civs, etc) should work just fine.

I think there’s some really interesting work going on and am excited watching the development of these ideas. I have doubts about latency issues, actual portability of games to different devices, and the costs for the platform/subscriptions; but the ideas of developing in the cloud and new game modes based on massively available compute are really compelling.

Time will tell which pan out.

This is how graphics used to be done kids

This is how graphics used to be done kids

Back in the day when I was learning, there wasn’t much (or any) hardware acceleration for graphics. Programming graphics back then, on 8088/286/386 processors was much like this. Bisqwit gives it a shot.

In this tool-assisted education video I create a simple FPS style walking and jumping scene for OpenGL, with DJGPP, in DOS. In a 256 colors 320×200 VGA mode. This is my first OpenGL exercise. Apologies about some little mistakes in the program (such as reloading the textures on every frame). I noticed them when this video was already late in production, and it would take several days before the new version would be available if I were to fix them, and I’m itching to get this video out and into making the next video already, and none of the mistakes actually prevent the content being understood, so I’ll leave them be. Most people don’t even notice. Twitter: https://twitter.com/RealBisqwit Patreon: https://patreon.com/Bisqwit (alternatives at https://iki.fi/bisqwit/donate.html) Twitch: https://twitch.tv/RealBisqwit Homepage: https://iki.fi/bisqwit/ I wrote a FAQ after this video was picked up on Reddit the first time in 2012. Here it is: https://bisqwit.iki.fi/jutut/kuvat/pr… Source code and prebuilt lightmaps: (Compiles and runs on Linux): https://bisqwit.iki.fi/jutut/kuvat/pr… (includes also a superior ellipsoid-based collision testing, and a buggy WIP for portal rendering: I’m not good with the math.)

Pondering immortality in the movie Groundhog Day

Pondering immortality in the movie Groundhog Day

“Movie stories are by nature about change, and if I were going to test the change of this character against an infinity of time, I’d want him to begin as somebody who seemed unable to change.” -Danny Rubin writer of Groundhog Day

Give this a watch – it’s a really good reflection on the movie.