Juan Linietsky | 20 Apr 2011 07:26
Picon

Question about development of prototyping tools.

I'm not sure if this is a common quesiton in the list, but I think tool programming is a very overlooked issue of software engineering in game development.
So my question is, since many here have tremendous experience in the game industry and worked on huge projects, what kind of tools do software engineers supply to game or level designers so they can, for example, prototype a game stage before, say, 3D artists start working on a final version?

In more depth, games like Halo, God of War or Mario Galaxy for example have really complex scenarios, so complex that a height map or grid map editors do not suffice for prototyping. I can imagine that before 3D artists can start working on the final art, a simpler looking prototype must be created. I also can imagine that creating such prototypes need constant adjusting on the fly (a cliff may be too high, a room to small to fit the enemies, a target out of shooting range), so either special tools for editing stages are created or special plugins for integrating with, say, maya are needed? Also, is it common that game or level designers know how to work with 3D apps for stage design? or do engineers have to create special tools for them? If so what kind of tools?

Cheers!

Juan Linietsky



_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Steven Kah Hien Wong | 20 Apr 2011 08:06
Gravatar

Re: Question about development of prototyping tools.

Hi Juan,

Game engines usually have a specialized editor that designers/artists can use. Unreal is an industry-proven and freely-available example of what you can expect. Source engine (used in Half-Life and Left 4 Dead... among many more) is another. All the projects I've worked on have been this way... but I have heard some games have managed to get by with plugins to existing 3D packages too.

You usually block out the levels first (using CSG's for example - big & simple shapes), and then add in the sugar later (like the real 3D art). You will hear this a lot in the industry... iteration! Start with something simple and functional... and polish it until your eyes bleed. :)

Features implemented by programmers will usually expose some parameters that designers/artists can tweak and fine-tune. There is usually an existing framework in the engine that allows programmers to do this in a standard way. One way is to 'tag' member variables as configurable and the engine will automatically do the rest of the work of presenting and saving/loading (serialization) it in the editor.

At the end of the day, it's just a lot of back & forth between programmers/designers/artists.... working together to make something beautiful. :)

I agree with you on tools being undervalued. A robust tool that allows designers and artists to iterate quickly is a god-send. However, time constraints and needing to get stuff done (i.e., working on the final product rather than the tool to make the product) make it a challenge... even more so with the increasing size of today's projects.

Hope that answers some of your questions. :)

--
Steven Kah Hien Wong (steven <at> epicfinalboss.com)



On 20 April 2011 01:26, Juan Linietsky <reduzio <at> gmail.com> wrote:
I'm not sure if this is a common quesiton in the list, but I think tool programming is a very overlooked issue of software engineering in game development.
So my question is, since many here have tremendous experience in the game industry and worked on huge projects, what kind of tools do software engineers supply to game or level designers so they can, for example, prototype a game stage before, say, 3D artists start working on a final version?

In more depth, games like Halo, God of War or Mario Galaxy for example have really complex scenarios, so complex that a height map or grid map editors do not suffice for prototyping. I can imagine that before 3D artists can start working on the final art, a simpler looking prototype must be created. I also can imagine that creating such prototypes need constant adjusting on the fly (a cliff may be too high, a room to small to fit the enemies, a target out of shooting range), so either special tools for editing stages are created or special plugins for integrating with, say, maya are needed? Also, is it common that game or level designers know how to work with 3D apps for stage design? or do engineers have to create special tools for them? If so what kind of tools?

Cheers!

Juan Linietsky




_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com


_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Morten Brodersen | 21 Apr 2011 07:16

Re: Question about development of prototyping tools.

I would classify tools this way:
 
1. External/Internal:
 
Is the tool external to the game or embedded in the game?
 
2. Cycle-time:
 
How long does it take from the moment you make a change until you can play it in the game?
 
In other words, if you make a change using the tool do you then have to reboot the game or restart the level to see the change in the game? Or can you (say) play a level, notice something that needs changing, pause, edit, save and then continue playing without having to reboot the game/level?
 
I have seen tools done in a lot of different ways. With some tools having a cycle times of seconds and others needing literally hours. I can not overstate how important it is to have very short cycle times. You need to get it as close to 0 secs as you can basically.
 
A simple example is a use case where an artist makes a change to a texture using (say) Photoshop. If the artist has to exit and restart the game and then restart the level to see the texture changed then the cycle time is very high (bad!). If the artist can just press (say) F8 and the game will automatically reload all changed textures, the cycle time will be a few secs (much much better!).
 
Another example would be a level designer pausing a level, editing a number of scripts and then continue playing the level with the game using the new scripts when spawning new characters. You could even have the script editor embedded in the game. However editing the scripts with an external tool is fine as long as you don't have to reboot the game to test the edits. The game should automatically (or triggered by a button press) reload changed scripts.
 
And here is the dirty secret:
 
In my experience it is a lot easier and faster to build the tools into the game. You already have the scene being rendered etc. All you need is to switch the game to "Edit Mode" and your tool(s) can take over, making the artist/designer make changes right there in the game, save and continue.
 
Even back in the old days when I was working on Banjo Kazooie for the N64 we could stop the game at any point, move spawnpoints around, add/remove objects etc., save and the restart the level with the player character starting right next to what you edited. In other words, the cycle time was a few secs. And that was using the (by todays standard) very limited N64 hardware. So no excuse today when we have access to hardware that is literally 100+ times more powerful :-)
 
The key thing to keep in mind (from an architectural point of view) is to put a clear wall between "level definition" data and "level running" data. That allows you to edit the "level definition" data without touching the "level running" data => you can continue playing the game after you edit it.
 
Morten
 
-----Original Message-----
From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Juan Linietsky
Sent: Wednesday, 20 April 2011 3:26 PM
To: sweng-gamedev <at> midnightryder.com
Subject: [Sweng-Gamedev] Question about development of prototyping tools.

I'm not sure if this is a common quesiton in the list, but I think tool programming is a very overlooked issue of software engineering in game development.
So my question is, since many here have tremendous experience in the game industry and worked on huge projects, what kind of tools do software engineers supply to game or level designers so they can, for example, prototype a game stage before, say, 3D artists start working on a final version?

In more depth, games like Halo, God of War or Mario Galaxy for example have really complex scenarios, so complex that a height map or grid map editors do not suffice for prototyping. I can imagine that before 3D artists can start working on the final art, a simpler looking prototype must be created. I also can imagine that creating such prototypes need constant adjusting on the fly (a cliff may be too high, a room to small to fit the enemies, a target out of shooting range), so either special tools for editing stages are created or special plugins for integrating with, say, maya are needed? Also, is it common that game or level designers know how to work with 3D apps for stage design? or do engineers have to create special tools for them? If so what kind of tools?

Cheers!

Juan Linietsky



_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Gregory Junker | 21 Apr 2011 07:36

Re: Question about development of prototyping tools.

 

 

In my experience it is a lot easier and faster to build the tools into the game. You already have the scene being rendered etc. All you need is to switch the game to "Edit Mode" and your tool(s) can take over, making the artist/designer make changes right there in the game, save and continue.

 

 

I would be careful though, which parameters (or at least which properties of a given parameter) your tool saves. TGE’s world editor (for painful example) would also save the state of, say, sound effects, so your level designer might run the level, change something, and find next time they restart the level that a seemingly random sound cue is playing.

 

Greg

_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Javier Arevalo | 21 Apr 2011 08:56

Re: Question about development of prototyping tools.

On 4/21/2011 7:16 AM, Morten Brodersen wrote:
And here is the dirty secret:
 
In my experience it is a lot easier and faster to build the tools into the game. You already have the scene being rendered etc. All you need is to switch the game to "Edit Mode" and your tool(s) can take over, making the artist/designer make changes right there in the game, save and continue.
 
Even back in the old days when I was working on Banjo Kazooie for the N64 we could stop the game at any point, move spawnpoints around, add/remove objects etc., save and the restart the level with the player character starting right next to what you edited. In other words, the cycle time was a few secs. And that was using the (by todays standard) very limited N64 hardware. So no excuse today when we have access to hardware that is literally 100+ times more powerful :-)
 
The key thing to keep in mind (from an architectural point of view) is to put a clear wall between "level definition" data and "level running" data. That allows you to edit the "level definition" data without touching the "level running" data => you can continue playing the game after you edit it.

There are a few issues with this in the console world. Modern consoles may be 100x more powerful than a N64, but modern game technologies and content (for good or bad) are also 100x bigger:

- Game runtime data (even the definitions) is normally in a 'cooked' state, processed, compressed, etc. For example, your source level definition data may be some XML file, but your pipeline turns it into a binary memory image blob; scripts will usually be read by the runtime in bytecode compiled form; string identifiers will be compiled into binary hashes, etc. If your game is anywhere close to pushing the platform, you may not have memory (almost guaranteed on a certain platform's dev kit) to keep the source data and all the extra code that handles the source format.

- Even if you can plug mouse and keyboard to modern consoles, the kind of interfaces that you can build on a console may be too limited compared to working on a real windowing GUI with multiple monitors, all sorts of handy widgets, on-line help, etc.

These are the kind of reasons why many studios keep a PC version of their game running even if the game will not be released on PC. It's much easier to augment a PC version with the kind of tools Morten described (and not just production tools - debugging helpers as well!), and the effort of maintaining this PC version of the code may be worth because the tools will be orders of magnitude better.

The other alternative is, of course, building your tools on the PC and having a communications system where the tools can send hot-reloading requests to the game running on the console. But in this way, you have to code every feature that can be reloaded separately, and my experience is that many features will not support hot reloading until you realize you absolutely need it, and this support will be crude in many cases.
-- Javier Arevalo http://www.iguanademos.com/Jare
_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Morten Brodersen | 21 Apr 2011 13:46

Re: Question about development of prototyping tools.

Yes that was exactly my point when I was talking about putting a wall between the "level definition" and "level running" data. The sound cue you are talking about clearly belongs to the "level running" data and shouldn't be saved by the editor.
 
Morten
-----Original Message-----
From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Gregory Junker
Sent: Thursday, 21 April 2011 3:36 PM
To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

 

 

In my experience it is a lot easier and faster to build the tools into the game. You already have the scene being rendered etc. All you need is to switch the game to "Edit Mode" and your tool(s) can take over, making the artist/designer make changes right there in the game, save and continue.

 

 

I would be careful though, which parameters (or at least which properties of a given parameter) your tool saves. TGE’s world editor (for painful example) would also save the state of, say, sound effects, so your level designer might run the level, change something, and find next time they restart the level that a seemingly random sound cue is playing.

 

Greg

_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Morten Brodersen | 21 Apr 2011 14:01

Re: Question about development of prototyping tools.

Console development hasn't fundamentally changed during the last 15+ years. Game runtime data then had to be as cooked and compressed as today. The details and data sizes are different but the issues remain the same.
 
Don't confuse gameplay editing with resource (model/texture) editing. There are excellent external industry standard tools for resource editing (3D Studio Max etc.) and it usually makes no sense to try and recreat that within the game. However the gameplay editing (placing of objects, characters, pathways, scripts, triggers, real-time lights, pickups, spawnpoints etc.) can with great benefit be edited in-game using a normal game controller.
 
Morten
-----Original Message-----
From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Javier Arevalo
Sent: Thursday, 21 April 2011 4:57 PM
To: sweng-gamedev <at> lists.midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

On 4/21/2011 7:16 AM, Morten Brodersen wrote:
And here is the dirty secret:
 
In my experience it is a lot easier and faster to build the tools into the game. You already have the scene being rendered etc. All you need is to switch the game to "Edit Mode" and your tool(s) can take over, making the artist/designer make changes right there in the game, save and continue.
 
Even back in the old days when I was working on Banjo Kazooie for the N64 we could stop the game at any point, move spawnpoints around, add/remove objects etc., save and the restart the level with the player character starting right next to what you edited. In other words, the cycle time was a few secs. And that was using the (by todays standard) very limited N64 hardware. So no excuse today when we have access to hardware that is literally 100+ times more powerful :-)
 
The key thing to keep in mind (from an architectural point of view) is to put a clear wall between "level definition" data and "level running" data. That allows you to edit the "level definition" data without touching the "level running" data => you can continue playing the game after you edit it.

There are a few issues with this in the console world. Modern consoles may be 100x more powerful than a N64, but modern game technologies and content (for good or bad) are also 100x bigger:

- Game runtime data (even the definitions) is normally in a 'cooked' state, processed, compressed, etc. For example, your source level definition data may be some XML file, but your pipeline turns it into a binary memory image blob; scripts will usually be read by the runtime in bytecode compiled form; string identifiers will be compiled into binary hashes, etc. If your game is anywhere close to pushing the platform, you may not have memory (almost guaranteed on a certain platform's dev kit) to keep the source data and all the extra code that handles the source format.

- Even if you can plug mouse and keyboard to modern consoles, the kind of interfaces that you can build on a console may be too limited compared to working on a real windowing GUI with multiple monitors, all sorts of handy widgets, on-line help, etc.

These are the kind of reasons why many studios keep a PC version of their game running even if the game will not be released on PC. It's much easier to augment a PC version with the kind of tools Morten described (and not just production tools - debugging helpers as well!), and the effort of maintaining this PC version of the code may be worth because the tools will be orders of magnitude better.

The other alternative is, of course, building your tools on the PC and having a communications system where the tools can send hot-reloading requests to the game running on the console. But in this way, you have to code every feature that can be reloaded separately, and my experience is that many features will not support hot reloading until you realize you absolutely need it, and this support will be crude in many cases.
-- Javier Arevalo http://www.iguanademos.com/Jare
_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Oladotun Rominiyi | 21 Apr 2011 14:06
Favicon

Re: Question about development of prototyping tools.

But then you still run into the problem of having to deal with the baking factor if, for example, you’re moving objects around scenes, all your static ambient occlusion, shadows and radiosity will need to be re-baked…

 

From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Morten Brodersen
Sent: 21 April 2011 13:01
To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

 

Console development hasn't fundamentally changed during the last 15+ years. Game runtime data then had to be as cooked and compressed as today. The details and data sizes are different but the issues remain the same.

 

Don't confuse gameplay editing with resource (model/texture) editing. There are excellent external industry standard tools for resource editing (3D Studio Max etc.) and it usually makes no sense to try and recreat that within the game. However the gameplay editing (placing of objects, characters, pathways, scripts, triggers, real-time lights, pickups, spawnpoints etc.) can with great benefit be edited in-game using a normal game controller.

 

Morten

-----Original Message-----
From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Javier Arevalo
Sent: Thursday, 21 April 2011 4:57 PM
To: sweng-gamedev <at> lists.midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

On 4/21/2011 7:16 AM, Morten Brodersen wrote:

And here is the dirty secret:

 

In my experience it is a lot easier and faster to build the tools into the game. You already have the scene being rendered etc. All you need is to switch the game to "Edit Mode" and your tool(s) can take over, making the artist/designer make changes right there in the game, save and continue.

 

Even back in the old days when I was working on Banjo Kazooie for the N64 we could stop the game at any point, move spawnpoints around, add/remove objects etc., save and the restart the level with the player character starting right next to what you edited. In other words, the cycle time was a few secs. And that was using the (by todays standard) very limited N64 hardware. So no excuse today when we have access to hardware that is literally 100+ times more powerful :-)

 

The key thing to keep in mind (from an architectural point of view) is to put a clear wall between "level definition" data and "level running" data. That allows you to edit the "level definition" data without touching the "level running" data => you can continue playing the game after you edit it.


There are a few issues with this in the console world. Modern consoles may be 100x more powerful than a N64, but modern game technologies and content (for good or bad) are also 100x bigger:

- Game runtime data (even the definitions) is normally in a 'cooked' state, processed, compressed, etc. For example, your source level definition data may be some XML file, but your pipeline turns it into a binary memory image blob; scripts will usually be read by the runtime in bytecode compiled form; string identifiers will be compiled into binary hashes, etc. If your game is anywhere close to pushing the platform, you may not have memory (almost guaranteed on a certain platform's dev kit) to keep the source data and all the extra code that handles the source format.

- Even if you can plug mouse and keyboard to modern consoles, the kind of interfaces that you can build on a console may be too limited compared to working on a real windowing GUI with multiple monitors, all sorts of handy widgets, on-line help, etc.

These are the kind of reasons why many studios keep a PC version of their game running even if the game will not be released on PC. It's much easier to augment a PC version with the kind of tools Morten described (and not just production tools - debugging helpers as well!), and the effort of maintaining this PC version of the code may be worth because the tools will be orders of magnitude better.

The other alternative is, of course, building your tools on the PC and having a communications system where the tools can send hot-reloading requests to the game running on the console. But in this way, you have to code every feature that can be reloaded separately, and my experience is that many features will not support hot reloading until you realize you absolutely need it, and this support will be crude in many cases.

--

Javier Arevalo

http://www.iguanademos.com/Jare

_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Lionel Barret De Nazaris | 21 Apr 2011 15:09
Favicon

Re: Question about development of prototyping tools.

You're right but if you consider the whole pipeline (from audio to packaging to testing), this is very focused pb.

Not easy but quite focused, hence likely to be manageable. In my old days, we were scripting the game to get the env cube map for each buildings. Looks similar.

Lionel.

On 04/21/2011 02:06 PM, Oladotun Rominiyi wrote:
Message

But then you still run into the problem of having to deal with the baking factor if, for example, you’re moving objects around scenes, all your static ambient occlusion, shadows and radiosity will need to be re-baked…

 

From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Morten Brodersen
Sent: 21 April 2011 13:01
To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

 

Console development hasn't fundamentally changed during the last 15+ years. Game runtime data then had to be as cooked and compressed as today. The details and data sizes are different but the issues remain the same.

 

Don't confuse gameplay editing with resource (model/texture) editing. There are excellent external industry standard tools for resource editing (3D Studio Max etc.) and it usually makes no sense to try and recreat that within the game. However the gameplay editing (placing of objects, characters, pathways, scripts, triggers, real-time lights, pickups, spawnpoints etc.) can with great benefit be edited in-game using a normal game controller.

 

Morten

-----Original Message-----
From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Javier Arevalo
Sent: Thursday, 21 April 2011 4:57 PM
To: sweng-gamedev <at> lists.midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

On 4/21/2011 7:16 AM, Morten Brodersen wrote:

And here is the dirty secret:

 

In my experience it is a lot easier and faster to build the tools into the game. You already have the scene being rendered etc. All you need is to switch the game to "Edit Mode" and your tool(s) can take over, making the artist/designer make changes right there in the game, save and continue.

 

Even back in the old days when I was working on Banjo Kazooie for the N64 we could stop the game at any point, move spawnpoints around, add/remove objects etc., save and the restart the level with the player character starting right next to what you edited. In other words, the cycle time was a few secs. And that was using the (by todays standard) very limited N64 hardware. So no excuse today when we have access to hardware that is literally 100+ times more powerful :-)

 

The key thing to keep in mind (from an architectural point of view) is to put a clear wall between "level definition" data and "level running" data. That allows you to edit the "level definition" data without touching the "level running" data => you can continue playing the game after you edit it.


There are a few issues with this in the console world. Modern consoles may be 100x more powerful than a N64, but modern game technologies and content (for good or bad) are also 100x bigger:

- Game runtime data (even the definitions) is normally in a 'cooked' state, processed, compressed, etc. For example, your source level definition data may be some XML file, but your pipeline turns it into a binary memory image blob; scripts will usually be read by the runtime in bytecode compiled form; string identifiers will be compiled into binary hashes, etc. If your game is anywhere close to pushing the platform, you may not have memory (almost guaranteed on a certain platform's dev kit) to keep the source data and all the extra code that handles the source format.

- Even if you can plug mouse and keyboard to modern consoles, the kind of interfaces that you can build on a console may be too limited compared to working on a real windowing GUI with multiple monitors, all sorts of handy widgets, on-line help, etc.

These are the kind of reasons why many studios keep a PC version of their game running even if the game will not be released on PC. It's much easier to augment a PC version with the kind of tools Morten described (and not just production tools - debugging helpers as well!), and the effort of maintaining this PC version of the code may be worth because the tools will be orders of magnitude better.

The other alternative is, of course, building your tools on the PC and having a communications system where the tools can send hot-reloading requests to the game running on the console. But in this way, you have to code every feature that can be reloaded separately, and my experience is that many features will not support hot reloading until you realize you absolutely need it, and this support will be crude in many cases.

--

Javier Arevalo

http://www.iguanademos.com/Jare

_______________________________________________ Sweng-Gamedev mailing list Sweng-Gamedev <at> lists.midnightryder.com http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com

--
Best regards,
Lionel Barret de Nazaris
Gamr7 - CEO
===
Create bigger cities faster with Urban PAD.
follow us : blog, twitter, facebook

Disclaimer: This message contains confidential and legally privileged information. This information is intended only for the addressee of this message. In case you have received this message in error, you should not disseminate, distribute or copy it. Please notify the sender immediately by e-mail and delete this message from your IT system.

_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Morten Brodersen | 21 Apr 2011 19:52

Re: Question about development of prototyping tools.

Unless you are working on a stealth game where shadows are important, it doesn't matter if the lighting is not 100% correct when editing the gameplay of a level.
 
Morten
-----Original Message-----
From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Oladotun Rominiyi
Sent: Thursday, 21 April 2011 10:06 PM
To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

But then you still run into the problem of having to deal with the baking factor if, for example, you’re moving objects around scenes, all your static ambient occlusion, shadows and radiosity will need to be re-baked…

 

From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Morten Brodersen
Sent: 21 April 2011 13:01
To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

 

Console development hasn't fundamentally changed during the last 15+ years. Game runtime data then had to be as cooked and compressed as today. The details and data sizes are different but the issues remain the same.

 

Don't confuse gameplay editing with resource (model/texture) editing. There are excellent external industry standard tools for resource editing (3D Studio Max etc.) and it usually makes no sense to try and recreat that within the game. However the gameplay editing (placing of objects, characters, pathways, scripts, triggers, real-time lights, pickups, spawnpoints etc.) can with great benefit be edited in-game using a normal game controller.

 

Morten

-----Original Message-----
From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Javier Arevalo
Sent: Thursday, 21 April 2011 4:57 PM
To: sweng-gamedev <at> lists.midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

On 4/21/2011 7:16 AM, Morten Brodersen wrote:

And here is the dirty secret:

 

In my experience it is a lot easier and faster to build the tools into the game. You already have the scene being rendered etc. All you need is to switch the game to "Edit Mode" and your tool(s) can take over, making the artist/designer make changes right there in the game, save and continue.

 

Even back in the old days when I was working on Banjo Kazooie for the N64 we could stop the game at any point, move spawnpoints around, add/remove objects etc., save and the restart the level with the player character starting right next to what you edited. In other words, the cycle time was a few secs. And that was using the (by todays standard) very limited N64 hardware. So no excuse today when we have access to hardware that is literally 100+ times more powerful :-)

 

The key thing to keep in mind (from an architectural point of view) is to put a clear wall between "level definition" data and "level running" data. That allows you to edit the "level definition" data without touching the "level running" data => you can continue playing the game after you edit it.


There are a few issues with this in the console world. Modern consoles may be 100x more powerful than a N64, but modern game technologies and content (for good or bad) are also 100x bigger:

- Game runtime data (even the definitions) is normally in a 'cooked' state, processed, compressed, etc. For example, your source level definition data may be some XML file, but your pipeline turns it into a binary memory image blob; scripts will usually be read by the runtime in bytecode compiled form; string identifiers will be compiled into binary hashes, etc. If your game is anywhere close to pushing the platform, you may not have memory (almost guaranteed on a certain platform's dev kit) to keep the source data and all the extra code that handles the source format.

- Even if you can plug mouse and keyboard to modern consoles, the kind of interfaces that you can build on a console may be too limited compared to working on a real windowing GUI with multiple monitors, all sorts of handy widgets, on-line help, etc.

These are the kind of reasons why many studios keep a PC version of their game running even if the game will not be released on PC. It's much easier to augment a PC version with the kind of tools Morten described (and not just production tools - debugging helpers as well!), and the effort of maintaining this PC version of the code may be worth because the tools will be orders of magnitude better.

The other alternative is, of course, building your tools on the PC and having a communications system where the tools can send hot-reloading requests to the game running on the console. But in this way, you have to code every feature that can be reloaded separately, and my experience is that many features will not support hot reloading until you realize you absolutely need it, and this support will be crude in many cases.

--

Javier Arevalo

http://www.iguanademos.com/Jare

_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com

Gmane