24 July 2013 · 3 Comments
This week I have been working on a new game engine that for now is called Lotus. I haven't seen any game engines out recently that make use of GPU accelerated graphics via Starling yet, so I've implemented this into the engine which is working really great.
The engine will focus on quick setup and ease of creating environments and adding elements to those environments. All of the bits and pieces that you would typically have to take care of like adding the display and making sure it is removed properly is done for you.
The secondary focus of the engine behind ease of use and object management is performance. Starling has a huge performance increase over the traditional Flash display list, meaning you can have a lot more happening on the screen than you would typically be used to. To give you an idea, I've set up this benchmarking demo of 8000 rotating squares moving around the screen:
The final component that I will be integrating into Lotus is Box2D. This is a common library that can be used fairly easily once you understand the basics. As far as I am aware, it is the best option for physics in Flash games currently when it comes to features and performance. You can view a demo of Box2D in action within Lotus here:
As you can see, the use of Starling in this example allows Box2D to do more on the screen before it starts to slow down.
Once the engine is in a stable state that I am comfortable releasing, I'll create some documentation, a getting started guide and a link to the source code.
23 July 2013 · 1 Comment
Last week I stumbled upon Cube World, which I've been playing the last couple of days and really enjoying.
Even though it's currently only an alpha release, I have been really enjoying this game so far. It's going in a great direction and I am really impressed with all the little mechanics that the developer, Wollay, has created. There is also a lot of inspiration to be found in reading through Wollay's blog - he has a vision and continues to push on with Cube World until it meets that vision.
The game itself is like a combination of Minecraft and WoW, where Minecraft represents the look and feel of the environment and WoW represents the overall gameplay and mechanics. The fact that you can run, jump, climb, swim, hanglide and sail to any viewable point in the environment makes the game feel much more open than typical multiplayer games. The maps are also randomly generated, which means you can run different worlds on your server to create unique experiences.
I'm looking forward to a full release, especially after glancing at the additions that Wollay has planned. I recommend you head over to the site and purchase an alpha copy of the game and give it a go!
08 July 2013 · 1 Comment
Over the last week or so I have spent some time trying to create a Terraria style lighting engine in ActionScript 3. Unfortunately, I have discovered that this is actually much harder to do than it looks. Luckily I am really enjoying the challenge as well as all the new techniques I am learning in terms of performance optimisation, which is crucial for this project.
So far, I have managed to get the actual selection of cells and application of light from a source working well. You can see its progress here:
That's all well and good, but I am having a lot of trouble adding opaque tiles. That is, tiles that block the light.
Making tiles that ignore light is easy enough, but selecting the tiles behind it relative to the light source at a reasonable speed is proving to be something outside of my capabilities, for now.
I'll continue working on this for as long as I can make progress. Hopefully I end up with something really cool that I can put on Github for you to use.
14 June 2013 · 2 Comments
A while back I was using Dreamweaver to work on a website. Up until that moment I had always used Dreamweaver and didn't really venture out and try any new IDEs. At the end of the day, I pressed save on my CSS file, at which point it got corrupt and I'd lost an entire day worth of CSS.
Needless to say, that was the last time I used Dreamweaver.
The day following, I started looking at some new text editors / IDEs. I went through a few like Notepad2, Aptana, a couple of the JetBrains IDEs, and several others. I wasn't a big fan of any of them for whatever reason (some were ugly, some were slow, some behaved in a way I didn't like), but eventually I came across Sublime Text 2 after it was recommended to me by another developer that I work with.
Since then, I haven't used any other editor to work on web projects. It is extremely powerful yet feels very lightweight. It launches and manages files as quickly and smoothly as a basic text editor like notepad. It has perfect code hinting, which adapts to your own code as well as providing general code hints for each of the supported languages (which is a massive list). There is a sort of 'minimap' down the right which greatly assists with navigating through long scripts. It supports regular expressions for find and replace operations, which has been more useful than I can describe.
My number one favorite feature is the ability to CTRL+Click in multiple places in the document to allow typing in all of the selected areas. This mechanic is even smart enough that if you're typing on multiple lines and SHIFT+Arrows to highlight and copy text from each line, pasting will put the correct text into each line. I use this religiously and I now find it very tedious to work in text editors that do not have this feature.
There are a multitude of settings and features that you can make use of like snippets, macros and custom commands.
Sublime Text 2 is very reasonably priced at $70 USD. You can use it for free as well but you'll be occasionally bugged by a dialog that tells you to purchase (say every hour or two).
If you haven't given Sublime Text 2 a go, I high recommend it. You can download it here.
06 June 2013 · 0 Comments
Hello! If you're a returning visitor, you'll notice that I have a new and simplified website.
Lately I've realised that I don't have time to mess around with trying to develop a fancy portfolio website with cool transitions and all that shit that no one really cares about anyway. Because of this realisation, I've developed a nice simple and clean blog that will do just fine.
If I do decide that I want to upload projects, I'll do them in the form of blog posts and tag them appropriately so that they can be browsed easily. For now though, I'm seeing this as mostly a repository for my thoughts, concepts, complaints and possibly tutorials.
Some things that I am looking at implementing over the next week or so are:
18 September 2012 · 2 Comments
A while back my friend Shannon introduced me to Steam - a web based solution with a downloadable application which allows you to create an account to purchase, play and keep up to date with a vast catalogue of games.
A short while later, it was suggested to me that I should play Terraria. Don't let the initial visual fool you, I was skeptical myself at first. This game is the best of the best when it comes to originality and great ideas coupled with excellent programming.
Terraria begins with an initial two steps that you need to get going:
Once you've completed these two steps, you'll be able to begin playing Terraria.
Your character will appear at a given position on your newly generated 2D home (in the centre as far as I am aware). You'll be able to move left & right, jump, open your inventory and click to use your currently selected item (as shown in the top-left). You will begin with a small selection of initial tools which you will need to get started - most importantly the Axe and Pickaxe.
Now what do I do you ask? Select your axe and start chopping down trees to collect wood. Wood is a key resource in Terraria as it allows you to craft items of need such as Torches, Doors and Walls. One of Terraria's key systems is the darkness. As you use your Pickaxe to start digging into the earth, or night begins to fall, you'll notice that your surroundings become darker. Sources of light should always be available to you, either in the form of a Torch, Glowstick or other special items that generate light such as the Mining Helmet.
Got enough wood now? Great! You'll want to run around and find some Slimes to kill. These drop the secondary component needed to create Torches, Slime. Once you've made yourself a couple dozen torches, it's probably almost time for nightfall. Nightfall is an important and dangerous timeframe within Terraria that demands the construction of a form of defense from the creatures that will spawn. Remember that wood you collected before? This resource is a great tool to defend yourself against the creatures of the night. Find a nice flat surface (or create one with the Pickaxe) and open your inventory. Place your pile of wood into your quick-bar at the top-left and then close your inventory. You'll be able to select the wood you've placed into the quick-bar (either via the number on your keyboard that corresponds to it, or by clicking it). Once you've done so, left-click will now place wooden tiles. These must be placed adjacent to another tile. Continue placing wood in the shape of a square that you can fit within (or similar). Once you've boxed yourself off, place a few torches within your house so that you can see what is going on. You can take a break and consider yourself safe.
Now that you know how to survive your first night in Terraria, the rest is up to you. I recommend reading the Terraria Wiki as there are a lot of components in the game that are extremely difficult to work out (even if accidentally).
I hope everyone enjoys this game as much as I do.
Update: You can now get this great game on Xbox 360!