I'm pleased to announce that TinyGoose is now a thing! We're now (for a very short time, I imagine) the UK's youngest indie game development company.
This is ridiculously exciting for me, and I can't wait to get going building games!
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!
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++...
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!
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.
©2016-2020 TinyGoose Ltd. All rights reserved.
TinyGoose Limited is a company registered in England & Wales with company number 10285773.