It seems to me like you''re jumping overboard without a care for sharks dwelling in wait for you. All this talk of modularity is only going to encumber you while you try to write about learning 3D engines.
Write your first one, who cares how crap it is? Just make sure it works. By making sure it works you''ll gain insight into how you can make it better due to mostly, what went wrong.
*THEN* come back here and digest some of the good advice already posted.
Good luck...
Engine Structuring Problem
Let me take a shot at this...Don''t know how it''ll turn out cause its a complex subject, but...
An engine as I understand it is a collection on generic functions. I doubt that anyone has been able to design one from scratch. Rather, I think they are developed from experience with other applications, and in many ways discovery plays a large part: (Ahh.. I can use this code elsewhere!).
For 3D games, typical functions would include init(platform), close(same), load(objects,maps,etc), step(action), render(to screen). Having relegated the detail to subfunctions, one can focus on the game itself.
At a higher level, one could add an interpreter; a script or data processer which sets up the game parameters, and references the objects to be loaded, and how they act. At this point, the "engine" requires no additional code to operate - only the script need be changed from game to game. Notably, such a project is quite ambitious, and should evolve from simpler projects (as suggested by anon above).
I guess the point of this rambling is to indicate that you really should start simple, and aggregate functionality as you go. Where you put it (.c, .dll ...) depends on how well tested it is.
Writing an engine for others may not be a good idea - the technical developers already have their own, and the others may try to exploit you. The general public is a better customer. Look to develop your own talents - thats something they can''t take away. Sorry to get a bit philosophical on the latter.
This may not answer your question completely, but I hope overall this conveys some useful insights. Keep at it!
An engine as I understand it is a collection on generic functions. I doubt that anyone has been able to design one from scratch. Rather, I think they are developed from experience with other applications, and in many ways discovery plays a large part: (Ahh.. I can use this code elsewhere!).
For 3D games, typical functions would include init(platform), close(same), load(objects,maps,etc), step(action), render(to screen). Having relegated the detail to subfunctions, one can focus on the game itself.
At a higher level, one could add an interpreter; a script or data processer which sets up the game parameters, and references the objects to be loaded, and how they act. At this point, the "engine" requires no additional code to operate - only the script need be changed from game to game. Notably, such a project is quite ambitious, and should evolve from simpler projects (as suggested by anon above).
I guess the point of this rambling is to indicate that you really should start simple, and aggregate functionality as you go. Where you put it (.c, .dll ...) depends on how well tested it is.
Writing an engine for others may not be a good idea - the technical developers already have their own, and the others may try to exploit you. The general public is a better customer. Look to develop your own talents - thats something they can''t take away. Sorry to get a bit philosophical on the latter.
This may not answer your question completely, but I hope overall this conveys some useful insights. Keep at it!
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement