Skip to main content


If you've read my last couple entries, you probably saw this coming.
I got a refurbished ultrawide monitor in the mail, so naturally I had to play with it a bit (mostly Elite: Dangerous) but despite full time work I still managed to sit down and continue to reinforce my game development habit nearly every day, which is good!  Keep this up, and I might actually end up finishing something for once.

With all my highfalutin talk about multiple concurrent "Virtual GM" processes last week, I may have lost track of my situation.  This little Unity Roguelike engine I am making isn't even a month old yet, and when I started I had chosen to scour the rust off my intermediate-at-best programming skills and start work in a hugely powerful IDE I never really seriously tried to make a game in before (though I had done a few tutorials).  So this week reality stepped right in and hit me in the face with the mackerel of Get Real!  Instead of any pie-in-the-sky bits of awesomeness like "Virtual GMs," I ended up revamping my dull-as-dishwater "Chunk Handler" class that is supposed to do the following:
  • Set up a potentially unlimited number of coordinates in the x,y,z planes that can hold roguelike tiles.
  • Divide these tiles into evenly delineated "chunks" of tiles.
  • Allow the other classes of the game to set and read tiles from any coordinate in the game world regardless of whether or not a chunk has already been defined there by creating one automatically.
  • Automatically swap chunks to and from the memory / storage depending on if the game is currently using them.
Might seem even this is a bit too ivory tower, but naw, self-maintaining classes is just object orientation methodology at work.  Unfortunately, while I was saving that last bullet point for later, it turns out I was not doing any of the other ones quite right, either! 

I had already instructed Unity on how to create GameObjects representing tiles depending on what the player was looking at, but the method I was doing so was silly.  My other classes were like, "give me this tile object at this local tile coordinate, give me this chunk object at that chunk coordinate."  Silly me, tiles and chunks and their related coordinate systems belong to the Chunk Handler, everybody else gets global world coordinates and can only ask for or set the data held by the tiles via Chunk Handler interfaces!  (I probably made this mistake because I had created the Chunk Handler so recently that its various parts were on the foremost of my mind.  That's programmer myopia for you.)

So I basically moved the chunk and tile classes inside of the chunk handler as protected sub classes, which broke absolutely everything.  (Good thing there's not a whole lot of "everything" yet, just the classes I created to render the map and some basic overtures towards a procedural generation mechanic.)

Then I fixed the ChunkHandler so it's properly delineating and retrieving existing chunks (it wasn't even doing that!), and set up the proper public interfaces for setting and retrieving tile data (which so far is just comprised of an enum corresponding to tile type).  Would have been nice if I had done it completely right the first time, but I guess I'm too much the novice for that!  Still, I think what I did this week counts as excellent progress, and great practice was had, I just need to keep it up.
Yep, I've decided to take my progress report from reddit and repost it here.

Aside from that, I suppose I could talk a bit about how my new Acer Z35 monitor has changed the way I look at my computer...
...well, the screen is really damn big.  35" inches of pure MVA panel stretched out not five feet from my face feels a tad like Windows 10 ate my head.  As a lifelong computer geek, I'm not complaining about that.

I will say that there is a strong trade off involved with going MVA versus IPS.  On the upshot, dark pixels can produce a delightfully inky black that I can't enjoy on an IPS, where black often looks more like graphite.  On the downside, these MVA dark pixels are persistent buggers, they only update at about 20 FPS despite this being supposedly a panel that can be driven to 200 hz.  That means if you have something moving across a black screen, you'll get a "ghosting" effect that is basically black pixels not quite lighting up enough to display parts of it.  At worst, it feels a bit like my persona in the game must be suffering from blurred version all the time.

Most of my time with my new monitor has been spent in Elite:Dangerous, and this "ghosting" is extremely noticeable when you are observing orbit lines projected against the blackness of space and do any kind of movement, be it a pitch, yaw, or simply moving your virtual head.  This results in the orbit lines thinning or even vanishing entirely as the MVA panel fails to light up its black pixels in time for them to become visible.  Of course, the lines reappear at full thickness once they stop moving on my screen because the game is still running fine and what I was (not) seeing is just the monitor's inability to update its black pixels in time.
On my laptop with a great IPS display, this ship's "black friday" paintjob looks a bit blue-grey.  On my desktop's new MVA panel, it looks mostly black.
But, again, it's a trade-off.  Deep space in Elite: Dangerous is portrayed on the Z35 by lovely inky black that simply is not possible on an IPS panel.  I am hard-pressed to say which I would prefer, because I like me some dark blacks.  Black is like a clean slate for the imagination.

As far as my pocketbook is concerned, there was not really another choice.  Originally, I set out to purchase a good 27" G-Sync IPS monitor, but could not find one for the $400 I was willing to pay.  When I learned it was possible to get a G-Sync 35" curved monitor for $700, due to refurbished Z35s selling on Amazon, I was intrigued.  Had I instead picked up a higher resolution, ghosting-free purely IPS alternative (which would be ideal for most people) then it would have been somewhere in the range of $1000-$1300 and I really did not want to be spending $700 to begin with.  (In addition to being well outside of my price range, those alternatives would not have been 144hz, although it is difficult to say the Z35 truly qualifies as such due to its blurriness.)

A final caveat about going widescreen: not all games are particularly happy being run at 21:9 resolution.  Fallout 4 and Skyrim (enhanced edition) can be shoehorned into doing so by modifying the ini files, but it does not look quite right, particularly the menus and loading screens.  For games with this kind of issue, I recommend just biting the bullet and running them in an aspect ratio native to the game in a window centered on your screen.  Recent advances to NVIDIA's drivers allow for G-sync to function in windowed mode just fine, so you are not missing much.
The Division loves widescreen, and widescreen loves it right back.
Fortunately, there are still a number of great games that can run quite well on the widescreen.  Elite: Dangerous, Bethesda's new Doom, Divinity: Original Sin, and The Division are all excellent uses for such a monitor.  I look forward to dabbling more with them in the coming months.
Post a Comment

Popular posts from this blog

Resonant Induction Really Grinds My Gears... In A Good Way

From about 2pm yesterday until 8pm today, I've been dabbling with my latest custom mod mix for Minecraft 1.6.4, which is this time very much Universal Electricity focused.
Aside from the usual GUI enhancers and Somnia, the primary contenders in this mix were:
Calclavia Core - Of course: this is the base of the Universal Electricity system.Resonant Induction - This seems to be largely focused on increasingly more advanced methods of refining ores divided across 4 ages of technological progression.  It also includes some really cool things such as assembly lines.  I'll primarily be talking about just a few blocks out of this mod today.Atomic Science - A mod dedicated to generating more of those lovely universal electricity volts via the power of splitting the atom.  Build your own nuclear reactor!  Deal with nuclear meltdowns!  You maniac!ICBM - A mod dedicated to generating more destruction using those lovely universal electricity volts (and more than a little gunpowder), it cer…

Empyrion Vrs Space Engineers: A Different Kind Of Space Race

In my quest for more compelling virtual worlds, I have been watching Empyrion: Galactic Survival a lot this bizarro weekend, mostly via the Angry Joe Show twitch stream.  What I have concluded from my observations is Empyrion is following in Space Engineers' shadow, but it is nevertheless threatening the elder game due to a greater feature set (the modding scene notwithstanding).

Empyrion is made in Unity, whereas Space Engineers is built on a custom engine.  While this does put Empyrion at a disadvantage when it comes to conceptual flexibility, its developers nevertheless have a substantial advantage when it comes to adding features due to a savings of time spent that would have gone into developing their own engine.  Examples include:
Planets.  Empyrion already has planets and space to explore between them, whereas in Space Engineers planets are in the works but still awhile away (so you just have asteroid fields to scavenge).Enemies.  Space Engineers' survival mode boasts onl…

Ancient Warfare - What Is It Good For?

The Ancient Warfare mod for Minecraft threw me for a loop.  I was looking for "villagers" that would perform useful tasks while simultaneously resolving the glut of food with a need to eat, thereby turning Minecraft into a bit of 4X game you can play from the inside.  Millenaire wasn't quite there, partly because recent updates to Forge had broken its compatibility with Minecraft 1.7.10, and Minecolony's development is not quite fast enough to keep up with the state of mods in general (they probably need to make a core API).
In comes Ancient Warfare, which does indeed provide workers and soldiers who need to eat, you can even order around a little army of them to defeat your enemies.  It has working waterwheels and windmills, something I thought was awesome in Resonant Induction.  It has a warehouse with a built-in sorting system, as well as courier NPCs that can move things from building to building, and crafting NPCs that can create things for you automatically - w…