Search Home Members Contacts
About Us
Products
Downloads
Community
Support
Pages: 1 2 [3]
  Print  
Author Topic: Suva 3D Engine. Pure C# ...with Speedtree!  (Read 19873 times)
Borys Pomianek
Community Member
*
Posts: 893


« Reply #40 on: September 23, 2005, 12:04:16 PM »

Managed languages and memory managers writen for a specific engine and for a specific game is for sure not the same.

BP
Logged
billythekid
Community Member
*
Posts: 814


« Reply #41 on: September 23, 2005, 12:22:21 PM »

Take an OS class, youll find it is quite similar.  Tongue
Logged
Borys Pomianek
Community Member
*
Posts: 893


« Reply #42 on: September 23, 2005, 12:39:41 PM »

Its not a problem of design but the problem of purpose.

If something has a generic purpose it will propably olmost olways be worse than something that has a specific purpose.

A game engine writen for a specific game will be better than a generic engine used to write the game.

Just like creating some things in asembly instead of your chosen language when you make a game, instead of using ready libs is better.

BP
Logged
billythekid
Community Member
*
Posts: 814


« Reply #43 on: September 23, 2005, 12:44:25 PM »

Well you do have a point however NOBODY writes a memory manager for a specific game. However people do write memory managers for specific systems. As in each game system (PC, XBOX, PS) all have different memory limitations. Therefore a different memory manager is needed for each system. But a specific memory manager for a specific game? Sorry that doesnt happen.

P.S. Did you watch the video? You should! I mean Rico was comparing .NET allocation to the program stack allocator. As in it beats malloc() apparently. And Im sure some may think that its just MS propaganda and thats definitely possible. But this guy seems like the real deal unlike other MS ppl they have interviewed.
Logged
jlucard
Community Member
*
Posts: 587


« Reply #44 on: September 23, 2005, 01:17:05 PM »

Normally memory allocation wouldn't happen in a game loop, or if it did it would be limited to the absolutley necessary level. In that respect, I can not see why anyone would want to write his own memory allocation system so that he can initialise a game just a little tiny bit faster.  That time could be better spent optimising the parts of the code that really matter.
Logged
billythekid
Community Member
*
Posts: 814


« Reply #45 on: September 23, 2005, 01:47:06 PM »

Memory managers usually do much more than simply allocate/deallocate memory. People would just use malloc() if that was the case. Often they deal with shared pointers, give stats, etc. The stats are useful for quickly finding and fixing memory leaks as well as optimizing code.

Gamedev article that explains a bit about memory management in games: http://www.gamedev.net/reference/articles/article1954.asp

Also I would beg to differ about memory allocation in a game loop, in a large world you have to especially if you got severe memory limitations. A good example would be GTA on PS2. There is no way they could load that entire city into the PS2 memory. Thats why they devised a streaming system. It may even be the first game to use such a technique on such a large scale, not sure.
Logged
jlucard
Community Member
*
Posts: 587


« Reply #46 on: September 23, 2005, 03:58:12 PM »

Billythekid (are you really called billy btw?) I agree that in large worlds it is anavoidable. I haven't read the article (link) yet but generally speaking I like using arrays rather than lists and large numbers of precalculated variables rather than performing those calculations at real time. In that respect my programs are not particular memory friendly (I tend to use - or at least allocate lots of it) but I guess making something both efficient and compact (in terms of memory usage) is rather difficult. I guess the trick is to get an acceptable compromise between the two depending on the project and target machine specification.

Now time to read that article Smiley

jlucard

BTW, I heard a number of ex-flipcode users hang aroung gamedev.net these days. I think while I am at it, I will add it to my bookmarks as well Smiley
Logged
Borys Pomianek
Community Member
*
Posts: 893


« Reply #47 on: September 23, 2005, 04:21:00 PM »

So Billy, why is that you tell that nobody writes some specific memory things for games and a few post later you tell about the gta that uses something especialy writen for it.

And this thing you described sounds exactly as a memory manager that as i recall you told those dont exist for particular games.

Maby iam missing something but you see for yourself that big projects like gta have everything created for them. They dont have plugins to poplar aps, they have theyr OWN aps, theyr own memory managers, they use some new technology etc. etc.

We are not talking about buisness apps but about games, about graphic engines. That has nothing to do with buisness apps. Even if you are the greates guru of those kind of apps that has nothing to do with games.

Writing an exel like app has nothing to do with writing a game.
Olso the technologies differ.

Writing games is more complex than creating military aps, more complex than any kind of app you might find.

Thats why they cost so much to make. They cost milions.

If i got milions i dont care about the speed of development, i can hire another 20 programmers that will be able to work in the speed of the .net platforms but by using plain c or any other language.

If i got milions i cant let my selwe have minimal app speed lost. Every thing that will make it faster, give more eye candy and will make people cal it the game of the yeer or the best graphics or whatever is worth milions by them selves.

I look forward to work with .net but dont tell me that its the remedy to all programming world problems becouse in plain english it is not.

I dont say anything is bad but just get some common sense. Games are projects very similar to movies.

You dont think about how fast you make the film. You want the best actors, the best image quality and the best fx in the market. You want that in a deadline but then you just hire more people, spend another milion becouse you for sure will have a gigantic profit.

showing that vb.net is 45 times faster than vb6 is just a argument that vb is SLOW.

Its not an argument that .net is fast.

Think for a moment why certain things are writen in asm today still when people write games.

Think why the new tv is plain c++ with asm.

Think why tv is not .net
The devs of tv know .net very good as they tell so why dint they chosed it ?

Maby becouse there was a wery strong point not to do so.

Even if your arguments are very good on paper and i can believe in something i have my old common sense that just by simple research shows me that memory management in .net is not the most needed thing in game development.

You can tell me many things and you may be right and i dont tell that you are wrong but just from looking a little i see that reality is diffrent.

Not becouse some technology is bad. Technology is not the main thing in buisness.

Q3 is main C just becouse they olready had the code they needed, they have like 100 ( around 130 or so ) c++ files but the rest 500 is C.

And think why ?

Becouse C is better.

the answer is no.

They just had the code olready made, they knew the technology and where able to develope what they wanted without risking too much.

Now the newest engines for some companies are the first ones to use c++ instead of c in a wider scale.

And look what yeer we got, wow 2005.

Look how much time it took to start using c++ instead of c.

Now you see that .net will not be used in games for yeers. Not becouse its bad. Not becouse its slower or faster or whatever. Its becouse the market works that way.

Instead of looking on numbers and code i simply do research about companies, what they do and what technologies they use. That way you can eseally see that things are not so into the future as you might think.

BP
Logged
billythekid
Community Member
*
Posts: 814


« Reply #48 on: September 23, 2005, 06:15:49 PM »

Quote
So Billy, why is that you tell that nobody writes some specific memory things for games and a few post later you tell about the gta that uses something especialy writen for it.

And this thing you described sounds exactly as a memory manager that as i recall you told those dont exist for particular games.


A streaming engine is a bit different than a memory manager. A memory manager deals with allocating/deallocating memory and making sure you dont exceed your resources, as well as take care of shared pointers, stats, etc. Whatever you want. A streaming engine basically decides when game objects should be removed and what game objects should be added. But the actual cleaning up of the memory is not the concern of the streaming engine. So they work together but they arent necessarily the same thing.

Quote
I look forward to work with .net but dont tell me that its the remedy to all programming world problems becouse in plain english it is not.


When did I say this? Please dont put words in my mouth.

jlucard - No my real name is not Billy. Smiley
Logged
Borys Pomianek
Community Member
*
Posts: 893


« Reply #49 on: September 24, 2005, 12:41:35 PM »

Adding and removing "objects" is done by adding and removing things from the memory.

So that streaming engine is in fact a memory manager becouse it would be stupid to have a streaming engine that cant manage the memory.

Whats the point of that ?

Olso streams are not puting and removing objects. Its a little bit more complicated than just puting and removing stuff.

BP
Logged
billythekid
Community Member
*
Posts: 814


« Reply #50 on: September 24, 2005, 12:49:26 PM »

I dont think you understand the line thats drawn, or can be drawn between a memory manager and streaming engine.
Logged
Borys Pomianek
Community Member
*
Posts: 893


« Reply #51 on: September 24, 2005, 02:13:17 PM »

And what shows that you understand anything of that ?

Having information that something exist is not a proof of knowing anything about the subject in the era of the internet when finding any info is just a matter of time.

You have shown no arguments about anything just told that iam wrong and that i dont understand something.

While at the same time iam trying to tell you that you make a mistake becouse you change your point between posts.

Something that manages memory is a memory manager in my opinion. Ofcourse its all in the symantics.

Doing anything with loading and unloading is doing things with the memory.

If i will write an app that decides when to load something into my game and check if i dont exced my resources and do other things like that it will be a memory manager or would have a memory manager implied.

What the point of making something that manages the loading and unloading objects without having a memory manager writen for that specific function and for that specific game.

Also if the point of creating something dynamic and automatic is to not exced the given resources it can/has to be called or include a manager of that given resource.

Olso we are talking only theorethically heare using our common sense becouse neither I or you saw the technology we are talking about.
If you even stumble upon the gta sourcecode, drop me a line so we can discuss this after seing and testing the source.

BP
Logged
darqSHADOW
Administrator
Community Member
*****
Posts: 2817


« Reply #52 on: September 24, 2005, 02:35:33 PM »

And its locked...

I have stated many times, stop getting into language wars and the like.  This entire conversation could have been taken to PM, since it does not concern the rest of us.  Or at the very least, posted in Off Topic.

DS
Logged

TrueVision3D Project Manager
The fast and simple way of 3D development.
Pages: 1 2 [3]
  Print  
 
Jump to:  

Powered by SMF 1.1.3 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks