Thursday 26 December 2013

Thursday Merry... Boxing Day!

A belated Merry Christmas to you all!

You know, all those ones of viewers...

Thursday 13 June 2013

I'm Not Dead Yet

I know what you're thinking: "Well, so much for that endeavour." I haven't stopped working....I'm just not working on CubeScape. I did some serious thinking, and came to the rather unpleasant conclusion that I would be far better off working on something that people will want to buy. The problem is that Minecraft is THE cubic voxel sandbox game, and people don't tend to want to buy "Minecraft rip-off" and "Minecraft clone" games - which is what CubeScape would seem like.

For those of you who were actually interested in CubeScape, do not fear, I WILL finish it...one day.

Now, I suppose you're wondering what I've been up to.... what have I been working on that is better than CubeScape? Actually, it's a game that everyone will want because it's based loosely on an IP that no one's ever heard of but is really cool. It's a 3D Clonk. Basically a massive/giant/huge/enormous 3D sandbox with smooth diggable voxel terrain and do-anything gameplay, but also supporting scenario-based gameplay, where there are specific goals and rules. It will be multiplayer, and, like Minecraft, will support both 1st-person view and 3rd-person view.

I'm planning to make this game in DBPro. "Wait, what? Planning to? So what have you been doing all this time?"

I've been working on the voxel terrain plugin for DBPro. That's right, I'll be releasing (via TGC's website) the voxel terrain plugin for all to use. But it's really hard to make, so I need to stop wasting time here and get back to work on my plugin.

Signing Off

As soon as I finish the plugin (or possibly before), I'll post more information here as to what's actually happening in the aXeHead Games Studio (my bedroom ;) )

Thursday 4 April 2013

Tuesday & Wednesday Nothing

Nothing happened. I've been incredibly busy with other things. Sorry.

Also the idea is that I won't be combining days every time, only when necessary.

Tuesday 2 April 2013

Weekend & Monday Learning

11.50pm Scary Pointers And Nice Reference Variables

Ok so I AM listening to Scary Monsters And Nice Sprites by Skrillex right now (it's actually one of my favourites), hence the name, but it does also have something to do with what I've been doing recently (in the past 20 minutes). I suddenly realised that I didn't really know when was the best place to pointers. I've always thought of myself as a pretty good programmer, but I definitely won't be until I work out where the best places for pointers are. *searches google* Ok this question has been asked quite a few times, and in every instance the highest-rated answer said that the best place was "only where necessary". Obviously pointers can be dangerous and can cause bugs that are difficult to find, but I'd never really thought about it before. Well, time to go through a fairly large amount of code and remove as many pointers as possible. It won't take too long, and it's actually quite relieving finally knowing that it's best to avoid pointers if at all possible. I mean, they have their uses and advantages (for example, they are theoretically faster to pass into functions than just normal variables because they don't have to copy all the data in), but they can be so much more confusing that it's not worth it. Anyway I now have a MUCH better grasp on the concept of pointers and the way data is handled in C++ generally.

Over the weekend I did little work on CubeScape, mostly because I decided that the weekend should be my days off from CubeScape. I played BioShock Infinite quite a bit since my brother (whose name is Lachlan aka Megaman1574, btw) bought it on Friday. He's finished it already, but I still have probably a quarter of the campaign to go. Maybe I'll finish it tomorrow so I can uninstall it to free up some disc space (I have only 10GB free out of 700GB).

Today being Easter and a public holiday in NSW (and possibly elsewhere), Mum didn't require that I do my schoolwork (I have no idea why she lets us off school on public holidays....did I mention I'm homeschooled?), so I finally got stuck in and did some decent work on CubeScape. I wrote the loading queue that desperately needed writing so that when I finish the spreader system (I'll explain how all of this confusing stuff works in detail when it's all working properly) it can actually be used.

Also today we discovered a new game called StarForge which is chocca-block full of potential but so far isn't hugely well executed. It's getting better with every new version, though, so I have high hopes for it.

12.20am Signing Off

I just spent that last half-hour writing this blog post and since I have to go to Armidale tomorrow at about 2.00pm for Cadets (google AAFC) and I have schoolwork as well, I really need to go bed right now. Lachy (my brother, in case you hadn't got that yet) and I also have to get haircuts and I'm going for my green Ps, so it's a busy day tomorrow. Oh, for those of you who don't live in Australia and have no idea what I mean by green Ps, it's third stage of the graduated licensing scheme that we all have to go through to get our full driver's license. Learners, red Ps, green Ps, full license.

Ok this post is way too long now anyway so goodnight.

Saturday 30 March 2013

Friday Rain

1.50pm Lunchtime

I finished my schoolwork earlier than planned and I had no outside work to do so I got right down to business with CubeScape. I now have the chunk-loading idea cemented in my brain so I can't forget how I was going to do it. I also played around in Minecraft for a while in creative mode. I created a superflat level so I could fly really fast and watch how Minecraft loads its chunks. I'm pretty sure that my method will achieve a similar (if not identical) effect, except considerably more reliably; Minecraft was leaving quite a few holes in the landscape. Also hopefully faster.

I'm eating my lunch as I type this:


It's Cruskits with extra crunchy peanut butter. I did have four of them but I ate one.

It's raining quite a bit here at the moment. This is what I look at while I'm programming:


Well, that's what I look at when I'm not programming and when it's raining. When I'm programming I'm looking at my screen.

10.25pm Skyfall

Just finished watching the latest in the incredible Bond series, Skyfall. Loved every minute of it! Awesome-cool film with guns and explody things and ooooh I love the Bond films!

I'm sorry that you're not getting very many updates relating more to CubeScape, but I've been so busy with other things that I've mostly been working on concepts in my mind rather than code. I have written some new code, but not much.

Over the next hour and a half (possibly more because it's Saturday tomorrow so I can sleep in a bit) I'll try to get as much of the new chunk-loading system in place as possible. Actually, to be a bit more specific, this chunk-loading system that I've been talking about isn't really a chunk-loading system at all. What it does is designates which chunks to load, not how to load them. I have an entirely different system for actually bringing the chunks from the server to the client and putting them on screen.

12.05am Heart Attack

For about an hour after that last update I wrote and re-wrote code...nothing actually does anything yet but it will all happen quickly when it happens.

I'm a big fan of Blender, so I love to watch the films the Blender team produces using Blender. Their latest is Tears Of Steel. On the latest TOS blog post, they mentioned they filmed the thing using a Sony F65. I got all curious and googled it. It's one of those massive professional cameras. Sony didn't list the price of it anywhere, so I did a quick look around and discovered that it's sold for $65000!!! AH! And the comments were saying that was a good price compared to most professional cameras! ARG!! $65000!! How in the name of.... how did the Blender team afford one?! And then I noticed a different camera for $80000....I'm not even going to go there.

12.25am Signing Off

Ok, so over the past few days I've got almost no work done. That always sucks. Probably more for you than for me, but I still don't like it. But don't worry too much; if I begin to get bored with the incredibly tedious work on CubeScape, this blog, if nothing else, will keep me going.

As soon as I've got a playable demo finished (just enough so you can walk around and jump and stuff) I'll start releasing alpha versions. I've already worked out the pricing: alpha=free, beta=$5, final=$10, plus if you bought the beta you get automatic access to the final version. Not if you got the alpha though. I'm not that nice.

My brother has bought and is downloading Bioshock Infinite tonight so will be interesting to play that when I finish Bioshock 2....

So TIRED goodnight :)

Friday 29 March 2013

Thursday Gaming

Very Quick Update

The CubeScape hours (those allocated to the programming of CubeScape) of last night and today were spent on devising a clever system for loading chunks. I finally settled on a solution, which is too complicated to explain right now (I'll explain it in detail when it's a bit further along). During the afternoon I began implementing the idea, but after tea we watched Pleasantville (very clever movie) and then my brother discovered an update for Bad Piggies....so naturally I just spent the last hour and a half creating mostly useless contraptions and getting no real work done.

Signing Off

Going to bed now because I need to be able to get up at 8 tomorrow morning (technically today since it's just gone past midnight) for school and 7.5 hours' sleep is pretty much the minimum I can get away with on a regular basis.

Wednesday 27 March 2013

Early Beginnings Of CubeScape

Believe It Or Not, Planning Is Useful

Generally, when I have a cool idea for a game or whatever, I start working on immediately, even ditching whatever I'm already doing. Guess what? It doesn't work when you do that. I have 30+ unfinished DBPro projects.

Recently I decided to try planning stuff. And it really is helpful. Today was the first day I set out a proper schedule for what I would do. It started at 8am. I had till 12 to get my schoolwork finished, and made it with 15 minutes to spare. Then I had 3 hours until 3pm for lunch and outside work. Turns out I only needed 1.5 hours today for lunch and work, but I was allowing plenty of time. I planned on starting work proper on CubeScape from 3pm onwards, but it's taken till 4.40pm to get this blog up and running and this first post written.

I'm going to try to write a new post every day, following somewhat in the style of Lee Bamber, head of TGC and creator of FPSC and, recently, FPSC Reloaded (yay!). I actually read from start to current in his FPSCR blog (http://fpscreloaded.blogspot.com.au/). Hopefully most of the posts will be quite a bit shorter than this one.

I'm sure some of you are wondering who I am. Unfortunately for me, I don't have Lee Bamber's amazing reputation and standing, so just look at the picture of me to the right there, and read the little short info thing, and get to know me through my blog posts. That sounds cheesy, I know, but what am I supposed to say? Actually for a bit more background you could have a quick look at the three posts on my old blog (clonkex.wordpress.com).

So... CubeScape?

CubeScape is/will be a Minecraft "clone". I put "clone" in quotation marks because it will be so much more than Minecraft. In Survival mode, it will be pretty much identical to Minecraft, but it will have many more items. There will be several game modes, including all the usual FPS ones like deathmatch, ctf and koth. These modes will be played on smaller, pre-made or random maps. There will also be a Hunger Games style mode where you have fight for survival in a large domed random map with random deadly hazards. Oh and on normal unlimited-map modes (like creative and survival), you'll be able to construct spacecraft and actually fly to other planets. Yes, that is going to be incredibly difficult to code. And there will be guns. With attachments, like scopes. The FPS gameplay will attempt to rival that of MW3 or BF3, even in a block world. I say 'attempt to' because I likely won't include things like kill streak rewards, at least to begin with.

I'm sure there's some people that will hate me for trying to change Minecraft, but to be honest I think Mojang is missing out on a great opportunity. They could do so much more with Minecraft. I want Minecraft to be so much more, which is why I want to create CubeScape.

The Technical Side Of Things

I have done many tests and prototypes over the past year to try and and decide the programming language and methods I would use to create a Minecraft clone. I started with DBPro and was somewhat successful by joining many planes together into a single mesh, but I couldn't make it join them fast enough to do it multiple times a frame. Unfortunately DBPro lacks power when it comes to displaying thousands planes efficiently because I would have really liked to use it due to its simplicity.

I even tried pushing Unity to its limits because it had automatic batching, and it actually worked to a small extent, but it still wasn't anywhere near fast enough.

In the end I stole the code I had developed in Unity and converted it to C++ and used Ogre3D as the rendering engine. It turns out this is the perfect engine to use. Free, open source, FAST, and when you use the New Instancing system it can display thousands of planes at enormous speeds.


So far I've spent many, many hours learning the intricacies and quirks of Ogre and trying to get the New Instancing system to actually work. Well it works now. I've got some of the internal framework stuff set up - the boring stuff. It runs incredibly fast, but now I have the difficult task of designing and coding a lightning-fast chunk-loading detection system. Basically I have to make the chunks of cubes load in a specific pattern based on what direction the player is moving.



That's a screenshot of the current state of the engine. The grass texture is from Sauerbraten. It's temporary. Also, the (very) keen observer may notice I'm using VS C++ 2008. That's because Microsoft (typically) ruined VS with 2010 by making it take forever to start and by making it all blue. Don't like it. At all. 2008 works perfectly and is fast and looks good. No reason to upgrade just yet.

Signing Off

Yes, that's right, I'm going to copy Lee and say "Signing Off" just before the end of every post. I'm stopping here with no more technical details because Mum mucked up my schedule by making me do 20 minutes' weeding, but then again my awesome Logitech G700 mouse just went flat and the charging cable makes it annoying to use. Righto then, off to do some weeding.