Introduction
Cutting-edge computer games use different graphics subsystems -- so-called 3D graphics engines. Source (used in Half Life 2), Unreal Engine (Unreal Tournament), idTech 4 (Doom 3), CryENGINE2 (Crysis) or Clever's Paradox engine are well-known among the players and the game industry experts.
It's time to learn a new 3D game engine name: Microsoft Excel.
It is understood that Excel is an all-round office tool, but probably it is unknown that it has a bunch of features that makes Excel a high-class 3D graphics engine.
In this article I will demonstrate Excel's arithmetical facilities, the embedded rendering subsystems (there are two of them!) and the revolutionary approach which might just cause a paradigm shift. I hope you will discover that Excel effectively and efficiently incorporates practicality, tons of features, the multi-platform portability and the high performance with the unique and futuristic 3D engine features.
The chapters even have demo programs and movies created with the Excel 3D engine.
Warning: Only for determined experts!
Arithmetic
Maybe Excel's arithmetic functions need a demonstration least of all. The core functions of the 3D object manipulation (e.g. the four rules of arithmetic, trigonometric functions, matrix algebra) mean the essence of Excel - but it is worth examining them because of their unequalled compactness and its magnificent elegance with which Excel towers above the current entire 3D engine field.
Compactness
It is very likely that not too many game engines solve the whole 3D arithmetic in a half screen size. The upper part of Figure 1 contains the spatial shift, the rotation around X, Y, Z axis and the perspective projection as well. As it can be seen in the demo applications, the polygon visibility, the Z-buffering and the reflection calculation require about the same size.
Figure 1: Essence of the 3D engine
The yellow color marks the user-defined parameters and green color indicates the engine-calculated values. Numbered areas contain the following data:
-
Parameters of the perspective projection
-
3D coordinates of the objects' points (relative to their center)
-
Shift and rotation matrix (further details can be found e.g. at http://en.wikipedia.org/wiki/3D_projection)
-
Parameters of the rotation
-
3D absolute coordinates of the points after the shift and rotation
-
2D coordinates of the points after the perspective projection
-
Screen coordinates of the points
-
End points of the objects' edges
-
Formula of an element in the shift and rotation matrix. Simplicity and compactness are clearly visible.
Elegance
The development environment of Excel not only allows the programmers to edit a plain or syntax-highlighted source code, but it also provides all of its well-known formatting functions for the engine developers: several fonts can be used simultaneously (with different types and sizes), the cells and texts colored, pop-up notes added, and -- sit down! -- sounds or even entire movies inserted if required.
|
By the way, th etop level of letters on a keyboard were also arranged to make spelling TYPEWRITER easier for typewriter seles men who went door to door demonstrating their usage.
And while Excel may not be a modern GPU, it, like the DS, Flash, Shockwave, etc, can be used be used as a commonly available easy to program engine that new programmers and designers can use to make simple games and help ease their way into more meatier and significant projects. They need not worry about graphics, models, or other time consuming assets but purely the scripting and design. Perhaps in some ways, it's the equivalent to MS Paint for artists.
ps: I also used word as a programming editor - styles, outlining, autotext, templates, grammar checking, macros years and years before visual studio. In a lot of ways word is still a better programming editor than any other, even now...
http://youtube.com/watch?v=_whSnPErl7c
However, if you have a specialised tool available, it usually beats Excel by a fair margin.
Also, thanks for the Dvorak plug! Having typed with it for almost 20 years, I'm sorry so many people continue to hurt their hands with Qwerty!
Lastly, go ahead and flame me, Ian, but you're dead wrong about Word. If you were really that heavy a coder that far back, you would never have used *that* sucky a program.
Word Perfect was THE choice for anyone who typed until 'doze took over. The old DOS Word was absolutely terrible. (You want to stick in all this formatting crap, but don't give me Reveal Codes? Come on...)
The 'doze version of Word may be today's standard, but it still blows dead bears.
However, even with WP's excellent macro abilities & keyboard re-mapping, I would never have considered using it for coding.
Qedit all the way!
http://www.microtron.org.uk/~craig/Microtron/Projects/XL3Drender/XL3Drender.xls
There are other shapes in that directory that can be rendered.
If I'm understanding this correctly, though, wouldn't it be possible to have 60 sheets and emulate the "60 frames per second" staple we have in traditional video games today? It would certainly sort out the issue of fluidity.
Are you retarded? The author of this article is trying to demonstrate the proof of concept for a change in paradigm with regard to coding structure. He was not attempting to compare the performance of excel data calculations to hardware matrix manipulations. Plus, hardware graphics processes are limited in the size of matrices which can be operated on. Try to work with matrices with thousands, or millions of rows/columns as is done in high energy physics simulations/reconstructions and your GPU is about as as worthless as a Ti-89. Charles Babbage envisioned a "universal machine" which has yet to come to realization. A step away from architecture based paradigms is inevitable. Your gamer oriented thinking is so hardware-centric that it has blinded you from seeing the big, long term picture.
Anyways, this was an awesome artilce, I look forward to the first Excel MMORPG!
http://www.reason.com/news/show/29944.html
That "Excellence" video by Ananasmurska is pretty impressive. It isn't really a 3D engine, but an interesting example of what intelligent people with too much free time can do, with any tool. :)
http://www.gamasutra.com/db_area/images/feature/3563/figure4.png
Indeed *that* is what is genius about the article: the way that it is written! All of the little details and arguments are similarly structured to papers, all-the-while being preposterous when actually considered. While the idea/implementation may not be new, it's the article that is the real cleverness.
The idea is clever, but it is the writing that is truly superb.
It was the only time in my college career that a prof marked a paper "A+++" like it was eBay feedback.
http://www.eeggs.com/items/719.html
And you can fc play these games at work - this is another strong advantage of Excel gaming engine :)
programming that makes good use of your Excel program. It doesn't
matter what your skill level is -- anyone can use it