[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fw: Layered architecture - wrong direction !!!
>> But there is MORE powerful multimedia architecture -
>> the object architecture of BeOS.
>> I suggest to implement a BeOS-like SDK.
> OK. I am for one am unfamiliar with BeOS. Could you give a basic
explanation
> of the arcitecture for us?
- Object-oriented thread-safe API (OWL-like framework on all levels from the
kernel)
- Pervasive multitasking (Almost all objects are threads.
It provides quick reaction - reaction time on any user request is minimal.
Of cause, it also provides large speed improvement on multiprocessor
systems.)
Some game-related classes are:
- BWindowScreen (full-screen mode)
- BDirectWindow (based on BWindow - windowed or full-screen mode)
The main function of these classes is DirectConnected() notification (vs.
Lock()/Unlock() of the directX).
When "connected", the windows can use DMA, etc; when reconnected - it must
reinitialize...
This way a class can subscribe to sound stream or all input messages (from
mouse, joystick, etc.)
- 3d kit is now in development :-(. Currently used OpenGL.
>> Total Annihilation has more powerful graphic engine for 2.5 strategies.
>> But this engine even theoretically can not be used as dynamic library
for,
>> say, warcraft
>> because of plain or layered architecture of these games.
> So evidently you are not talking about a lowish level "export some drawing
> primitves" type 2d engine, you seem to be talking about a kit that is
closer to
> the application, more games oriented. What kinds of functionality are you
talking about, and
> how would you like to see it done?
I am talking about total object architecture on all levels from low to high.
It can help to solve the problem of code rewriting.
For example:
Let us say we want to write a 3d strategy.
It would be better to have 2d BSP-renderer, AI, etc as stand-alone modules
(activeX - sorry for comparison).
Then we want to implement new texture-mapping algorithm, 3d BSP on place 2d
and Voodoo 3 support.
Of cause, we do not want to rewrite these modules.
Object conception is designed especially for this situation:
"class Game : public P2dBSP" -> "class Game : public P3dBSP"
"virtual int NewTextureMapping ();"
"class MyWindow : public PWindow" -> "class MyWindow : virtual public
PWindow, virtual public Voodoo3Pen"
(The last construction is not fine.
May be, CORBA implementation of the objects is better?
May be, for Voodoo 3
MyWindow::Pen = Voodoo3Pen"
will be enough?
The code is for prototype of proposal only.)
Yet note: DirectX has COM-based architecture.
I don't think, they really can use this ugly technology on low levels.
This is why Unreal requires voodoo graphics or a patch :-) to support
hardware acceleration.
But I think, they want to use COM interfaces on the high level, to allow
activeX-based games.
I'm afraid to make too specific proposals, because I have not any experience
in game development.
I can only try to suggest:
- Some window/screen object.
- Object to draw some graphics primitives.
- OpenGL-compatible object (i.e., may be inherited)
- Standard algorithms objects (texture-mapping, etc)
- CORBA-based high level controls (as 3d engine, real-time strategy...)
The main idea is a single object mechanism.
* The objects may be equivalent to layers, UNTIL first change will be
required. *
I hope, my suggestion is more clear now.
And I hope it is possible :-).
Thank for attention.
Best regards.
Alexander.
.