Preparing for github
7
LICENSE
|
@ -9,9 +9,14 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
furnished to do so, subject to the following conditions:
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
(1) The above copyright notice and this permission notice shall be included in
|
||||||
all copies or substantial portions of the Software.
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
(2) Any games or other derivative software must display the "Prosperon" logo
|
||||||
|
at near the beginning of the software's startup, before the chief purpose
|
||||||
|
of the software is underway.
|
||||||
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
|
6
README
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
![alt text](doc/prosperon_orb_horizontal.gif)
|
||||||
|
The easily moddable, programming minded, 2D-first game engine. The aim is to make the fastest way to make games.
|
||||||
|
|
||||||
|
See the [documentation](doc/prosperon.org) for more information, including how to compile.
|
||||||
|
|
||||||
|
*Prosperon is useful, but is a work in progress. Breaking changes are frequent.*
|
340273
data/high_qual_coeffs.h
22472
data/mid_qual_coeffs.h
|
@ -33,6 +33,9 @@ Install the most [[https://prosperon.dev/download][recent binaries]] into your ~
|
||||||
*** Windows
|
*** Windows
|
||||||
Copy the executable into any folder and run it. If no game is deteced, it scaffolds for you.
|
Copy the executable into any folder and run it. If no game is deteced, it scaffolds for you.
|
||||||
|
|
||||||
|
*** Building
|
||||||
|
You will need ~sokol-shdc~ in the top of your directory. Then, ~make shaders~ and ~make~. The command ~make install~ copies it to your home's ~.bin~ path.
|
||||||
|
|
||||||
** Playing your first game
|
** Playing your first game
|
||||||
Download any of the completed example projects. Run ~prosperon play~ in the folder.
|
Download any of the completed example projects. Run ~prosperon play~ in the folder.
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
(font
|
|
||||||
:path "LessPerfectDOSVGA.ttf"
|
|
||||||
:size 16
|
|
||||||
)
|
|
Before Width: | Height: | Size: 298 B |
Before Width: | Height: | Size: 187 B |
Before Width: | Height: | Size: 225 B |
Before Width: | Height: | Size: 293 B |
Before Width: | Height: | Size: 157 B |
Before Width: | Height: | Size: 197 B |
Before Width: | Height: | Size: 226 B |
Before Width: | Height: | Size: 108 B |
Before Width: | Height: | Size: 339 B |
Before Width: | Height: | Size: 234 B |
Before Width: | Height: | Size: 187 B |
Before Width: | Height: | Size: 224 B |
Before Width: | Height: | Size: 206 B |
Before Width: | Height: | Size: 304 B |
BIN
icons/no_tex.png
Before Width: | Height: | Size: 5.2 KiB |
|
@ -1,4 +0,0 @@
|
||||||
# Prosperon Engine
|
|
||||||
The easily extendable, developer minded, 2D-first game engine.
|
|
||||||
|
|
||||||
See the documentation [here](https://prosperon.dev/doc).
|
|
|
@ -487,7 +487,7 @@ var editor = {
|
||||||
|
|
||||||
editor.edit_level.objects.forEach(function(obj) {
|
editor.edit_level.objects.forEach(function(obj) {
|
||||||
if (!obj._ed.selectable)
|
if (!obj._ed.selectable)
|
||||||
GUI.image("icons/icons8-lock-16.png", obj.screenpos());
|
GUI.text("lock", obj,screenpos());
|
||||||
});
|
});
|
||||||
|
|
||||||
Debug.draw_grid(1, editor.grid_size, Color.Editor.grid.alpha(0.3));
|
Debug.draw_grid(1, editor.grid_size, Color.Editor.grid.alpha(0.3));
|
||||||
|
|
|
@ -84,7 +84,6 @@ void font_init() {
|
||||||
.label = "text buffer"
|
.label = "text buffer"
|
||||||
});
|
});
|
||||||
|
|
||||||
// font_set("fonts/LessPerfectDOSVGA.ttf");
|
|
||||||
font_set("fonts/c64.ttf");
|
font_set("fonts/c64.ttf");
|
||||||
bind_text.fs.images[0] = font->texID;
|
bind_text.fs.images[0] = font->texID;
|
||||||
bind_text.fs.samplers[0] = sg_make_sampler(&(sg_sampler_desc){});
|
bind_text.fs.samplers[0] = sg_make_sampler(&(sg_sampler_desc){});
|
||||||
|
|
|
@ -282,26 +282,6 @@ int main(int argc, char **argv) {
|
||||||
signal(SIGFPE, seghandle);
|
signal(SIGFPE, seghandle);
|
||||||
// signal(SIGBUS, seghandle);
|
// signal(SIGBUS, seghandle);
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef STEAM
|
|
||||||
steaminit();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef DISCORD
|
|
||||||
struct IDiscordCore *core;
|
|
||||||
DiscordCreate(DISCORD_VERSION, &(struct DiscordCreateParams){
|
|
||||||
.client_id = 1176355046590533714,
|
|
||||||
.flags = DiscordCreateFlags_Default
|
|
||||||
}, &core);
|
|
||||||
struct IDiscordUserManager *dum;
|
|
||||||
struct IDiscordActivityManager *dam;
|
|
||||||
dam = core->get_activity_manager(core);
|
|
||||||
|
|
||||||
struct DiscordActivity da;
|
|
||||||
sprintf(da.state, "Playing Solo Pinball");
|
|
||||||
sprintf(da.details, "COMPetitive");
|
|
||||||
dam->update_activity(dam, &da, NULL, NULL);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
resources_init();
|
resources_init();
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
var binds = [];
|
|
||||||
var cbs = [];
|
|
||||||
var fats = [];
|
|
||||||
var count = 1000000;
|
|
||||||
|
|
||||||
var a = {
|
|
||||||
n: 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function test_a() {
|
|
||||||
this.n++;
|
|
||||||
}
|
|
||||||
|
|
||||||
var start = Date.now();
|
|
||||||
for (var i = 0; i < count; i++)
|
|
||||||
binds.push(test_a.bind(a));
|
|
||||||
console.log(`Make bind time: ${Date.now()-start} ms`);
|
|
||||||
|
|
||||||
start = Date.now();
|
|
||||||
for (var i = 0; i < count; i++)
|
|
||||||
fats.push(() => test_a.call(a));
|
|
||||||
console.log(`Make fat time: ${Date.now()-start} ms`);
|
|
||||||
|
|
||||||
start = Date.now();
|
|
||||||
for (var i = 0; i < count; i++) {
|
|
||||||
binds[i]();
|
|
||||||
}
|
|
||||||
console.log(`Bind time: ${Date.now()-start} ms`);
|
|
||||||
|
|
||||||
start = Date.now();
|
|
||||||
for (var i = 0; i < count; i++) {
|
|
||||||
fats[i]();
|
|
||||||
}
|
|
||||||
console.log(`Fat time: ${Date.now()-start} ms`);
|
|
||||||
|
|
||||||
start = Date.now();
|
|
||||||
for (var i = 0; i < count; i++)
|
|
||||||
test_a.call(a);
|
|
||||||
|
|
||||||
console.log(`Call time: ${Date.now()-start} ms`);
|
|
|
@ -1,24 +0,0 @@
|
||||||
var binds = [];
|
|
||||||
var a = {
|
|
||||||
n: 1,
|
|
||||||
test() { this.n++; }
|
|
||||||
};
|
|
||||||
var count = 10000000;
|
|
||||||
|
|
||||||
var start = Date.now();
|
|
||||||
for (var i = 0; i < count; i++)
|
|
||||||
binds.push(a.test.bind(a));
|
|
||||||
|
|
||||||
console.log(`Make bind time: ${Date.now()-start} ms`);
|
|
||||||
|
|
||||||
start = Date.now();
|
|
||||||
for (var i = 0; i < count; i++)
|
|
||||||
binds[i]();
|
|
||||||
|
|
||||||
console.log(`Bind time: ${Date.now()-start} ms`);
|
|
||||||
|
|
||||||
start = Date.now();
|
|
||||||
for (var i = 0; i < count; i++)
|
|
||||||
a['test']();
|
|
||||||
|
|
||||||
console.log(`Call time: ${Date.now()-start} ms`);
|
|