All Projects → scottcgi → Mojoc

scottcgi / Mojoc

Licence: mit
A cross-platform, open-source, pure C game engine for mobile game.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Mojoc

Innocenceengine
Cross-platform modern game engine.
Stars: ✭ 149 (-81.35%)
Mutual labels:  game-engine, cross-platform, architecture
Limonengine
3D FPS game engine with full dynamic lighting and shadows
Stars: ✭ 331 (-58.57%)
Mutual labels:  game-engine, cross-platform
Rabbittoolbox
🤸🏾‍♀️👗开源的动画渲染软件,提倡以简单、易用,高质量的物理演算以及渲染质量和性能,为喜爱二次元动画的用户降低视频制作门槛
Stars: ✭ 309 (-61.33%)
Mutual labels:  game-engine, cross-platform
Ark
ARK is a lightweight, agility, elastic, distributed plugin framework written in C++,make it easier and faster to create your own application service.
Stars: ✭ 370 (-53.69%)
Mutual labels:  cross-platform, architecture
Megaglest Source
MegaGlest real-time strategy game engine (cross-platform, 3-d)
Stars: ✭ 259 (-67.58%)
Mutual labels:  game-engine, cross-platform
Noahgameframe
A fast, scalable, distributed game server engine/framework for C++, include the actor library, network library, can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua script/ Unity3d, Cocos2dx and plan to support Unreal.
Stars: ✭ 3,258 (+307.76%)
Mutual labels:  game-engine, architecture
Urho3d
Cross-platform 2D and 3D game engine
Stars: ✭ 3,767 (+371.46%)
Mutual labels:  game-engine, cross-platform
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-73.97%)
Mutual labels:  game-engine, cross-platform
Rigelengine
A modern re-implementation of the classic DOS game Duke Nukem II
Stars: ✭ 393 (-50.81%)
Mutual labels:  game-engine, cross-platform
Fiber2d
Cross-platform 2D Game Engine in pure Swift
Stars: ✭ 415 (-48.06%)
Mutual labels:  game-engine, cross-platform
Gideros
Gideros Release version
Stars: ✭ 442 (-44.68%)
Mutual labels:  game-engine, cross-platform
Panda3d
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Stars: ✭ 3,035 (+279.85%)
Mutual labels:  game-engine, cross-platform
Ecere Sdk
Ecere SDK (eC Language, Ecere IDE, Cross platform GUI, graphics, and more) — http://ec-lang.org —
Stars: ✭ 244 (-69.46%)
Mutual labels:  game-engine, cross-platform
Nazaraengine
Nazara Engine is a fast, complete, cross-platform, object-oriented API which can help you in your daily developper life.
Stars: ✭ 279 (-65.08%)
Mutual labels:  game-engine, cross-platform
Rayfork
C99 Game Library. XNA-like. Single source. Platform Independent. Allocator Aware.
Stars: ✭ 215 (-73.09%)
Mutual labels:  game-engine, cross-platform
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (-58.07%)
Mutual labels:  game-engine, cross-platform
Bulllord Engine
lightspeed lightweight elegant game engine in pure c
Stars: ✭ 539 (-32.54%)
Mutual labels:  game-engine, cross-platform
Fishengine
Simple, Unity-like Game Engine.
Stars: ✭ 191 (-76.1%)
Mutual labels:  game-engine, cross-platform
Tdengine
game server for Rust + Lua
Stars: ✭ 203 (-74.59%)
Mutual labels:  game-engine, cross-platform
Ncine
A cross-platform 2D game engine
Stars: ✭ 372 (-53.44%)
Mutual labels:  game-engine, cross-platform
Mojoc Logo

Mojoc v0.6.4

Mojoc is an open-source, cross-platform, pure C game engine. It is based on OpenGLES3 and written in C99. It currently works on IOS and Android, but can easily be extended to other platforms, and will support more platforms in the future.

Architecture

Mojoc Engine Architecture

License

Mojoc is licensed under the MIT License.

Core Idea

Less is more, simple is better, simplify complex ideas.

Features

  • The only programming skill needed is the C99 language.
  • In platform-independent code, Mojoc uses only the standard C library, no dependence on third-party libraries.
  • Mojoc has its own unique coding style.
  • Mojoc uses an extremely lightweight OOC (Object Oriented C) programming model.
  • Mojoc application architecture is based on components, state-machines and message-driven.
  • More feature details.

Published Games

Mojoc has been used for a cross-platform Android and IOS game.

  • SuperLittleRed is a bow and arrow shooting game, very challenging for your operation.

Samples

The samples will show all aspects of the Mojoc features. Each platform will provide native building project for native platform editor. For example: Android provides AndroidStudio project, IOS provides XCode project.

Currently there is only one sample, which is a simplfied version of the published game SuperLittleRed. Please check out the Quick Start guide for how to quickly run this sample.

The compiled and playable apk is here:

SuperLittleRed-Sample

FAQ

Why not C++?

  • There are plenty of C++ game engines, but pure C game engines are much rarer. I don't want to reinvent wheels, I hope to be different.
  • The core idea of the game engine I want to create is to be smaller and simple, which is consistent with the C language.
  • At the beginning, I had an idea of how to build a complex project with pure C language. I want to test the feasibility of the idea, that is Mojoc.
  • The C language is simple but powerful, it can do a lot of interesting things. Why not C?

What is the meaning of the name Mojoc?

Mojoc = Mojo + c

The c stand for the C language.

Who designed the logo and what is its meaning?

I designed it. The logo is an unknown creature made up of "Mojoc" letters.

M : ears  
OO: eyes  
J : body  
C : tail

How was Mojoc was born?

Mojoc started in 2012 as a spare time project. At first, Mojoc used Eclipse + CDT + ADT + NDK for development, and was focused on Android platform.

During the development I experienced a lot of repetition and thinking. For a long time I was not very sure and clear about how to use the C language to simulate OOP and keep it simple and uniform. So I tried a lot of ideas, repeated the proces: wrote code, modified, refactored, changed ideas, deleted code, rewrote it again and so on.

But in the end, I developed a unique rule set, the Mojoc Code Style and Mojoc OOC Model that felt right and nice, then I followed the rules to develop Mojoc.

What kind of games can Mojoc do?

For now, it is not recommended to use Mojoc to make games. To be honest, Mojoc is not yet quite perfect. There are many improvements and refinements left to be made, that I'm currently working on. But Mojoc's code architecture and programming model have already been established.

Therefore Mojoc is very suitable for learning and understanding of how to use the C language to build game engine.

Roadmap

The roadmap shows the direction of Mojoc development.

Graphics Module

  • Create graphics layer compatible with Vulkan, Metal and D3D.
  • Create material system control shaders.
  • Support Primitive Restart and DrawInstance.
  • Support Sampler Objects and Immutable Textures.
  • Support dynamic Multi-Texture Unit rendering.

Extension Module

  • Support bitmap fonts.
  • Support simple unit tests for Mojoc features.

Physics Module

  • Support motion simulation after rigid body collision.
  • Support mutual restriction and linkage between rigid bodies.
  • Support more physical motion simulations.

Toolkit Module

  • Generic iteration interface, it's a step-by-step calculation that can be driven by coroutine.
  • Memory management strategy for many to one.
  • Plug-in function extensions.
  • More algorithm implementation.

Other Modules

  • Create UI module.
  • Create network module.

Others

  • Game editor implemented with Mojoc itself.
  • Game script language "MojoScript", implemented with the C language and Toolkit module.

Support

  • 🎮 Play Mojoc Published Games.
  • Star & Issue & Fork on GitHub, or share Mojoc project to anyone.
  • ☕️ If the source code is useful for you, maybe buy me a coffee via Paypal-0.99.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].