|
Gosh release notes
Release 1.1 public alpha, December 1999
1.1. Project chart
Supported operating systems:
- Windows 98 using DirectX 7.0
Tested graphic cards:
- Matrox G200 16 bit output (drivers 5.50b)
- Matrox G400 16/32 bit output (drivers 5.50b)
- Voodoo III 16 bit output
Hardware requirements:
- Intel Pentium MMX (or compatible) or higher
- 16/32 bit video card (3D accelerators preferred)
- Mouse
1.2. Installation
1) Unzip Gosh Alpha 1.0 into an empty folder of your choice.
2) Select one of the *.gosh files, and shift-right-click Open
with...
3) Check "Always use this program to open this type of file"
4) Press "Other..." and browse into the folder with unzipped
files. Open Gosh.exe and press "Ok".
5) Double click one of the *.gosh files to start Gosh.
6) If you are using Voodoo III card, you might want to copy
BIOS (for Voodoo III).txt over BIOS.txt (high-res windows instead
of alpha-blended windows)
1.3. Keyboard commands
GOSH:
F12: exit
Ctrl + F12: watchdog exit (use this if something comes to a
halt)
Yesod:
F1: open scope (does not work when a window is maximized)
ESC: close top-most window
TAB: maximize top-most window / restore top-most window
1.4. Why Gosh?
Increasing hardware complexity and consumer needs demand increasing
software complexity. Classical programming tools like BASIC,
C, Pascal, C++ etc, originally created for developing text and
simple graphics I/O software, choke under the pressure of hundreds
of thousands of today's window GUI, multimedia, networking,
3D-graphics and AI source code lines. Sooner or later, coding
primitives of everyday's programming will have to be redefined
and set up on a higher level of complexity. GOSH is our first
attempt at creating a development environment that responds
to current and future demands: linear learning curve, minimum
of source code redundancy, scalability and orthogonal access
to all system functionalities.
1.5. What is Gosh?
Gosh is a self-sustaining software development environment in
the form of a virtual machine emulator. Although the computer
that Gosh emulates does not really exist (yet), the emulator
itself may be enough to see possible advantages of such a machine:
- A symbolic machine language, memory and I/O representation,
enabling linear learning curve.
- Execution of all high complexity, real-time tasks via execution
graph, enabling orthogonality across all levels of development.
These two advantages also describe the two-layered structure
of GOSH, with Goship as its symbolic language and data access
protocol on one side, and Nether execution graph on the other.
Since the specification, documentation and runtime of GOSH on
the whole are still in alpha stage, this release will present
problems for users with less experience in programming. In short:
besides the raw specifications included with the package, you
are very much on your own for now.
1.6. Examples
Because Yesod, the operating system of GOSH, is still in prototype
stage, there are only a few demos, with (unfortunately) a lot
of variance in coding style. Expect this to get better in the
following days/weeks when Yesod is updated to alpha stage and
more (consistent) examples are uploaded. Current version of
Yesod is much cleaner than in 1.0 release, so it's more appropriate
to study or try to extend. This is still not the official alpha
version, though. Since a new entity class has been added into
Nether, 'cloud', two particle engine demos have been added.
They are more or less the same, with blending modes as the only
difference. The 'cloud' entity is in a very early stage, so
don't expect anything spectacular, but the examples look best
in maximized mode.
1.7. Implementation so far:
(alpha release 1.0)
Read Goship and Nether specification to see current functionality
of those subsystems.
Goship (beta 1.01) is the symbolic
language of GOSH. Everything you do in GOSH you do in Goship,
and it basically has a twin functionality: scripting with symbolic
processing and configuring of Nether. There will be some modifications
in Goship but the final version will be fully backward compatible
with the current.
Nether (alpha 1.01) is the execution
graph of GOSH. It enables access to I/O devices such as graphics
and sound, file input and output and real time math. There are
still many features missing and the specification is still beta,
so backward compatibility of final version with the current
is not guaranteed, but there are no major differences to be
expected.
Yesod (prototype 1.2) is the operating
system of GOSH written in GOSH. It is an object-oriented architecture
covering all aspects of Goship and Nether, thus enabling a higher
approach to data access and development. This version is an
advanced prototype. Backward compatibility is not guaranteed,
but will mostly be there. Massive extensions like persistence
and transparent class registration are soon to follow, making
it an official alpha version.
1.8. Still missing in GOSH on the whole:
- Final sound support (sound is already supported, but the current
form is inconsistent with other aspects of GOSH.)
- Optimizations (the system as a whole, as also the main components,
Nether and Goship, is still completely unoptimized, especially
in the field of mathematic conversions, filter matching and
data flowthrough).
- Collision detection and physical model (both can already be
approximized by using available components).
1.9. Some things that, however, you can already do:
- Use orthogonal file access via Gateway
- Display accelerated 2D/3D objects and hierarchies with multitexturing,
lighting, fog, depth-buffering, blending modes etc.
- Creating special effects by rendering into textures, accumulator
buffers and geometry.
- Mixing multiple sounds.
- Script in the best scripting language there is and can be.
- Allow user's interaction with 2D and 3D objects.
- Create cullable scenes using portals.
- Create 3D objects by lofting or displacement. Project textures
or transform texture coordinates etc.
- Connect all those functionalities into networks, allowing
VR relations and responses of any kind. Thus, you can create
almost any game without scripting.
- See specs for other zillion of things. :)
1.10. Known problems and roaches:
- G400/G200 occasionally generates a DDHELP GP error which crashes
the system. This may be system, not graphics adapter related
problem, but it's not a problem of GOSH. It seems current G400/G200
drivers are sensitive when you create 3D devices operating on
texture surfaces. This problem has been reduced with the introduction
of beta 5.5 drivers, though the version is less stable in full-screen
now.
- Nonexistent 3D hardware compatibility testing. GOSH does not
work with 3D accelerators that do not allow render into textures
(like 3DFX Voodoo I and II). This problem will be removed in
the future.
- Almost nonexistent video memory manager.
- High memory and hardware demands.
- A small camp of tiny bugs residing somewhere in the 13th level
of the dungeon. We're soon sending a party of heroes down to
clean up the place.
1.11. High priority tasks
- Video memory manager.
- Yesod alpha 1.0
- Improvement of 3D hardware compatibility.
- Structural unification of Nether.
- Full 3D hardware caps support (clip planes, advanced multitexturing).
- First level optimisations.
- First level Nether debugging.
- Bump & environment mapping.
1.12. Plan for Beta release 1.0t
Yesod beta 1.0
Nether beta 1.0:
- Complete implementation of current specification.
- Unified structure & full orthogonality.
- Solid geometry
- Sound revisited
1.13. Plan for Final release 1.0
Goship 1.1:
- Full implementation, optimisation & debugging
Yesod 1.0
Nether 1.0:
- Full optimisation & debugging Collision detection and physics
Stay tuned!
sinister systems
|