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 ThingsI 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.
No comments:
Post a Comment