Coder Social home page Coder Social logo

asdlei99 / onut Goto Github PK

View Code? Open in Web Editor NEW

This project forked from daivuk/onut

0.0 1.0 0.0 101.56 MB

Onut engine. A little engine to make quick games

License: MIT License

C++ 40.91% C 57.87% JavaScript 0.72% PostScript 0.01% CMake 0.36% Objective-C 0.13%

onut's Introduction

Logo

Oak Nut engine.

Commonly called "onut". Game engine focused on rapid development. Aimed at Game Jams.

Quick javascript sample

Load image and draw a sprite

var texture = getTexture("image.png");

function render() {
    // Begin a batch
    SpriteBatch.begin();
    
    // Draw a sprite at screen coordinates x=200, y=100 from top left corner.
    SpriteBatch.drawSprite(texture, new Vector2(200, 100));
    
    // End and flush the batch
    SpriteBatch.end();
}

Update loop

function update(dt) {
    spriteAngle += dt * 45; // Will rotate 45 degree per second
}

function render() {
    ...
    
    // Draw a sprite at with an animated angle
    SpriteBatch.drawSprite(texture, new Vector2(200, 100), Color.WHITE, spriteAngle);
    
    ...
}

See onut/samplesJS/ folders for more detailed samples.

Overview

List of projects using it:

Release history

  • Onut 5.0 - The 3D release - TBD
  • Onut 4.0 - The Multiplayer release - TBD
  • Onut 3.0 - The JavaScript release - Jul 14, 2017
  • Onut 2.0 - The Cleanup release - Apr 3, 2016
  • Onut 1.0 - Feb 6, 2016

JavaScript Game

Compile the executable

  1. Clone onut somewhere on your PC.
  2. Generate using cmake.
  3. Build the JSStandAlone project in release.
  4. Copy the executable to your game's folder.

Setting up your JavaScript project

Recommended to use Visual Studio Code.

  1. Create a folder for your game somehere on your PC
  2. Copy [onut path]/jsconfig.json, [onut path]/typings/onut.d.ts to YourGame path.
  3. Create a settings.txt file. Refer to samples to see what can be put in there.
  4. Create assets and javascript files
  5. main.js will always be the last JavaScript file executed, use it to initialize stuff.

main.js

function update(dt) {
    // Update your game here
}

function render() {
}

C++ game

Recommended folder structure

Before you start. Please take note of the following folder structure. It is highly recommended for minimal setup time. The default asset search paths are configured for this structure. But it easy to add more using oContentManager->addSearchPath.

  • YourGame\
    • assets\ Put game assets in here
      • ...
    • src\ Your game source code (.h and .cpp)
    • .. projects files or your CMakeLists.txt

main.cpp

Make sure to define those 6 functions. Otherwise you will get unresolved errors.

void initSettings()
{
}

void init()
{
}

void update()
{
}

void render()
{
}

void postRender()
{
}

void renderUI()
{
}

Look at samples to see what can be done here.

Supported features

Here is a table of features with support per platform and availability to the javascript bindings. For a full list of features, check the samples/ and samplesJS/.

Feature Windows OS X Linux Javascript Bindings
Anims
Audio Stream unplanned
Base64
Bitmap Fonts
Box2D
Cloud disabled
CMake n/a
CSV
Effects
Entity/Components
File Dialogs unplanned
File IO
File utils unplanned
Game Pads
Hash
Http
Images unplanned
Keyboard
Log
Maths
Mouse
Multiplayer
Music
Native Cursor
Path Finding
Particles
PrimitiveBatch
Random
Renderer
Settings partial
Sha1
Shaders
Sounds
Sprite Anims
SpriteBatch
System Info n/a n/a n/a
TCP Sockets
Textures
TiledMaps
Thread Pool n/a
UI partial
Vertex Buffers
Video Player

Mentions

Logo design by Pixilabs Software Inc.

onut's People

Contributors

daivuk avatar davidstlyoui avatar dzbear avatar mchiasson-youi avatar mean-ui-thread avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.