Skip to content

tutorial_roadmap

Jan Boon edited this page Mar 13, 2026 · 1 revision

title: Tutorial Roadmap description: Planned tutorials and their status published: true date: 2026-03-14T00:00:00.000Z tags: editor: markdown dateCreated: 2026-03-14T00:00:00.000Z

Tracking the status of NeL tutorials. Completed tutorials are linked from the tutorials index.

Phase 1: Foundations - DONE

  1. Compile NeL (Windows / Linux)
  2. Set up a new personal project
  3. Write a main game loop
  4. Create a Hello World application

Phase 2: 3D Rendering - DONE

  1. Draw 3D primitives and control the camera - CQuadColor, drawQuad, materials, frustum, view matrix, delta time, keyboard input
  2. Textures and alpha blending - createTextureFile, createTextureMem, CQuadColorUV, alpha blending, CPath
  3. Loading and rendering 3D shapes - UScene, createInstance, UCamera lookAt, ULight directional, UTransformable positioning
  4. Scene lighting - Scene sun, UPointLight, attenuation, animated lights
  5. Playing animations - UAnimationSet, USkeleton, bindSkin, UPlayListManager, UPlayList, crossfade blending
  6. Particle systems - Loading .ps files, start/stop, UParticleSystemInstance, stickObject

Phase 3: Game Infrastructure - TODO

  1. Config files and search paths - CConfigFile load/getVar/callbacks, CPath::addSearchPath/remapExtension. Make previous tutorials data-driven with a .cfg file.
  2. Georges data sheets - Create .typ, .dfn, and form files. UFormLoader, getValueByName. Define a simple creature stats sheet and load it.
  3. Serialization - IStream::serial, CIFile/COFile, save/load game state. Versioning with serialVersion.
  4. Console commands - NLMISC_COMMAND macro, ICommand::execute. Add runtime debug commands to the game.

Phase 4: Networking - TODO

  1. Client/server chat - CCallbackClient, CCallbackServer, CMessage, TCallbackItem array. Two-program chat app based on the nel/samples/net/chat sample.
  2. Creating a service - IService, NLNET_SERVICE_MAIN, naming service, TUnifiedCallbackItem. Ping/pong service.
  3. Networked game prototype - Combine UScene + networking. Multiple players moving in a shared scene with position sync.

Phase 5: Sound - TODO

  1. Playing sounds - UAudioMixer init, load sample banks from .sound_packed sheets, create USource, position in 3D.
  2. Music and ambient sound - Background music playback, environment sounds, group controllers for volume.

Phase 6: Collision & Movement - TODO

  1. PACS basics - Create UMoveContainer, add primitives (cylinders, boxes), move and collide. Character on a flat surface.
  2. Landscape collision - Load .rbank/.gr files, UGlobalRetriever, snap entities to terrain height.

Phase 7: World Building (advanced) - TODO

  1. Landscape rendering - Load .zonel files, tile banks (.smallbank/.farbank), display NeL landscape patches.
  2. Clusters and portals - Indoor scenes with UInstanceGroup, portal-based culling.
  3. Ligo bricks - Landscape composition from reusable 160m blocks using World Editor.

Notes

  • Each tutorial builds on the previous one and introduces one or two new concepts
  • All API usage must be validated against the actual NeL header files and working sample code
  • Complete compilable source code is included at the end of each tutorial
  • Data files needed for each tutorial should be noted (font files, shapes, animations, etc.)
  • The snowballs2 sample, shape_viewer sample, and planar_reflection sample serve as reference implementations

Clone this wiki locally