Code In

From WorldForgeWiki
Jump to: navigation, search

Coding Tasks

Wombat

Wombat is a web front-end to WorldForge's media repository.

Wombat Subversion Integration

Area: Coding
Description: Fix the Wombat Subversion integration code. Wombat uses a pysvn backend to track the changes in the WorldForge media repository. However, sometimes a change does something unexpected and breaks the sqlite database Wombat uses to keep it's repository state in. The task would be creating an example repository that contains changes that break the current change tracking and then fix the bugs identified.
Language: Python
Difficulty: hard
Time: about a week
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)

Wombat On-Demand Image Loading

Area: Coding
Description: Wombat currently tries to load all assets that a directory or tag group contains at once, leading to long page load times. The goal of this task would be to use Ajax to delay loading of assets, speeding up the page display times. Ideally, only asset thumbnails that are visible in the current browser window are displayed and further thumbnails are loaded on demand while scrolling.
Language: JavaScript/Ajax and Python
Difficulty: hard
Time: about a week
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)

Ajax In-Page Editing Support

Area: Coding
Description: Wombat so far uses explicit "edit" pages to allow editing of assets, users and other objects. The task would be to provide an Ajax-based interface that allows editing data on the click of an edit button without changing the page.
Language: JavaScript/Ajax and Python
Difficulty: hard
Time: about a week
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)

Ryzom Core

Resolve an Open Bug

Area: Coding
Description: Ryzom Core, like all large projects, has bugs. Many of these bugs are simple and just require the time to track them down. Some of them are much more involved and require time, debugging and research. Here are some examples of open bugs that can be fixed:


Language: C++
Difficulty: Varying
Time: about a week
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Add Missing Projects to CMake Build

Area: Coding
Description: Add any missingg projects to the CMake build. Specifically many of the MFC-based level design tools such as World Editor are not properly built or are not in CMake at all.
Language: C++ (Visual Studio Pro, Trial Edition for MFC tools.)
Difficulty: Easy
Time: a few days
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Port CEGUI Driver To Most Recent Release

Area: Coding
Description: The NeL CEGUI driver is designed for an older version of CEGUI. Port it to the newer version. The API will need to change in order to work but functionally all of the code should be sound.
Language: C++
Difficulty: Medium
Time: a week or two
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Modify API To Allow Public CVertexProgram objects

Area: Coding
Description: The only way to attach a CVertexProgram to an object is through the 3DSMAX plugins since the methods are private. Make the methods public and put together a proof-of-concept to demonstrate that the process works.
Language: C++
Difficulty: Medium
Time: a week or two
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Create Video Tutorials

There are many cool things you can already do in WorldForge that are pretty hard to find unless you know where to look. We have created one tutorial video already as an experiment which is shown below. It uses Youtube annotations to describe what is going on, and music which is distributed under a suitable creative commons license. An ideal tutorial video would include a high quality voice over mixed suitably with music.

http://www.youtube.com/watch?v=BwGTz2UlXzk

New tutorial videos should highlight one particular gameplay or world building feature, and explain clearly and concisely how to use it. Each video should ideally be only 1-2 minutes long.

Elementary Pig Herding

Area: Documentation/Outreach
Description: Create a video that shows the important elements of pig herding in Mason, using the Ember client.
Difficulty: easy
Time: A few hours
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)

Ryzom Core

Adding Armor Items

Area: Documentation/Outreach
Description: Create a video that shows how to define item (armor) sheets in Georges Editor and loading them in the client. The tutorial should explain the important elements of the .sitem sheets.
Difficulty: easy
Time: A few hours
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Adding New Monsters

Area: Documentation/Outreach
Description: Create a video that shows how to create creature sheets in Georges Editor. The tutorial should explain the important elements of the .creature sheets. Next the video should show placing the creature into the world using World Editor.
Difficulty: easy
Time: A few hours
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Adding New NPC with Basic Quest

Area: Documentation/Outreach
Description: Create a video that shows how to create NPCs in Georges Editor place them into the world using World Editor. The video should cover the basic localization and place a simple quest associated with that NPC.
Difficulty: easy
Time: A few hours
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Adding New Spells

Area: Documentation/Outreach
Description: Create a video that shows how to create spells in Georges Editor place them into the world using World Editor. The video should cover the important pieces of .sphrase and .sbrick sheets and should overview the brick/phrase system. After creating the new spell demonstrate using it in the client.
Difficulty: easy
Time: A few hours
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

User Interface/Media Creation Tasks

Model Trees

WorldForge's demo game is set outside. We support a couple of different types of trees on the server side, but we don't have 3D media for all of them. Goal for these tasks would be to create realistic-looking low polygon trees in Blender and deliver a skinned version of the tree meshes. See http://wombat.worldforge.org/dir?path=art/3d_objects/plants/trees/models for our existing models.

Apple Tree

Area: User Interface
Description: Create an apple tree model.
Difficulty: medium
Time: 2-3 days, possibly less if you used blender before
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)

Hickory Tree

Area: User Interface
Description: Create a hickory tree model.
Difficulty: medium
Time: 2-3 days, possibly less if you used blender before
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)

Willow Tree

Area: User Interface
Description: Create a willow tree model.
Difficulty: medium
Time: 2-3 days, possibly less if you used blender before
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)

Quality Assurance Tasks

Ryzom Core

Split Unit Test into Separate Tests

Area: Quality Assurance
Description: NeL has a large suite of unit tests but whenever an individual test fails we have no notification as to what area is broken. Splitting the tests into modules related to their library (e.g. NLMISC, NLNET, NL3D, etc) will help us identify failed areas. Testing should be verified by building the platform using CMake using the "Experimental" target and verifying the test output on the OpenNeL CDash.
Difficulty: Easy
Language: C++, CMake (build environment)
Time: a couple days
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Write Ryzom Unit Tests

Area: Quality Assurance
Description: There are four primary libraries in the Ryzom portion of the Ryzom Core platform:

  • ryzom_gameshare - all shared game logic (between tools, client and services.)
  • ryzom_servershare - all shared logic between all services.
  • ryzom_adminmodule - all administrative modules, enabling AS and AES functionality.
  • ryzom_aishare - all shared AI functionality.

It would be beneficial to write tests against blocks of this code to verify concrete functionality. Evidence of the tests running should appear on the CI dashboard in the form of successful unit tests as well as improving our code coverage percentage.
Difficulty: Easy
Language: C++, CMake (build environment)
Time: a couple days
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Research Tasks

JavaScript Libraries for On-Demand Loading of Images

Area: Research
Description: Wombat currently tries to load all assets that a directory or tag group contains at once, leading to long page load times. The task would be to research OpenSource JavaScript/Ajax libraries that allow to postpone loading of images. The result of the research should be presented in an example page that allows to compare the different libraries.
Difficulty: medium
Time: about a week
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)

Ryzom Core

Determine How To Run Ryzom Ring Services

Area: Research
Description: Determine what settings and services are necessary to start a Ryzom Ring scenario editor session. Document the process on the wiki.
Difficulty: medium
Time: about a week
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

Determine Code Blocks That Use libwww

Area: Research
Description: We would like to replace libwww in the code but need to know what is affected. Determine what areas of code directly interact with libwww. Document the process on the wiki.
Difficulty: medium
Time: about a week
IRC: #ryzom on irc.freenode.net
Forum: http://dev.ryzom.com/projects/ryzom/boards/16
Mentor: Matt Raykowski (sfb on FreeNode IRC)

User Interface Tasks

Wombat Web Design

Wombat is a web interface for WorldForge's media repository. It can still use a lot of polishing on the web design.

Get rid of table-based view for tag groups

Area: User Interface Improvements
Description: Currently Wombat displays tag groups in a simple table like this: http://wombat.worldforge.org/file/tagged/category_artwork but it would be nicer to also display tag groups more similar to the expand-on-click view used in directories like http://wombat.worldforge.org/dir?path=artwork/orcs
Difficulty: easy
Time: A couple of hours
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)

Make directory view display asset tags

Area: User Interface Improvements
Description: On browsing directories, assets are grouped by category, like http://wombat.worldforge.org/dir?path=artwork/orcs . However, they currently don't display their associated tags. The task would be to also expose the tags in the collapsed view.
Difficulty: easy
Time: A couple of hours
IRC: #lounge on irc.worldforge.org
Mailing-List: general@worldforge.org
Mentor: Kai Blin (kai on WorldForge IRC)