Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: NasNas, a new intuitive and user friendly C++ game framework (github.com/madour)
95 points by Madour on Oct 3, 2020 | hide | past | favorite | 19 comments


Hello folks,

NasNas is a personal project I have been working on for the past 4 or 5 months. It is an easy to use/learn game framework that targets beginner and intermediate game developers. It is built on top of SFML, thus it is cross platform Windows, Linux and Android (not tested on macOS, but should work fine).

The framework has a modular architecture : it is separated in multiple independent modules, so the user can choose to use or not some parts of the framework, or even develop his own module for NasNas.

I already used NasNas to create 2 game jam games, so I tested it in real situation, and got very positive results !

Finaly, it is documented, and a tutorial explaining how to use it is available on the Github wiki. Please check them out !

(also, this is my first time on hacker news, I hope my post is fine)


Great project, two recommendations:

1. A screenshot of something an implementer might expect to see (maybe a demo).

2. Mention that it's cross-platform near the top of the readme.


Thanks for your comment, indeed I'll have to update the Readme ^^'. I agree, some screenshots would keep the attention of visitors, and cross platform keyword is important also .


I can see a showcase section in the readme


I can confirm this appears to build and launch fine on macOS.


Thats awesome ! Tyvm for building it on macOS !


Thanks for posting.

Would you advise this as a good way for someone to learn CPP ?


You mean creating a framework or using the framework ? Creating a project you like is always a good way to learn a programming language. However, using a framework before knowing a programming language is not a good way imo, because you will actually learn the framework, and not the language really. You need at least to know the basic notions and concepts of c++ before using the framework. I hope this answers your question :)


Using the framework... I find the only way to learn a language is to build something with it .

Unity does a lot of hand holding in this regard


Nasnas is a monstrous creature in Arab/Persian folklores :D


That's what I found after I decided to name my project that way. Wasn't aware at all Nasnas can also mean a monstrous creature.

In fact, the definition of Nasnas(نسناس) in arabic dictionary is : "a type of small monkey with a long tail". https://www.google.com/search?q=نسناس


Looks interesting. But how does this compare to other frameworks like Godot or Unity?


Well Godot and Unity are GUI game engines, and my project is a code game framework, which is quite different.

A game framework usually does not provide specific "game logic" but only some tools and functionalities that can be used in any type of game. Frameworks are also more lightweight and flexible than engines (again, usually)

As a hobbyist, I always find game engines overkill for 2D games, and I like to do things by code, rather than using a user interface.


Thanks for your reply! I played around with Monogame[0] in the past and I absolutely loved the "code first" approach. I will definitely try out NasNas.

[0](https://www.monogame.net/)


is a comparison between a 168-commit one-man show and an 30k-commit, 1600-contributor project or a project which his the main asset of a company valued at 2.8$ billion dollars really going to be relevant ?


I meant a comparison in terms of goals, ergonomics, etc. Whatever this new framework is trying to do differently. IIRC, Godot also started as a one-man show.


Oops, didn't see your reply. The main goal of NasNas is to keep things simple and readable. By readable I mean that even someone who is not familiar with the framework should be able to understand what the code does and how things work together.

Since it targets beginners and intermediate game dev, I want it to be as much accessible as possible by exposing only the "high level" aspects and taking care of the "boilerplate" code.

For example, rendering is "hidden" from the user by using a Scene/Layer system that you can find in other game fw or engines aswell. This way, in just a few line of code you can create prototypes and games quite easily.

Finaly, the project is in its early life, and I plan on continuing developping it with new features !


Intuitive, user-friendly, and C++ in one phrase! Amazing how far C++ has gone.


We have more game frameworks than games.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: