NAS2D - Le Bottin des Jeux Linux



Title: NAS2D Type: Tool
Genre: Development Status:
Category: Development ➤ Framework & Tool ➤ Game Framework Commercial:
Tags: Development; Frameworks; C/C++; Multi-platform Demo:
Released: Latest : 1.5.0 / Dev : 4ce328e Package Name:
Date: 2020-09-14 Extern Repo:
License: zlib Repo:
Perspective: Third person Package:
Visual: 2D Binary:
Pacing: Real Time Source: ✓
Played: Single & Multi PDA:
Quality (record): 4 stars Quality (game):
Contrib.: Goupil & Louis ID: 13728
Created: 2013-07-30 Updated: 2020-09-27



Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t ts gd id r lp g g[fr] g[de] g[ru] g[pl] g[cz] g[sp] g[pt] g[it] g[tr] g] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

Commercial : [Support their work (Donate)]

• (empty)
Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

Devs (LairWorks Entertainment [fr] [en]) : [Site 1 2] [twitter] [YouTube] [Interview 1 2]
Game : [Blog] [Forums] [twitter] [YouTube]

On other sites


News / Source of this Entry (SotE) / News (SotN)
[Changes with v. 1.5.0 (20190519)]

Description [fr]

Un ensemble d'outils facilitant le développement de jeux vidéos, par le studio LairWorks Entertainment (Leeor Dicker & Trevor Allen, initial design : Fred Oranje).
En C++.

NAS2D est un framework orienté objet et multi-plateforme (Windows, Mac, Linux, pas de support officiel pour ce dernier, mais il est connu pour fonctionner) permettant de faciliter la conception de jeux en 2D en fournissant une interface de haut niveau. Il prend en charge de manière transparente la gestion des tâches de bas niveau tel que l'affichage de la vidéo, les entrées, le mixage du son, le chargement des fichiers, ...
NAS2D fait appel à plusieurs bibliothèques de bas niveau telles que OpenGL, SDL, PhysFS, ...

Utilisé par ces jeux / Used by these games : The Legend Of Mazzeroth,

Description [en]

What is NAS2D?

NAS2D is an open source, object oriented 2D game development framework written in C++. It was designed to make the development of games easier by providing a high-level interface. It handles the low-level tasks of setting up the video display, input, sound mixing, file loading, etc.

Why another 2D API?

NAS2D isn't just another 2D renderer. It's a complete set of tools, functions and classes that let you jump into building a game right away.

NAS2D started its life as the core code for The Legend of Mazzeroth. We had looked at, considered and ruled out several other frameworks. Either they were too low-level, were in a language that we didn't want to use or were lacking in features we really needed.

So we set about developing LoM using a few low-level libraries. After awhile, we realized that the core code, once written, didn't change too much and that others could find it useful. And thus, NAS2D was born.

• Virtual Filesystem

Seamless virtual filesystem that works with flat files, archives or a mix of both! Supports common archive formats including ZIP, 7z, WAD, PAK, GRP and HOG.

• OpenGL Renderer

Highly portable OpenGL renderer that takes advantage of modern rendering techniques to provide high performance 2D graphics and specialized visual effects via fragment shaders.

• Audio Mixer

Provides access to any number of audio channels and one music channel.

Supports WAV, OGG, FLAC for sound and music playback. Additional support for IT, XM, S3M and MOD for music playback.

• Image Formats

Supports a wide variety of image formats including: BMP, GIF, JPEG, LBM, PCX, PNG, PNM, TGA, TIFF, WEBP, XCF, XPM, XV


☯ Overall

☑ Well documented API
☑ Flexible and Extensible
☑ Well tested and very stable.
☑ Written in highly portable C++.
☑ Designed to minimize the necessity of raw pointers.
☑ Easy to use, understandable, modular design.
☑ Tested and works on Windows, MacOS X and Linux
☑ Permissive zlib open-source license.

☯ Core Module (Released)

☑ Virtual filesystem that works with flat files and archives.
☑ Hardware accelerated 2D blitter.
☑ Mixer handles any number of simultaneous sound channels and one music channel.
☑ Built-in application configuration.
☑ Effective state-machine model for separating game logic.
☑ Simple, light-weight Timer and FPS counter.
☑ Lightweight XML processing via TinyXML.
☑ Provides several Resource primitives:
• Font: TrueType and OpenType font support.
• Image: All popular image formats.
• Music: WAV/OGG & MOD/S3M/IT/XM formats.
• Sound: WAV/OGG formats.
• Sprite: Animated images with user-defined animation states.
☑ Various utility functions and objects applicable to game programming:
• Basic bounding box intersection tests.
• Several string manipulation functions.
• Basic trigonometric functions for managing object rotation and directional vectors.

☯ GUI Module (In Development)

An internal version has been developed but not yet released as work has been concentrated on Core.

☑ Light weight skinning system.
☑ Top-down stack based control heirarchy.
☑ Complete set of commonly used Controls.
☑ XML based Layout system.

☯ World Module (In Development)

An internal version has been developed but not yet released as work has been concentrated on Core.

☑ Basic World structure from which many types of 2D game worlds can be derived.
☑ Base Entity object upon which derived logic can be implemented.
☑ Pre-built square and isometric tile-based worlds.
☑ QuadTree scene graph useful for simple scene optimization.