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.