Archived

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

mittens

The Engine

Recommended Posts

mittens    1323
Ok, just wondering how you guys like the engine? I haven''t really received much actualy feedback on how the engine is designed and coded (definately got a lot of updates and e-mails asking for help on using it though). Soooooo, lets hear some feedback! Trent (ShiningKnight) THE Engine ShiningKnight7@hotmail.com

Share this post


Link to post
Share on other sites
max621    139
Had no luck compiling it because I have some weird OpenGL headers and they don''t seem to know what multiTexturing is (!!!?!)
and their supposed to support 1.2 and 1.3
Anyways, looks nice. Add a quat camera system if you havent

||--------------------------||
Black Hole Productions
http://bhp.e-chrono.net/
Resident expert on stuff
max621@barrysworld.com
||--------------------------||

Share this post


Link to post
Share on other sites
kenwi    122
Well, I would have given you alot of feedback if I got it to compile right.. I got exactly 50 errors when compiling the stuff.. I saw a post where people said they had some problems with compiling it, and it seems like I''m experiencing the same kind of trouble.. Anyways, I''ve been looking thru the source code, and I think it''s looking promising and I cannot wait to get it compiled right and begin testing it out! =) So, if you have a solution for me, I would be really pleased to hear it!

Go for the eyes!

Kenneth Wilhelmsen
Try my little 3D Engine project, and mail me the FPS. WEngine
Or just visit my site
--------------------------
He who joyfully marches to music in rank and file has already earned my contempt. He has
been given a large brain by mistake, since for him the spinal cord would fully suffice. This
disgrace to civilization should be done away with at once. Heroism at command, senseless
brutality, deplorable love-of-country stance, how violently I hate all this, how despicable and ignoble war is; I would rather be torn to shreds than be a part of so base an action! It is my conviction that killing under the cloak of war is nothing but an act of murder

Share this post


Link to post
Share on other sites
RipTorn    722
I'm goning to be completly honest here reguarding this engine.
I was, initially, serously considering lending a hand to the project, but decided against it upon viewing the code.

ok, one minor thing...
the class list really needs to be grouped like the file list. I can't stand working with the file view personally.

now my gripes...
people are going to be learning off this project. people with NO C++ experince whatsoever will use it as a base,
and for people to learn C++, the examples, in my opinion, should show as few traces of C as possible... this doesn't..
a good example, is that any windows app only needs 3 globals. winmain, winproc, and the main app object. any access to the main object can simply be done using external linkage.


also, a very powerful base object is very important for EVERY objects to build off (with the exception of the main object, obviously). This also means complex object/memory/interaction management is A LOT easier, and the user of the code need not worry about it.

for example,
in my current project, I can create unlimited number of objects, and their creation is a 2 line thing:

eg:
CParticle * particle;
MACRO_CREATE_OBJECT(CParticle, particle);
particle->blah blah blah...

(and that can be done anywhere... I could, for example, put it in the render function of a laser object, set it's position to the lasers, and bang, in 3 lines my lasers have particle trails)

here the particle is extended from the base object, and all it overrides is the render function. which then draws it and does a simple time out. the rest is handled by the base object and object manager. something like 5 new lines of code in total.
more complex object override other things, like force application code, object detatchment code, etc.

this is what I mean.

then, the object manager should do other things, like for example, if an object asks it for all the objects near by, it will return them... etc.

it's my honest opinion that trying to make base code that does anything and everything seperatly is surly doomed to failure.
and honestly, thats what this appears to be doing.
for example,
why can't the MD2 models objects be extended from a basic model object? which in turn is based of the generic object... so if something needed a model, all would be needed would be to put a static model object into your monster object (for example)... etc. this could then be used by every other monster object.. and could be loaded the first time a monster us created..

this brings me on to rendering...
OpenGL is all good and proper, but D3D is advancing much faster, so is, in a way, OpenGL 2.0... so why not use a generic Renderer base object, with D3D/GL/3dfx extended versions that optimize various functions of the api... this is what I do, and it honestly makes things a lot simpler.

eg: (this is what I do to render a data array)
AppMain.Renderer.RenderDataArray(Data,Indicies,TRIANGLES,numTris,FORMAT_V3_T2_N3);

that would help a lot of people.

then it could, say, be optimized to use Vertex array range in an NvidiaOpenGLRenderer object, or similar... and the person writing the _game_ need not know.

I'm not saying it's a bad engine, I'm just saying it could be A LOT better if it was planned well. as it seems to me, to be somewhat unplanned. (especially since it is at such an early stage, and consididering the plans listed on the page.. this thing will get very complex, very fast, and I have doubts how well you (let alone people new to C++) will be able to manage that complexity)

Edited by - RipTorn on February 1, 2002 5:16:40 AM

Share this post


Link to post
Share on other sites
vincoof    514
RipTorn : I agree with you for the "powerfulness" of a high-level library, but it also has its limitations. For instance, it becomes very hard to use low-level instructions without messing up the high-level state sync.
Also, you're talking about the complexity of writing the game, and I agree with you. But if the game is easier to develop, what about the engine ? If this library meant to be high-leveled, it would need loads of time to develop this library.

Anyhow, I'm not saying that one solution is better than another. I'm just writing some comments to think about the problem. My 2c, in fact

Edited by - vincoof on February 1, 2002 6:30:29 AM

Share this post


Link to post
Share on other sites
BerLan    122
There''s quite a lot of uncommented code in the engine. At this point it doesn''t seem very significant, but later on when the project grows you''ll have problems if you don''t comment your code. Commenting is essential IMHO. You''ll find some bugs easier, and if you need to change some code you can easily skip the irrelevant code and find the parts you''re looking for faster. Also, if this engine is meant for the community, it will give a lot more if the code is properly commented.

There''s no doubt that you''ll learn a lot when you''re doing this engine. You''ll probably want to start a new one from time to time, and thats quite natural. Just keep on coding, eventually you''ll create a cool engine. Nothing starts out as perfect, or even good. It''s always a long and a painful path to get there =)

Share this post


Link to post
Share on other sites
Ascent    122
I think it''s great. I compiled it with 0 errors and it ran just fine. (The first two versions -- haven''t gotten the third one)

I also like the fact that it''s not terribly complicated and seems to run pretty well on my meager p3-450. I''ve always wanted to be involved on a project like this, and always stayed away from Crystal Space (and others) because of the sheer magnitude of where the project was at. I''m an okay C coder and a little lesser okay C++ coder, but this isn''t so overwhelming that I don''t know where to start.

If I had a complaint, I''d say don''t change the main.cpp file to show the new demo each time -- I think it should use a menu system and let people pick demo 1-3 or whatever like:

1. Sprite Demo
2. Particle Demo
3. MDL Demo

etc.

Heck, I may add that myself.

It may be my lack of c/c++ coding experience, but I say, good job and thanks.

-Ascent

Share this post


Link to post
Share on other sites
Nazrix    307
ShiningKnight,
nice job so far

BTW, if you still need to implement collision you may want to take a look at the Coldet library. You may not want to use other people's libraries and use your own code but I found that Coldet is pretty nice and easy to use.

Just a suggestion. Keep up the good work.


A CRPG in development...

Need help? Well, go FAQ yourself.



Edited by - Nazrix on February 1, 2002 3:54:45 PM

Share this post


Link to post
Share on other sites
RipTorn    722
I don''t think I''ve said anything to really upset anyone, it was just my honest opinion, but it seems I have, as since I have written this reply, I''ve recieved some attempted email viruses... only one of which got through my setup, but the actual virus it''self was blocked.

I know this, as the email adress I advertise here I only advertise here...

other than this, I''ve only had one other email through the account I advertise here in the last 3 or so months...

strange.

Share this post


Link to post
Share on other sites
khawk    2902
RipTorn, you haven''t said anything that should warrant viruses being sent to you. In fact, your post brings up very valid points that should be considered in any engine. If you know who may have sent these viruses to you, then email me with the email addresses or other info, and we''ll see what we can do.


Kevin "Khawk" Hawkins
CEO and News Director, GameDev.net
Author, OpenGL Game Programming
Developer Diary

RipTorn    722
well, unfortuatly, because I use a webmail service (the email address I advertise here is forwarded to it), I deleted the email as soon as I realised what it was...
The only thing I did get were two (almost certainly fake) email addresses it came from... although I can''t fully remember the more likly one, so I will not report it in the event I get it wrong and get someone in trouble they don''t deserve to be in.
(and it may well be faked in someone elses name)

Share this post


Link to post
Share on other sites
mittens    1323
Whoa, lots of feedback.

To the people getting exactly 50 errors: I need to see some sample of what kind of errors you are getting, since some people are having it compile fine, I'm guessing that the people getting the errors either don't have the DX8 SDK (and the path set to it in MSVC++), or have something else wrong.

Riptorn: I know what you mean with some of what you said. And contrary to how it might appear, the engine *has* been well planned and designed. And I'm perfectly prepared/capable to handle the eventual complexity of the engine. And I do not want people to use the engine to learn either C or C++, if I wanted them to do that, I would've written a few C/C++ tutorials. The point of the engine is to give the community something to work with, and eventually have it end up with something very powerful. Its a teamwork thing, and if I wanted it to include everything you said, I would've done it myself, and released it as a finished product, that only my team could update.

And finally, Riptorn, you point out all of the things that are wrong with the engine (its a nice list too, I printed it out ), but yet, you refuse to contribute to it? How does that help it? This is a tool for the community, and by pointing out things that are wrong with it, and refusing to help right those same things, you are far from helping.

Nazrix: I personally like the ColDet library too, but I really do not like using other people's libraries (I hate using SDL and GLUT for God's sake). Thanks for the suggestion though.

Also, we are planning for multiplatform, but it won't be for a while, as the "engine" (extensive wrapper as pointed out before ) is still under heavy contruction, and editing two ports of the engine would be a serious bitch.

And I'm planning on working on a detailed object system very soon. Also, would anyone be interested in having the engine support DirectDraw7? (I have code for it, but I took it out a while back)

Trent (ShiningKnight)
THE Engine
ShiningKnight7@hotmail.com

Edited by - ShiningKnight on February 2, 2002 8:12:48 AM

Share this post


Link to post
Share on other sites
MagicScript    290
I got it, compiled it fine and started tinkering. I was soon very annoyed at the fact the the particle engine wasn''t in anysort of class . I think you should comment things like startColor1 and startColor2. You seem to have 2 of everything but don''t explain why. I think that would be useful. If you are making this engine to helpp people out, perhaps you would seriously consider making the classes, because at first sight, with 50+ globals, its a little overwelming.

Share this post


Link to post
Share on other sites
ATronic    122
A few things. I agree that that many globals is a bad thing, I would use a singleton class to make it cleaner and less prone to problems. Plus it avoids possible duplicate names. There is a great chance someone using the engine will want to define a variable called "input".

I would also add extensive commenting. This is important anyway, but in a community project where others must understand your code, it is vital.

I would also keep a detailed documentation of features and functions, so that use will be easy for those who did not make it when it is done. I would start now, It''ll be hard this far out, but will become an ulta-daunting task if you put it off.

Otherwise, it looks great! Best of luck to the project. I would try to make some of these changes to the code myself, but:
-my comp. with a compiler is not usable due to construction
-I am busy working on MY engine

Hope all works out for you as planned.

Alex Broadwin
A-Tronic Software & Design
-----
"if you fail in life, you were destined to fail. If you suceed in life, call me."
"The answer is out there."
"Please help, I''m using Windows!"

Share this post


Link to post
Share on other sites
mittens    1323
The thing with the particle API is that I wanted the user to be able to make any sort of effect under the sun in under 7 (or so) function calls, but I had the idea this morning, of making a seperate wrapper OVER the particle API, it sounded like a good idea to me.

And the engine used to have a ton of comments, but most of them were out of date, so I delete most of 'em, and am in the process of recommenting everything right now.

I'm also thinking of making a yahoo newsgroup for everyone actively involved in the updating of the engine (and add new people as they come), I think this would help everyone greatly, yet again, need more feedback.

Trent (ShiningKnight)
THE Engine
ShiningKnight7@hotmail.com

Edited by - ShiningKnight on February 2, 2002 10:35:49 AM

Share this post


Link to post
Share on other sites
OME    157
I would have to say that from my brief look at things it looks very promising. I will be going through it later but is something I am definitaly interested in...let us know if you set up some kind of newsgroup or what not.

OME

Share this post


Link to post
Share on other sites
tSG    122
ShiningKnight: actually RipTorn''s comment was a really huge help, even if he doesn''t want to participate in this project!
Firstly I must say that I haven''t looked at the source code, but after reading riptorn''s message I realized that you don''t have a good object class. If you don''t have such a class then I''m sure this project will sudden with a lot of others, because it''s maybe the most essential part of an engine!

On the other hand I don''t agree with supporting d3d/ogl etc. because it is a nice feature but such an engine would be less effective than one with only ogl(for example) support.

Good luck!

ps: sorry, but I can''t help making it, because I have to do my own engine...


-- tSG --

Share this post


Link to post
Share on other sites
mittens    1323
Good job on twisting my words around, try reading before you make a statement. I did say that Riptorn''s words were a large help, did I not? I was just trying to make a point that he said he wouldn''t contribute because of the look of the code.

Pay more attention to what is written please.

Trent (ShiningKnight)
THE Engine
ShiningKnight7@hotmail.com

Share this post


Link to post
Share on other sites
ZealousElixir    256
quote:
said Trent,
To the people getting exactly 50 errors: I need to see some sample of what kind of errors you are getting, since some people are having it compile fine, I''m guessing that the people getting the errors either don''t have the DX8 SDK (and the path set to it in MSVC++), or have something else wrong.


I''d just like to confirm that suspicion. If you''re getting exactly 50 errors, it means that the directories for the DX8 SDK are either nonexistant (go here), or improperly set up. In order to set them up properly (in MSVC6), Simply go to Tools->Options->Directories and set up the INCLUDE and LIBRARY paths, making sure to drag your DX directories to the top of the list. Hope this helps a bit.

Later,
ZE.

//email me.//zealouselixir software.//msdn.//n00biez.//
miscellaneous links

[if you have a link proposal, email me.]

Share this post


Link to post
Share on other sites
mittens    1323
Thanks ZE, you ''da man.

I''m going to form the Yahoo! Newsgroup tonight, and I''m also going to take some of Riptorn''s advice to heart, and I''m going to make the engine a little more engine-like. This is going to be one damn long coding spree tonight, but I want to get it done as soon as possible (since it requires editing almost every file, and I want to get it uploaded before I receive any more updates).

Trent (ShiningKnight)
THE Engine
ShiningKnight7@hotmail.com

Share this post


Link to post
Share on other sites
RipTorn    722
ok... I''l clarify...

the reason I considered helping out the project was that I was hoping that maybe it was heading in the same general direction of the project I''m working on. Had that been the case, I would have gladly jumped in and basically handed my code over.
It was just the goals were very obviously different to my own. so I decided not to.

about the planning... I realise you have planned it, but I''m saying it _looks_ unplanned, and the way people are now alowed to add to it seems very unplanned. if there were set structures for people to create objects on, that would be very advantageous to the project.
(I realise there are set limits to how the code should be written)


unfortunatly, one of the communities biggest problems is C/C++ crossover... the number of projects I''ve seen packed into a single file, with 100''s of globals and maybe 1 or 2 structures, yet claiming to be C++, _really_ depresses me. And a lot of those people are going to go into this engine and say, "Wow, This is how C++ is done" where as, in my opinion, the engine is a hybrid of C and C++...
people will learn off this. It''s just be nice to show them the true power of C++ in at a very high level.

Share this post


Link to post
Share on other sites
ZealousElixir    256
Trent,

(despite my best judgement, and the fact that I consider this a somewhat personal message, I hope it''s appropriate...)

You''ve been one of my most influential friends (online, and more than some IRL), and I''d just like to say that, if I can help in any way whatsoever, I''d be honored to. Every time I see a new demo, game, code snippet, tutorial, ANYTHING in relation to the GameDev community, it makes me, despite my personal lack of skill, feel proud. The issue is that I can''t do much of anything on my own, but I''d be happy to make any effort, large or small, toward the eventuality of this project.

In the short term, I don''t suppose you''d want a document on how to get The Engine up and running in Dev-C++, would you?

Anyhoo, you guys drop me a line sometime,
ZE.

//email me.//zealouselixir software.//msdn.//n00biez.//
miscellaneous links

[if you have a link proposal, email me.]

Share this post


Link to post
Share on other sites
terminate    259
Earlier someone asked why the md2 models were not using the same structures ans the others, be patient, Im working on a similar system for modles as i did for textures. The MD2 stuff is basically a leftover remnat that is stuck in there if anyone wants it at this point. I hope to add a base class for models, as well as improved md2, 3ds, and obj support. I can only concentrate on the computer for a half hour or so at a time due to the fact I just had eye surgery. Keep the feedback comming (good and bad) .

-Evan Pipho

Share this post


Link to post
Share on other sites