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
Favicon

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
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
Massimo Del Zotto | 23 Apr 2011 14:28
Picon

Re: Question about development of prototyping tools.

I'd like to read further elaborations on this issue [of merging new content with previous model].

I originally tried to make most assets dynamically reload-able. Initially this seemed to plug nicely.
However, understanding if reloading could share the previous model took more and more time. Now that I have support for (hopefully) extensive scripting, I found I just could not keep the reloading going. The difficulty involved in the aforementioned safety checks is massive for some arbitrary scripts. In other cases, the amount of runtime cooking required interacts with some subsystems in nontrivial ways which ends propagating "more restarts" than originally anticipated.

I'd still want to support dynamic reloading again in some future iteration so I'd like to read some directions on solving those issues.

Thank you,
Massimo


2011/4/21 Gregory Junker <gjunker <at> dayark.com>

 

 

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


_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Jon Watte | 24 Apr 2011 21:22
Picon
Gravatar

Re: Question about development of prototyping tools.

On Sat, Apr 23, 2011 at 5:28 AM, Massimo Del Zotto <massimodz8 <at> gmail.com> wrote:

I'd still want to support dynamic reloading again in some future iteration so I'd like to read some directions on solving those issues.


I've found two things being useful:

1) Use indirection properly. Assets are just data containers, and are exposed to the rest of the game through some abstraction (which could be an ID and a library call, if you're data centric, or an object if you're OO centric). Pointers straight into the asset data are only allowed by the abstraction, and not surfaced outside that point. When you reload assets, you reload the data, and patch up the pointers kept by the ONE THING that knows about the asset internals; the rest of the game accesses the necessary data through that one thing, potentially using temporary handles that are invalidated each frame (in debug mode, physically invalidated, so you catch people trying to keep them around).

2) Save/Load. If you have a "perfect" save/load system, then if you change too much for the state to be properly patch-able, you "save" the game (to RAM) and reload the level as if the user had done a "load" of the game. This does impact scripting, though -- you can't implement timed triggers using native coroutines, for example; you have to have enough data hooks into EVERYTHING that you can properly save and restore all the state that matters. It turns out that when all your state lives in data, rather than implicitly in active call stacks and stuff, there are some other nice structural benefits that come out of that, too, but it does require a different way of thinking about writing script code for someone who's used to banging it all out as sequential code.

Sincerely,

jw


--
Americans might object: there is no way we would sacrifice our living standards for the benefit of people in the rest of the world. Nevertheless, whether we get there willingly or not, we shall soon have lower consumption rates, because our present rates are unsustainable.




_______________________________________________
Sweng-Gamedev mailing list
Sweng-Gamedev <at> lists.midnightryder.com
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com
Massimo Del Zotto | 25 Apr 2011 15:04
Picon

Re: Question about development of prototyping tools.

Thank you Jon, what you write makes a lot of sense.

Both approaches you mentioned were considered and I was going to move towards those goals in the future. I suppose a truly robust save/load system is the key. It now seems reasonable those two things together would be just better than go figure about "state compatibility".

I will have to keep this in mind.

Massimo


2011/4/24 Jon Watte <jwatte <at> gmail.com>
On Sat, Apr 23, 2011 at 5:28 AM, Massimo Del Zotto <massimodz8 <at> gmail.com> wrote:

I'd still want to support dynamic reloading again in some future iteration so I'd like to read some directions on solving those issues.


I've found two things being useful:

1) Use indirection properly. Assets are just data containers, and are exposed to the rest of the game through some abstraction (which could be an ID and a library call, if you're data centric, or an object if you're OO centric). Pointers straight into the asset data are only allowed by the abstraction, and not surfaced outside that point. When you reload assets, you reload the data, and patch up the pointers kept by the ONE THING that knows about the asset internals; the rest of the game accesses the necessary data through that one thing, potentially using temporary handles that are invalidated each frame (in debug mode, physically invalidated, so you catch people trying to keep them around).

2) Save/Load. If you have a "perfect" save/load system, then if you change too much for the state to be properly patch-able, you "save" the game (to RAM) and reload the level as if the user had done a "load" of the game. This does impact scripting, though -- you can't implement timed triggers using native coroutines, for example; you have to have enough data hooks into EVERYTHING that you can properly save and restore all the state that matters. It turns out that when all your state lives in data, rather than implicitly in active call stacks and stuff, there are some other nice structural benefits that come out of that, too, but it does require a different way of thinking about writing script code for someone who's used to banging it all out as sequential code.

Sincerely,

jw


--
Americans might object: there is no way we would sacrifice our living standards for the benefit of people in the rest of the world. Nevertheless, whether we get there willingly or not, we shall soon have lower consumption rates, because our present rates are unsustainable.





_______________________________________________
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
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 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
Juan Linietsky | 23 Apr 2011 05:59
Picon

Re: Question about development of prototyping tools.

Thanks enormously for the replies!
I'm working for a young company and many times, seemingly small issues like this end up being large
productivity obstacles..

-----Original Message-----
From: Lionel Barret De Nazaris <lionel <at> gamr7.com>
Sender: sweng-gamedev-bounces <at> lists.midnightryder.comDate: Thu, 21 Apr 2011 15:09:49 
To: <sweng-gamedev <at> midnightryder.com>
Reply-To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

_______________________________________________
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 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
Juan Linietsky | 23 Apr 2011 06:22
Picon

Re: Question about development of prototyping tools.

I'm sorry that this is sightly offtopic, but given that banjo kazooie was one of the games that inspired me
the most to be a game programmer when I was young, I hope you don't mind if I ask a simple question.. (Of course
if you can answer it)

How is collision detection done in bk? I noticed there is a stage whith a giant whale floating in a sewer. The
whale is fully animated, wiggles its tail and banjo can still walk over it and moves with the whale. Can it be
that in games from that time, when a character was over a floor it would disable phisics and just move over
the manifold as long as the surface normal allowed?

I am really amazed, since recently I implemented that kind of interaction on a physics engine for skinned
geometry, obtaining back linear and angular velocity.. And was thinking "how did they do this  on a
n64...". I'm sure there's so many neat tricks like that that will be lost to time given how greater
processing power allows more and more general purpose algorithms..

-----Original Message-----
From: "Morten Brodersen" <mb <at> mbrodersen.com>
Sender: sweng-gamedev-bounces <at> lists.midnightryder.comDate: Thu, 21 Apr 2011 15:16:59 
To: <sweng-gamedev <at> midnightryder.com>
Reply-To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

_______________________________________________
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 | 24 Apr 2011 08:37

Re: Question about development of prototyping tools.

Hehe...I actually worked on that specific code and it was a bit of a pain to
get right. Here is what I ended up doing:

In general, the Banjo Kazooie collosion was done like this:

The whole map was divided into equal sized 3D cubes with each cube pointing
to a list of indices. The indices indexed into the map array of vertices
(the 3D triangles). Overlapping triangles (triangles in more than one cube)
would be stored in each cube it overlapped. This indirection was done to
save memory.

You could of course have used a KD tree or something else but the cube way
of doing it was fast and simple to implement. And triangles were duplicated
if overlapping more than one cube because cutting map triangles is a very
bad idea (you can easily end up with super thin triangles that the float
math precision won't work well with and it uses a lot more memory).

The N64 only had 4MB total so we used the cartridge as "virtual memory"
swapping models in as needed and dropping models no longer visible. In Banjo
Kazooie literally all graphics behind the camera is no longer in memory and
as you turn around it is swapped in again from the cartridge and graphics
that is now behind you is dropped. You wouldn't be able to do that with a
DVD drive but the N64 cartridge was very fast :)

Anyway...on top of the map structure I added simple collision code for lines
and spheres:

Lines: You could take a line (from,to) hand it to the collision code, and it
would return zero or more collision points ordered in from->to sequence.
With each collision it would also return the TYPE of triangle the ray was
hitting (ground, water etc.) This was stored as a simple array of bytes with
one byte per triangle (a bit indicating water for example). This information
was used to switch the main character from running to swimming or running to
falling for example. Using the map cubes for fast indexing made this run
very fast. Usually only a few triangles needed detailed testing per frame.

Spheres: With a sphere, the collosion code would return a vector pointing in
the direction you want to move to get away from hitting triangles. So the
system easily handled spheres penetrating triangles. Instead of trying to
find the accurate collision point it simply needed to "push" you away from
the collision. Doing it this way removed a number of complicated corner
cases and it worked great with low precision float math.

The character vs. map collision was done using a line test for the feet and
a few spheres roughly covering the body. We just experimented with a
different number of spheres and sphere pos/sizes until it worked. I think we
ended up using just 2 sphere for the main character so collision was super
fast.

Character vs. character collision was done using spheres. We simply attached
a number of spheres to the character animation skeletons and update the
sphere positions each animation frame. With a single fixed size bounding
sphere as a quick initial test.

Character vs. large characters collisions (the whale for example) was done
in the same way as the map: A 3D cube surrounding the character subdivided
into 3D cells, with each cell holding a group of triangles to be tested. The
skeleton animation would then directly update each vertex and the cube
indexing was used to minimize the number of vertices tested.

This worked well for the whole game EXCEPT for the tail of the whale. The
problem was that the tail was moving far enough that some of the triangles
would move outside of the 3D cubes => sometimes triangles underneath the
main character wouldn't be tested => character falling "inside" the whale
tail. That I fixed by simply making the cubes bigger (or just having one big
cube for the whale? I can't remember).

The next problem was that the main character didn't move with the moving
tail. That was solved by remembering the index of the triangle it was
standing on and its (du,dv) in triangle coordinates. In other words, if the
character lands on the whale, du := dot(triangle_edge_0to1, char.pos -
triangle_vertex[0]) and dv := dot(triangle_edge_0to2, char.pos -
triangle_vertex[0]) was calculated and stored. And in the next frame, before
the character movement update, the character position would be set relative
to the (now animated and moved) triangle with character.pos.x =
triangle_vertex[0] + du * triangle_edge_0to1 + dv * triangle_edge_0to2.

So yeah nothing complicated.

We did it this way because in practice to make a game fast you really need
to handle each case separately instead of trying to do "one mother of all
collision algorithms". It makes the code simpler and faster. So main
character vs. map was handled differently from main character vs. other
characters and vs. large characters. And only the whale (I think?) used the
(du,dv) solution so the rest of the game didn't pay the cost of that math.
It was only triggered and used by the whale object. The whale directly set
the position of the main character when the main character was on top of it.
Purists will probably feel ill reading this but hey it worked well ;)

Heh...one think I remember: the lens flare is a post-process (simply a
number of 2D triangles rendered on top of the 3D view). In order to switch
the lens flare on and off depending on whether the sun was visible, I used a
line test form the camera to a point outside the map in the direction of the
sun. However it was too slow because it could easily visit a large number of
3D cubes to test for collision. The solution was to test part of the line
every frame. So over (10 frames? I can't remember exactly how many) it would
test part of the line between the camera and the sun to find out if the lens
flare should be visible. We just played around with the number of "ticks"
per full test until we got the best balance between performance and
visibility.

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: Saturday, 23 April 2011 2:22 PM
To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping
tools.

I'm sorry that this is sightly offtopic, but given that banjo kazooie was
one of the games that inspired me the most to be a game programmer when I
was young, I hope you don't mind if I ask a simple question.. (Of course if
you can answer it)

How is collision detection done in bk? I noticed there is a stage whith a
giant whale floating in a sewer. The whale is fully animated, wiggles its
tail and banjo can still walk over it and moves with the whale. Can it be
that in games from that time, when a character was over a floor it would
disable phisics and just move over the manifold as long as the surface
normal allowed?

I am really amazed, since recently I implemented that kind of interaction on
a physics engine for skinned geometry, obtaining back linear and angular
velocity.. And was thinking "how did they do this  on a n64...". I'm sure
there's so many neat tricks like that that will be lost to time given how
greater processing power allows more and more general purpose algorithms..

-----Original Message-----
From: "Morten Brodersen" <mb <at> mbrodersen.com>
Sender: sweng-gamedev-bounces <at> lists.midnightryder.comDate: Thu, 21 Apr 2011
15:16:59 
To: <sweng-gamedev <at> midnightryder.com>
Reply-To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping
tools.

_______________________________________________
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

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

Peter Thierolf | 24 Apr 2011 10:57
Picon
Picon

Re: Question about development of prototyping tools.

Just wanted to express my thoughts here that, whilst we have that much 
more CPU horsepower available today so we could use general purpose 
physics systems to handle all cases it might still be a better idea to 
do it the old way.

If you model your cases explicitly, you have a much higher level of 
control over the simulation. If you really think about it, games don't 
model real physics in most cases anyway, they are no reality simulator 
but entertainment machines with super natural rules. Whilst some games 
really profit from a fully blown physcis thing, most games have a small 
number of issues to solve which can be done in a highly efficient, 
reliable, controlled and cost effective way without using physics 
simulation - and you got a lot of space and CPU left to the simulation 
aspects like AI etc.

Cheers,

Peter

Am 24.04.2011 08:37, schrieb Morten Brodersen:
> Hehe...I actually worked on that specific code and it was a bit of a pain to
> get right. Here is what I ended up doing:
>
>
> _______________________________________________
> 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

Jon Watte | 24 Apr 2011 06:55
Picon
Gravatar

Re: Question about development of prototyping tools.

Actually, I think all the really successful companies have pretty decent investments in tools -- whether it be in-house, or through licensing engines with known-good tools.
 
There was an interesting presentation at this year's GDC where some EA people showed how they could mock up levels very quickly using Inkscape, and render SVG to 3D "white box" levels. IIRC, they used this for prototyping levels for Dark Spore.
 
Sincerely,
 
jw


--
Americans might object: there is no way we would sacrifice our living standards for the benefit of people in the rest of the world. Nevertheless, whether we get there willingly or not, we shall soon have lower consumption rates, because our present rates are unsustainable.



On Tue, Apr 19, 2011 at 10:26 PM, 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
Hegarty, Joseph | 26 Apr 2011 18:09
Picon
Favicon

Re: Question about development of prototyping tools.

I agree, good investment in tools is really the key.

The best projects I’ve worked on are where there has been significant investment in making the tools pipeline very efficient, it saves everyone time and lets them get on with the actually interesting stuff.

 

The best studios are especially good at sharing tech between projects, if you can take some tools/basic libraries and drop them into your project with relative ease, you reduce the amount of work you have to do significantly. Most things have been written by someone else before, so why go through the hassle of doing it again if you can just take it from another project.

 

Joe Hegarty Network Programmer | Mass Effect | BioWare Montreal | joseph <at> bioware.com

 

 

From: sweng-gamedev-bounces <at> lists.midnightryder.com [mailto:sweng-gamedev-bounces <at> lists.midnightryder.com] On Behalf Of Jon Watte
Sent: Sunday, April 24, 2011 12:56 AM
To: sweng-gamedev <at> midnightryder.com
Subject: Re: [Sweng-Gamedev] Question about development of prototyping tools.

 

Actually, I think all the really successful companies have pretty decent investments in tools -- whether it be in-house, or through licensing engines with known-good tools.

 

There was an interesting presentation at this year's GDC where some EA people showed how they could mock up levels very quickly using Inkscape, and render SVG to 3D "white box" levels. IIRC, they used this for prototyping levels for Dark Spore.

 

Sincerely,

 

jw



--
Americans might object: there is no way we would sacrifice our living standards for the benefit of people in the rest of the world. Nevertheless, whether we get there willingly or not, we shall soon have lower consumption rates, because our present rates are unsustainable.


On Tue, Apr 19, 2011 at 10:26 PM, 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

Gmane