Storyline, Quests, Ideas, Dialogs -manager
SearchWiki:
 (edit sidebar)

FdIdeas

FdMap

ToDo

OpenJobs

PmWiki

Recent Changes Printable View Page History Edit Page
This page lists open jobs for outsiders. It notably contains Google Summer of Code project ideas. Note that you can also pick from ToDo and send a patch, or simply implement something of your choice !

You are advised to download FreedroidRPG from our svn repository (svn co https://freedroid.svn.sourceforge.net/svnroot/freedroid freedroid) in order to see the current state of things and be able to fully understand the projects described here.

If you are curious you can see our (rejected) GSoC application here: GSoC2008Application.

Large projects

Leveleditor overhaul

FreedroidRPG features an integrated graphical level editor. It works quite well, but needs some more work to increase the productivity of people doing levels, and attract more contributors. Editors from other games such as The Sims could be an inspiration.

This relatively easy project requires a bit of experience with C, as you will have to work on the existing leveleditor which is a bit dirty due to non careful design. You do not need to know C very well, nor have strong SDL and OpenGL experience. You need to have the ability and the will to learn C and be able to interact with FreedroidRPG's graphics layer (SDL, OpenGL). If you have experience designing graphical user interfaces, or working with isometric 3D level editors, this is a plus. Don't hesitate to play with our level editor as it is right now, it will help you understand the tasks.

Various things to do are :

  • DONEimplement placing of walls as lines instead of tile by tile
  • support selection of elements on the map, provide copy/paste functionnality
  • DONEadd a undo feature
  • DONEremember "favorite" wall tiles in a specific menu
  • add a system that allows testing the level without altering the world state (save the map, test
level, reload the map)
  • improve autoscrolling system
  • anything you feel is important for the interface
  • (if time permits) handle placement of random and special enemies on the map

Random dungeon generation

This project aims at bringing random levels to FreedroidRPG, in order to increase the gameplay value by adding content. You will write a generator that is able to build fully playable levels, such as what the game Diablo does. This project requires a bit of interference with existing FreedroidRPG code source in order to integrate the generator into the engine, but the first steps of it are fairly independant from the game.

You probably need to have a decent math/theorical computer science level to properly design the system (you might be using some notions such as automata). Ability to understand and write C is required, as your project must be implemented in C and then integrated into the FreedroidRPG codebase.

The coding part of this project is only moderately difficult, the design of a proper dungeon generator is a rather tough problem that we think can be very interesting to work on for the summer. It does require some background though. Due to lack of time we have not been able to assess existing GPL solutions, so this would be part of the project.

Your tasks are :

  • see what dungeon/labyrinths generators exist, and how they could be adapted to FreedroidRPG
  • design a random dungeon generator that can make completely playable levels including floor
tiles, walls, enemies, objects on the ground and chests
  • change the engine for it to allow "random" levels to be generated on level loading (at runtime)
  • plug your system in the engine and tweak it until the results are satisfying from a gameplay
point of view

OpenGL performance improvements

FreedroidRPG OpenGL performance is acceptable but can be improved with a few changes, for example by reducing the amount of texture changes, and the overhead of vertex emission. Your job is to increase the performance of the game, with a focus on the graphics rendering part (optimization of collision detection and pathfinding algorithms is part of another project).

This project requires good knowledge of C and OpenGL experience, as you will be required to implement things that are not trivial, in an existing codebase that you must not break (unless you fix it afterwards). You will need to do a lot of profiling to make sure what you implemented actually improves performance.

Some ideas are:

  • DONE - great increase in perfs evaluate the relevance of using a texture atlas for floor tiles
  • evaluate the relevance of using a texture atlas for obstacles, characters, inventory item images, fonts, etc. and implement it if necessary
  • DONEfind an open source program that can generate our atlases, or write one
  • use vertex buffers whenever possible (definitely doable for floor tiles)
  • do anything that appears necessary to improve GL performance
Bonus task (for fun)
  • if you have time and interest, play with disable-able additional effects such as GLSL
explosions/flames
  • if you have time and interest, write an additional flame effect and implement a flamethrower

Artificial intelligence

FreedroidRPG's artificial intelligence of non playing characters is not very good. The NPCs tend to fire on allies, bump into walls, etc. You will have to design a new AI system by yourself, and actually implement it. A few minutes of playing in the game should suffice for you to notice the current status: the AI mostly works, but is limited to basic combat ("see player, attack player"). It could for example retreat, warn friends, hide, etc.

This project is difficult because you will need to dive into the large AI codebase that wasn't very well designed (due to lack of care in the planning of evolution of the game), understand its limitations and propose something that fixes them. You need to be comfortable with the C programming language, and have an interest in artificial intelligence for isometric 3D video games. We believe the problem is interesting to solve, and makes a good GSoC project.

The steps are:
  • understand the existing AI system and its limitations
  • propose a better design for AI
  • write the new AI for enemy and allied bots, and for humans (moving and fighting behaviors)
  • have your AI playtested and refine it

More minigames for takeover game

The takeover feature of FreedroidRPG, which enables the player to turn enemy bots to his side, relies on a minigame that was in the original Paradroid on C64. This minigame is fairly interesting, but introducing more variety would be appreciated from many players. This project is easy if you have experience writing minigames, or slightly challenging if you've never written games in the past and want to learn. You need to be extremely creative to be able to imagine several games, but if you have got no previous C or game writing experience this project is suitable for you.

  • understand the original takeover game
  • write 4+ minigames that can be finished in less than one to two minutes of playing
those games must have a "difficulty" parameter similar to the "number of connectors of enemy" variable in the original takeover game
  • provide graphics and sound effects for your games if possible
  • test the difficulty levels and do the balancing

Edit Page - Page History - Printable View - Recent Changes - WikiHelp - SearchWiki
Page last modified on April 22, 2008, at 07:16 AM