-
Notifications
You must be signed in to change notification settings - Fork 106
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.
- Compile NeL (Windows / Linux)
- Set up a new personal project
- Write a main game loop
- Create a Hello World application
- Draw 3D primitives and control the camera - CQuadColor, drawQuad, materials, frustum, view matrix, delta time, keyboard input
- Textures and alpha blending - createTextureFile, createTextureMem, CQuadColorUV, alpha blending, CPath
- Loading and rendering 3D shapes - UScene, createInstance, UCamera lookAt, ULight directional, UTransformable positioning
- Scene lighting - Scene sun, UPointLight, attenuation, animated lights
- Playing animations - UAnimationSet, USkeleton, bindSkin, UPlayListManager, UPlayList, crossfade blending
- Particle systems - Loading .ps files, start/stop, UParticleSystemInstance, stickObject
- Config files and search paths - CConfigFile load/getVar/callbacks, CPath::addSearchPath/remapExtension. Make previous tutorials data-driven with a .cfg file.
- Georges data sheets - Create .typ, .dfn, and form files. UFormLoader, getValueByName. Define a simple creature stats sheet and load it.
- Serialization - IStream::serial, CIFile/COFile, save/load game state. Versioning with serialVersion.
- Console commands - NLMISC_COMMAND macro, ICommand::execute. Add runtime debug commands to the game.
- Client/server chat - CCallbackClient, CCallbackServer, CMessage, TCallbackItem array. Two-program chat app based on the nel/samples/net/chat sample.
- Creating a service - IService, NLNET_SERVICE_MAIN, naming service, TUnifiedCallbackItem. Ping/pong service.
- Networked game prototype - Combine UScene + networking. Multiple players moving in a shared scene with position sync.
- Playing sounds - UAudioMixer init, load sample banks from .sound_packed sheets, create USource, position in 3D.
- Music and ambient sound - Background music playback, environment sounds, group controllers for volume.
- PACS basics - Create UMoveContainer, add primitives (cylinders, boxes), move and collide. Character on a flat surface.
- Landscape collision - Load .rbank/.gr files, UGlobalRetriever, snap entities to terrain height.
- Landscape rendering - Load .zonel files, tile banks (.smallbank/.farbank), display NeL landscape patches.
- Clusters and portals - Indoor scenes with UInstanceGroup, portal-based culling.
- Ligo bricks - Landscape composition from reusable 160m blocks using World Editor.
- 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