DSR Log #7 + New Site Live

Posted by Mega on June 10, 2016, 8:39 a.m.

I've basically kicked my new blog site out the door, semi finished. I'll add the rest of the categories and theming I want at a later stage; the point is, I can write blogs, push them and have them show up immediately.

I'll probably move my last Log over to the new site as well.

Head over to http://64mega.space if you want to take a look.

DSR Log #7

I spent (or wasted) my entire week's worth of development on my fancy tile compositor. The compositor is basically a system that takes an entire tiled level, chops it up into 512x512 pixel chunks, and stuffs them into VRAM for faster-than-usual rendering.

At this point, the compositor is working. The time spent was kind of worth it. The big tradeoff here is that it takes a while to composite an entire level (For a 4x4 screen level map it takes about 20 seconds). The time doesn't sound so bad, and it isn't… unless you're in a test-cycle like I am where you're recompiling and playing every few minutes or so.

So I've shelved the compositor for my Release version; it's definitely a good replacement for my older systems of tile rendering, and will give me an excuse to code a loading screen. I'll obviously be working on ways to make the process faster, but that can again wait until Release.

So back I go to my 'dumb' tile renderer. It basically stored the tiles in several arrays (one for each layer, plus one for collisions), calculates the necessary render coordinates by camera space, then renders only what's on the screen with a bit of padding on each border to allow for scrolling.

It's somewhat slower than the compositor in terms of render speed, but still nothing noticeable on any of the systems I'm testing on (Rubbish laptop included).

On release, the compositor will probably be optional, along with any other weird/wonderful graphical shenanigans I introduce to the game. I want my target surface to be as large as possible, after all.

The Camera

In previous 'engines' of mine, I had a tendency to forget to implement a camera until it was too late. Exile ended up using a weird as heck transform system that to this day I can't puzzle out; it has some funky calculations, cancels for specific situations and counter transforms. Trying to 'fix' it just broke everything spectacularly:

Of course, that was 3D and this is 2D. Making a decent camera was a pretty easy thing to do. The way I've implemented it is to make the camera 'center' on a location. Then, during update phase it calls a Panning function that moves the camera towards the target location if necessary using the currently set interpolation. At the moment I basically have Linear Interpolation and 'Cut', which makes the camera jump instantly to its target location. In Interpolation mode, there are a few 'border' variables that effect how close to the edge of the camera the tracked location is allowed to be before the camera has to 'snap' to that border. This basically ensures that the player (Or anything else I'm tracking), can't escape the camera space, but doesn't have the roughness of locking the camera to the player's position permanently.

And then Dark Souls happened

It's Global Reset Day in Dark Souls today, which basically means hundreds of people from /r/darksouls are starting characters from scratch and playing through the game with DSCM (The Dark Souls Connectivity Mod). I jumped in briefly this morning, and the Burg was alight with messages, summon signs and invaders. It's glorious.

This also explains why I'm writing the log a day early, and excusing in advance the lack of work I'll get done over the next day or so.

And with that, I'm signing off.

Comments

Mega 7 years, 10 months ago

That's a bit of a complicated thing to pull off with Disqus and Metalsmith, since the pages are static. Would have to come up with something in Javascript to pull the right comment thread count from Disqus.

Might do some work on that tomorrow.

EDIT: Couldn't resist, got it working now. Had to trash the old comment thread though, so there's that. Everything should work fine for now.

Comment count shows on both the current front-page blog, and in the blog list (Clicking the BLOGS link).

Mega 7 years, 10 months ago

Try clearing your cache, I spent hours trying to "fix" comments this morning only to find out it was interfering with my updates (Basically nothing has changed, so the browser just loads the cached version)

EDIT: Actually, it isn't showing up correctly on the blog list, but is working on the currently featured blog. Fixing.

EDIT2: Fix'd.