:::::::::::::::: news
:::::::::::::::: about
:::::::::::::::: projects
:::::::::::::::: files
:::::::::::::::: contact
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
updated: may 2003