Wednesday, February 25, 2009
Nebula3 with wxWidget - #1
So you should set up same calling convention to avoid the link error problem. (not sure the exact errors but it contains wxConsoleApp related unresovled link errors)
Tuesday, February 24, 2009
Nebula3 Network - RakNet for MMOG
My team recently reported that RakNet does not support IOCP and only runs on single threaded environment. Yes, using IOCP is server side problem not for client side though it is good to use same network driver model on both of the sides. Mostly it is for maintenence issues. Because as you know, IT IS MMOG! :-)
I guess RadonLabs used RakNet for their DrakenSang and it might be sufficient for P2P based multi-player game such as DrakenSang but not for MMOG.
So still need to hunt any good network framework for that...
A few years ago, for the age of N2, I designed network property(entity component of Managalore game framework) which uses OpenTNL. It was designed by me and written by John Smith. (Thank you John even he was willing to share it but not committed yet though) It have similiar problem to use for MMOG even though it is not so good to learn and understand due to have very steep learning curve.
It might be good if N3 has some very nice network module which widely can be used(it means scalability of the network engine) and is suit for any game genres even it is RPG or FPS.
Monday, February 23, 2009
Idea on Nebula Tool - Database system
Recently Floh posted database system of N3 on his blog। Most of the features are very like to N2'. To maximize its merit, it is good to make a tool for it.
Basically we need three different kind of tool for Entity. Let's see them.
1) Object Palette
2) Object Browser
3) Object Property view
The first thing, "Object Palette" is needed to make an game object in the game world. In most case tree control is sufficient for this purpose. And those information can be retrieved from "_Category" table of database file. It is for creation of an entity in the game world.
The second thing, "Object Browser" contains all game objects list. And those information can be retrieved from "_Entities" table of database file. Tree control is also used for this but it should provide search functionality which used for finding object with its given name.
The last thing, "Object Property view" runs when user double clicked any object in object browser. And it shows all properties of the selected object. As you can guess Property window control is used for this data. Columns of the table in the database file are used to fill entries of the properties.

Wednesday, June 4, 2008
Difference of Entity System between Nebula and Zombie Engine
The primary difference between them is the way plugging behaviors of a entity. Nebula, actually it is Managlore though, provides a mechanism which can dynamically compose behaviors of an entity at a beginning of an application. Not likely that, a programmer should statically declare entity's behaviors in a source code in Zombie.
There is another difference in communication between classes. Mangalore provides the message system which is used for communication between each of properties. It helps decoupling of properties so it makes the system to be flexible and reusable. But Zombie directly calls functions of other component inside of a component.
@terminology
In Magalore, behavior of an entity is called for 'Property' though it is 'GamePlay Component' in Zombie.
Thursday, May 22, 2008
GUI Framework for Tool Chain of Nebula3
I concentrated to make the asset tool called 'nmaxtoolbox' during age of Nebula2. I know there might be still lost of things to improve(Please, be patient ;-) The next step from me on Nebula3 also might be about tool like the previous time. For that, the first thing what I research in my spare time is things about designing level editor-you might want to call it as scene designer or whatever-especially with wxWidget.
Even though making a level editor such as contents authoring tool is looked like being on the opposite site to the Nebula philosophy - Make it simple as it possible as it can be and using any existing things not reinventing a wheel - but I feel it is right way for a large scale size of project such as MMORPG. (I have lots of things to say about that issue so I probably post those things in near future)
Thus again, like the some age of N2, I'm planning to write stub code to integrate wxWidget into Nebula3. We, the community already have some simple yet powerful Apps written with wxPython and know how to tweak wxWidget to integrate into Nebula. So I guess there might be no difficult things which need hard research.
Saying more exactly, what I'm considering is using wxLua not C++ library of wxWidget due to Nebula3 changed its primary script language to Lua from Tcl.
Friday, April 11, 2008
Postmortem: Contributing on ShaderX
How does it start?
It is not too difficult to contribute an article on ShaderX. So don't be afraid to give a proposal when you see a line such as "Call for author..." on GameDev or other website. Mostly the sign of calling authors is shown at the end of the year. So if you have any interest to contribute, you should give attention during those season.
Letting me introduce the call for shaderx7 to you might be more helpful to understand. See the following: (also available on this )
The book will cover advanced rendering techniques that run on the DirectX and/or OpenGL run-time with any shader language available. It will include topics on: Geometry Manipulation; Rendering Techniques; Handheld Devices Programming; Effects in Image Space; Shadows; 3D Engine Design; Graphics Related Tools; Environmental Effects.
Proposals are due by February 28th, 2008. Please send them to wolf at shaderx.com. An example proposal, writing guidelines and a FAQ can be downloaded from www.shaderx6.com/ShaderX6.zip. The schedule is available on www.shaderx7.com.
As you can see the above, the due date is end of February of the year. Considering the date when the call mostly is posted is December, you really have bunch of time to preparing proposal. =)
What should I do for it?
Now, it is time to say about writing the article. If you want to contribute, you should already have not only solid knowledge on the subject what you want to contribute but also experiences with it. At this point, I highly recommend you already have tried and well tested then applied the tech on your side. If you just start to write not the article but the code for application after the proposal is accepted it might be ended up that you exceed the deadline. Two or three months are given to you for writing. But it is prefer to submitting the article as early as you can. Because the section editor should examine not only your article but also other's. Also you may need to modify over several times to finish it. So you should not write the article and any code of sample application at the same time. There is not enough time to do both at once.
There is an important issue about language if you are not a native. I'm Korean so however I try or imitate, it is hard to have nature tone and style like native in writing for me who such as even an oriental due to a big gap between two culture. But don't afraid. It is just a technical writing not for a novel or poem. You only need to write down as easy as it is possible. In my case, after get my first draft I dropped it to one of the Nebula developer in the community. As you can imagine he is not only a native but also has good technical knowledge so he could help the article to be more plain English before sending to the section editor. Yes, also the section editor is left. He has not only good technical knowledge but also is good writer. Even I really surprised he finally edited my article and give it back to me again - how does it can be changed to be read more easier. The only things what he just done are slightly replacing some words and editing several lines.
By the way, the hardest thing ever I had was not about writing but getting taxpayer id. The Publishing company provided some papers such as W-8BEN then required taxpayer id which should be obtained from U.S. Federal. When I got those papers, I were totally screwed up. Some of thing on the paper was hard to understand for me, an Korean. But you don't have to worry about it. Because you don't need to get US taxpayer id which is responsible to U.S. Federal tax law. It is only needed if your income exceeds more than two million dollars. So don't worry about that which will not happen. :-) (By the way, the total amount of maximum income needs taxpayer id can be changed at the time you may need it.)
What do I get from?
This is a story about the motivation. Which will lead you to write and contribute? What did you expected from the contribution? OK, let's be honest. Money? I already answer in the above. =)
If you expect you might change a car by contributing your article, you should NOT. I recently received a check for the royalty of the last year. Saying the amount of the money, it is possible to eat Big Mac for every lunch during a month.(assume the price of Big Mac is about $2.5) Enough rewards? :-)
After receiving the check, rush to a bank and exchange it. Do not put the check into your desk and wait till the exchange rate goes up. There is no time limitation in exchanging a check in Korea but not in US. It is only valid within six months.
One of the great experience was peer review between me and the section editor, Wessam Bahnassi who start to review right after the first draft is sent.(Find his name if you have all ShaderX series how many time you can find his name. =) He was very instructive so it make me to have an opportunity to make my subject to be even more solid.
Another thing you may get is that the invitation for a meeting for the authors from the publishing company, Charles Rivers Media(CRM). The meeting is held during GDC. So if you can go and join to meet other contributors, it would be wonderful.
Forgot to mention one more thing left. You will get a line to add on your resume. ;-)
Conclusion
If you have a creative and solid knowledge what you are willing to share, I guess, English should not be an obstacle. But even do not dream you can contribute if you have not been constantly writing articles or essay in your every usual days. Needless to say, you also should read lots of books. Remember, having an habit for writing makes a good article. Do you still ramble or hesitate to write? Sit down and start to write right now. Lastly, keep in mind - "Technical writing should not be difficult!"
Wednesday, April 9, 2008
Annotations on some 3D engines
Porting an Open-Source Engine to the iPhone?
Wolfgang Engel is the editor of famous graphics book, ShaderX series.
And Don't miss the comments below the main page! :-)