Skip to content

Commit

Permalink
Merge pull request #11 from alsamitech/dev
Browse files Browse the repository at this point in the history
Brings badly needed bug fixes and features to main
  • Loading branch information
alsamitech authored Nov 23, 2020
2 parents 3d17164 + 19dd44f commit eac62db
Show file tree
Hide file tree
Showing 22 changed files with 16,082 additions and 6,588 deletions.
File renamed without changes.
9 changes: 9 additions & 0 deletions Shaders/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
AlsGM Shader Componenent
This are primaraly for OpenGL and are written in GLSL



Contributors:


(furture contributors here! if you worked on this, change this file and add your name!)
File renamed without changes.
9 changes: 8 additions & 1 deletion docs/Basics
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ AlsGM Basics Page Note:
AlsGM assumes advanced knowledge of the C and C++ programming languages
After reading the README, this should be the very next thing that you read.

AlsGM (as of now) depends on libc
AlsGM (as of now) depends on libc (might change in the future)

Entry Point:
ALSGM abstracts the entry point and puts in in core.h. This gives it buit in error handling right at the starting point. To start the program, do this
Expand All @@ -29,4 +29,11 @@ int START() {

```

Networking(check the networking documentation for more information):
Game engines are not supposed to just handle graphics, logging, and errors for you.
Let's say you wanted to design a multiplayer online game but you don't want to handle sockets and protocols manually.
AlsGM includes a modified version of the Alsami Web Server (AlsWS) Written in C for this purpose.
AlsWS official public repository:
https://github.com/alsamitech/alsws

(c) AlsamiTechnologies, 2020
14 changes: 14 additions & 0 deletions docs/queue_family
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
AlsGM Documentation
Not a Standard
Implementation Status: Implemented (vulk/)

A queue is a buffer that can hold command or information waiting to be processed.

Visualisation:
[gamer clicks]->[Q_PACKET_56]
[Q_PACKET_56][Q_PACKET_35][Q_COMMAND_STOP][C_RUNNINGMEM]->[AlsGM parser]->[AlsGM]->[action]

You can submit to the queue from one process at a time.
However, different processes can submit work to different queues simoulatenously.

NOTE: Vulkan is a low-level, C API. if this documentation ever refers to vulkan structs as objects, please feel free to correct the documentation and pull request the public repository (https://github.com/alsamitech/alsgm)
43 changes: 43 additions & 0 deletions docs/sprites
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Alsami Game Engine Documentaton
11/7/20

The Sprite Model

IMPLEMENTATION STATUS: 2/10

Often, bitmap objects in games engines are called "sprites". This means that the game engine follows the sprite model.

There are two concepts of displaying bitmap art AlsGM supports:
- The Sprite Model
- The Procdeural, callback function Model

What is The Sprite Model:
The Sprite Model dictates that all bitmap objects displayed on the screen is a sprite.
A sprite (in AlsGM) is a class. The sprites can be moved around, hidden, or destroyed to the game designer's liking.
If a sprite has an event (Let's say someone clicks on the sprite), AlsGM would buffer the sprite into a queue, than call the callback function.

A sprite (still) is a bitmap object, so it needs to display something.

(note for contributors: the documentation for AlsGM is what you should follow while building parts of AlsGM. If you want to tweak these documents, feel free to do so. All you need to do is make the changes, and pull request them on the AlsGM official public repository (https://github.com/alsamitech/alsgm))

The implementation I chose to use:
The sprite can either display
primitve shapes (ie. *agons, quadlaterals, squares, circles, triangles) and thier 3D countrparts
-OR-
Complex 3D objects made in the Alsami 3D modeler.

The Sprite's "costume" is what it displays. As of now, AlsGM can't load textures (oh boy that would be fun to implement), but AlsGM can load primitve patterns and solid colors. All of this configuration can be passed in with the constuctor or it can load a solid color.

Example Implementation
```C_PLUS_PLUS

for(;;){
Sprite *Yin= new Sprites();

}





```
Loading

0 comments on commit eac62db

Please sign in to comment.