FAQ Search
Memberlist Usergroups
Profile
  Forum Statistics Register
 Log in to check your private messages
Log in to check your private messages
Moonpod Homepage Starscape Information Mr. Robot Information Free Game Downloads Starscape Highscore Table
July-06: Xenomorph
Goto page 1, 2  Next
Post new topic   Reply to topic    Discussion Pod Forum Index -> Developer Diary View previous topic :: View next topic  
 Author
Message
Moonpod Developer Diary RSS feed -RSS Feed
Poo Bear
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 4121
Location: Sheffield, UK



PostPosted: Wed May 31, 2006 10:40 am    Post subject: July-06: Xenomorph Reply with quote

Bug Bonanza

When a game project moves into its final phase a lot of disparate systems begin to mesh together and people (new users) begin to explore their interfaces as the game takes proper shape and becomes fun(ctional). Systems that were tested and seen to work in isolation suddenly fail as code paths are exercised in new and subtly different ways. I hear people complain that newly released games are often not properly tested and contain too many bugs and obviously they have a right to feel upset, but testing a game properly is extremely difficult. Mr. Robot is just now entering this problematic birthing phase where we are starting to shake out all the skeletons that have long remained hidden within the games many forgotten cupboards.

Mr. Robot: Class A bug
The front end, coming together nicely, except for that class A bug taking out the debugger...

We will certainly be beta testing the game to bullet proof it further, but some amount of internal testing must be undertaken first lest we be drowned within a deluge of obvious and avoidable bugs from our unhappy testers. The volunteer beta-test team have a right to expect a fairly stable game. However, before even internal testing can begin I must wrestle the many subsystems within the game into compliance. In some ways this is one of the more stressful periods of development as many extremely obscure bugs will be exposed and require me to work long into the wee hours to lay them to rest.

Mr. Robot: JJ stand in chat.
JJ, now an out of work jobbing actress, stands in until the final cast arrives...

The main culprit in this time of woe is memory corruption, it can have many causes and is simply an area of memory that is written over in error destroying whatever was there initially. The most insidious example is when an error causes a piece of innocent empty unused memory to be overwritten causing absolutely no problem whatsoever. Why is this insidious? As we approach the end of development different systems begin to ramp up with their full in-game content, where we initially had 10 sound effects, now we have 200. This is a huge change in memory layout and what were empty or unused areas of memory remain no longer and all of a sudden evil little bugs that have slept quietly for years suddenly wake up.

Mr. Robot: Inventory
Inventory working perfectly.

There are tools to help out like Compuware's Boundschecker or Rational's purify, but they are very expensive, fragile and complex tools. If you have deep pockets then it would make sense to get one early on and start using it regularly throughout development. Both come with something called "code coverage" which allows you to see how much of your code actually did anything when you ran it. It might seem odd, but this is extremely important as you can create a "test plan" designed to ensure every little bell, whistle and knob gets tweaked during testing. If you aren't exercising every code path then you aren't going to find as many bugs and the devils will lurk undiscovered only to pop up months later when you've forgotten how that system works.

Mr. Robot: Auto unlock key code system
Auto unlock: In game key system.


Deciding What's Next.

As one project slowly grinds to a conclusion, thoughts of the next come to the fore and the plethora of "clever" ideas and swiftly jotted musings that form the game ideas vault are pored over with renewed vigour. The time between projects when ideas are unconstrained, fleeting, paper-based entities is definitely one of the most joyous. As the new project draws near the harsh light of reality forces its way in and begins to burn away many of these flights of fancy. If people were happy with text adventures then we could create epic journeys into the stars or voyages to the very depths of hell and back. However, people want a lot more than a great idea, they want a professional, polished, piece of entertainment served with the minimum garnish of "work" and bothersome "education" and lashings of thrills and eye candy. When I say "work" I mean the effort required to master anything new or unfamiliar. When I say "education" I mean the instruction required to understand what it is you are actually meant to be doing. Don't under estimate "work" and "education". If you've been brainwashed by a multi-million dollar hype campaign and shelled out $50 then you have a pre-built desire to push through any shortcomings, invest some real time and mine out that core of goodness in all games. If you're looking at a free demo it took 2 minutes to download, of a game you've never heard of, while waiting for "Lost" to start on tv, then it better be smooth sailing and instant thrills! So how do you create something so slick and beautiful and yet stand even the slightest chance of delivering it within 12 months?

Don't ask us! Mr. Robot stands testament to our failure to deliver in a timely fashion. Smile

Can we change all that? Can our next project deliver something just as innovative, fresh and pretty, but in half the time? Should we even try to work so quickly?

One of the problems with Mr. Robot was the time spent prototyping the idea to start with. It's quite an unusual mixture of puzzle solving, adventure, platform action and turn-based battling. It took many months of experimentation to crystallize those conflicting ideas into something cohesive. Then there was the huge amount of custom hand made content.

If you are trying to make something nebulous within a specific time frame it can help to think about those elements that are more predictable. As you chop away at the available time you begin to see just what is feasible and what isn't. Saying you have a year, or two years to make something sounds a lot, but when you begin to break it down it is amazing to see how quickly that time is eaten away.

1. Update Starscape: The 1.6 update list has been gathering dust a long time, so it is essential we get onto that as soon as we can and it will take at least a month to complete. This isn't even adding new content, just minor improvements, bringing some of the admin systems into line with Mr. Robot, non-critical fixes, etc.

2. Investigate new middleware: After losing our tools programmer we are now far more interested in open source solutions than hiring a replacement. Letting one person create a full set of industry standard tools is a mammoth task and it is very risky to rest everything on custom built foundations written by one person. Some work can be done beforehand, but you will still use at least a month setting up a new renderer, sound system, networking, physics, model exporter, etc.

2. Prototyping: Even if your idea is not innovative you must still do some basic prototyping to ensure everyone understands what it is you are trying to make and what resources you will need. As the prototype takes shape you will get an idea of the tools needed to build it, this usually involves a custom editor of some kind and a scripting system. Even if you are proposing a very simple game you will need at least 2 months here unless you are simply remaking a previous game with minor improvements.

4. Creating tools: Once you have working prototype tools it's time to flesh them out with all the added functionality and time saving features that are essential to prevent your content creators killing you out of frustration. It's vital that your production process is smooth and efficient so expect at least a month here, anything more complex than a few text files and it will take a lot longer.

5. Production: Hopefully you don't have any more questions hanging over the project and everyone can just get on with it. This is the one area that is flexible on time, do you want 10 levels or 5?

6. Testing: A critical phase that it is all too easy to skimp on; expect at least 2 months.

7. Contingency time: However long you think it will take, it will take longer guaranteed, just accept it. If you genuinely believe something will take a year then you better add 2 months on, sad but true.

So if we are proposing something simple (i.e. nothing like Mr. Robot!). With ideas and technologies that aren't too unfamiliar, so it has a chance of a 12month schedule, then we will still need 9 months minimum not including production. So the question then is: how can you produce the content for your game (production phase) in just 3 months? With Mr. Robot each room was hand made and there was a constant need for new room artwork and new hand coded challenges within the rooms. So unless we want a very short game indeed we need to procedurally generate some or all of the content. Starscape is a good example of partial procedural generation as script files were used to create the game universe and seed it. Starscape's universe is quite small but procedural generation can be taken a lot further, just look at Elite or Diablo.

The drawback to procedural generation soon materializes in repetition as human beings are quick to spot patterns and similarities which they then tire of quickly. So procedural content can save time, but to create truly compelling procedurally generated content is very complicated and would take a great deal of research and therefore more time; the one thing we don't have! So it would seem a game like Starscape is what is needed, something driven by a procedural engine yet tightly guided by the hand of a designer. A compromise.

Analysing such a nebulous problem as your next project is very difficult and I suspect there is no solution that is both exciting and risk limiting. I sometimes envy true indie developers, people who make games in their spare time while either studying or holding down a full time job. I personally cannot work on something part time like that, I have to commit all my energies to one thing. However, you are no longer truly independent as the financial pressures of real life soon seek to push you towards shorter schedules and a faster turn around.

Leaving the mainstream industry behind we thought we had defeated the demon entirely, but sadly we just wounded it. We must still find balance in all things even if that means reigning in our ideas and cooling the forge of innovation.


Last edited by Poo Bear on Tue Jul 04, 2006 10:00 pm; edited 15 times in total
Back to top
View user's profile Visit poster's website
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Wed Jun 21, 2006 3:59 pm    Post subject: Reply with quote

Escape Velocity

Finally finished all the programs for ghost hack so rather than post pictures and spend time writing a load of waffle (that most people ignore anyway Smile ) I've put my dev diary efforts into editing together some video captures of some of effects (see below). Note, these normally take place in the virtual world of ghost hack (which we haven't seen much of yet), but for now I've captured them in a 'padded cell' test room Smile.

The most fun I've had with effects is to use attraction controllers - I've ended up having to work out some basic maths for them so I can put particles into orbit around the controller. When you hit the right combination, you can get some lovely effects as they spin around. It's quite fun to set an enormous lifespan on the particles and watch as their orbits slowly decay and they eventually float away, since you can never get it 100% right. Of course, if we had minute long effects, ghost hack would become pretty boring, so I've tried to make most of the effects quite brief.

Ghost Hacking Reel

High res downloadable version (35 Meg, Mpeg)

Low-Res Embedded Video:


Or, if you prefer:
Google Video (non embedded)
YouTube
Back to top
View user's profile Visit poster's website
Weeble
Starscape Jedi
Starscape Jedi


Joined: 25 Apr 2003
Posts: 1143
Location: Glasgow, Scotland



PostPosted: Mon Jul 03, 2006 11:16 pm    Post subject: Reply with quote

Speaking of baffling memory corruption bugs, I did this not so long ago, and was aghast when I discovered what I'd done:
Code:

struct GUID
{
    // ...
}
// ...
class cSomething
{
public:
    cSomething(const cGUID& guid, int x, int y)
        :m_guid(guid),m_x(x),m_y(y)
    {}
    DoSomething();
    // ...
private:
    // ...
    const GUID& m_guid;
    int m_x;
    int m_y;
}

Of course, all of this was spread across several files. The critical thing to spot is the ampersand on the line "const GUID& m_guid;". That wasn't supposed to be there. But there was nothing for the compiler to find wrong with it, and I didn't realise for a while that is was like that. So it looks to me like m_guid gets horribly corrupted some time after construction but before DoSomething() is called. In actuality I've got a reference to a piece of memory I don't own that's probably in a stack frame that went out of scope shortly after my cSomething was constructed.

Sorry, that can't have been terribly interesting for anybody else.

Love those effects, Fost. The icy crystalline burst around about 0:32 looks smashing, as does the relatively simple energy buildup around about 0:47. I think the explosion at 0:54 is one of the ones I liked static, and it looks even better animated. The red-blue combination at the end looks like a great build-up to something.

The ones I'm not so sure about are all those with a halo hovering in front of the robot, and snakey things or little particles flying out of it away from him. (0:15, 0:20, 1:02) For some reason they just don't do it for me. The feel sort of over-balanced. Maybe the halo is too small and the rest of the effect too big? I don't know. The one at 0:43 looks better.

But really, all the others (and you've got a lot there!) look awesome. Smile
Back to top
View user's profile Visit poster's website MSN Messenger
Lothar
Starscape Jedi
Starscape Jedi


Joined: 21 Dec 2003
Posts: 522



PostPosted: Tue Jul 04, 2006 3:50 am    Post subject: Reply with quote

beautiful choice of music.
Back to top
View user's profile
starscape junkie



Joined: 15 Jun 2003
Posts: 177
Location: The Thirteenth Colony



PostPosted: Tue Jul 04, 2006 5:04 am    Post subject: Reply with quote

*wonders how long fost was timing effects to music for*
In any case they look stunning.
Back to top
View user's profile
icarus
Troll
Troll


Joined: 01 Mar 2004

Location: Olympia Washington



PostPosted: Tue Jul 04, 2006 5:39 am    Post subject: Reply with quote

Reminds me of V for vendetta where V used the same music when he destroyed buildings.

Definitely good fireworks music.
Back to top
View user's profile Visit poster's website
InaneAndMatu



Joined: 26 Jun 2005
Posts: 25



PostPosted: Tue Jul 04, 2006 6:04 am    Post subject: Reply with quote

Great read and reel, guys. The reel was a good start to the 4th of july.


Now, I must ask, have beta testers been chosen already?
I must articulate my abilities as a modder and semi-experienced beta tester, which is easiest done by using the word articulate.
Back to top
View user's profile
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Tue Jul 04, 2006 8:05 am    Post subject: Reply with quote

Weeble wrote:
The ones I'm not so sure about are all those with a halo hovering in front of the robot, and snakey things or little particles flying out of it away from him.

You probably have to see them in context to fully 'understand' them -oddly enough somehting that's been difficult for me to do, and I still need to finish final testing of. Most of the effects are in pairs - launch and land. You launch your program attack, and then the 'land' effect hits everything you've targetted. This all occurs in the ghost hack sub-window, and so is more constrained than the main view. Hopefully it will all gel together nicely, but I'm already thinking some of the effects may just look wrong in that context.
Back to top
View user's profile Visit poster's website
Poo Bear
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 4121
Location: Sheffield, UK



PostPosted: Tue Jul 04, 2006 8:24 am    Post subject: Reply with quote

InaneAndMatu wrote:
Now, I must ask, have beta testers been chosen already?


No, not just yet, don't worry.
Back to top
View user's profile Visit poster's website
Jovan



Joined: 19 Jun 2005
Posts: 19



PostPosted: Tue Jul 04, 2006 4:58 pm    Post subject: Reply with quote

Still no sign of Hamish's updates...
Back to top
View user's profile AIM Address MSN Messenger
Anticheese



Joined: 17 Nov 2005
Posts: 159
Location: New Zealand



PostPosted: Tue Jul 04, 2006 11:05 pm    Post subject: Reply with quote

Better late than never though.

Mr. Robot looks like its coming along great! Next time though, Could we have an example of a ghost hack game? I'd be interested to see how it plays out.

P.S What ever happened to Goober? From what I am guessing he was the tools guy who left.
Back to top
View user's profile MSN Messenger
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Tue Jul 04, 2006 11:31 pm    Post subject: Reply with quote

Jovan wrote:
Still no sign of Hamish's updates...

Hamish has been experiencing some delays due to life outside work, but he's back on track lately and plugging away at the Angels, so hopefully we'll be seeing something soon Very Happy
Back to top
View user's profile Visit poster's website
Hamish
Pod Developer
Pod Developer


Joined: 15 Mar 2005
Posts: 570
Location: Auckland, NZ



PostPosted: Tue Jul 04, 2006 11:49 pm    Post subject: Reply with quote

I've got lots of interesting stuff to update about now, I just have to organise and collate them into a post which always seems to take more time than it should. Also,

Quote:
As one project slowly grinds to a conclusion, thoughts of the next come to the fore and the plethora of \"clever\" ideas and swiftly jotted musings that form the game ideas vault are pored over with renewed vigour. The time between projects when ideas are unconstrained, fleeting, paper-based entities is definitely one of the most joyous.


If the game-making doesn't work out you could try being a poet
Back to top
View user's profile MSN Messenger
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Tue Jul 04, 2006 11:50 pm    Post subject: Reply with quote

Anticheese wrote:
Next time though, Could we have an example of a ghost hack game?

Most of it is up and running now but I need to animate the player team. Should hopefully have somehting for next month though, as that's what I'm on now.

Anticheese wrote:
P.S What ever happened to Goober? From what I am guessing he was the tools guy who left.

After a short stint at Eurocom, Goober is now working at Circle studios (the studio formed by the ex-owners of Core). We still manage to drag him into the pub every few weeks though, so I'll tell him everyone says hi Smile
Back to top
View user's profile Visit poster's website
Jovan



Joined: 19 Jun 2005
Posts: 19



PostPosted: Wed Jul 05, 2006 8:19 am    Post subject: Reply with quote

Good to hear you from you Hamish Smile.
Back to top
View user's profile AIM Address MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Discussion Pod Forum Index -> Developer Diary All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group