I believe the bottleneck the author was trying to overcome here is how the Erlang VM moves processes to the back of the run queue once they hit a predetermined number of operations (preemptive scheduling) and not of the Actor Model.
I've been on a mbp for 4 years and just switched to windows. My biggest issue is the file sharing. I'm using vagrant/virtualbox with smb and a server process running off a shared filesystem is noticeably slow. I've resorted to having my files within the VM which is much much better. I'm used to using Emacs so its not a problem for me. PS: I'm running off 2 nvme ssds in raid 0 so I don't think disk is the issue.
I agree, I'm using Elixir in a number of production systems and I haven't come across a show-stopper yet, database packages, SOAP, documentation has improved quite a lot, even on Erlang.
I'm running a mid 2012 macbook with a Geforce 650M and unreal runs very well, runs even better when I boot into windows. Looking forward to trying the new Metal renderer. For me, Unreal wins on its its extensibility, being able to expose custom functionality to the artist, access to the source even if only for reference.
All I can say is the engine runs like rubbish on it, so I'm flat out astonished to hear it runs 'very well' on your 2012 macbook.
This is the compile time for running a 'hello world' project with a few tests:
[2016.03.20-09.44.43:606][ 0]Log file open, 03/20/16 17:44:43
[2016.03.20-09.44.53:841][261]Display: Running Automation: 'NppTests' (Class Name: 'FNppTests')
[2016.03.20-09.44.53:875][263]...Automation Test Succeeded (NppTests)
[2016.03.20-09.44.55:055][264]Log file closed, 03/20/16 17:44:55
real 6m47.566s
user 3m58.869s
sys 0m41.303s
That's not a full rebuild, just running:
./Engine/Build/BatchFiles/Mac/Build.sh TestProjectEditor Mac Development TestProject.uproject
UnrealEngine/Engine/Binaries/Mac/UE4Editor.app/Contents/MacOS/UE4Editor TestProject.uproject -Game -ExecCmds="Automation RunTests TestProject" -unattended -nopause -testexit="Automation Test Queue Empty" -log="TestResults.txt"
ie. It's only compiling the local project files and relinking the engine files. That takes 7 minutes.
With the quality settings dialed back completely, games are... kind of playable.
This doesn't match your experience?
I'm deeply deeply interested to know what you're doing, because it doesn't run like you describe on any apple device I've ever used.
What engine version?
Did you build it yourself? Which branch are you running? Did you change any of the build settings?
What quality settings are you using?
Seriously, I'm not trolling. If there's a magic 'make this actually work' setting some where I'm missing, I want to know about it, because the engine is monstrously slow in my experience, unless you're running it on a windows machine.
My recommendation for people using UE is 'dont use a mac'; I've never once varied from that position in the last year, I'm really interested if you have a different experience.
My experience mirrors yours. I have a high-end Mac laptop, 16 gigs of memory, 1 TB SSD drive. Unreal Engine runs like total garbage on it. Moving around in a simple scene is incredibly slow and painful. Their keyboard controls are also pretty confusing and awful. I'd really like them to support something like the 3Dconnexion mouse[1], which would at least make moving around intuitive and easy, but it doesn't.[2]
Perhaps very well was an overstatment, it runs well enough to use on OSX, I always build from source and I've just done a fresh build of 4.11 on El-Capitan. Build took about an hour. Initial build of the FPS template takes about 90 seconds and runs at an average FPS of 30-35. The Blueprints template runs at about 15fps at Epic setting and about 20-25fps on high. For scenes like this, I set the engine scalability to high or medium and material quality to medium. I often work from within Windows where it all runs better.
I have a MacBook Pro mid-2015 2.5 i7 16GB Ram 1tb ssd AMD Radeon R9 M370x. Here are my compile times for a non trivial game set to maximum settings. Literally straight up standard download from Epic version 4.10.4.
Building the game itself:
Total build time: 20.36 seconds
Not quite a exact same test as yours but I've honestly never used the engine in the way you are compiling it there. I understand it's a basic compile and execute tests but I usually run my tests via xcode and build/launch the game from either xcode or the unreal editor both are very fast.
That's the compile time for the game only launching the game editor takes an additional Full Startup: 12.02 seconds (BP compile: 0.17 seconds) according to the unreal engine logs. It feels a little longer than that but not much.
I'm always honestly a little surprised but that Java webapps we have at my day job take a lot longer to compile and launch than Unreal does in my experience.
I will say to be fair in Windows 10 on the same hardware (bootcamp dual boot) Unreal is at least twice as fast. It's kinda crazy and bums me out a bit.
Mostly C++, probably a 80/20 split or so also. Two other things, I've noticed that performance has improved greatly over the last couple of releases and my older MacBook pro (2012 model, 1gb nvidia gpu) wasn't nearly as good. I wonder if it's a case of Epic really only testing on certain Mac Laptops? Not sure I'd still use the engine if I was getting your level of performance on my machine.
yes you would be wrong I have the same model and the hello world example runs WAY faster. I'm not sure how to explain the difference but I do not believe it's an issue with apple.
The last time i tried running the engine it would constantly put load on the GPU (even if the game view is paused) resulting in high temps and noisy fans. I also barely got 10fps in the gameview on a 13" Macbook Pro with Iris 5000 graphics. Did they fix this for OSX ?
It's definitely true that the editor itself is not super lightweight. I believe this has to do with how they are drawing the actual UI. It's a bit unfortunate because the knock-on effect is that running your game in-editor leaves the GPU with even less to work with in terms of resources.
I often wonder the same with their frequent release cylces and the amount of stuff they pack into a release, I pray they never change, or at-least pass on the tricks of the trade
I've been using Mesos with Aurora in production for almost a year and while its very stable (zero downtime so far with loss of hosts a couple of times) the setup process was quite tedious and not something I'm looking forward to doing again. It also has a lot of moving parts - understand and setup zookeeper to get mesos up, understand and setup Aurora, use something for service discovery (I use AirBnB's Synapse for this). Plus I prefer to use tools I can choose to look under the hood of and perhaps make some contributions, which is a bit intimidating with both Mesos and Aurora (C/C++ and Scala). Because of this, I'm keen to try out Nomad mostly because of the promise of no-other-dependency/single binary plus the use of a single language across the stack - Golang
They're really smoothing out the edges. I could see myself advocating for this the next time we're shopping but I'd like to see an option to set a limit on response time.
I've had a keen interest in go but haven't used it for anything serious. My impression of it is that its a great replacement for languages like Python and is great at getting things running fast but I have to agree that it doesn't feel like the kind language I wouldn't want to write a large code base in. My huge interest in it is around the single binary deployment and its concurrency model. The language itself I find a bit quirky in some places (some data structures are passed by ref while other by value) and I like my languages concise and elegant.
This post got me to have a second look at Elixir and I spent the whole day going though its documentation and prototyping an idea I wanted to implement in go, specifically because of go's concurrency model. And frankly ELixir is exactly the right fit for me, not only for this case but generally as a language with the kind of elegance and expressiveness I'm drawn to.
Already building one on Laravel 4.x and React for the front-end. Have a background with Django and my personal favorite Pyramid but Laravel really cuts down the boilerplate for me.
Funny -- I'm going the opposite direction. I did a few MVPs last year on Laravel which have since moved to Django or Flask.
There is no admin generator I've found that compares to Django. And it is that time savings that is crucial in the beginning. It is shaping up to look like this:
Django and all the goodies on the backend (db migrations, admin generator, auth, rest-framwork)
Flask + SQLAlchemy OR Django-rest-framwork on the Frontend.
Sure, we might double-up on some models (Django models and SQLAlchemy models), but this works really really well.
I would argue that this is even better than using a BaaS for prototyping.