Unity 3.5 Public Beta is go!
So I woke up this morning to some interesting news on the inter-tubes on my phone. It seems that Unity Technologies has released a developer preview of 3.5. This includes the long awaited export to Flash capability (indeed, this will alleviate some of the concerns around my previous post regarding Linux export) which will let us as devs target some new markets with a higher user base.
To show off this functionality they’re hosting a short competition with some rather nifty prizes. The Flash in a Flash Creation Contest is a two week competition running from Dec 22 to Jan 5, with the goal of creating the best Flash game or interactive application using the new 3.5 build. The prizes are quite nice, including a large cash prize, and several pro licenses, and some Apple hardware. The only thing that worries is me is whether the submissions will all be created in this two week period (ala the Game Jams, forum competitions, etc) or if people are likely to just quickly port the projects they’ve been working on for months. I think the former will really serve to showcase the power of the tools as well as the creativity of the developers, while the latter doesn’t really seem as true to the spirit. I suppose we’ll find out when the results are released!
It’ll be interesting to see how people navigate the tricky holiday season with their entries to the competition. I have no plans for Christmas day, maybe I should get stuck into this myself!
Unity3D and Linux – The Quest Continues
I sent an email to Unity Tech to see if I could get anything official to put into this Linux Player feature request since people are getting a bit ragey. This is the email I sent.
Sent: 12/21/2011 4:14 PM
To: support@unity3d.com
Subject: Query regarding Linux TargetHi Guys,
Firstly, let me say thank you for all your hard work and in releasing this development kit the way you have. The free indie license coupled with the sheer power of the platform in either it’s variations is amazing and we’re all thankful for that, I believe. However, I just want to try to get something official from you regarding plans for porting the player to Linux (though the editor would be nice, I doubt it’s likely any time soon) . On the Unity Technologies Blog you guys had a successful build of core functionality of the Unity Web Player running in a browser on an Ubuntu machine. That was back in March, 2011. That was exciting for a few people who read the blog, I’m sure.
If you guys aren’t working on it officially for reasons of lack of financial potential or the cost of resources to develop such a thing, would it be possible for the community to organise a drive for funds to pay for the development for this task specifically. All we would need from Unity Technology is a cost and a promise to hire staff with the funds raised. This sort of thing has found success before, with the open sourcing of Blender as a shining example of what crowd-sourcing can do for software on a large scale.If you check out the cries for Linux player support on your feedback site, you’ll see over 10000 requests for this feature, nearly 10x that as requested for the GUI Editor changes which are currently in progress. Below are two comments I’ve made on this particular issue, back at the end of October. (my user-name is wolflogic there)
Thank you for your time in reading this, and I hope to get something back from you. I want to post whatever you reply with to the Unity Feedback thread in question, as the people there are beginning to cry foul and assume that you guys don’t even read the feedback posted.
Cheers,
Rick
———-
wolflogic commented · October 27, 2011At time of writing, this feature request is ranked 1st, with 9,096 votes in its favour. Reading through comments, it’s been first for at least 6 or 7 months. The next ranked item in the list for a GUI Editor only has 1,805 votes in it’s favour. Why has the Linux player build target essentially been ignored? One of the reasons I left Linux as a primary OS was lack of decent games. A unity player would open up a massive library of content on Linux and bring more business.
And with the Humble Indie Bundle campaigns, it’s been evidenced that Linux Users are more open with their pockets for quality games than those on the other platforms.
http://www.lifehacker.com.au/2011/07/humble-indie-bundle-shows-that-linux-users-arent-cheapskates/
wolflogic commented October 27, 2011
@Bugsbane — I would definitely throw cash at a kickstarter project if it were to get this done, player or editor, or both. Ultimately the player is more important than the editor, but I think a large number of people would fund both projects.
I have to wonder if this is something that the community could organise with Unity Tech to make it as easy for them to have to do as little as possible aside from hiring developers?
I got a reply pretty quickly; about an hour or so later. Their reply is below. Graham did counter with some valid points that we the community should probably address.
Date: Wed, 21 Dec 2011 17:00:30 +0000 (GMT)
From: Support <support@unity3d.com>
Subject: RE: Query regarding Linux TargetHi Richard,
We have a few developers who have been working on Linux in their spare time. For us to sell this as a feature, we need to know there is a market for Linux export. We estimate that a full-time dev, QA and support engineers dedicated to this platform would run at around $250k/year. This would equate to around 170 Pro sales per year. We do not think that there are 170 people who would purchase Pro simply because we support Linux. We would love to be proved wrong. There’s no need for the Linux community to fund the development, just commit to buy the product. With the exception of the HumbleBundle packs we don’t know who is making money from Linux gaming.
We don’t think that the 10k requests for Linux all come from our development community. At least, when we ask our customers we get a different response. We get lots of requests into the support team from end gamers who want to play Unity games on Linux, so some of the feedback is from end users. Those end users should be demanding that the people who make games with Unity support Linux, and for those people (our customers) to tell us what revenue they are loosing because we do not support Linux.
Shipping the linux webplayer on a single distro (presumably Ubuntu) is easy. It’s the on-going support for this, and constantly keeping it updated as the product evolves that is the issue. If we released support for Linux and then dropped it in the future that is kinda worse.
Note that in 2012 we’ll have support for building to Flash, and that will work on Linux, so our customers will be able to target Linux gamers.
For an official comment you need to reach out to our founders. My reply is based on my position providing support and being involved in QA.
Thanks,
Graham
He brings up a valid point. 10000 signatures saying “we want to be able to play Unity games on Linux” is not the same as 10000 devs saying they want to sell games to Linux users AND that they intend to buy Unity PRO. Now that they’re not getting money from the Indie license, if people aren’t buying their pro licenses, they’re not making any money, regardless of how many platforms are targeted. I assume this is why the PC/Mac versions are free but even basic iOS and Android targets are $400 a pop. Would anyone buy pro if it was the only way to build for Linux? Some would, but would it be enough to warrant the time and effort in maintaining the platform? What if it was another target like iOS and Android, $400 for basic and $1500 for Pro? Then what happens if you want to go Pro for all 3 (Win, Mac and Linux) then do you have to buy Pro for a “PC” twice?
Definitely something that we should think about, I think. Instead of just screaming that Unity is ignoring us, perhaps we need to talk to them in a more professional manner. Perhaps we should present substantial business cases as to how we as Linux developers will be a boon to their product?
Silverlight Cross-Domain/Sub-Domain Woes
At work we have a Silverlight application which is served from one subdomain, and pulled into another subdomain where it’s expected to load into the clients browser and work from there. Once upon a time it worked flawlessly. Then we changed a stack of things all at once, and it ceased working across our subdomains.
After several hours of tweaking and changing and trying to force some sort of debug output, and wondering why it was completely failing to even throw any exceptions at the dread white screen of death, and thinking it was “something cross domain security” related, I stumbled on this post:
My problem, it was solved! Figures, running linux servers, and apache wasn’t configured with the correct mimetype. The nightmare is over.
Whoops, I’m back.
Sorry everyone, there was a bit of a problem here and while I was doing some server maintenance I accidentally deleted the database for this site. There were one or two posts I know people were interested in so I’ll reupload everything as soon as I can.
It’s also time for some new content, which will be coming shortly; updates on some new projects, some freelancing information, and some general thoughts about stuff.
Stay tuned, more to come.
Quick Tips: Ubuntu Shortcut Keys
Because I always forget how I did this, I’m going to write it down. Firstly, I spend a lot of time in Terminals, so I like having a quick shortcut to use to open one. Control + Super seemed a good choice for this.
Unfortunately, the keyboard shortcut tool doesn’t let you map the Super button anymore, so to set it we need to use gconf. Open gconf-editor and go to /apps/metacity/globalkeybindings/ and look for the option named “run_command_terminal” you can set it here by changing the value to “<Control>Super_L”; in this case it will work with the left windows key.
Another issue I found again today after opening Blender again for the first time in a long while, was that Alt+RMB (edge ring select) gets stolen by Compiz and turned into a Menu popup instead. This can be fixed in gconf as well by going to /apps/compiz/general/allscreens/options/ and changing the value for window_menu_button to “<Control><Alt>Button3″.
How to convert Inkscape SVG to PlainSVG and PNG
I’m working on a project at the moment, that has a number of design and asset files I’ve created in Inkscape, and of course saved in Inkscape’s SVG format. The only problem is this is a somewhat ‘bloated’ format as it has extra information from SodiPodi and Inkscape embedded in it which increases file size, and makes it more difficult to traverse the XML.
I also need to convert these SVGs to PNG for including in the Design Document; and for art assets inclusion in the final product.
I tried playing around with ImageMagick, but it didn’t handle fonts as nicely as I’d have liked. There are ways to reconfigure it to look for the fonts, but I didn’t want to bother with that for now. Inkscape already displays it how I need, so I might as well use it for the whole process.
The simplest way to convert from InkscapeSVG to PlainSVG on the command line is: inkscape --export-plain-svg=OUTFILE INFILE
Note that if you name it the same thing you’ll risk killing your existing file. It’ll still load in Inkscape in theory, but some special things may be lost. Your mileage may vary.
To PNG, again, we can use the same command structure. inkscape --export-png=OUTFILE INFILE
Note that with PNG export, you’re going to have a transparent background by default. While you’re drawing on the canvas its default is white, however there is no actual data there, so it saves to a transparency. In this case I needed to have everything output with a white background. You can add the flag --export-background=ffffffff to get a white background. Replace the hex with any other html colour code for the equivalent background.
I put this all together in a script to let me do a bunch of files all at once. It needs some more tweaking for options like transparency on/off, checking for update times to avoid excess workload, etc; but it works fine for my needs. You may find it useful too. It creates two folders in the current folder: plainsvg and png. This keeps it neat and tidy. It’ll go over every .svg in the directory and convert and save. Note this has rename -f in use, which will clobber any existing files with the same name.
#!/bin/sh
# (C) 2009 Richard Cuddy
# Feel free to use this however you want, if you do something seriously awesome with it, let me know!
mkdir plainsvg
mkdir png
find . -name "*.svg" -type f -exec inkscape --export-plain-svg={}.tmp {} \;
mv *.svg.tmp plainsvg
cd plainsvg
find . -name "*.svg.tmp" -type f -exec rename -v -f 's/\.svg\.tmp/\.svg/' {} \;
find . -name "*.svg" -type f -exec inkscape --export-background=ffffffff --export-png={}.png {} \;
find . -name "*.svg.png" -type f -exec rename -v -f 's/\.svg\.png/\.png/' {} \;
mv *.png ../png/
How to use SVG to create easily changeable desktop backgrounds in Ubuntu.
I was wanting to leave myself a set of to do notes on my desktop the other day, so that I could see them after I woke up the next morning. I’ve done this a few times before, by editing the original image and saving out a new one.
I decided I wanted to make it look a bit less terrible by using Inkscape instead of the Gimp. For quick rectangles and text, Inkscape really is faster and looks better. As I was editing it, I wondered if it would be possible to use the SVG itself as a background image.
I opened up the Appearance settings, and browsed for the file. What do you know, it showed up. This in and of itself isn’t that exciting, until you realise that SVG can be changed really easily in a script. It’s just XML data. What can be interesting is that you can embed a link to a non SVG image to use an underlay. I didn’t have to duplicate my 600kb JPG, I was able to just embed that link, and then add text and paths on top of it.
What’s more exciting was that as soon as I saved any changes, the background image automatically refreshed itself. Something I was never able to make Windows XP do easily, without making an actual call to Windows’ DLL system. This was just edit, save, bam.
The possibilities are quite interesting. I may later put together some bash or python to do something fun like updating the BG with system internals, getting currently playing music, etc. Really you could do anything with this. All without damaging your original image or mucking around with graphics blitting code.
The only things to be aware of is that when you save in Inkscape, it defaults to an SVG format with a -lot- of extra information which makes the file more confusing than it needs to be. Just remember to save it as “Plain SVG” if you’re doing this. Also, the image link must be a full path. A relative link doesn’t work correctly, and Gnome can’t display the image. For example:
<image
xlink:href="/home/username/images/backgrounds/mypic.jpg"
x="0"
y="0"
width="1680"
height="1050"
id="image11" />
When it originally saved, it only saved as xlink:href=”mypic.jpg” If you’re doing future editing only in a script by changing the XML directly, you shouldn’t have to worry about this after you change it once.