diff --git a/README.md b/README.md index b895efe..5cbd821 100644 --- a/README.md +++ b/README.md @@ -1,51 +1 @@ -# Ballr -A simple 2D game language - - -To test Pretty Printing: - -(if change anything) -sh run.bat - - -./ballr < Ballr\_helloworld/helloworld.blr - -SSH -------- -If ssh-ing into virtual machine, make sure to use -X to enable X-forwarding. Will allow screen to be displayed - -Building ---------- -To build a Ballr game, from the root directory type `make .game `. -This will build the compiler if it has changed, look for a file called -``.blr, use the `ballr` executable to compile this to LLVM, and then -build this LLVM file and link it with the runtime located at runtime/build. - - -Codegen --------- -Codegen should be broken down into the following steps: - -* entites: To generate the code for entities, each needs a create function and - a frame function. The create function will take a pointer to the entity as an - argument, and is responsible for setting the entities given values for size, - color, et cetera. The frame function is what the events compile to. Every - frame, the runtime will call each entity's frame function, which checks for - event conditions and executes the code if needed. - -* gameboards: Each gameboard should have a create function and an init - function. The create function behaves the same as the entity's create func, - while the init function corresponds directly to the code after the `init =>` - block in the `gameboard` definition. - -* main(): when generating the main method, we basically create each gameboard - using that board's create funciton. Then, register\_gb lets the runtime build - a list of boards keyed by name, so that later (for functions like load()) we - just refer to boards by their name. After creating the game boards, main() - calls run\_loop() to start the execution of the game. - - -Currently, no errors found ---------------------------- - - +IyBCYWxscgpBIHNpbXBsZSAyRCBnYW1lIGxhbmd1YWdlCgoKVG8gdGVzdCBQcmV0dHkgUHJpbnRpbmc6CgooaWYgY2hhbmdlIGFueXRoaW5nKSAKc2ggcnVuLmJhdAoKCi4vYmFsbHIgPCBCYWxsclxfaGVsbG93b3JsZC9oZWxsb3dvcmxkLmJsciAKClNTSAotLS0tLS0tCklmIHNzaC1pbmcgaW50byB2aXJ0dWFsIG1hY2hpbmUsIG1ha2Ugc3VyZSB0byB1c2UgLVggdG8gZW5hYmxlIFgtZm9yd2FyZGluZy4gV2lsbCBhbGxvdyBzY3JlZW4gdG8gYmUgZGlzcGxheWVkCgpCdWlsZGluZyAKLS0tLS0tLS0tClRvIGJ1aWxkIGEgQmFsbHIgZ2FtZSwgZnJvbSB0aGUgcm9vdCBkaXJlY3RvcnkgdHlwZSBgbWFrZSA8ZmlsZW5hbWU+LmdhbWUgIGAuClRoaXMgd2lsbCBidWlsZCB0aGUgY29tcGlsZXIgaWYgaXQgaGFzIGNoYW5nZWQsIGxvb2sgZm9yIGEgZmlsZSBjYWxsZWQKYDxmaWxlbmFtZT5gLmJsciwgdXNlIHRoZSBgYmFsbHJgIGV4ZWN1dGFibGUgdG8gY29tcGlsZSB0aGlzIHRvIExMVk0sIGFuZCB0aGVuCmJ1aWxkIHRoaXMgTExWTSBmaWxlIGFuZCBsaW5rIGl0IHdpdGggdGhlIHJ1bnRpbWUgbG9jYXRlZCBhdCBydW50aW1lL2J1aWxkLgoKCkNvZGVnZW4gCi0tLS0tLS0tCkNvZGVnZW4gc2hvdWxkIGJlIGJyb2tlbiBkb3duIGludG8gdGhlIGZvbGxvd2luZyBzdGVwczoKCiogZW50aXRlczogVG8gZ2VuZXJhdGUgdGhlIGNvZGUgZm9yIGVudGl0aWVzLCBlYWNoIG5lZWRzIGEgY3JlYXRlIGZ1bmN0aW9uIGFuZAogIGEgZnJhbWUgZnVuY3Rpb24uIFRoZSBjcmVhdGUgZnVuY3Rpb24gd2lsbCB0YWtlIGEgcG9pbnRlciB0byB0aGUgZW50aXR5IGFzIGFuCiAgYXJndW1lbnQsIGFuZCBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB0aGUgZW50aXRpZXMgZ2l2ZW4gdmFsdWVzIGZvciBzaXplLAogIGNvbG9yLCBldCBjZXRlcmEuIFRoZSBmcmFtZSBmdW5jdGlvbiBpcyB3aGF0IHRoZSBldmVudHMgY29tcGlsZSB0by4gRXZlcnkKICBmcmFtZSwgdGhlIHJ1bnRpbWUgd2lsbCBjYWxsIGVhY2ggZW50aXR5J3MgZnJhbWUgZnVuY3Rpb24sIHdoaWNoIGNoZWNrcyBmb3IKICBldmVudCBjb25kaXRpb25zIGFuZCBleGVjdXRlcyB0aGUgY29kZSBpZiBuZWVkZWQuCgoqIGdhbWVib2FyZHM6IEVhY2ggZ2FtZWJvYXJkIHNob3VsZCBoYXZlIGEgY3JlYXRlIGZ1bmN0aW9uIGFuZCBhbiBpbml0CiAgZnVuY3Rpb24uIFRoZSBjcmVhdGUgZnVuY3Rpb24gYmVoYXZlcyB0aGUgc2FtZSBhcyB0aGUgZW50aXR5J3MgY3JlYXRlIGZ1bmMsCiAgd2hpbGUgdGhlIGluaXQgZnVuY3Rpb24gY29ycmVzcG9uZHMgZGlyZWN0bHkgdG8gdGhlIGNvZGUgYWZ0ZXIgdGhlIGBpbml0ID0+YAogIGJsb2NrIGluIHRoZSBgZ2FtZWJvYXJkYCBkZWZpbml0aW9uLiAKCiogbWFpbigpOiB3aGVuIGdlbmVyYXRpbmcgdGhlIG1haW4gbWV0aG9kLCB3ZSBiYXNpY2FsbHkgY3JlYXRlIGVhY2ggZ2FtZWJvYXJkCiAgdXNpbmcgdGhhdCBib2FyZCdzIGNyZWF0ZSBmdW5jaXRvbi4gVGhlbiwgcmVnaXN0ZXJcX2diIGxldHMgdGhlIHJ1bnRpbWUgYnVpbGQKICBhIGxpc3Qgb2YgYm9hcmRzIGtleWVkIGJ5IG5hbWUsIHNvIHRoYXQgbGF0ZXIgKGZvciBmdW5jdGlvbnMgbGlrZSBsb2FkKCkpIHdlCiAganVzdCByZWZlciB0byBib2FyZHMgYnkgdGhlaXIgbmFtZS4gQWZ0ZXIgY3JlYXRpbmcgdGhlIGdhbWUgYm9hcmRzLCBtYWluKCkKICBjYWxscyBydW5cX2xvb3AoKSB0byBzdGFydCB0aGUgZXhlY3V0aW9uIG9mIHRoZSBnYW1lLgoKCkN1cnJlbnRseSwgbm8gZXJyb3JzIGZvdW5kIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpKb2tlIG9mIHRoZSBEYXkKLS0tLS0tLS0tLS0tLS0tCkEgU1FMIHF1ZXJ5IHdhbGtzIGludG8gYSBiYXIsIHdhbGtzIHVwIHRvIHR3byB0YWJsZXMgYW5kIGFza3MuLi4KCiJDYW4gSSBqb2luIHlvdT8iCg== \ No newline at end of file