Inital boiler plate commit.
Initial setup done, debug mode, build script, simple entry point, simple game manager setup. Ideal starting point for my games.
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package game
|
||||
|
||||
import rl "vendor:raylib"
|
||||
|
||||
WINDOW_TITLE :: "Pong"
|
||||
WINDOW_WIDTH :: 2560
|
||||
WINDOW_HEIGHT :: 1440
|
||||
|
||||
State :: enum {
|
||||
IN_GAME,
|
||||
MENU,
|
||||
LOADING,
|
||||
PAUSED,
|
||||
FINISHED
|
||||
}
|
||||
|
||||
Game :: struct {
|
||||
state: State
|
||||
}
|
||||
|
||||
// @NOTE: procs ie: game_init, game should run etc is a convention to work with wasm
|
||||
game_should_run :: proc() -> bool { return !rl.WindowShouldClose( )}
|
||||
|
||||
game_init :: proc(game: ^Game) {
|
||||
rl.InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT, WINDOW_TITLE)
|
||||
rl.SetTargetFPS(60)
|
||||
|
||||
game.state = .IN_GAME
|
||||
}
|
||||
|
||||
game_update :: proc(game: ^Game) {
|
||||
// get delta time for frame
|
||||
dt := rl.GetFrameTime()
|
||||
}
|
||||
|
||||
game_render :: proc(game: ^Game) {
|
||||
rl.BeginDrawing()
|
||||
rl.ClearBackground(rl.DARKGRAY)
|
||||
rl.EndDrawing()
|
||||
}
|
||||
|
||||
game_quit :: proc(game: ^Game) {
|
||||
rl.CloseWindow()
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package game
|
||||
|
||||
import "core:log"
|
||||
import "core:mem"
|
||||
|
||||
// compiler sets debug mode
|
||||
DEBUG :: #config(DEBUG_MODE, false)
|
||||
|
||||
main :: proc() {
|
||||
when DEBUG {
|
||||
context.logger = log.create_console_logger()
|
||||
defer log.destroy_console_logger(context.logger)
|
||||
log.debug("--- DEBUG MODE ENABLED ---")
|
||||
|
||||
track: mem.Tracking_Allocator
|
||||
mem.tracking_allocator_init(&track, context.allocator)
|
||||
defer mem.tracking_allocator_destroy(&track)
|
||||
context.allocator = mem.tracking_allocator(&track)
|
||||
}
|
||||
// ------------------------------------------------------
|
||||
|
||||
game := Game{}
|
||||
|
||||
game_init(&game)
|
||||
|
||||
for game_should_run() {
|
||||
game_update(&game)
|
||||
game_render(&game)
|
||||
}
|
||||
|
||||
game_quit(&game)
|
||||
|
||||
// ------------------------------------------------------
|
||||
// Check for any leaks!
|
||||
when DEBUG {
|
||||
if len(track.allocation_map) > 0 {
|
||||
log.errorf("\nMEMORY LEAKS: %v allocation(s)", len(track.allocation_map))
|
||||
for _, entry in track.allocation_map {
|
||||
log.errorf(" %v bytes @ %v", entry.size, entry.location)
|
||||
}
|
||||
}
|
||||
if len(track.bad_free_array) > 0 {
|
||||
log.errorf("\nBAD FREES: %v", len(track.bad_free_array))
|
||||
for entry in track.bad_free_array {
|
||||
log.errorf(" %v @ %v", entry.memory, entry.location)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user