text:
#### Archived

This topic is now archived and is closed to further replies.

# Do most game shops build 3d from scratch or use software platforms?

This topic is 5783 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

We are really starting from square one here. Thanks for any insights! Res Ipsa Loquitor

##### Share on other sites
Empirical evidence seems to suggest that most shops use engines licensed from other companies (not all of whom are pure technology companies), but a fair number develop custom engines for their projects. Generally, if a shop is well-established, it either has invested in developing an engine to be used for several projects or has a license relationship with a technology provider.

[ GDNet Start Here | GDNet Search Tool | GDNet FAQ | MS RTFM [MSDN] | SGI STL Docs | Google! ]
Thanks to Kylotan for the idea!

##### Share on other sites
we reviewed many engines (renderware, netimmerse, intrinsic to name a few). we ended up choosing the one that was being developed in house. the problem with engines out of the box is that they are usally designed with one type of game in mind, or they are built being to generalized to get anything specific to happen fast. if you want a just program a game than using a pre-made engine is great. if you want to push the envelope a bit..its usually best to build your own.

##### Share on other sites
I would actually refute everything that AnonPoster had to say... if you are looking to push the envelope, then going with licensed solution can be the best route (given the right solution) as it can let you focus all your efforts on pushing the envelope, not just getting to the normal stuff.

For example, RenderWare provides a plug-in architecture for extending pre-defined objects and provides a rendering pipeline construction kit for creating custom rendering effects. So you get the best of both worlds: quick start-up out of the box with the option to push the envelope if you want.

The AnonPoster seems to represent a pretty commonly held misconception about licensed graphics engines. While it was definitely true at one point, both RenderWare and Intrinsic provide highly customizable pipelines.

The problem with engines developed in house is that they are almost always developed with a specific game in mind, let alone a specific genre. And they are 99% of the time under-documented and poorly tested. So, when going with in-house solutions you end up debugging the graphics engine while working on the game; developing the graphics engine while working on the game; documenting the graphics engine while working on the game. Notice a pattern? Unless your lucky enough to be in a large game company, the engine developers are the same programmers working on the game.

If you think graphics engines are too general to be fast, you''re wrong. Burnout on the PS2 (and now Xbox and GAMECUBE) was built using RenderWare, and according to Sony''s Performance Analyzer it is one of the highest performing production games out there weighing in between 10 and 13 million triangles per second.

To be honest, re-inventing the wheel is never the best route to take. After ten years of 3D games, do we really need to be writing triangle rasterizers, lighting and transform pipelines, or clipping and culling? Do you really want to invent a texture cache manager? And what about documenting all of it for new programmers joining your team and for other teams who plan to use it? Then you''ve got to write exporters for your art package, document and bug-fix those, and viewers and tools for your artists...

...and, after you''ve done all that for the first 3-6 months of your development cycle, you''ll then spend the next 6-12 on your game. Yeah, you''ll probably spend some of that time on your graphics engine, probably fixing bugs, or adding features you didn''t anticipate, or reworking the architecture to support features you didn''t know you''d need. But guess what these licensed solutions are doing the whole time you''re working on your game? They''re optimizing, improving, extending and enhancing their solution the whole time. They''re writing more documentation, more tutorials, more effects, more whitepapers, and fixing bugs being uncovered by a customer base of hundreds of programmers banging away at their code every day.

So, do you license or do you write your own? License. Unless your John Carmack and you''re *creating* great technology (or Tim Sweeny, et. al.) you''ve got no reason to re-invent the wheel. Of course, if you''re a garage developer who can''t afford a $50k licensing fee, then you''ll obviously be limited in your options, but then again you''ll be limited in most of your options. I would challenge anyone to suggest any project that couldn''t be done faster and better using licensed technology! And, as recently announced, RenderWare has been licensed by the likes of Infogrames, Electronic Arts, Capcom, Take-2/Rockstar, THQ, Interplay, Eidos, DMA Design, Activision, Acclaim, Midway, SCEE, SCEA, Sierra, etc, etc, etc... #### Share this post ##### Link to post ##### Share on other sites "Why reinvent the wheel?", my favorite cliche and the ultimate money saving strategy in business...most of the time. I appreciate the responses given thus far. I can tell that there are some very different perspectives on this subject which almost certainly find their roots in the age old rivalry between businessmen and craftsmen. Res Ipsa Loquitor #### Share this post ##### Link to post ##### Share on other sites quote: Original post by Simagery I would actually refute everything that AnonPoster had to say... For example, RenderWare provides a plug-in architecture for extending pre-defined objects and provides a rendering pipeline construction kit for creating custom rendering effects. So you get the best of both worlds: quick start-up out of the box with the option to push the envelope if you want. The AnonPoster seems to represent a pretty commonly held misconception about licensed graphics engines. While it was definitely true at one point, both RenderWare and Intrinsic provide highly customizable pipelines. true, but you need to have several programmers dedicated to such optimizations and they need to be familiar with the engine to make such customizations, plus all the support needed from either criterion or intrinsic to get things to fit in smoothly. when we first looked into renderware and intrinsic for our project, our in-house engine out performed both by a large margin. quote: Unless your lucky enough to be in a large game company, the engine developers are the same programmers working on the game. i do..in fact, i work at one of the companies that has licensed renderware for a few of our games. in-dire situations it is a life saver, but overall i dont think they are up to par. quote: If you think graphics engines are too general to be fast, you''re wrong. Burnout on the PS2 (and now Xbox and GAMECUBE) was built using RenderWare, and according to Sony''s Performance Analyzer it is one of the highest performing production games out there weighing in between 10 and 13 million triangles per second. you make me laugh. its a driving game, very little besides the car and the tires actaully animates..i know ive made a few of em''. i wonder what their numbers wouldve showed if they had a couple of 50+ boned skinned characters running around. i seriously doubt they would hold..to do so something else would have to give, be it texture reduction or that cool projected shadow! quote: To be honest, re-inventing the wheel is never the best route to take. After ten years of 3D games, do we really need to be writing triangle rasterizers, lighting and transform pipelines, or clipping and culling? Do you really want to invent a texture cache manager? And what about documenting all of it for new programmers joining your team and for other teams who plan to use it? Then you''ve got to write exporters for your art package, document and bug-fix those, and viewers and tools for your artists... . . . So, do you license or do you write your own? License. Unless your John Carmack and you''re *creating* great technology (or Tim Sweeny, et. al.) you''ve got no reason to re-invent the wheel. Of course, if you''re a garage developer who can''t afford a$50k licensing fee, then you''ll obviously be limited in your options, but then again you''ll be limited in most of your options.

quote:

I would challenge anyone to suggest any project that couldn''t be done faster and better using licensed technology!

And, as recently announced, RenderWare has been licensed by the likes of Infogrames, Electronic Arts, Capcom, Take-2/Rockstar, THQ, Interplay, Eidos, DMA Design, Activision, Acclaim, Midway, SCEE, SCEA, Sierra, etc, etc, etc...

see comment above.

##### Share on other sites
...

"Why reinvent the wheel ?" -> salesmen''s way of thinking
"Why don''t improve this ?" -> searchers'' way of thinking

I really hate one of those way...

Don''t forget people that makes it possible...

##### Share on other sites
... and don''t forget in which forum you are ! (I saw theory...)

##### Share on other sites
www.RenderWare.com :
Latest News:
22nd March 2002
Electronic Arts, Infogrames And Capcom
All Choose Criterions RenderWare For Future Games

That''s right. But I think that it is better to build your own.

##### Share on other sites
...me too (I''m currently writing my own)

##### Share on other sites
quote:
Original post by Anonymous Poster
true, but you need to have several programmers dedicated to such optimizations and they need to be familiar with the engine to make such customizations, plus all the support needed from either criterion or intrinsic to get things to fit in smoothly. when we first looked into renderware and intrinsic for our project, our in-house engine out performed both by a large margin.

Yes, of course the engineers would need to be familiar with the engine. Just like the engineers would need to be familiar with the internal engine to make customizations. And yes, they would have the same support needs as working with internal technology, but at Criterion you would have access to support engineers who have helped on nearly 200 RenderWare titles on next generation consoles and the PC.

I will admit there are definitely situations where an internal engine is going to out perform RenderWare (or Intrinsic) out-of-the-box. That''s not the point. No one can make an engine that''ll make everyone happy all of the time. But that''s not the point! The point is that RenderWare (and middleware in general) provide a jumping off point for your technology. It''s not an even match to compare RenderWare out-of-the-box to an internal engine that''s been in development for 3-6 months for a specific task. I would ask what type of performance tests you were making?

quote:

...i work at one of the companies that has licensed renderware for a few of our games. in-dire situations it is a life saver, but overall i dont think they are up to par.

It was definitely "up to par" for Grand Theft Auto 3/4 and hundreds of other titles.

quote:

you make me laugh. its a driving game, very little besides the car and the tires actaully animates..i know ive made a few of em''. i wonder what their numbers wouldve showed if they had a couple of 50+ boned skinned characters running around. i seriously doubt they would hold..to do so something else would have to give, be it texture reduction or that cool projected shadow!

You actually make me laugh... what are the limits of RenderWare? The same of the underlying hardware, be it the PS2, Xbox, GAMECUBE, or PC. Only a very uneducated use of RenderWare would be limiting. 50+ skin-and-bones characters? Is that stitched, 2-weight, 4-weight? How many bones? What''s the maximum number of vertices in the skin? How well is the geometry tri-stripped? How many different textures are being used and what are their sizes? Do the characters share bone hierarchies? Share animations? Share meshes?

I don''t want to confuse my point. No one should think I''m claiming that you license a graphics engine that you can simply drop artwork into it and get blinding speed. That''s not going to happen. There is no universally optimal engine, unless it has a dozen different implementations internally. The point is that RenderWare provides an excellent initial framework to hook your more custom technology onto. And while you focus on the parts that make your game unique (like 50+ characters running around) someone else in the world is working on improving the core components of the technology, all the while making your life easier (if you let them).

##### Share on other sites
quote:
Original post by BloodScourge
...

"Why reinvent the wheel ?" -> salesmen''s way of thinking
"Why don''t improve this ?" -> searchers'' way of thinking

I really hate one of those way...

Don''t forget people that makes it possible...

It''s not a salesman way of thinking (I''m an engineer). It''s called "reuse", if you don''t think it''s a useful concept in software development, you should read up on any good programming text.

"Why don''t improve this?" I guess you can have your cake and eat it to. With RenderWare you don''t have to reinvent the wheel, but you can improve on it if you want to (also referred to as a "flexible architecture", something else you should check out in any good programming text).

Sorry if that sounds rude, but seriously, licensed technology, if done well, doesn''t require you to choose between the two (they are *not* mutually exclusive!).

##### Share on other sites
quote:
Original post by SteinbergShlomi
www.RenderWare.com :
Latest News:
22nd March 2002
Electronic Arts, Infogrames And Capcom
All Choose Criterions RenderWare For Future Games

That''s right. But I think that it is better to build your own.

It''s good to know *how* to build your own, as the understanding will make other technology make more sense. But in the dozens and dozens of game teams I have spoken to, very few have given me any reason to think they''d be better off building their own.

##### Share on other sites
RenderWare, RenderWare, RenderWare, RenderWare...

Hey !
Where do you think you are! I don''t doubt of the possibilities of this technology (I really like GTA3!) but it''s not a showcase here!

quote:
Simagery quoting me...
It''s not a salesman way of thinking (I''m an engineer). It''s called "reuse", if you don''t think it''s a useful concept in software development, you should read up on any good programming text.

Sorry my bad but I''m currently studying in a french engineering school so I think I''m a bit informed of current methods. That''s right, reuse code is a great concept if you''re able to understand it (not done blindly). I''m not against licensed technologies and that''s right you can do both together (Half-Life for exemple) but to me it sounds like a "black box" that requires a few precautions. Nevertheless, it allows companies to focus on others stuffs and create some new concepts (gameplay...) but not really in graphics (this forum deals with this domain). So don''t be astonished that people here says they want to write their own engine... One more thing : engineers tends to be salesmen... unfortunately...

quote:

"Why don''t improve this?" I guess you can have your cake and eat it to. With RenderWare you don''t have to reinvent the wheel, but you can improve on it if you want to (also referred to as a "flexible architecture", something else you should check out in any good programming text).

Never underestimate the other''s skills... that''s what I''ve learned during my studies...

quote:

Sorry if that sounds rude, but seriously, licensed technology, if done well, doesn''t require you to choose between the two (they are *not* mutually exclusive!).

Nevermind, I''m not rancorous... :-)
I think this subject is a great debate!
I only want to thank people that improve GAME''S DOMAINS...

##### Share on other sites
i like a permade engine i have use them befor and have never had a problem. but for the game that i am making right now i couldn''t find a sutable engine that suported 5500+ peopele in each area so me and my group are making our own. sure it take a little longer but it more fun and i can say that i built it from the ground up..

##### Share on other sites
BloodScourge,

Sorry for the RenderWare grand-standing... I''ve probably stepped a bit out-of-line (particularly for this forum). I was writing my previous posts on the floor of GDC, so I guess I was in definite cheerleader mode!

All in all, I think we can all agree that the end product is the most important aspect of a game, not the technology behind it (the technology should only be an enabler).

##### Share on other sites
Yeah...., we agree finally!

I think that was really interesting to get you''re point of view (and also many major companies in gaming industry) because it allows us (fanatic games programmers ) to stick on the ground! You were right in many points... but I think you know how hard it is for young progammers to be confronted to industry realities!!! Video game is only our passion...

THX Simagery

##### Share on other sites
quote:
It''s not an even match to compare RenderWare out-of-the-box to an internal engine that''s been in development for 3-6 months for a specific task. I would ask what type of performance tests you were making?

actaully our engine is not designed for a specific task, but is being used for 3 completely different genres (action-platformer, racing, fighting) and all the teams that are using it are getting good performance and are happy with it. after we elavulated these middleware packages it was determined that too much work would need to be done to get them to a point were we could do the things that we wanted to do.

as far as performace tests...

we ran the same models and same tests on all the engines we were evaluating. we ran em with realtime lighting, without lighting, with particle systems and without, with skinned characters and without, we covered all the bases. we also evaluated the respective tool chains, and how they would impact a given artist. how hard were the tools to use? how long did they take to process the geometry? what were the in-game load and setup times
like? there are a ton of things to consider..

side stepping a bit..

GTA3 is an incredible game..using a middleware package enabled them to spend a lot of time working on gameplay..and it shows. graphically, they couldve done a lot better job.

quote:
But in the dozens and dozens of game teams I have spoken to, very few have given me any reason to think they''d be better off building their own.

the technology is in-house. the people who wrote the code are in the office across the hall.

using a middle-ware engine can save you a lot of time, but you need to know that choosing this route may back you into a corner graphically..

well back to writing character physics and animation handling routines..

good discussion!

• 10
• 11
• 11
• 11
• 9


text:
# Question #66a8c

Jan 28, 2017

$\text{9 orbitals}$

#### Explanation:

The principal quantum number, $n$, corresponds to the energy shell that holds an electron in an atom. Each energy shell contains a specific number of subshells, which in turn contain a specific number of orbitals.

The number of shells is given by the angular momentum quantum number, $l$, which can take the following values

$l = \left\{0 , 1 , \ldots , n - 1\right\}$

In your case, the third energy shell contains $3$ subshells, since

$l = \left\{0 , 1 , 2\right\}$

The number of orbitals is given by the magnetic quantum number, ${m}_{l}$, which can take the following values

${m}_{l} = \left\{- l , - \left(l - 1\right) , \ldots , - 1 , 0 , 1 , \ldots , \left(l - 1\right) , l\right\}$

• $l = 0 \implies {m}_{l} = 0$
• $l = 1 \implies {m}_{l} = \left\{- 1 , 0 , 1\right\}$
• $l = 2 \implies {m}_{l} = \left\{- 2 , - 1 , 0 , 1 , 2\right\}$

This means that the third energy level holds $9$ orbitals, each given by a specific combination of $l$ and of ${m}_{l}$.

Keep in mind that the number of orbitals that can be found on a given energy level $n$ is equal to

$\textcolor{b l u e}{\underline{\textcolor{b l a c k}{\text{no. of orbitals} = {n}^{2}}}}$

For $n = 3$, you will once again find

$\text{no. of orbitals} = {3}^{2} = 9$

format: plain


text:
# DisPass /

Filename Size Date modified Message
dispass
logo
scripts
skel
sphinx-doc
28 B
2.3 KB
756 B
230 B
1.3 KB
12.1 KB
9.9 KB
9.4 KB
1.7 KB

DisPass is a passphrase generator for GNU/Linux, *BSD, MacOS X and Windows. It enables you to generate unique passphrases formed from a master password and a label, helping you get rid of the bad habit of using a single password for multiple websites. When using a different passphrase for every website, the chance of abuse of your password on other sites (when a website leaks it) is eliminated. Dispass is a console application, but also has a simple graphical interface.

DisPass has several homes on the Internet:

Main website
http://dispass.babab.nl
The cheeseshop (PyPI) project page
http://pypi.python.org/pypi/DisPass/
Github repository and Issue tracker
https://github.com/babab/DisPass/
Bitbucket repository
https://bitbucket.org/babab/dispass/

Here are some definitions which may help you understand the rest of the documentation better.

label
A label is a string that you use to identify the passphrase. This can be a domainname of the service the passphrase is used for, e.g. 'google.com'.

Since this program asks for a password/passphrase to generate another password/passphrase, things may get a bit confusing. I've dediced to use the words 'password' and 'passphrase' diffently and consistent.

Use of the word 'password' is dedicated to the input password, i.e. the password you are asked to enter and only you know. Whenever you read password, this is the one I mean. The password needs to be at least 8 characters long and does not have a maximum length.
passphrase
With 'passphrase' I always mean the output passphrase, i.e. the passphrase that is unique and generated from a label, password and sequence number. Generated passphrases are 30 characters long. The length can be optionally changed.

Python 2.6 or higher is required for running dispass.

The recommended way is to download and install directly from the PyPI repository using pip:

$sudo pip install dispass  This will install the dispass module in python's dist-packages folder. You can now use dispass by executing the dispass, dispass-label and/or gdispass scripts placed under '/usr/local/bin/' or '/usr/bin/'. The PyPI project page is at http://pypi.python.org/pypi/DisPass/ ### Latest (development) version Clone git repo: $ git clone git://github.com/babab/DisPass.git
$cd dispass  Then you can either: 1. Install via Makefile, this will perform all the steps in option 2 (below): $ sudo make install

2. Install through pip, and install manpage:

$python setup.py sdist$ sudo pip install dist/DisPass-<version>.tar.gz
$sudo gzip -c dispass.1 > dispass.1.gz$ sudo mv dispass.1.gz /usr/share/man/man1/

3. Install manually:

$sudo python setup.py install  ## Upgrade or uninstall You can easily upgrade to newer versions using pip: $ sudo pip install --upgrade dispass

If you have installed dispass using pip, you can easily uninstall at any moment:

$sudo pip uninstall dispass  ## Using the dispass command line app When DisPass is executed as 'gdispass' or 'dispass -g', the graphical version will be started. You can use dispass by entering your labels after the dispass command and/or you can store your labels in a textfile called a labelfile. USAGE: dispass [options] dispass [options] Options (general):  -c, --create use if this passphrase is new (check input PW) -g, --gui start guided graphical version of DisPass -h, --help show this help and exit -o, --output output passphrases to stdout (instead of the more secure way of displaying via curses) -V, --version show full version information and exit --script optimize input/output for 'wrapping' dispass Options (when using labelfile):  -s , --search= dispass label from file that uniquely matches -f , --file= set location of labelfile Options (when passing labels as arguments):  -l , --length= set length of passphrase (default: 30, max: 171) -a , --algo= override algorithm for generating passphrase(s) -n , --number= override sequence number (default = 1) ### Using dispass to create one or more passphrases You can start using dispass for e.g. google.com like this: $ dispass google.com

The passphrases created are 30 characters long by default, but some website's may not validate such a long passphrase or you might want to make it even longer. You can easily set a desired passphrase length using the -l flag. Hotmail passwords are limited to 16 characters:

$dispass -l 18 hotmail  Generating passphrases for multiple labels is just as easy: $ dispass google hotmail YaHo0 "P0551bly*a81t)H4rd2rmbr"

Labels are case-sensitive and digits and special characters can be used. You should try to name labels in a way that you can easily 'dispass' a passphrase on any computer/device that has DisPass at any given moment. You are encouraged to store your labels in a labelfile for convenience though.

### Labelfile location

When dispass is run without arguments it will try to find a labelfile. The location of this file varies and depends on the platform type you use, the file flag and the environment variables that may be set:

You can override the location of the labelfile using the -f flag. This can be a way for you to use different sets of labels/passphrases with a different 'master' password for each set.

1. If -f flag is given, that value is used.
2. If environment var DISPASS_LABELFILE is set, that value is used.
3. If environment var XDG_DATA_HOME is set, $XDG_DATA_HOME/dispass/labels is used. 4. If none of the above applies, the labelfile will default to the following locations: • GNU/Linux and Mac OS X: ~/.dispass/labels • *BSD and other Unixen: ~/.dispass/labels • Windows: C:\Users\<username>\dispass\labels You can edit the labelfile(s) by using the dispass-label program. ### Creating and searching stored labels When creating a new label/password combination you can store the label and it's arguments by using the -c flag, this will ask for your password twice so you can be asured to avoid typing errors: $ dispass -c -l 16 hotmail.com

Now you will be asked to enter a password twice and after that your passphrase will be shown on the screen. It can be re-created everytime you need it by searching for a label using the -s flag:

\$ dispass -s hotm

Only part of the label is needed, as long as the (sub)string is unique.

## Using the dispass-label command line app

USAGE: dispass-label [-hlV] [-f ] [--script]

Options:

 -h, --help show help and exit -l, --list print all labels and options found in labelfile -V, --version show full version information and exit -f , --file= set location of labelfile --script optimize input/output for 'wrapping' dispass-label

## Using the graphical gdispass application

You can start using gDisPass by running the gdispass executable. Fill in a name for the label that you can easily remember.

To generate a passphrase for a new label, i.e. a label that you have never used before, check the appropiate checkbox. This will allow you to enter the (master) password twice. gDisPass will then compare the passwords to see if they are the same. This is needed to minimize the risk of typos. It is advised that you check the box everytime you create a passphrase for a new label.

Subsequential generation of passphrases for the same label most probably do not need this check. You will likely be warned when/if you made a typo by the system or website you want to authenticate for.

If you correctly entered a label and password, you can generate the passphrase by pressing <Return> or by clicking the appropiate button. The resulting passphrase will be focused and selected. On platforms that support it (e.g. *BSD or GNU/Linux) the passphrase will be automatically placed into your copy/paste buffer.

Resetting all fields when you are done or when you need to quickly cancel the generation (because someone is watching over your shoulders) can be done by pressing <Escape> or by clicking the appropiate button.

## Got Emacs? You can use the Emacs wrapper

If you have Emacs you can use the Emacs wrapper created and maintained by Tom Willemsen (ryuslash).

You can find it at: http://ryuslash.org/projects/dispass.el/

## Wrapping / scripting dispass

You can use dispass entirely as you wish and create different interfaces by using the appropiate libraries as long as it is allowed by the ISC license.

Dispass provides a way to make the behaviour and IO more suitable for scripting by passing the --script option.

### dispass

If the --script flag is passed together with -o or --output the output will be optimized for easy parsing by other programs and scripts by always printing one entry on a single line using the following positions:

Column  1-50 : label

### dispass-label

If the --script flag is passed together with -l or --list the output will be optimized for easy parsing by other programs and scripts by not printing the header and always printing one entry on a single line using the following positions:

Column  1-50: label           (50 chars wide)
Column 52-54: length           (3 chars wide)
Column 56-70: hash algo       (15 chars wide)
Column 72-74: sequence number  (3 chars wide)

Otherwise an ascii table is printed with a variable width depending on the length of the longest label. The table has a header but does not display the hash algo until support for multiple hashing algos is added.

## Support / ideas / questions / suggestions

Issue tracker at Github: https://github.com/babab/DisPass/issues

A mailing list is available: dispass@librelist.com

You can also visit #dispass at Freenode (chat.freenode.net) with your favorite IRC client.

## Acknowledgements

Many thanks go out to Tom (ryuslash) Willemsen for valuable contributions to gdispass and the new algorithm. He also wrote an awesome wrapper for Emacs so you can use DisPass in your favorite editor.