ncJump is a project started on December 2020 with the purpose of learning and testing the capabilities of a new engine: nCine, an open-source C++ framework for 2D games developed by @encelo.
Some time ago, a bunch of members of the GameLoop community followed CS50's introduction to game development, and I though the sequence of games presented in that course could give me a good insight on what kind of game to create.
A couple of developers already made or started to make the first few games listed by that course. There is a Pong clone made by @encelo, a Flappy Bird clone made by @Vasile-Peste, and a Breakout clone under development by @mat3. I opted for a Super Mario Bros clone.
The idea is to follow the steps of CS50's lecture 4 by using nCine instead of Love2D.
Some steps are required in order to ncJump-start, but luckily everything you need to know is documented on the nCine download web-page:
- Install nCine and keep note of its build directory.
NCINE_BUILD_DIR=<you/know>
- Clone this repository.
git clone https://github.com/Fahien/ncJump.git && cd ncJump
- Initialize the data submodule
git submodule update --init
- Generate the project.
cmake -GNinja -S. -Bbuild \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DCMAKE_BUILD_TYPE=Debug \ -DnCine_DIR=$NCINE_BUILD_DIR cmake --build build
- Start ncJumping!
build/ncjump
Every push to the master branch triggers Emscripten deployment to this demo web-page. Please, open an issue if you find any bug!
A bunch of devlogs are published periodically in a GitHub discussion within the nCine project, and I highly recommend reading them to get an insight of the development history of the project together with the overall architectural design.
- Writing down some code
- Everything is entity
- The smooth and the file
- Jump and resize
- Dynamics and destructibles
- Push and pull
- Enemies, factories, commands, and scripts
- Dying and deploying
The source code is licensed under the MIT License.