Izumi: Ralf - Net Droids Notes
Index: Home     | What Is Izumi | Misc Links   | Random Thoughts | Too Much To Read | The Rant Vault | Quotes
Dev:   Projects | Ideas For Dev | Nerdkill | Rig | Hint

Net Droids Notes contains miscellaneous notes vaguely related to the Dev/NetDroids project.
Site License And Disclaimer as well as contact information are available here.

$Id: NetDroidsNotes.izu,v 1.6 2005/11/05 21:55:57 ralf Exp $

1. Introduction

1.1. Goal

20050327

Net Droids Notes contains miscellaneous notes vaguely related to the yet-to-be-created Dev/NetDroids project.

Goal is to be defined later.

20050412

Right now this is largely inspired by NetDroids Specs (warning: old French text, full of cr*p and lame puns) yet I make no promise this will either result in an actual implementation at all nor that it will bear any resemblance with the original idea.

20050512

If you expect anything meaningful from reading this page, you came to the wrong place. This is a "research" work that is not expected to actually end in any tangible implementation. Think of it more as a scrapbook of random notes centered on a given theme, yet ultimately a broad topic range is covered.

Related project: Nerdkill 3D


2. Notes

(Notes are given in chronological order.)


«»  2005/03/27 «» Back of the Envelope Notes  «»

It can only work if it's more than a game.
It's almost an IDE -- Integrated Development Environment -- and a runtime engine. Think Squeak.

Several parts:

Misc:


«»  2005/03/28 «» Misc  «»

Download initial via Bit torrent.

Split in zones.
Each Zone has a master.
A cave owner is its own master.
First player in a common land zone becomes its master.
Slaves get data from master or updated peer slaves.
Master keeps track of slaves.

Xml too verbose - use binary equivalent.
Game data is Static + Dynamic.
Static data updates need get diff only.


«»  2005/04/04 «» Misc  «»

Binary: in fact use simple text chunks + gzip.
Use chunk size as hexa.
Simple as in SNE2.

Start with language > then some crude graphics > then peer to peer > then 3d

World map: use fractal terrain with seeds and bitmap to give general aspect.


«»  2005/04/12 «» Purpose and goals  «»

NetDroids is a game which one of the key points is that ability to program some droids to perform actions cooperatively.

That would implicitly limit the audience to persons who would like this kind of thing. It's got nothing very interesting and relaxing.

Anyway the key word there is programming. A language is needed and one of the first things would be to evaluate which one. A new language could be introduced only if it really made a big difference. OTOH it may be just useful to take a conventional language (i.e. something from the already pretty extensive families of languages) and adapt it to the needs, maybe with more of a visual model of interaction than just text based.

By that I mean that the complete IDE and the way the programmer interacts with the language must be a key part of the language itself. Think Self or Squeak for example and live interaction with running objects. Seems very appropriate here.

So if a dev plan was to be made, maybe one of the first items would be to define the language and check how much it is adapted to the task. A minimal graphical representation such as a simplified 2d top view could be used to make the objective more clear and more attractive but it should only be seen as auxiliary, not the main goal itself.

OTOH it is clear that part of the motivation here is a lot broader than just this language theory part. As explained in the very first note, if one think of the project as a whole then other parts are as important as this one. For example, peer-to-peer network interactions and a good 3d engine can be seen as as much crucial as a good game engine.

My point is that each sub part make for a fun project just by itself.

Ideally one could view this as a bunch of not-so-mini projects that can be independent but should be ultimately combined together to form a whole:

The list can go on and on.

Each project needs some of the others to be useful.

Each project can be a useful learning tool by itself, that is as a home project it is interesting to work on, say an efficient peer-to-peer network stack that would enable characters to move in an online world. A persistence framework is always something challenging to write. Etc.

Yet on the other hand, many of these projects can be though as existing open source libraries. The obvious example is Crystal Space for the 3D Engine. There are two obvious ways to look at this:

Now if I really want to learn, then I should combine both. Design my own stuff to get an idea of the real issues, then learn from existing libraries. Eventually at some point I should know what the issues are and how existing libraries deal with them and be more educated on which existing library is better suited for me. The early designed version can be seen merely as a catalyst prototype, not a waste of time.

My goal here is to have fun while learning and thus the second point above is the one that really matters to me.

Now of course if this was a serious project in a business context, the picture would be very different. But then that's why people get hired on their actual experience or potential.

So to come back to the subject at hand, what makes sense to start with? In my mind, I see:

So the plan is obviously to work on an horizontal level, i.e. develop several modules that are independent yet rely on each other to achieve something interesting and level them up more or less at the same time. A lot of refactoring and iterative development would be involved.

The alternative development model, a vertical one, would be to fully complete one module before working on the next one. This one is the less rewarding as it means spending time working on the fine details of something that will need to cooperate with other modules which are not designed yet... The probability to get it right from the very beginning is very low and there's no intermediary result to keep the motivation alive.

Although the iterative horizontal model is clearly the way to go, it should not start without a prospective idea of the final goal and how to get there. That is before any implementation can take place, the following is needed:


«»  2005/04/15 «» Nerdkill 3D  «»

I've decided to revive the Nerdkill 3D project as a learning tool. Most of its objective directly intersect those of NetDroids and can be reused later.


«»  2005/04/22 «» Misc Notes  «»

Modules:

Bootstrap: Make sure whatever is used for the Nerdkill 3D project can be used here.

Gameplay and framework are different things. One should not influence the other. Only the intersection is useful.



Site License

Creative Commons License
This work is licensed by Raphaël Moll under a Creative Commons License.

Options
Color Theme: Gray  | Blue  | Black | Sand  | Khaki  | Egg  | None

Web ralf.alfray.com Powered by Google

Display Izumi & PHP Credits

Stats
511 accesses, 1 access from 38.107.179.206
Visited 6 times by Google, last 2012/04/27 00:55
Visited 14 times by Yahoo!, last 2011/10/19 23:04

< Generated in 0.43 seconds the 05/20/2012, 07:16 AM by Izumi 1.1.4 >