Skip to content

Commit

Permalink
Update to v0.20.0 of lacking engine (#50)
Browse files Browse the repository at this point in the history
  • Loading branch information
mokiat authored Sep 8, 2024
1 parent 5380ed2 commit 6ec0e2f
Show file tree
Hide file tree
Showing 20 changed files with 370 additions and 319 deletions.
22 changes: 12 additions & 10 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@ tasks:
licenses:
cmds:
- rm ./resources/licenses.txt
- go run github.com/google/[email protected] report --ignore github.com/mokiat/rally-mka --template ./resources/licenses.tmpl ./cmd/rallymka ./cmd/rallypack | fold -w 80 -s > ./resources/licenses.txt
- go run github.com/google/[email protected] report --ignore github.com/mokiat/game --template ./resources/licenses.tmpl ./cmd/game ./cmd/studio | fold -w 80 -s > ./resources/licenses.txt

preview:
cmds:
- go run './cmd/studio' preview ./ {{.CLI_ARGS}}

pack:
cmds:
- go run './cmd/rallypack'
- go run './cmd/studio' pack ./ {{.CLI_ARGS}}

webpack:
cmds:
Expand All @@ -25,11 +29,7 @@ tasks:

run:
cmds:
- go run './cmd/rallymka'

debug:
cmds:
- go run -tags debug './cmd/rallymka'
- go run './cmd/game'

wasm:
env:
Expand All @@ -44,11 +44,13 @@ tasks:

profile-cpu:
cmds:
- go tool pprof 'http://localhost:6060/debug/pprof/profile?seconds=30'
- curl -o default.pgo 'http://localhost:6060/debug/pprof/profile?seconds=30'
- go tool pprof default.pgo

profile-cpu-dl:
profile-cpu-web:
cmds:
- curl -o default.pgo 'http://localhost:6060/debug/pprof/profile?seconds=30'
- go tool pprof -http=localhost:9090 default.pgo

profile-alloc:
cmds:
Expand All @@ -62,7 +64,7 @@ tasks:
cmds:
- go tool pprof 'http://localhost:6060/debug/pprof/heap'

trace:
profile-trace:
cmds:
- curl -o trace.out 'http://localhost:6060/debug/pprof/trace?seconds=30'
- go tool trace trace.out
14 changes: 11 additions & 3 deletions cmd/rallymka/app_cgo.go → cmd/game/app_cgo.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,20 +18,28 @@ import (
)

func runApplication() error {
registry, err := asset.NewDirRegistry(".")
registryStorage, err := asset.NewFSStorage("./assets")
if err != nil {
return fmt.Errorf("failed to initialize storage: %w", err)
}

registryFormatter := asset.NewBlobFormatter()

registry, err := asset.NewRegistry(registryStorage, registryFormatter)
if err != nil {
return fmt.Errorf("failed to initialize registry: %w", err)
}

locator := ui.WrappedLocator(resource.NewFSLocator(resources.UI))

gameController := game.NewController(registry, glgame.NewShaderCollection())
gameController := game.NewController(registry, glgame.NewShaderCollection(), glgame.NewShaderBuilder())
uiController := ui.NewController(locator, glui.NewShaderCollection(), func(w *ui.Window) {
gameui.BootstrapApplication(w, gameController)
})

cfg := glapp.NewConfig("Rally MKA", 1024, 576)
cfg.SetFullscreen(true)
cfg.SetMaximized(false)
cfg.SetMaximized(true)
cfg.SetMinSize(1024, 576)
cfg.SetVSync(true)
cfg.SetIcon("ui/images/icon.png")
Expand Down
12 changes: 10 additions & 2 deletions cmd/rallymka/app_js.go → cmd/game/app_js.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,20 @@ import (
)

func runApplication() error {
registry, err := asset.NewWebRegistry(".")
registryStorage, err := asset.NewWebStorage(".")
if err != nil {
return fmt.Errorf("failed to initialize storage: %w", err)
}

registryFormatter := asset.NewBlobFormatter()

registry, err := asset.NewRegistry(registryStorage, registryFormatter)
if err != nil {
return fmt.Errorf("failed to initialize registry: %w", err)
}

resourceLocator := ui.WrappedLocator(resource.NewFSLocator(resources.UI))
gameController := game.NewController(registry, jsgame.NewShaderCollection())
gameController := game.NewController(registry, jsgame.NewShaderCollection(), jsgame.NewShaderBuilder())
uiController := ui.NewController(resourceLocator, jsui.NewShaderCollection(), func(w *ui.Window) {
gameui.BootstrapApplication(w, gameController)
})
Expand Down
File renamed without changes.
171 changes: 0 additions & 171 deletions cmd/rallypack/main.go

This file was deleted.

110 changes: 110 additions & 0 deletions cmd/studio/forest.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
package main

import (
"github.com/mokiat/lacking/game/asset/dsl"
"github.com/mokiat/lacking/game/asset/mdl"
)

// Day Scene
var _ = func() any {

// Using GIMP:
// 1. Scale height to %50
// 2. Convert to float32
// 3. Exposure: ~ -6
skyImage := dsl.CubeImageFromEquirectangular(
dsl.OpenImage("resources/images/day.hdr"),
)

smallerSkyImage := dsl.ResizedCubeImage(skyImage, dsl.Const(512))
skyTexture := dsl.CreateCubeTexture(smallerSkyImage)

reflectionCubeImage := dsl.ResizedCubeImage(skyImage, dsl.Const(128))
reflectionTexture := dsl.CreateCubeTexture(reflectionCubeImage)

refractionCubeImage := dsl.IrradianceCubeImage(reflectionCubeImage, dsl.SetSampleCount(dsl.Const(50)))
refractionTexture := dsl.CreateCubeTexture(refractionCubeImage)

skyMaterial := dsl.CreateTextureSkyMaterial(
dsl.CreateSampler(skyTexture,
dsl.SetWrapMode(dsl.Const(mdl.WrapModeClamp)),
dsl.SetFilterMode(dsl.Const(mdl.FilterModeLinear)),
dsl.SetMipmapping(dsl.Const(false)),
),
)

sky := dsl.CreateSky(skyMaterial)

ambientLight := dsl.CreateAmbientLight(
dsl.SetReflectionTexture(reflectionTexture),
dsl.SetRefractionTexture(refractionTexture),
)

// TODO: Reference Forest Level so that only this model
// needs to be loaded.

return dsl.CreateModel("Forest-Day",
dsl.AddNode(dsl.CreateNode("sky",
dsl.SetTarget(sky),
)),
dsl.AddNode(dsl.CreateNode("AmbientLight",
dsl.SetTarget(ambientLight),
)),
)
}()

// Night Scene
var _ = func() any {

// Using GIMP:
// 1. Scale height to %50
// 2. Convert to float32
// 3. Exposure: ~ -6
skyImage := dsl.CubeImageFromEquirectangular(
dsl.OpenImage("resources/images/night.exr"),
)

smallerSkyImage := dsl.ResizedCubeImage(skyImage, dsl.Const(512))
skyTexture := dsl.CreateCubeTexture(smallerSkyImage)

reflectionCubeImage := dsl.ResizedCubeImage(skyImage, dsl.Const(128))
reflectionTexture := dsl.CreateCubeTexture(reflectionCubeImage)

refractionCubeImage := dsl.IrradianceCubeImage(reflectionCubeImage, dsl.SetSampleCount(dsl.Const(50)))
refractionTexture := dsl.CreateCubeTexture(refractionCubeImage)

skyMaterial := dsl.CreateTextureSkyMaterial(
dsl.CreateSampler(skyTexture,
dsl.SetWrapMode(dsl.Const(mdl.WrapModeClamp)),
dsl.SetFilterMode(dsl.Const(mdl.FilterModeLinear)),
dsl.SetMipmapping(dsl.Const(false)),
),
)

sky := dsl.CreateSky(skyMaterial)

ambientLight := dsl.CreateAmbientLight(
dsl.SetReflectionTexture(reflectionTexture),
dsl.SetRefractionTexture(refractionTexture),
)

// TODO: Reference Forest Level so that only this model
// needs to be loaded.

return dsl.CreateModel("Forest-Night",
dsl.AddNode(dsl.CreateNode("Sky",
dsl.SetTarget(sky),
)),
dsl.AddNode(dsl.CreateNode("AmbientLight",
dsl.SetTarget(ambientLight),
)),
)
}()

// Forest Level
var _ = func() any {

return dsl.CreateModel("Forest",
dsl.AppendModel(dsl.OpenGLTFModel("resources/models/forest.glb")),
)
}()
Loading

0 comments on commit 6ec0e2f

Please sign in to comment.