For the ones that don't know this project. The "FIRST-KING" will be a FPS single player open source game created using IRRlicht and build by using components as (IRRai, IRRPhysx, XEffect, etc.) I would like to thank again, JP to have put such good work on those (IRRai and IRRphysX), as they are critical things that the game need.
Here is the link to the sourceforge project if you'd like to learn more:
http://first-king.sourceforge.net
I was too busy this year to truly develop the application and anyway I'll need help. I've have let a coder to develop the engine on linux and never seen it working (I have only Windows). Since I don't have updates since december 2008 (asked to try to port to windows to see what was done) and received recently a mail of someone interested to work on the project again; learned something from all this and now here what we're searching for:
We need coders for the project, using MSVC with IRRlicht . The code must not use specific OS things unless they can be replicated for other OS. The plan is to make the application for windows first, but easily portable to other supported IRRlicht OSes. The project is a long term one. I am not anticipating a final release this year. Creating a project like this ambicious and will require patience.
For animators, modelers, sound engeneer and others would want to join. This will have to wait for the moment, the project need to focus on the code only for now. Once the tools are ready to be used, then we'll ask for your help. (I still keep a warm place for you David!
![Smile :)](./images/smilies/icon_smile.gif)
Our current development plan: FKEDITOR
We need coders that would want to work in a team on the main editor of the game. The editor will be made of different modules, so each team member can work on a specific module on his/her own then try it on the build.
Here is a brief description of the features by modules:
Editor Base - This part is mostly completed in my first release, but need a major clean up.
- Quad View, Single view (Later we could define more than a quad view) - Refresh need to be optimized
- Each views using a scalable grid (assignable value), and this item can be "snapped" to this grid.
- We can manipulate items, in all views, as rotation, translation.
- We can select item directly in the selected view or by the object list
- We can hide and show object (contextual menu, tag on the list we can change)
- We can view in wireframe and shaded
- We can view some helpers (bones, origins, bounding box, etc)
- We can load IRRscenes directly, and save IRRscenes directly
- Ability to render to a sequence of image or single picture
- Ability to have a "TEST LEVEL" button, to switch in player mode (WSAD keyboard mode with player mecanics to test level and defined element, as in window or full screen) - I have developped a custom player controls already, still need to add features and cleanup.
Link to the last build with source of the game mecanics here:
http://www.christian.clavet.org/FK_release.zip 32Mb
Modules:
- Animation tool, to preview, name and set animation names for model. Ability to save animation data for models (started a little bit on this)
- AI tool to set the node path (from IRRai tools), and set animation model to specific actions (As of NPC). This tool could become complex
- Define a NPC class that would use the IRRai mecanics to manipulate object. (Turret type, warrior, citizen, etc.)
- Define a AI class that would check for Health and damage, inventory, weapons for the NPC
- Having a way to define run, walk, jump, crouch, cover, fire, die, damaged animations (Animation tool) linked to AI behaviors
- Defining specific audio events during named animation (could go in animation tools)
- Entity tool that define specific object with attributes as of:
- Creation of specific featured nodes to do: Door, Ladder, Elevator, Button, Trigger zone. Pre-scripted even will need to be set, and later add custom scripting there. We will surely have to add a scripting engine to make it work properly. The best way would be to incorportate the scripting first, then try to associate GUI editing to it.
- Be also able to create light entities XEFFECT, that we can place on the level, set colors and distance cast from the light. (Lightmanage?)
- Be able to have a "link" entity to link to another level. (way to preload?)
- Audio node, for placement of audio nodes (3D environmental, and linked to even as background stereo soundtrack)
- Particle tool
- Define the particle origin, spread, values, everything related to the support given in IRRlicht for particle system. WE could link Entities to it (ex: TRigger A -> Activate particle fountain B)
- Terrain Editing
- Be able to import and create terrains in the editor (as tiled terrain nodes). We would later add, water editing, terrain spatting for texturing, etc. The base would only need to support tiled terrain with basic texturing.
- Material/Model Editor for model, terrain, etc.
This will enable the change of textures on the model, setup the shaders (normal-specular maps)
We could also define a custom object for collision for specific models here.
- Cutscene/Camera editor be able to create paths for example (trains) so a camera or entitie could follow the path and target path could also be define. Long term plan, would be to define that part like a "Adobe Premiere" timeline for objects in the game. From there we could also record "demos" of the objects as we played the level, and replay it. Then decide to record it at the level of quality we decide in a sequence of frames. (Not sure how we could do for audio)
- Physic module: (IRRPhyx) - Defining explosive objects, or physic objects that the player can move, destroy, etc. Could be linked with the particles (depending on how well IRRlicht will support this)
- Advanced Mecanics module - This module will be needed later, to define certain camera setup with their controls (ex: vehicle mecanics, first person, third person, hybrid) We could set the camera to have "walk" cycles and be more cinematic. Define how the "dead" cycle for the player is defined. When the player is getting hit by physic (impacts), etc. Define the mecanics for ropes (slide, climb, etc). I would really have something really simple for anybody to set their "feel" for their game and not only "The First King".
- GUI module - For defining the "look" of the menus of the game. And what will the presented and where. This will be saved in a file that will be retrieved when the game launch. We would also put the levels definition in there (as Chapters) . Would be nice if we also had "achievements" from certain tasks or hidden items in the maps. Would be added to the player profile (would also need to define player profiles)
Here is my old build of the FKEditor with the source (DEVC++)
http://www.christian.clavet.org/FKEditor.zip 26Mb
EDIT June 16 2009 Here is a new source of the editor with a build. Working with IRRlicht 1.5 and MSVC Express 2008 (10 Mb)
http://www.clavet.org/forum/download/file.php?id=85
EDIT JUNE 16 2009: Here is a link to the technical documentation about the FirstKing Editor (PDF, 1.0Mb, 15 pages)
http://www.clavet.org/forum/download/file.php?id=84
EDIT June 18 I've put the source code with a better coding style. Still there a lot to do to clean it properly and I want to create a "real" prototype with at least one module started so others could know more what I mean by adding modules to the core. There will be also additionnal delays, because I want to integrate parts of the SirrF framework inside the editor, that should help a lot after.
So if you're only interested to work on the modules, you will have to wait a while. For the ones that would want to help me to work on the core, any help will be appreciated, but I think I'll be able to start it alone.
[UPDATE: NOVEMBER 2009]
Nah!! I've tried by myselft by this is too much knowledge is required and I lack a lot!. The project is now on HOLD. I will not abandon it, nor that I will drop it either. I'm just putting it on hold so I can learn more.
I lack serious knowledge of C++, got a lot of good ideas and know where I'm going, but can't implement the things by myself alone. I tried with my spare time in the summer and failed.
So until I have something "Solid" and that I'm sure that I'll be able to start and finish a working prototype for the editor and engine. The project will be on hold. If I'm able to complete the first prototype, then I'll be happy to ask for other to join the project.