Jump to content

What is the place of scientists/engineer in the gaming industry ?


laminutederire

Recommended Posts

I worked at ATR in Kyoto Japan. Here's their website http://www.atr.jp/index_e.html . The other place I worked was on a project for the University of British Columbia but I dont think it's published yet.

I'm guessing data structures are probably good when you know mathematical structures. I dont have a formal math background so I don't tend to know the proper terminology for math. Are math structures like sets and rings? If so then I would say it certainly helps a lot. I suppose the one area that doesnt cross over and that isn't even addressed all the time in computer science are which structures are easily processed by computer hardware. The short answer being that arrays are the most friendly in regards to speed. 

Edited by AlexM
Link to comment
Share on other sites

Thanks :) 

Yes sets, groups, rings, fields, manifolds, vector spaces and algebra. I supoose there are more of them, I only met these ones!

Is this due to the way components are calculating? If so is it really possible to speed up processes by writing in a language the closest to machine code? I heard about someone having a phone with an OS comparable to the first android, but it took a few ko and it was so fast that the processor (not a graphic card) could refresh pixels at an alarming rate, are these considerations important in the game industry?

Link to comment
Share on other sites

The reason arrays can be faster is because of the way cache works on a computer. If you are iterating along an array the elements are contiguous in memory. This means when you want element n from the array the computer is probably grabbing element n and the next m elements and putting them in a cache line. So when you need element n + 1, the computer already put that element in cache when you fetched element n. Now it can get element n + 1 from cache instead of RAM. Getting an item from cache is much faster than RAM. A linked list on the other hand could have each element in a completely different place in RAM which means when you pull the value, unrelated data will be loaded into cache and you will have the slower RAM access speed far more often than when using an array.

Does that make sense? 

As for speeding up a process by writing in a language closer to machine code. I personally would say that the language doesn't matter as much as being able to control memory layout of structures and types. Also being able to explicitly control when the destruction of objects occurs.

The issue with higher level languages is that most of them attempt to automatically handle object destruction for you. If they do cleanup at a bad time you will have framerate issues. 

Link to comment
Share on other sites

The reason arrays can be faster is because of the way cache works on a computer. If you are iterating along an array the elements are contiguous in memory. This means when you want element n from the array the computer is probably grabbing element n and the next m elements and putting them in a cache line. So when you need element n + 1, the computer already put that element in cache when you fetched element n. Now it can get element n + 1 from cache instead of RAM. Getting an item from cache is much faster than RAM. A linked list on the other hand could have each element in a completely different place in RAM which means when you pull the value, unrelated data will be loaded into cache and you will have the slower RAM access speed far more often than when using an array.

Does that make sense? 

As for speeding up a process by writing in a language closer to machine code. I personally would say that the language doesn't matter as much as being able to control memory layout of structures and types. Also being able to explicitly control when the destruction of objects occurs.

The issue with higher level languages is that most of them attempt to automatically handle object destruction for you. If they do cleanup at a bad time you will have framerate issues. 

It doesn't make sense, but I understand why it is better now!

Destruction is that costly ? Why?

Link to comment
Share on other sites

Destruction itself isn't SUPER costly. When you do a whole batch of destruction it can be costly. Also when you have a complex system managing object lifetime (.NET/JVM garbage collector for instance) there starts be some overhead. 

The main issue is that the GC has a different set of rules for when it runs it's cleaning function than you might want with a realtime system. Say you have a batch of entities that are now dead, you might want to wait for a point where you are loading a level to delete them all from memory. The GC isn't smart enough to know this and will probably do a cleaning at some point during gameplay causing a frame hitch. 

The timing and explicit control needed for real time systems sometimes doesn't work well with a generalized GC. This is more for low level stuff like heavy data manipulation though. At the gameplay logic level a GC is generally a viable solution.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...