-
-
Notifications
You must be signed in to change notification settings - Fork 1
ISSUE #11: Replacing old entry points with 'next' versions #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements a major architectural refactoring that removes the ViewModel concept from the game engine architecture, replacing the old entry points (IndigoGame, IndigoDemo, IndigoSandbox, IndigoShader) with a unified Game trait and moving from the indigo.next package to the main indigo package.
Changes:
- Removed ViewModel as a separate type parameter from
Game,Scene, andEventFilters- ViewModels are now embedded within the Model - Consolidated entry points into a single
Gametrait with aGame.ShaderToysubtype for shader development - Migrated all code from
indigo.next.*package toindigo.*package and deleted theindigo-nextmodule - Updated Tyrian
App.extensionsto accept flags parameter for proper configuration passing - Created
BasicGameRuntimewrapper class for simplified game launching - Updated all sandbox implementations and test files to the new architecture
Reviewed changes
Copilot reviewed 113 out of 113 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
indigo/src/indigo/Game.scala |
New unified Game trait replacing IndigoGame/IndigoDemo with embedded ViewModel support |
indigo/src/indigo/BasicGameRuntime.scala |
New runtime wrapper for simple game launching |
indigo/src/indigo/scenes/Scene.scala |
Removed ViewModel type parameter and updateViewModel method |
indigo-core/src/indigo/core/events/EventFilters.scala |
Removed viewModelFilter, now only has modelFilter |
indigo/src/indigo/frameprocessors/GameFrameProcessor.scala |
Renamed from NextFrameProcessor, removed ViewModel handling |
tyrian/src-js/tyrian/App.scala |
Updated extensions signature to accept flags parameter |
indigo/src/indigo/Indigo.scala |
Updated Tyrian extension to properly pass flags to game |
| Multiple sandbox scenes | Removed updateViewModel, viewModelLens, and SceneViewModel type aliases |
| Test files | Updated to new architecture without ViewModel parameter |
| Deleted files | Removed old entry points (IndigoGame.scala, IndigoDemo.scala, IndigoSandbox.scala, IndigoShader.scala) and indigo-next module |
indigo-sandboxes/sandbox/src/main/scala/com/example/sandbox/scenes/CaptureScreenScene.scala
Outdated
Show resolved
Hide resolved
indigo-sandboxes/sandbox/src/main/scala/com/example/sandbox/scenes/ActorPoolPhysicsScene.scala
Outdated
Show resolved
Hide resolved
57fe986 to
8f60e5d
Compare
This is the bulk of the work to replace the old entry points with the new 'next' versions, which are renamed to
Gameand eventually something likeGame.Shader. It also means that all the sandboxes are now Tyrian apps running Indigo games via the Indigo extension, and there are a couple of open issues that have emerged so far (#44 and #45).