Announcing Gravity Animals for iOS

Posted by Daniel on July 21st, 2011 | 1 Comment »

TidalWare is today announcing its debut iOS title, Gravity Animals.

Check out the microsite here: http://www.gravityanimals.com/

Explore the skies and beyond, ride rainbows, solve puzzles, and defy gravity in the ultimate 3D pocket platformer. Roll 17 cute animals around 60 crazy levels in 6 unique worlds, with the potential for hundreds more with procedurally generated 3D content. Gravity Animals will be available on iPhone, iPod touch and iPad by the end of the year.

We are showcasing the game at the Develop Indie Dev Day today.

Business Cards

Posted by Daniel on July 9th, 2011 | No Comments »

Our business cards have arrived! :)

Business Cards

Business Cards

Write Engines Around Games

Posted by Daniel on January 22nd, 2011 | 2 Comments »

“write games, not engines”

If you have any experience with developing games, then you’ve probably heard of the phrase “write games, not engines“. This may seem like wise advice, and it is – that way, you can focus your attention on what matters: the game, and waste no time in making it happen.

New Project

But imagine this: You have successfully completed a game. Game-specific code makes up most of your codebase, probably hardcoded – or perhaps you used some XML to make editing that little bit easier. It may have saved you a significant amount of time too. But now you’re starting to think of that next game idea. Sure, you can take advantage of some of the things you’ve learned, reuse the odd class, but either way it’s time for File -> New Project.

Not very sustainable, is it? Especially if you’re an indie dev looking to break into the industry, and even more so in the mobile market where everything is either a hit or a miss. You need a way to churn out games quickly and effectively, but if you stuck by the phrase I mentioned earlier, you’re now actually wasting time worrying about code that is not specific to your game.

“write engines around games”

Now turn your attention to this: “write engines around games”. First of all, this addresses a fundamental flaw in the approach many developers take when writing an engine. Don’t think: I’m going to write an engine. Think: I’m going to write a game, with an engine to assist me.

If you start developing an engine with no focus, then you end up wasting a huge chunk of time and will eventually get lost in unnecessary complexity, working on features that you will probably never use, and eventually give up. I know of countless projects that have failed because of this, open source or not.

Start with the goal of completing a game. Plan out how it will work. Write up every feature you think you will need to complete that game. Now it’s time for some smart thinking: you need to come up with an architecture that will accomplish all of these features, but at the same time be generic enough to be reused in future projects. Think libraries, decoupling, cross-platform, layering. Keep all of your game-specific, platform-specific code separate from your ‘engine’. Work on the game in your game project, and add features to the engine as needed.

Foundations

Of course, this has to be planned in advance. Think of it like building a house. An architect draws up the plans. The builders construct the house, bit by bit, adhering to the plan. It is done in stages – first the foundations, then the walls, then the roof. Each of these components have their own function, with the next one up depending on the one below it, keeping in mind the foundations can exist without the roof. I will go deeper into this point in a future post, but to reiterate: plan well, implement in stages.

This way you can focus on developing a game, while simultaneously constructing something that can be reused in the future. In fact, the more games you develop this way the better, broadening the capabilities of your engine, covering a wider range of genres, with every feature being put to good use. Because every addition made will improve the game in some way, there is far more satisfaction, and motivation is improved.

If you were considering writing an engine, this method reduces wasted time and improves productivity. For those of you who prefer to write games directly, admittedly this will extend development time of your initial project, but every new project will become exponentially quicker, easier and even more ambitious.

Next time I will talk specifically about architectures, the do’s and don’ts, and the importance of developing an editor.

iPhone, Urchin & Something New

Posted by Daniel on July 16th, 2010 | No Comments »

It’s hard to believe, but TidalWare has been around for 2 years on August 30th. Not much has happened on the public front, but a lot has been going on behind the scenes. Besides writing code for 730 days, I’ve been feeling my way around the realm of indie game development. The purpose of TidalWare has been swings and roundabouts – I made some good progress with Project Utopia, but obviously it’s not sane for a startup to rely solely on such a huge project.

Last year I turned to the iPhone platform. It seemed an excellent starting point for an aspiring developer: make almost anything and distribute it worldwide for just 100$. Ogre 3D also had a very promising port in development, which was great since I had already spent a couple of years working with it. So I began to create a very basic prototype back in November.

8 months into development, and what started out as something simple has become an ambitious project. I never planned anything, so it has pretty much evolved over time. To be honest, I never thought it was even possible on the iPhone.

I took a break early June, and set myself the task of releasing something -anything- into the app store as fast as possible, provided it does what it says on the tin, with no bugs or crashes. 2 weeks later I had done just that. On the 14th day I submitted it to Apple, and by the 20th day it was in the app store. It was a great learning exercise about the process of creating an app from start to finish, using purely the iPhone SDK and Objective-C. Most importantly I got a taster of what the submission process is like.

Urchin for iPhone and iPod Touch

It’s called Urchin – the app store link is here. It might keep the kids quiet for a little while ;)

Since then I’ve returned to developing my ambitious 3D app. I’m working on it full time around the clock, making exciting progress. Be sure to follow me on my personal Twitter if you’re interested in the development side. Any announcements will be on TidalWare’s twitter.

I will be revealing some details about the project in my next post. Stay tuned!

Dev Diary 4: Shadows

Posted by Daniel on December 29th, 2009 | 2 Comments »

Sinbad recently added shadow support to the new Ogre terrain.

What a difference!

Project Utopia Shadows

Development Diary 3

Posted by Daniel on December 10th, 2009 | No Comments »

Three months since our last post, where does the time go?!

Okay, new dev diary for you. If you’ve been following us on Twitter, you’ll know that we’ve still been very busy with stuff, including, yep, Project Utopia.

By the way, we setup a Flickr page for Project Utopia if you didn’t already know.

Those screenshots look neat, huh? However, we hit a bit of a dilemma. The terrain system featured in those screenshots looks impressive, but there’s various underlying problems. Not only that, but Ogre, the 3D engine we use, has a brand new terrain system in the works. Here’s a lowdown of the advantages/disadvantages:

Current terrain:
Advantages:
- Beautiful, powerful atmospheric system.
- Feature rich including paging, splatting, normal and parallax mapping etc.
Disadvantages
- The sky with atmospheric scattering is intensive and requires a decent graphics card.
- No dynamic weather.
- Uses the old Ogre terrain system.
- Shaders are commercial.
- Support is not great.
- Slow development.
- There are still many unsolved bugs.

Ogre’s terrain:
Advantages:
- Very efficient.
- It’s just a world object, not a “scene manager”, so that allows for a huge amount of flexibility, even with the possibility of seamless indoor/outdoor support.
- Great support and rapid development.
- Alternative sky has dynamic weather.
Disadvantages:
- No atmospheric scattering, though it will support it eventually.
- Other disadvantages are down to the fact that it’s still WIP.

So what do we do? Well, basically, it “makes sense” to go with the Ogre terrain, because it’s going to be the best choice in the long term. But that means we have a lot of work to do to catch up with the graphical quality of the old environment.

Here’s where we’re at so far:

Dev Dairy 3 - New terrain