top of page
Search
  • Writer's pictureJoshua Ellis

IsoEngine update 08/12/19 | Optimizing our voxel engine

Blog posts moving forward.

Firstly, I want to apologize for getting this up so late (almost a week!). I've re-written our content release plan to be a bit more manageable while we get some important video work done ready for our new YouTube channel. Moving forward however, these updates should be dropping every Friday morning, which nicely coincides with the end of our work week (makes sense, right?).


This week's format and future posts will be a little bit different from last week's. I think I've summarized rather well the progress that's been made so far, so from now on the focus is shifting away from learning about our core design methodology, and moving onto quick updates and individual topics that either me or Josh are working on at the time. I'm hoping to keep these somewhat educational as previous posts have been so that people can actually gain something from them. With that said, let's get onto what we've been up to this week at Arkode!


Dev diary - Josh Ellis's

With this week and a bit my main focus has been trying to establish and stick to a new work and content release schedule, that should better support us moving forward. These blogs have been a first for me, as is re-starting my live-stream with more of a schedule to adhere to. The blogs are helping keep me accountable as to the work I do, and the live-streams are forcing me to do high-quality development work, so both have been great so far!


In terms of my development work, I've been focusing on getting an optimization feature (instanced meshes) implemented, as to tell the truth the voxel painter and looking at high volumes of voxels was very, very laggy. The work on this is essentially complete, with great performance improvements, but I've hit one small (but critical!) snag. What I didn't realize is that deleting meshes would be painfully slow under this new system. I'm currently investigating how to fix this, and will hopefully have a solution from the week to come.


To try my best at simplifying a technical concept, let's look at instanced meshes this way. When a normal mesh (the model for an object) is loaded into a scene, a completely new version of that model is sent over to your graphics card, and the graphics card will recompute all of the rendering scripts for that object. This is bad if there are lots of meshes in a scene, as all of that data sending and processing takes time. This is where instanced meshes come in. What they do, is allow the engine to send over only one copy of a particular shared model (such as one of our voxel panels) to the GPU, and have it only have to recompute certain aspects of it's rendering, such as rotation or lighting. This allows hundreds more of the same objects to be rendered in a scene, by reducing the traffic of data in your system, and the amount of calculations that need to be done per frame. For us this has meant MASSIVE performance gains due to the amount of duplicate models in our terrain system. I go into the programming behind this process in my live-stream videos.


Lastly I've been making progress on getting the project open to version control (specifically using BitBucket and SourceTree if all goes well), so that hopefully myself and Matthews can start collaborating more rapidly on the project and work in parallel, rather than have to wait on each other. Before this is ready we're both just working on pushing a backlog of social media content, and once done development should pick up a bit.


Dev diary - Joshua Matthews

Quick note: I'm stepping in for Matthews this week while he works on our video backlog, but hopefully moving forward you'll hear from him directly (sorry Matthews!).


To give you an idea of what we are trying to do at the moment with our social media, we've been wanting to get our existing catalog of content centralized on a few platforms and our processes for making said content streamlined, so that we can increase our production quality week to week. Our main push is to take both of our video series (The bullshit podcast and live-streams), give them a bit of polish, and to release them regularly on the one channel, Arkode. Hopefully this should make our videos seem a lot more appealing for people searching on YouTube, while also improving our chances of being promoted by the YouTube search algorithm (more regular uploads means more views). It also makes sense for our brand, and saves a lot of time!


In Matthews' effort to achieve this, he's been making a lot of wrapper material for our videos. The first of which is making a thumbnail for each of our 15-ish videos that we want to either re-upload or upload for the first time. He's obviously been spending a lot of time doing this, but now we have a solid template for both video series, and he has a nice process going for making them look unique per video, with little input from the both of us (massive time saver!).


Additionally he's also been working on an intro for each video series. I know from having seen him in the office, and having spoken to him, that both of the ones he's been building went through a number of iterations during the design phase. This was to get the feel right for each type of content we produce. He's tried to keep them simple and short without them looking tacky, which is harder than you might expect. He's also been working on a small outro image (which will be shared across each series), so that we can do further video promotion, which should help us maintain viewership. It is important to note that Matthews is new to this type of graphics design too, so he's had to learn a whole new tool-set to do all of this, so props to him for getting it done so fast!


Hopefully, when all of this work is complete, we can focus purely on making content and, more importantly, our game, with uploads or content releases being neatly staggered throughout the weeks to come. We're both really pumped for this chance at a revamp, as we have learnt a lot over the past few months and thought it was time to reflect that.


In conclusion...

All in all we are just playing what feels like a small game of catch-up right now, but with all of the changes involving our processes nearing completion, I think it's safe to say that we will be making massive strides in the near future. Our biggest hurdle so far has been how we achieve all that we want to, without it taking forever. Part of this has been to stop doing things that aren't important to our core vision, and to refine our existing work to the point of being easily manageable. As I've spoken about in other blog posts, burnout is very real, especially for games developers, so we're cracking down on the overwhelming amount of things we had to do previously. All of this is so that all of our content is released on time (this blog wasn't due to this very problem), and so that we can deliver on our ambition moving forward.


I am very optimistic about our plans and productivity, but I never think our work will be done as far as our workflow is concerned. It's always a struggle, and there are always going to be areas for improvement, which you'll more than likely see reflected in our future updates. We also met this Friday with our assigned mentor, which was super interesting. We spoke mostly importantly about project planning, and so myself and Matthews will be doing further work to really flesh out our immediate features and timelines in the lead-up to Christmas based on the advice we received. Keep an eye out for that, as it will tie directly into our kick-starter campaign! That, I would say, nicely wraps it up for this weeks update, and sorry again for the delay in getting this out. As always I wish you a pleasant week, and I hope to have you along for this week's round of content!

44 views0 comments

Recent Posts

See All
Post: Blog2_Post
bottom of page