ok... the other thread was getting a lil long in the tooth... so here we go, as tasked by a few in the last discussion, lets do what some think is the impossible...
lets make a core Blitz3D OO game engine from scratch... in a day or two... and lets talk about it as we do it... sort of a prep for the real 3D OOP thinking that is ahead for many of us with BMAX3D...
this is gonna be short... or it should be, anyway... with the goals here being...
1- to show how simple an Object Oriented methodlogy, while not fully OO compliant, can be implemented in a non OO language such as Blitz...
2- to demonstrate how it will make planning and organizing, as well as maintainence (even though we are gonna keep it simple and not implement any sort of inheritance) of project code a much more streamlined endeavor, by affording the developer a means of modularizing his/her code into objects and their related methods...
3- implement a generic kind of encapsulation methodology, where all of an objects data resides in the class definition and is used inside the scope of the member functions, as an further step in code modularization...
4- attempt to implement some sort of polymorphism, no promises though...
5- KISS... keep it simple... if it starts getting to obtuse, if it starts requiring that you put more into it to enforce its OOness, well, then i've failed...
ok... that's it... lets move to step one... the thinking about it all... this is where most projects fail without ever realizing it... this is more true when coding OO...
just what is a game engine anyway... well, contrary to what some people here, who shall remain nameless think (octothorpe being one of em), Blitz3D despite its entity system does not qualify as one... by itself, there is no initial setup, nor is there a graphics rendering or logic processing pipeline... this is the barest definiton of a game engine as far as i see it... so this is what i'm gonna shoot for...
the core of this lil OO game engine will initialize itself, with awareness of the environment it is running in, and then spin off into a main loop to provide the pipeline for graphics and logic rendering... period... nothing more, nothing less (hopefully)...
and, for this to be of any real use though, there must be a methodology for extending it so that it can accept additional functionality (other than just sitting there spinning its main loop)... so i will make it so that it is extendable... some way or the other... so that any sort of 3D game can be made with it... this will be able to serve as the foundation for your next game... maybe :)
ok... goals defined... thought completed... comments and/or suggestions welcome and accepted while i hack this thing out... better be quick though... i type slow when putting thoughts to paper, but i type fast when laying down code logic :)
--Mike
lets make a core Blitz3D OO game engine from scratch... in a day or two... and lets talk about it as we do it... sort of a prep for the real 3D OOP thinking that is ahead for many of us with BMAX3D...
this is gonna be short... or it should be, anyway... with the goals here being...
1- to show how simple an Object Oriented methodlogy, while not fully OO compliant, can be implemented in a non OO language such as Blitz...
2- to demonstrate how it will make planning and organizing, as well as maintainence (even though we are gonna keep it simple and not implement any sort of inheritance) of project code a much more streamlined endeavor, by affording the developer a means of modularizing his/her code into objects and their related methods...
3- implement a generic kind of encapsulation methodology, where all of an objects data resides in the class definition and is used inside the scope of the member functions, as an further step in code modularization...
4- attempt to implement some sort of polymorphism, no promises though...
5- KISS... keep it simple... if it starts getting to obtuse, if it starts requiring that you put more into it to enforce its OOness, well, then i've failed...
ok... that's it... lets move to step one... the thinking about it all... this is where most projects fail without ever realizing it... this is more true when coding OO...
just what is a game engine anyway... well, contrary to what some people here, who shall remain nameless think (octothorpe being one of em), Blitz3D despite its entity system does not qualify as one... by itself, there is no initial setup, nor is there a graphics rendering or logic processing pipeline... this is the barest definiton of a game engine as far as i see it... so this is what i'm gonna shoot for...
the core of this lil OO game engine will initialize itself, with awareness of the environment it is running in, and then spin off into a main loop to provide the pipeline for graphics and logic rendering... period... nothing more, nothing less (hopefully)...
and, for this to be of any real use though, there must be a methodology for extending it so that it can accept additional functionality (other than just sitting there spinning its main loop)... so i will make it so that it is extendable... some way or the other... so that any sort of 3D game can be made with it... this will be able to serve as the foundation for your next game... maybe :)
ok... goals defined... thought completed... comments and/or suggestions welcome and accepted while i hack this thing out... better be quick though... i type slow when putting thoughts to paper, but i type fast when laying down code logic :)
--Mike