Spellcaster Studios

Make it happen…

Minor polish

Today I mostly fixed small things that were on the polish list for ages now, like transparent map display (and better filtering on it), and other dozens of small items:

screen361

Sometimes this takes way longer than it should, not from an actual work perspective, but just deciding if 60% opacity is better than 50% and such…

Now listening to “Battering Ram” by “Iron Savior”

Loader

Well, this is one of those days that feels like a waste, although it isn’t…

I decided to put in a loader for the game, so that the player has some feedback while it’s loading:

screen362

All fine and dandy, working perfectly…

Problem is that in the process of making the loader, I found a couple of big inefficiencies in the load code, which means that the load time dropped from about 30 seconds to 2 or 3, making the whole loader thing moot…

So, good news/bad news situation… Smile

Fast loads are very good, I really like a game in which I an just thing “I’m going to play 5 minutes” and not spend 2 minutes watching splash and load screens!

Now listening to “Sigh No More” by “Gamma Ray”

Link of the Day: Some people have all the talent… Check out the pixel art in this trailer:

Playtesting

Today I wasn’t feeling up to coding (a bit stuck on what the next step should be), so I played the game instead, fixing small bugs as they popped up, doing small balancing tweaks, etc…

Now playing: Shadow of Mordor. This is an awesome game, they really managed to make a game that doesn’t step much on the existing lore, and gives us something new to play with… It plays like the Batman series (open world, timing-based combat), and it looks amazing on my PC!

Happy New Year!

Yay!

And what better way to start New Year than to have finished the worse task on my task list, the OpenGL port!

It still has some stuff that has to be reviewed, optimized, etc, but it’s functional and almost undistinguishable visually from the Direct3D version!

Now, I just have to decide on what’s the next step on my development… My to-do list spans 2 A4 sheets of paper, and most of it is graphics and polish stuff… Maybe shadows? Or ambient occlusion? Maybe decals?

I’ll probably end up plugging everything in a list randomizer and just take the first one! Smile

So, have a nice 2015, which (I hope) will be the launch year of “Gateway”!

Now listening to “Deconstruction” by “Devin Townsend Project”

OpenGL Porting – Part 16

Happy New Year’s Eve!

Not much time today to work on the game, just made a couple of shaders and fixed some minor things… I’m almost calling the OpenGL renderer done (although it still has some work with optimization, since it’s quite slower than the DirectX one).

screen360

I’m having some trouble with the last shader, but it’s not working on DirectX as well, so I probably screwed up somewhere…

Anyway, have a very good 2015!

Now listening to “Soundtrack For The Voices In My Head” by “Celldweller”

OpenGL Porting – Part 15

I can smell it already!

It’s actually cool (after all the pain) to have a game running on two separate renderers and trying to spot the differences…

screen359

There’s not much work remaining to be done on the OpenGL renderer, besides testing… I’m finally seeing the end of the road on this one, so much that I’m already thinking on what’s my next move! Smile

Currently I’m battling with the last piece of D3D code: the LookAt matrix… I can never get that right, and D3D was doing it for me (for cutscenes, for gameplay I have other ways to do the camera, that’s why I only picked it up now).

So, officially, only a couple of shaders to go (both tricky because they have 2 textures, and I’m not very sure on my method to bind multiple textures yet), this look at camera and I’m done! Hopefully tomorrow or the day after I’ll be able to make it work!

Now listening to “Primer Acto” by “Stravangazza”

Link of the Day: I really need one of these… http://www.ellusionist.com/pyro-handheld-fireshooter-by-adam-wilber.html

OpenGL Porting – Part 14

A couple more bugs down, a few dozens to go!

Today was rather productive… Fixed the sampling system (didn’t notice there was a sampler object in OpenGL that kind of makes it more similar to DirectX in terms of sampling properties), fixed the 2d render accuracy (needed to offset the coordinates a bit to make it match DirectX and to get smoother texture sampling), and fixed the map and font rendering (which had an issue with the sampling… Was trying to use mip-mapping when the texture didn’t have mip-maps… DirectX just ignores it in this case).

screen357

Next, check out why the models aren’t rendering properly, why the stars don’t display and why the fade in/out doesn’t work anymore…

Now listening to “We Are The Void” by “Dark Tranquility”

Link of the Day: I don’t really know what this game is all about, but the presentation is amazing and the trailer is really well done!

OpenGL Porting – Part 13

One more small step!

screen356

This one was hard… Some geometry wasn’t being drawn, and I thought it was something to do with the bounding box (would be silly), but symptoms were similar to that sort of issues…

It ended up because I didn’t know that glVertexAttribPointer has to be called after the buffer in question is bound… I thought it worked more like a global state (since it doesn’t have a GL_ARRAY_BUFFER constant in it), but it turns out it does the binding on the mesh it’s currently set, which meant that the way I was doing it (setting the glVertexAttribPointer before actually drawing, which is when I bound the vertex buffer) was binding it with the previously set object, which led to the weird issue!

Anyway, all fixed now and I can move on to the other issues… This is taking way longer than expected, and yielding much more issues!

Now listening to “Torn” by “Evergrey”

OpenGL Porting – Part 12

More progress done on the OpenGL renderer… Today I managed to make lighting work again…

screen355

Issue was the variable naming… In DirectX, when you have a structure array, there’s a constant binding with that name (for example, “lights”), for the whole array.

OpenGL does it slightly different: it creates different variables for each sub-entry, so we’d have “lights[0].pos”, “lights[0].color”, “lights[2].dir”, etc… Wasn’t expecting it… The DirectX way is better, in my opinion…

Anyway, I had to make a small parser for the variable names to create the bindings, but now the lighting is working… The small dark areas in the screenshot above are due to bad voxel bounding boxes (at least, that’s what I think, although I have no idea why that applies to OpenGL only)… That’s my next job!

Now listening to “Renegade” by “Hammerfall”

OpenGL Porting – Part 11

And back to normal programming… Not much, but some!

Got some more stuff working on the OpenGL renderer… This time, I found out that I can’t set vertex/pixel constants before I actually set the program!

screen354

This is the current status, getting closer to an actual working renderer! There’s a screwup somewhere on the lightning (obviously), but I’ll look into it after I get everything else working properly…

Now listening to “Lord of the Rings OST”

Link of the Day: Epic rap battle! Smile