Ongoing progress with Gravitas in Unity
Writing a blog post (nearly) every day is not something I can maintain. But making quick videos of my progress is apparently easier.
Writing a blog post (nearly) every day is not something I can maintain. But making quick videos of my progress is apparently easier.
In software development (and product development in general) is a concept called MVP or Minimal Viable Product. According to Wikipedia it is “a product with just enough features to gather validated learning about the product and its continued development”.
My plan was to develop a Gravitas MVP in Unity and release it as quickly as possible. After reading a bit about some of the cool things I can do with Unity quite easily that would have been hard before, I inevitably got distracted. But it’s okay, since technical spikes are also an accepted part of software development (again thanks to Wikipedia: “a product-testing method that is used to determine how much work will be required to solve or work around a software issue”).
Specifically, one of the things I wanted to do in Gravitas was add a real lighting model, probably using normal mapping on the sprites. I had read up how to do this in MonoGame, but decided to see how quickly I could do it in Unity. The answer was about 2 hours. That includes the time to create the normal map for the ship (and finding a tool to help do that).
The tool I used incidentally is Sprite Illuminator from a company called CodeAndWeb. If you plan to do any 2D games I suggest you check them out. Their tools all come with trials, and the only reason I haven’t bought it is yet, is I’m deciding which bundle to get (I’ve already used Sprite Illuminator and I’ll almost certainly use Texture Packer. Physics Editor is probably less useful to me, but is only £10 extra with the other two).
But I’ve decided to get over it and have a go.
The number of amazing games released that have been made with Unity has persuaded me the last point is not an issue (or perhaps no longer an issue). More importantly, there have been a few specific recent developments that have piqued my interest.
Unity joined the .NET Foundation. Unity’s .NET support always worried me a little. Using old versions of Mono and C# was bad, and their support for JavaScript made me a little worried they might just drop C# altogether. This is obviously not going to happen now (at least in the near future).
Related to the previous point (but more to do with Mono being released under a permissive license) is that they really are pushing forward with an updated version of .NET.
The final reason is the discovery that Distinctive Games, a mobile game developer I used to work for have decided to use Unity for (at least) one of their upcoming games, Downhill Extreme 2.
The net result of this is that I have started working on another version of Gravitas in Unity. And after about half an hour I have a star field, and a ship (with a colorizable section) that rotates when you press left and right.
Xamarin Forms uses a naive conversion from it’s platform independent Color class to iOS’s CGColor, and as a result, Frame controls end up with inconsistent background colors. I’ve added a demo here.
Since .NET and Xamarin were open sourced, I’ve kept a casual watch on their repositories for interesting things.
Recently I noticed this pull request “Change appearance of NSTabView”. This immediately stood out since NSTabView is an AppKit (i.e. macOS) API as opposed to a UIKit (i.e iOS) API.
A quick read of the details and is indeed about some difference between NSTabView and UITabBar. The pull request is targeting the branch “macos” and it seems it’s been in development since at least August 17th.
TLDR: An error containing “–no-version-vectors” is probably fixed by updating your Android SDK Build Tools to at least 23.
I recently upgraded a project to the latest version of Xamarin Forms and got the following error: /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: Error: Tool exited with code: 2. Output: ERROR: Unknown option '--no-version-vectors'
A quick $ grep -ri "no-version" .
on the project revealed it was being used in a dependency brought in by the Forms update: ./packages/Xamarin.Android.Support.Vector.Drawable.23.3.0/build/Xamarin.Android.Support.Vector.Drawable.targets: $(AndroidResgenExtraArgs)--no-version-vectors
Long story short, this parameter is for the aapt
tool in the Android SDK Build Tools from at least version 23. Updating through the Android SDK manager fixed it.
Betrayal at House on the Hill is a board game published by Avalon Hill and designed by Bruce Glassco. The game is split into two parts. In the first, the players become trapped in a haunted house which they must explore, revealing rooms as they do. At some point the second part, the “haunt”, begins in which one player (generally) becomes a traitor and everyone plays out one of 50 scenarios pitting the traitor against the others.
An important part of the game involves tracking each of the player’s attributes (each character has a different range of possible values for each attribute). Since the included cardboard trackers can be loose and tend to slip out of place, a few different smartphone apps have appeared to help the situation.
The earliest Android version is Betrayal Character Cards. This app does the bare minimum needed. You can see a list of characters, see their attribute ranges and select the current value for each. As a small extra it also includes the birthday and hobbies of each character (which has a minor gameplay purpose).
Out of the apps available this is the simplest and has the least features. On the other hand this should run on the widest range of devices.
Stellaris is an upcoming game from Paradox based on the same engine used in Crusader Kings II and Europa Universalis IV. They have launched a strange little minigame to promote it: https://launchpad.stellarisgame.com/r/a7bdsg1xcd
A guy called Jason has decided to create the entirety of the USS Enterprise NCC-1701-D in the Unreal Game Engine.
I felt this is something that definitely needs as much as attention as possible. Everyone should check out the Enterprise 3D Project
TLDR: Go to Kragenmoor to the Grandmsters Palace and find Grandmaster Omin Dres to begin the quest Aggressive Negotiations.
Elder Scrolls Online on consoles has an achievement/trophy called Hero of Ebonheart which requires you to complete all the in game achievements relating to the Ebonheart Pact.
As I was checking through the list of ones I completed, I noticed that for the achievement Hearts of Darkness, the middle step - Stop Tanval from unleashing the second Brother of Strife - was incomplete. When I checked the map there were no black markers normally indicative of an incomplete area, nor did I have any incomplete quests in Stonefalls.
It turns out there is short series of side quests that are easy to miss in the Kragenmoor area starting with Aggressive Negotiations. This eventually leads to To the Tormented Spire which adds the Tormented Spire as a location to your map. Complete this quest line completes the middle part of the Hearts of Darkness achievement.