by Joe Flood on 26 November 2015
So, I finally took the plunge and bought a new PC (not Mac!).
I've worked with Visual Studio long enough now that I'm used to its "issues" - but actually, most of its issues were just slight differences in how it handled certain things, compared to Clang. And in fact, in some places where I previously said MSVC++ was wrong, it was actually doing what it was supposed to - in some cases where Clang was not!
So that's Windows sold. Windows 10 has been an interesting journey for me too - I grabbed an Insider version of the OS from fairly early on and saw it evolve over time. I actually now find Windows 10 more productive than Mac OS X. Go figure.
Okay, okay. So back to the PC. I figured since I'm now back on a PC, I can finally catch up on all the games I've been missing on my underpowered Mac. So I needed something juicy to run it on.
Meet Rapid Dave.
I built him from scratch, and he's pretty speedy. He'd have to be, with a name like that!
Here's some brief specs:
- MSI Z97S SLI Krait Edition motherboard
- Intel Core i7 4790k CPU 4000MHz @4.4GHz + Stock cooler
- 2x 8GB DDR3 RAM @1866MHz
- 1x 1TB SSD, 1x 2TB 7,200 RPM HDD
- Corsair Graphite Series 230T Case with 1 main case fan & 2 smaller, LED lit front fans
- nVidia GeForce GTX980 Ti Graphics Card
As you can see, it's pretty beefy but lacking in some areas (cooler?!). I'll be upgrading this further as I go - so watch this space!
by Joe Flood on 22 August 2015
Damn, that's old. Really old. Like, a quarter of a century old!
I'm going to have to try really hard not to have a mid-mid-life crisis (quarter-life crisis?)! Kidding, I'm fine.
Thankfully, 25 is also my lucky number. So, with that in mind, let's make my 25th year* a good one. This year could well be the beginning of something big!
* Yup, I realise it's really my 26th year - bugger.
Another rant about MSVC++...
by Joe Flood on 09 February 2015
So today I came across a weird bug. On Mac, the game engine will happily draw stuff directly to the screen - i.e. for drawing HUDs, overlays, etc. For this test, I used a small red box, but anything would do really!
On Mac, red box appears. On Windows, not so much.
All up-to-date on Git, check. Same code, check.
Fast-forward 3 hours, and I've solved it. The reason you ask? Visual Studio's compiler gets it wrong.
The problem is simple. I have a piece of code which draws a VBO (basically, stored geometry, shapes) with a Colour. Here are a couple of methods that I can use to render a VBO object:
The one we're using is on line 3 - rendering with a given colour. The calling code is this:
Do you see it now? I didn't either! Looks like while the Xcode compiler (clang) is good enough to realise that my 0xFF0000 should be used to construct a Colour, MSVC decides that I'm talking about a Texture* (see line 4!). So rather than applying the red colour to the quad, it applies an invalid texture, which the engine apparently silently ignores (oops!) and draws a transparent box. Great.
Problem solved, though!
by Joe Flood on 31 January 2015
So, I've been beavering away trying to get Equinox to work with Windows for the last 2 weeks or so, and I've moaned about how horrible Microsoft's compiler is.
I still think it's the worst compiler out there, not being able to do these things:
- Use symbols (methods, classes, ...) from a library without having each one marked with __declspec(dllexport)... eugh!
- Errors resulting from using debug runtime libraries vs release ones, which are not actually explained as such!
- Having to explicitly tell it the template specialisations of a class at compile time (for a library), rather than allowing proper template instantiation
- No constexpr!!!!!
- Can't use static const vars inside a class (why not? Seriously MS, an error saying that the feature is "not implemented" is not good enough!)
But I do bring good news - it builds! And better than that, I can now convert an existing project for Windows in around 20 mins. New projects take about the same. If I now create a template project, I can cut those times right down to near enough zero! So that's the next task.
But, without further ado:
Atoms, running on Windows! Sound is also working, but you can't see that in the screenshot. Obviously.
Another change in direction...
by Joe Flood on 15 January 2015
So, I've taken a step to the side. A sidestep.
Work on the game engine itself (Equinox), and the games based on it, has effectively been paused, and put to one side.
Why? You thought I loved making games?
Well - I do! But I've realised I need to target my games to Mac AND Windows. And so, I'm now making the engine build and run with both the world's most commonly used OSes:
- The Mac version will continue to use CMake, allowing me to build from Xcode, command line, or something like CLion.
- The (shelved) Linux version should be workable very simply based from the Mac version.
- The Windows version will build through Visual Studio only, using binary versions of the libraries.
So, the next few weeks will be spent building a toolchain to use on Windows to build and run games!
Just need to work around some of MSVC's shortcomings - lack of constexpr, no list initialiser syntax in member vars, and very, very strange variable rules - I can't implicitly convert ints to floats in some situations, because it's narrowing (?! - no it's not!)
©2012-2015 Javawag. All rights reserved.