New game engine needs developers. Language is C++ and designs are complete for the project architecture. Anyone wanting to join a gamedev group / fresh game studio.
Sounds cool! Can you give us more info? What is the name/website/repo of the project etc?
My name is Charles Alan Martin and you can find me on facebook by the name Charles Alan Martin CPhT you should friend me so I can send you documents if you decide on joining. The engine has a complete architectural design and is layered with only the coding to do; the name is Scrut.Hut Game Engine and its from my indie game studio im starting up with this as the main opening product, then focusing on Android / IOS games using the game engine.
Many people do not use Facebook (myself included). Have you got a website or a GitHub repo? Is it open/closed source? It’s best to provide as much info as possible when trying to get people to join your project
Here is a reference / design document you can look at
(Attachment Scrut.Hut Game Engine v2r1.txt is missing)
ok very true. closed source, and no github repo ill be setting up a subversion server on a home machine, and I am looking for a web designer to develop the website, did that document help?
Scrut.Hut Game Engine v2r1
Engine
Note threads are used to keep everything async and always allowing for execution to continue in all other areas except which ever one gets affected by lag and please note the load balancing will be done with a nanosecond profiler and throttle control of the different systems. If you require a sequence of ordered execution use a single thread or one can also use locks to signal progress.
Library
The library serves as a collection of systems used by the engine layers for their design. The systems provided are tailered for usage in a game engine and optimized for x64 operating systems, but can work for android and ios as well. Two systems interact and they would be the symbol table and interpreter systems. Listing bellow is the systems included in the Library.
Memory
Syntax
Stream
Object
Scrut Object File Format
Symbol
Module
Shared
Plugin
File System
Package File
Object
Interface for memory managed facilities and classic oop patterns in an oriented system. This part of the engine serves more or less as a basis for more complex systems to be managed correctly. A large set of classic oop patterns emerge here in this part of the game engine. Bellow are the facilities provided here in this system grouped together to form cohesive target set of plans.
- Serialization
- Interaction with the Stream System
- Type Identification
- Object Instancing
- Behavior / Observer Patterns
- Reference Counting
- Object Dynamic Size Calculation
Scrut Object File
A single file format that is used to design and facilitate the means of storing all other object subclasses on disk or in a stream. This system gives the ability to store assets and any other object in a package file for later use. Not much to see in terms of details, as the system is pretty general in nature. The file is organized into segments with a single master header and an info block. Bellow lists the segments and gives the order.
Master Header - Contains file properties and note the contents information
Info Header - Contains file segment information such as size and location of each segment
Symbol Table - gives data symbols to control the treatment of each symbol location in the file
Class Type Block - Allows factories to build a namespace locally containing all objects ready for serialization in order
Serialized Data Block - Binary encoding of the Object Data for direct reconstruction of each object dynamically
Scribble Script to Assist in Dynamic Loading
Module
Gives object libraries a place to reside and interact with the event management system of the Game Engine.
Stream
Gives a means to interface a buffer in terms of order and guarantee of service. This system gives the ability for the Network / File System / Scripting Systems to be implemented. This system interacts also with the Object System to complete some facilities.
Network
Gives a channel based system for communication to another process or completer, but basically any separate memory systems there be.
File System
System for storing streams to Data, and/or Information; gives a means to access devices, which can be abstracted / encoded systems, through a streaming system as well. Stores the Files in a hieratical tree structured fashion. Much like the traditional Linux file system, yet only in RAM and not loaded, or representing, disk Data Objects; also said as everything is a file type of fashion to the system.
Package File
Archive in a single File of a complete set of Files, or Data Objects, self contained; this might be a complete project, or software/game application. Scrut.Hut Game Engine by default comes with a single core package of all the essential files required to boot and run an object oriented designed piece of software.
Symbol
Implements the symbol table and namespace for the kernel space system and serves as a means to store the API of Scrut.Hut Game Engine. Is slower than the GCC Language System for C++ Code to be imported into the project by a game maker upon building a standalone or tool. The game maker can be used as a glorified user interface design system to aid in software development.
Syntax
Implements Scribble which is Scrut.Hut Game Engine’s scripting language. Another system is in place and partnered with GNU GCC C++ for use to extend the systems of Scrut.Hut Game Engine. Scribble is a object oriented language interpreted at run-time by generating parse trees and walking the tree per function as called. This is by no means a replacement for C++ Extensions to the system, and this is partly due to its speed and performance. Syntax Tree Builder, aka CSyntaxBuilder, is directed which nodes to create next, so order of operation is dependent on the caller and not the Syntax Tree Builder.
Engine Layers
Kernel
Serve as the organizer God Object to memory management, instancing, stream, task and thread / pipeline management; this layer also facilitates the event system by means of the module system. Kernel space is one of the major systems in this layer, which organizes data in tables by namespaces using types from the symbol table. The one main set of systems that include the distributed execution systems interacts with the kernel layer for thread management and there about. Organized into services within the layer to complete one goal, and that gives this the one independent god object in the engine. Services provided are listed bellow:
CMemory - Low level memory management and control of the heap / dynamic memory allocation systems
CObject - Memory management based object oriented design from a reference counted object interface that will be parent to all other engine objects
CSymbol - The Kernel Space container for symbol based data management and namespaces / symbol tables
CModule - Object Library mixed with the event management system behavior controller and container of handlers
CShared - Linking shared libraries at runtime for object / procedural extensions to the game engine systems; includes object / procedures
CPlugin - Addon to extending the Game Engine Systems for non-built-in systems
CStream - Buffer encapsulated object that guarantees the order and service of sending data
CSymbol - Kernel Space, which implements the namespace / symbol tables for the game engine.
CThread - Multithreaded Management System
CPipeline - Parallelism Model for Multithreaded Staged Applications. Currently there is only one pipeline and that is the rendering pipeline for high performance rendering with 5 optimal stages; this is as of version 2 revision 1 of the game engine.
CDispatcher - Event Management System
CTaskManager - Task Management System with scheduler as a composite class
CDistributor - Resource, and task, grouping of different Queues System for worker threads / pipelines
Shell
Gives a system to implement the streaming system and shell script using Scribble into the Game Engine. This does not include the network system which is part of the distributed computing systems contained within Scrut.Hut Game Engine capabilities; which is a glorified execution control system put in place within Scrut.Hut Game Engine.
Application
Give the ability to interpret command line arguments and give an environment for software to be implemented. Contains variables and configuration information systems into Scrut.Hut Game Engine. Can greatly influence the Master Layer’s behavior and basis of subject with the worker threads / pipelines.
Domain
Houses all 3rd party and inhouse multimedia / Input / Physics libraries. These include complete libraries of capabilities only described as APIs included in the Game Engine. Rendering is one example library implemented this layer. Simple to organize the set of libraries, yet hard in practice to design each library behavior and logic. Abstracts a context and library object. This layer will be full of abstractions with the load mainly being placed on pipelines / worker threads and a event driven system design.
Master
Includes the activity / game state / game sub-layers in Scrut.Hut game engine and control the flow of execution by the core logic implemented by software / projects within Scrut.Hut Game Engine. Implements the projects oriented logic and behavior by utilizing oop, and also it utilizes the entity component system that is common place in game development and simple to implement in practice. With correct designs this layer will must be tight well structured. Also uses class heretical tree inheritance for game object behavior evolution.
Project / Game Object - Used to implement standalone tools / games and software projects behavior allowing and selecting the game state object
Game State Object - Finite state machine that controls the environment of the system depending on the state of the project / game
Activity - main game loop and logic Encapsulation Object; this sublayer depends on the class heretical / entity component system designs
Game Object Class Heretical Structure
Entity Component System giving Organized Behavior
Scrut
Considered the top highest-level abstractions of the game engine and its systems giving rise to starting / shutdown / saving / loading abilities as part of the Game Engine. No layer exist above in Scrut.Hut Game Engine in its core libraries, yet the Engine can be extended with more layers by the application extensions to the architecture, and complete its design. The one set of abstractions is the collection of functions in the procedural designs above Scrut Layer in the Hut namespace therein.
Hut
A Procedural Oriented namespace for the game engine that simplifies the main function with a entry point for the engine.
Thanks - though it might help if you:
- Format your post (using Markdown) so it’s easier to digest
- Include more about yourself (what experience do you have in this sector/what made you want to create a new engine/etc)
- Include info about who the engine is targeted at, which engines are most similar to it, which ones will you be competing with, what makes your engine a better choice, what experience anyone wanting to get involved etc
Generally if you want people to join you the more info you provide the better
Sounds exciting! If you’re looking for C++ devs, sharing more about the engine’s unique features, target platform, and project goals could help attract the right talent. Is there a Discord or forum where interested devs can connect?