About the Code
Coding is really not the correct term, since there's so much more here. Artwork, rpg system creation,
sounds and animations are just a few things that don't require programming know-how. My philosophy to
WoodWard is more an overall creative (artistic?) effort rather than another paramount coding achievement.
However, as far as programming is concerned, my aim is create an open, extensible api.
Therefore, let me know if you have a burning passion to participate in any useful way.
One of the things I'll try to do is keep up-to-date javadocs here... Anyway, here's the first
Browse the API docs (javadoc)
See the new developer guide. This is a work in progress.
I tried adding tasks to SourceForge but it's easier for me just to keep a running list. If you're interested
in doing one of these, let me know and I'll add the task officially.
- Write some documentation
- General architecture docs - I wrote some but need uml charts etc.
- Ideology, methodology, etc.
- How to add artwork. Formats used, the isometric-view limitations, etc. - I started this, see the Editor's user guide
- Dynamic objects
- Create dynamic objects (non-chunk components.) Design and implement the IO behind dynamic objects. - I'm currentlt working on this.
- Be able to instanciate them in the preview mode and customize their properties.
- Animated objects. This I think is simpler than it seems, as objects already have
- Non-player characters (NPC-s)
- Write the basic classes for creatures. Should include some planning what their properties should
be and how they relate to other things. (How an inventory is implemented, for example.) - I'm currently working on this.
- Add NPC support to the editor. This should be another tab perhaps like objects. Add the ability to
instanciate them in the preview pane and customize these instances. - This needs to wait until NPC classes are finalized.
- NPC schedules. Schedules decide when a character does what. - Not yet, see above.
- NPC AI. Creates should be able to band together, help each other, or attack each other if they're
- NPC artwork. I started to create a player character in Blender (3d software) but haven't had time
to follow up on creating 2d images.
- A fast algorithm for walking around the map, moving items, etc. For example "roofs" (which can be a mountain'
s top for a dungeon) should disappear when you're walking under them. (The concept of indoor/outdoor needs to be explored.) Moving items between chunks is currently disabled.
- The role-playing system
- This is both programming and paper-work. What races, classes, etc. to use, level advancement. - I'm currently working on this.
- Magic system - I'm currently working on this.
- Combat system - A first draft of this can begin.
- Tables for weapons, armor, special items, etc. - This is not a programming task, but important: I need a balanced combat system.
- A creative universe, story-line, etc. I have some ideas for this that are somewhat (hopefuly)
non-standard in the fantasy gaming scene.
- Misc. items
- Artwork. Doing the artwork is time consuming and I have very specific requirements about it.
All the stuff concerning artwork will be in a document describing it. Basically I want to
keep Ultima 7-s 'cartoony' look, not go for photorealism. (Accidentally one of the neat features
of Blender is to draw the even-present black out-line around 3d objects...)
- Roofs. I need removable roofs for buildings... drawing roofs is harder than I thought.
- SDL fonts package. SDL doesn't come with a "printf()" like function. There are some third-party libraries but it might be easier just to write one in Java.
- Fix memory leaks in JSDL. I started this but there's more work that needs to be done. See the JSDL classes and JNI code for more details.
- A game event system. I sort of envision everything happening as an event, whether it's user initiated (like: use wand on door) or a system event that's based on a calendar, or an NPC-s schedule. This needs to be worked on.
- Someone smart should further optimize the paint() stack. Also, implement an item "overhanging" another chunk. This is currently not implemented.
- A cacheing system for dynamic object IO. (Ask me about this; I have some ideas.)
- Far future items
- Networking code. Should be able to work thru firewalls. I have some ideas on co-operative downloadable
story modules, linked worlds, etc.